1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-04 19:20:27 +02:00
guile/module/language
Andy Wingo 66d3e9a32c compile lexical variable access and closure creation to the new ops
* module/language/glil.scm (<glil>): New GLIL type, <glil-lexical>,
  which will subsume other lexical types.
* module/language/glil/compile-assembly.scm: Compile <glil-lexical>.
  (make-open-binding): Change the interpretation of the second argument
  -- instead of indicating an "external" var, it now indicates a boxed
  var.
  (open-binding): Adapt to new glil-bind format.
* module/language/tree-il/analyze.scm: Add a lot more docs.
  (analyze-lexicals): Change the allocation algorithm and output format
  to allow the tree-il->glil compiler to capture free variables
  appropriately and to reference bound variables in boxes if necessary.
  Amply documented.

* module/language/tree-il/compile-glil.scm (compile-glil): Compile
  lexical variable access to <glil-lexical>. Emit variable capture and
  closure creation code here, instead of leaving that task to the
  GLIL->assembly compiler.

* test-suite/tests/tree-il.test: Update expected code emission.
2009-07-23 17:00:56 +02:00
..
assembly Add FIXMEs about misaligned objcode-metas. 2009-07-15 23:53:22 +02:00
brainfuck remove lambda wrap hack of brainfuck tree-il compiler 2009-06-24 13:43:20 +02:00
bytecode Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
ecmascript Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
elisp Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
ghil Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
glil compile lexical variable access and closure creation to the new ops 2009-07-23 17:00:56 +02:00
objcode Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
r5rs Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
scheme Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
tree-il compile lexical variable access and closure creation to the new ops 2009-07-23 17:00:56 +02:00
value Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
assembly.scm Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
ghil.scm Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
glil.scm compile lexical variable access and closure creation to the new ops 2009-07-23 17:00:56 +02:00
objcode.scm Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
tree-il.scm add brainfuck->tree-il compiler 2009-06-21 15:06:04 +02:00