1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-12 00:30:20 +02:00
guile/module/language
Andy Wingo b8076ec6cc support expression-by-expression compilation
* module/language/ghil.scm (unparse-ghil): Fix unparsing of quasiquoted
  expressions.

* module/language/ghil/spec.scm (join): Define a joiner for GHIL.

* module/language/scheme/compile-ghil.scm (cenv-ghil-env): Expand the
  definition of a CENV so it can have an actual ghil-env, if available.
  (compile-ghil): Return the actual ghil env in the cenv.

* module/system/base/compile.scm (compile-file): Rewrite. `output-file'
  is now a keyword argument, along with the new kwargs `env' and `from'.
  We now allow exceptions to propagate up, and instead of printing the
  output file to the console, we return a string corresponding to its
  location.
  (compile-and-load): Use read-and-compile.
  (compile-fold): Thread around the cenv as well. Return all three
  values.
  (find-language-joint, read-and-compile): New exciting helpers. The idea
  is that compiling a file should be semantically equivalent to compiling
  each expression in it, one by one. Compilation can have side effects,
  e.g. affecting the current language or the current reader. So what we
  do is find a point in the compilation path at which different
  expressions of a given language can be joined into one. Expressions
  from the source language are compiled to the joint language, then
  joined and compiled to the target.
  (compile): Just return the first value from compile-fold.

* module/system/base/language.scm (language-joiner): New optional field.

* scripts/compile: Rework for changes to compile-file.
2009-04-16 17:49:59 +02:00
..
assembly compilation passes return third value: the continuation environment 2009-04-16 15:20:40 +02:00
bytecode compilation passes return third value: the continuation environment 2009-04-16 15:20:40 +02:00
ecmascript compilation passes return third value: the continuation environment 2009-04-16 15:20:40 +02:00
elisp remove .cvsignore files 2008-11-10 12:17:18 +01:00
ghil support expression-by-expression compilation 2009-04-16 17:49:59 +02:00
glil compilation passes return third value: the continuation environment 2009-04-16 15:20:40 +02:00
objcode compilation passes return third value: the continuation environment 2009-04-16 15:20:40 +02:00
r5rs remove GPKG.def files 2009-01-29 21:12:00 +01:00
scheme support expression-by-expression compilation 2009-04-16 17:49:59 +02:00
value Aggregate makefiles for module/system' and module/language'. 2009-02-24 23:54:16 +01:00
assembly.scm Add `load-unsigned-integer' instruction. 2009-02-18 00:54:05 +01:00
ghil.scm support expression-by-expression compilation 2009-04-16 17:49:59 +02:00
glil.scm be smarter about allocating local variables, reusing slots if possible 2009-02-21 20:28:29 +01:00
objcode.scm static opcodes; refactor program/objcode division; use new assembly pipeline 2009-01-29 21:12:00 +01:00