summaryrefslogtreecommitdiff
path: root/doc/ref/compiler.texi
AgeCommit message (Collapse)AuthorFilesLines
2012-02-08Merge remote-tracking branch 'origin/stable-2.0'Andy Wingo1-2/+2
Conflicts: GUILE-VERSION libguile/gc-malloc.c libguile/ports.c
2012-02-02Make consistent the usage of variable names in the function definitions ↵Bake Timmons1-2/+2
found in the Texinfo docs. * doc/r5rs/r5rs.texi: * doc/ref/api-compound.texi: * doc/ref/api-data.texi: * doc/ref/api-debug.texi: * doc/ref/api-evaluation.texi: * doc/ref/api-io.texi: * doc/ref/api-modules.texi: * doc/ref/api-procedures.texi: * doc/ref/api-scheduling.texi: * doc/ref/api-smobs.texi: * doc/ref/compiler.texi: * doc/ref/misc-modules.texi: * doc/ref/posix.texi: * doc/ref/scheme-using.texi: * doc/ref/srfi-modules.texi: * doc/ref/vm.texi: * doc/ref/web.texi: * doc/sources/env.texi: Make usage of variable names of function definitions more consistent.
2011-11-09inline dynwind guards for normal control flowAndy Wingo1-5/+8
* module/language/tree-il.scm (<tree-il>): Add `pre' and `post' fields to <dynwind>, so that we can inline the guard bodies in the normal control-flow case. It also avoids duplicating code in compile-glil, which probably hides more bugs in 2.0. (parse-tree-il, unparse-tree-il, tree-il->scheme, tree-il-fold) (make-tree-il-folder, post-order!, pre-order!): Update. * module/language/tree-il/analyze.scm (analyze-lexicals): Update. * module/language/tree-il/compile-glil.scm (flatten-lambda-case): Update to use `pre' and `post' instead of compiling code twice. * module/language/tree-il/debug.scm (verify-tree-il): Update. * module/language/tree-il/peval.scm (peval): Update. Instead of doing complicated things in <dynwind>, handle 'dynamic-wind primcalls. * module/language/tree-il/primitives.scm (*primitive-expand-table*): Remove 'dynamic-wind mess. Adapt '@dynamic-wind. * test-suite/tests/tree-il.test ("partial evaluation"): Update tests.
2011-06-02add <primcall> to tree-ilAndy Wingo1-0/+9
* libguile/expand.c: * libguile/expand.h (SCM_EXPANDED_PRIMCALL_TYPE_NAME): (SCM_EXPANDED_PRIMCALL_FIELD_NAMES): (SCM_EXPANDED_PRIMCALL_SRC): (SCM_EXPANDED_PRIMCALL_NAME): (SCM_EXPANDED_PRIMCALL_ARGS): (SCM_MAKE_EXPANDED_PRIMCALL): Add "primcall" Tree-IL type. * doc/ref/compiler.texi (Tree-IL): Update docs. * libguile/memoize.c (memoize): Memoizer for primcalls. * module/ice-9/psyntax.scm: Build primcalls, sometimes. Also change build-primref to just make a primitive-ref. * module/language/tree-il.scm: Add primcall to the exports, parsers, serializers, etc. * module/language/tree-il/analyze.scm: * module/language/tree-il/compile-glil.scm: * module/language/tree-il/fix-letrec.scm: * module/language/tree-il/inline.scm: * module/language/tree-il/primitives.scm: * module/language/elisp/compile-tree-il.scm: Add primcall support. * test-suite/tests/tree-il.test: Use primcalls sometimes.
2011-06-02rename <application> to <call>Andy Wingo1-17/+16
* doc/ref/compiler.texi (The Scheme Compiler): Update docs. * libguile/expand.h: * libguile/expand.c: * module/language/tree-il.scm: Rename <application> to <call>. Change the external representation from (apply proc arg ...) to (call proc arg ...). * libguile/memoize.c: * module/ice-9/psyntax-pp.scm: * module/ice-9/psyntax.scm: * module/language/brainfuck/compile-tree-il.scm: * module/language/ecmascript/compile-tree-il.scm: * module/language/elisp/compile-tree-il.scm: * module/language/tree-il/analyze.scm: * module/language/tree-il/compile-glil.scm: * module/language/tree-il/fix-letrec.scm: * module/language/tree-il/inline.scm: * module/language/tree-il/primitives.scm: * test-suite/tests/tree-il.test: Update all callers.
2011-02-18Rewording for "make an intervention".Neil Jerram1-7/+6
* doc/ref/compiler.texi (Extending the Compiler): Rephrase first sentence.
2011-02-18No sublimated desiresNeil Jerram1-6/+6
* doc/ref/compiler.texi: Delete "subliminated".
2011-02-16Rewording for "make an intervention".Neil Jerram1-7/+6
* doc/ref/compiler.texi (Extending the Compiler): Rephrase first sentence.
2011-02-15No sublimated desiresNeil Jerram1-6/+6
* doc/ref/compiler.texi: Delete "subliminated".
2011-02-13Misc textual editingNeil Jerram1-3/+3
* doc/ref/api-scheduling.texi (Asyncs): "queueing" -> "queuing". * benchmark-suite/lib.scm, doc/sources/unix.texi (Unix conventions), test-suite/lib.scm: "postpend" -> "append". * doc/ref/api-compound.texi (Array Syntax, Dictionary Types), doc/ref/api-control.texi (Catch), doc/ref/api-data.texi (Complex Numbers, Conversion, Random, Symbol Props, Symbol Uninterned), doc/ref/api-options.texi (Build Config, Common Feature Symbols), doc/ref/api-regex.texi (Match Structures), doc/ref/api-undocumented.texi, doc/ref/compiler.texi (Tree-IL, GLIL), doc/ref/data-rep.texi (Immediate objects), doc/ref/goops.texi (Slot Description Example), doc/ref/history.texi (A Scheme of Many Maintainers, Status), doc/ref/libguile-program.texi (Available Functionality), doc/ref/misc-modules.texi (Formatted Output), doc/ref/mod-getopt-long.texi (getopt-long Reference), doc/ref/posix.texi (Network Socket Address, Network Sockets and Communication), doc/ref/srfi-modules.texi (SRFI-1 Association Lists, SRFI-10, SRFI-19 String to date, SRFI-27 Random Sources), doc/ref/vm.texi (Instruction Set, Top-Level Environment Instructions, Procedure Call and Return Instructions), doc/sources/unix.texi (Unix conventions): Correct spacing after "i.e." and "e.g.".
2011-02-09docs: fix typos in manual, and a couple in code comments.Ralf Wildenhues1-3/+3
* doc/ref/api-binding.texi, doc/ref/api-compound.texi, doc/ref/api-control.texi, doc/ref/api-debug.texi, doc/ref/api-io.texi, doc/ref/api-macros.texi, doc/ref/api-procedures.texi, doc/ref/api-scheduling.texi, doc/ref/api-undocumented.texi, doc/ref/api-utility.texi, doc/ref/compiler.texi, doc/ref/goops.texi, doc/ref/libguile-concepts.texi, doc/ref/misc-modules.texi, doc/ref/posix.texi, doc/ref/r6rs.texi, doc/ref/slib.texi, doc/ref/srfi-modules.texi, doc/ref/sxml-match.texi, doc/ref/tools.texi, doc/ref/vm.texi, doc/ref/web.texi, doc/sources/env.texi, doc/sources/jimb-org.texi, doc/sources/scheme-concepts.texi, doc/sources/unix.texi, module/ice-9/optargs.scm: Fix typos. * doc/r4rs/r5rs.texi: Likewise. Do not capitalize code symbols even at the start of a sentence. * doc/ref/api-data.texi: Likewise. Also, remove executable bit.
2010-08-27fix <letrec> docsAndy Wingo1-1/+2
* doc/ref/compiler.texi (Tree-IL): Fix docs for external representation of letrec. Thanks to No Itisnt.
2010-08-06letrec* in docs, and some r6rs fixesAndy Wingo1-3/+3
* doc/ref/api-binding.texi: Add docs for letrec*, and revise some other text. * doc/ref/compiler.texi: Update <letrec> for in-order?. * doc/ref/r6rs.texi: Add letrec* entry. * module/rnrs.scm: * module/rnrs/base.scm: Export letrec*.
2010-07-10update manual for value history on by defaultAndy Wingo1-1/+1
* doc/ref/compiler.texi: Update for new ,pp meta-command. * doc/ref/scheme-using.texi (Using Guile Interactively): Show value history in examples. (Value Historyx): Update docs to mention the repl option and the programmatic interface.
2010-05-02Update example disassembliesAndy Wingo1-19/+13
* doc/ref/compiler.texi: * doc/ref/vm.texi: Update example disassemblies for current compiler, which uses assert-nargs-ee/locals.
2010-05-02update compiler.texiAndy Wingo1-139/+206
* doc/ref/compiler.texi (Compiler Tower): Update for removal of version from <language>, and add joiner and make-default-environment fields. Update examples. (The Scheme Compiler): Update for `macroexpand' instead of `sc-expand', and that the environment must be a module. (Tree-IL): Update for new Tree-IL, and change from "vars" to "gensyms". (GLIL): Update for new GLIL, including preludes and prompts. (Assembly): Update for current output (which seems quite verbose). (Bytecode and Objcode): Update for current output, and some procedure name changes.
2010-05-01update documentation for vm instructionsAndy Wingo1-5/+5
* doc/ref/vm.texi: Update with documentation for new-ish instructions, and reorganize the sections a bit. * doc/ref/compiler.texi (GLIL): Fix up a couple xrefs.
2010-04-25Fix typoNeil Jerram1-1/+1
* doc/ref/compiler.texi (Bytecode and Objcode): Remove extraneous comma.
2009-10-15Document the interaction of the "compilee" with the compiler's current module.Ludovic Courtès1-0/+37
This is a followup to 87c595c757b7db84ffdcfda96f736ab235e674a8 ("Compile in a fresh module by default.") and f65e2b1ec5ae1962e57322ac3085ab4d44025694 ("Honor and confine expansion-time side-effects to `current-reader'."). * doc/ref/api-evaluation.texi (Loading): Explain how to change `current-reader' in a compiler-friendly way. * doc/ref/compiler.texi (The Scheme Compiler): Explain use of a fresh compilation module and separate `current-reader' fluid. * test-suite/tests/compiler.test ("current-reader")["with eval-when"]: New test.
2009-08-21Merge branch 'wip-manual' of ssh://ossau@git.sv.gnu.org/srv/git/guileNeil Jerram1-1/+2
Conflicts: doc/ref/autoconf.texi doc/ref/vm.texi
2009-08-12update docs for recent vm/compiler workAndy Wingo1-70/+95
* doc/ref/compiler.texi: * doc/ref/vm.texi: Update for recent changes. * module/language/assembly/disassemble.scm (disassemble-load-program): Don't print nops, they are distracting.
2009-08-04Fix overfull hboxesNeil Jerram1-1/+2
2009-06-21link to brainfuck wikipedia pageAndy Wingo1-1/+3
* doc/ref/compiler.texi: Point to more info on Brainfuck. Patch by Daniel Kraft.
2009-06-21added documenting comments to the brainfuck compiler and mention it in the ↵Daniel Kraft1-1/+13
VM documentation. * doc/ref/compiler.texi: Mention the new brainfuck compiler as an example. * module/language/brainfuck/compile-scheme.scm: Add a lot of documentation comments. * module/language/brainfuck/parse.scm: Ditto. * module/language/brainfuck/spec.scm: Ditto.
2009-05-25update docs -- sections on assembly and objcodeAndy Wingo1-34/+156
* doc/ref/api-procedures.texi: * doc/ref/compiler.texi: * doc/ref/vm.texi: Update the docs some more.
2009-05-24update docs, clean up VM vestiges, macro docs, fix (/ a b c)Andy Wingo1-327/+252
* doc/ref/api-procedures.texi (Compiled Procedures): Fix for API changes. * doc/ref/compiler.texi (Compiling to the Virtual Machine): Replace GHIL docs with Tree-IL docs. Update the bits about the Scheme compiler to talk about Tree-IL and the expander instead of GHIL. Remove <glil-argument>. Add placeholder sections for assembly and bytecode. * doc/ref/vm.texi: Update examples with what currently happens. Reword some things. Fix a couple errors. * libguile/vm-i-system.c (externals): Remove this instruction, it's not used. * module/ice-9/documentation.scm (object-documentation): If the object is a macro, try to return documentation on the macro transformer. * module/language/assembly/disassemble.scm (disassemble-load-program): Fix problem in which we skipped the first element of the object vector, because of changes to procedure layouts a few months ago. * module/language/scheme/spec.scm (read-file): Remove read-file definition. * module/language/tree-il.scm: Reorder exports. Remove <lexical>, it was a compat shim to something that was never released. Fix `location'. * module/language/tree-il/primitives.scm (/): Fix expander for more than two args to /. * module/system/base/compile.scm (read-file-in): Remove unused definition. * module/system/base/language.scm (system): Remove language-read-file. * module/language/ecmascript/spec.scm (ecmascript): Remove read-file definition.
2009-01-15fold in ludovic's suggestions for new manual sectionsAndy Wingo1-7/+7
* INSTALL: Update from newest merge * doc/ref/compiler.texi: * doc/ref/vm.texi: Fold in Ludovic's suggestions
2009-01-11word tweaksAndy Wingo1-2/+2
* doc/ref/guile.texi: Finish some wording. * doc/ref/compiler.texi: Fix some goofiness.
2009-01-11tweaks to compiler.texiAndy Wingo1-5/+3
* doc/ref/compiler.texi: Minor tweaks.
2009-01-11finish compiler.texi, wooAndy Wingo1-48/+152
* libguile/objcodes.c (do-pair): Removed unused debuging hack. * module/language/glil/spec.scm (glil): Simplify a bit. * module/system/repl/repl.scm (default-catch-handler): Don't catch vm-error, as vm-backtrace doesn't exist any more. * doc/ref/compiler.texi: Finish documenting GLIL and object code.
2009-01-11rename <glil-asm> to <glil-program>Andy Wingo1-68/+279
* module/language/glil.scm (<glil-program>): Rename from <glil-asm>. * module/language/ghil/compile-glil.scm (codegen): * module/language/glil.scm (parse-glil, unparse-glil): * module/language/glil/compile-objcode.scm (preprocess, codegen): Adapt to naming change.
2009-01-09rename translate.scm to compile-ghil.scm, and more work on compiler.texiAndy Wingo1-9/+172
* doc/ref/api-evaluation.texi: Fix some typos and xrefs. * doc/ref/compiler.texi (The Scheme Compiler): Document the scheme compiler, and start documenting the GHIL language. * doc/ref/guile.texi (Guile Implementation): Whoops, put autoconf after the implementation foo. Unless we want it before? * doc/ref/history.texi (The Emacs Thesis): Fix typo. * doc/ref/vm.texi (Environment Control Instructions): Rename offset to index. * module/language/ghil.scm (parse-ghil): Fix what I think was a bug -- the consumer in a mv-call shouldn't be a rest arg. * module/language/scheme/Makefile.am (SOURCES): * module/language/scheme/compile-ghil.scm: Rename this file from translate.scm. * module/oop/goops.scm: * module/language/scheme/spec.scm: Deal with renaming.
2009-01-09fix some xrefs, flesh out compiler.texi a bit moreAndy Wingo1-39/+129
* doc/ref/api-debug.texi: * doc/ref/vm.texi: Fix some cross-references. * doc/ref/compiler.texi: Hack some more, finishing the section on the compiler tower.
2009-01-08start at documenting the compilerAndy Wingo1-0/+123
* doc/ref/api-evaluation.texi: Add documentation for the standard compilation interface, and some notes about compiled files. * doc/ref/api-procedures.texi (Compiled Procedures): A stub at documenting compiled procedures. * doc/ref/compiler.texi (Compiling to the Virtual Machine): Flesh out with some structure, though much of the text remains to be written. This stuff is hard to write!
2008-11-20merge vm docs into guile reference (as yet unfinished)Andy Wingo1-0/+9
* doc/ref/compiler.texi: A new empty section on the compiler. * doc/ref/data-rep.texi: Made to be a section of a chapter instead of an appendix. The beginnings of some revision, but not there yet. * doc/ref/guile.texi: Put the "Data Representation" essay into the new "History and Implementation Details" chapter. * doc/ref/history.texi: New empty section on Guile history. * doc/ref/libguile-concepts.texi: * doc/ref/libguile-smobs.texi: Fix up some xrefs. * doc/ref/vm.texi: New section documenting the VM. Not done yet.