1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-07-04 00:30:30 +02:00
guile/module/language
Mark H Weaver 07b820a804 Compiler: Support cyclic literal data.
* libguile/vm-i-scheme.c (array-contents): New VM instruction.

* module/language/glil/compile-assembly.scm (vhash-fold-right3,
  fold3, fold2-3): New procedures.
  (add-to-store): Accept new argument 'ancestors'.  Use it to prevent
  infinite loops.  Augment it when traversing into lists, pairs,
  vectors, or arrays.
  (build-constant-store): Adapt to new argument to 'add-to-store'.
  (ref-or-dump): Accept new arguments 'post' and 'f'.  If the referenced
  object has not yet been serialized, augment 'post' to add code that will
  mutate it to the correct value after all initializations.
  (dump1): Accept new argument 'post'.  Return a third value: the new
  'post'.  Pass new arguments to 'ref-or-dump'.
  (dump-constants): Adapt to new argument and return value of 'dump1'.
  Apply post-procs to mutate fields of constants as needed to handle
  cyclic data.
2014-08-14 03:37:23 -04:00
..
assembly Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
brainfuck Fix brainfuck comment 2013-12-02 19:03:50 +01:00
bytecode Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
ecmascript ecmascript: Fix conversion to boolean for non-numbers. 2013-01-26 19:18:31 +01:00
elisp Placate a number of `syntax-check' verifications. 2012-01-05 23:38:10 +01:00
glil Compiler: Support cyclic literal data. 2014-08-14 03:37:23 -04:00
objcode Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
scheme Decompiler: fix handling of empty 'case-lambda' expressions. 2013-08-07 05:54:15 -04:00
tree-il Fix foreign slot initialization and access 2014-04-27 11:02:35 +02:00
value Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
assembly.scm silly "optimization" in (language assembly) 2011-05-05 11:43:12 +02:00
glil.scm prompt handlers are always inline 2010-02-19 15:30:34 +01:00
objcode.scm Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
tree-il.scm allow case-lambda expressions with no clauses 2013-03-09 11:16:31 +01:00