diff options
Diffstat (limited to 'hobbit.info')
-rw-r--r-- | hobbit.info | 132 |
1 files changed, 75 insertions, 57 deletions
diff --git a/hobbit.info b/hobbit.info index 9e0c0a9..a9d8b9f 100644 --- a/hobbit.info +++ b/hobbit.info @@ -19,6 +19,7 @@ Tammet. * Performance of Compiled Code:: * Principles of Compilation:: * About Hobbit:: +* Index:: Copyright (C) 1990-1999, 2002 Free Software Foundation @@ -66,7 +67,7 @@ Hobbit (derived from hobbit5x) is now part of the SCM Scheme implementation. The most recent information about SCM can be found on SCM's "WWW" home page: - <http://swissnet.ai.mit.edu/~jaffer/SCM.html> + <http://swissnet.ai.mit.edu/~jaffer/SCM> Hobbit4d has also been ported to the Guile Scheme implementation: @@ -104,6 +105,9 @@ Compiling And Linking instance, `.so'). NAME1.scm must be in the current directory; NAME2.scm, ... may be in other directories. + If a file named `NAME1.opt' exists, then its options are passed to + the `build' invocation which compiles the `c' files. + cd ~/scm/ scm -rcompile -e'(compile-file "example.scm")' @@ -134,7 +138,7 @@ Compiling And Linking (lambda (fp) (for-each (lambda (string) (write-line string fp)) - '("#define IMPLINIT \"Init5d6.scm\"" + '("#define IMPLINIT \"Init5d9.scm\"" "#define BIGNUMS" "#define FLOATS" "#define ARRAYS" @@ -153,6 +157,9 @@ Compiling And Linking ... to a SCM executable named EXENAME. NAME1.scm must be in the current directory; NAME2.scm, ... may be in other directories. + If a file named `EXENAME.opt' exists, then its options are passed + to the `build' invocation which compiles the `c' files. + cd ~/scm/ scm -rcompile -e'(compile->executable "exscm" "example.scm")' @@ -183,7 +190,7 @@ Compiling And Linking (lambda (fp) (for-each (lambda (string) (write-line string fp)) - '("#define IMPLINIT \"Init5d6.scm\"" + '("#define IMPLINIT \"Init5d9.scm\"" "#define COMPILED_INITS init_example();" "#define CCLO" "#define FLOATS")))) @@ -533,10 +540,8 @@ generic case, not immediate-integers-only and are thus much slower. Notice that the procedures logsleft, logsright are NOT in the the library file `logical.scm:' the universal procedure ash is instead. Procedures ash, logcount, integer-length, integer-expt, bit-extract, -ipow-by-squaring, logical:ash, logical:logcount, logical:integer-length, -logical:integer-expt, logical:bit-extract, logical:ipow-by-squaring, in -`logical.scm' are not primtives and they are all compiled into calls to -interpreted code. +ipow-by-squaring, in `logical.scm' are not primtives and they are all +compiled into calls to interpreted code. logsleft and logsright are defined for non-compiled use in the file `scmhob.scm' included in the SCM distribution. @@ -1271,13 +1276,13 @@ Expansion and Analysis let*-s inside these chunks. 5. Normalization is performed. This converts a majority of scheme - control procedures like cond, case, or, and into equivalent terms - using a small set of primitives. New variables may be introduced - in this phase. + control procedures like `cond', `case', `or', `and' into + equivalent terms using a small set of primitives. New variables + may be introduced in this phase. - In case a procedure like or or and occurs in the place where its - value is treated as a boolean (eg. first argument of if), it is - converted into an analogous boolean-returning procedure, which + In case a procedure like `or' or `and' occurs in the place where + its value is treated as a boolean (eg. first argument of `if'), it + is converted into an analogous boolean-returning procedure, which will finally be represented by an analogous C procedure (eg. || or &&). @@ -1616,7 +1621,7 @@ instead of the default: (define *build-intermediate-files* #f). -File: hobbit.info, Node: About Hobbit, Prev: Principles of Compilation, Up: Top +File: hobbit.info, Node: About Hobbit, Next: Index, Prev: Principles of Compilation, Up: Top About Hobbit ************ @@ -1674,7 +1679,7 @@ Author and Contributors University of Go"teborg S-41296 Go"teborg Sweden -A. Jaffer (jaffer @ alum.mit.edu), the author of SCM, has been of major +A. Jaffer (agj @ alum.mit.edu), the author of SCM, has been of major help with a number of suggestions and hacks, especially concerning the interface between compiled code and the SCM interpreter. @@ -1750,10 +1755,10 @@ hobbit4c: hobbit4b: The following bugs have been fixed: * Erroneous treatment of [ and ] inside symbols, reported by A. - Jaffer (jaffer @ alum.mit.edu). + Jaffer (agj @ alum.mit.edu). - * A bug in the liftability analysis, reported by A. Jaffer - (jaffer @ alum.mit.edu). + * A bug in the liftability analysis, reported by A. Jaffer (agj + @ alum.mit.edu). * A bug occurring in case arguments are evaluated right-to-left, which happens with Hobbit compiled by gcc on Linux. Reported @@ -1905,48 +1910,61 @@ hobbit1a1 (not public): hobbit1: the first release + +File: hobbit.info, Node: Index, Prev: About Hobbit, Up: Top + +Index +***** + +* Menu: + +* compile->executable: Compiling And Linking. +* compile-file: Compiling And Linking. +* hobbit: Compiling And Linking. + Tag Table: Node: Top199 -Node: Introduction1217 -Node: Compiling with Hobbit2533 -Node: Compiling And Linking2786 -Node: Error Detection7267 -Node: Hobbit Options8565 -Node: CC Optimizations15286 -Node: The Language Compiled16234 -Node: Macros16889 -Node: SCM Primitive Procedures17485 -Node: SLIB Logical Procedures18336 -Node: Fast Integer Calculations19616 -Node: Force and Delay20742 -Node: Suggestions for writing fast code21319 -Node: Performance of Compiled Code31510 -Node: Gain in Speed31766 -Node: Benchmarks33343 -Node: Benchmark Sources36435 -Node: Destruct36773 -Node: Recfib38348 -Node: div-iter and div-rec38591 -Node: Hanoi39665 -Node: Tak40234 -Node: Ctak40577 -Node: Takl41560 -Node: Cpstak42219 -Node: Pi42986 -Node: Principles of Compilation44103 -Node: Macro-Expansion and Analysis44525 -Node: Building Closures48308 -Node: Lambda-lifting51191 -Node: Statement-lifting53939 -Node: Higher-order Arglists55039 -Node: Typing and Constants56837 -Node: About Hobbit58093 -Node: The Aims of Developing Hobbit58335 -Node: Manifest59218 -Node: Author and Contributors59669 -Node: Future Improvements60719 -Node: Release History61476 +Node: Introduction1227 +Node: Compiling with Hobbit2540 +Node: Compiling And Linking2793 +Node: Error Detection7538 +Node: Hobbit Options8836 +Node: CC Optimizations15557 +Node: The Language Compiled16505 +Node: Macros17160 +Node: SCM Primitive Procedures17756 +Node: SLIB Logical Procedures18607 +Node: Fast Integer Calculations19763 +Node: Force and Delay20889 +Node: Suggestions for writing fast code21466 +Node: Performance of Compiled Code31657 +Node: Gain in Speed31913 +Node: Benchmarks33490 +Node: Benchmark Sources36582 +Node: Destruct36920 +Node: Recfib38495 +Node: div-iter and div-rec38738 +Node: Hanoi39812 +Node: Tak40381 +Node: Ctak40724 +Node: Takl41707 +Node: Cpstak42366 +Node: Pi43133 +Node: Principles of Compilation44250 +Node: Macro-Expansion and Analysis44672 +Node: Building Closures48469 +Node: Lambda-lifting51352 +Node: Statement-lifting54100 +Node: Higher-order Arglists55200 +Node: Typing and Constants56998 +Node: About Hobbit58254 +Node: The Aims of Developing Hobbit58510 +Node: Manifest59393 +Node: Author and Contributors59844 +Node: Future Improvements60891 +Node: Release History61648 +Node: Index68429 End Tag Table |