1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-01 04:10:18 +02:00

allow specification of languages by name; add decompilers to languages

* module/system/base/language.scm (lookup-decompilation-order): New
  function, like its compiling cousin, but backwards.
  (compute-translation-order): Rework so that languages can be specified
  either by name or by identity. Return a list of language - procedure
  pairs, without the "to" language in the list, instead of a list of
  languages.
  (invalidate-compilation-cache!): Invalidate the decompilation cache
  too.
  (<language>): Add a decompiler field.

* module/system/base/compile.scm (compile-passes): Much simpler now that
  lookup-compilation-order gives us the procedures directly.

* module/language/*/spec.scm: Specify compilers by name, so that we can
  avoid unnecessary module loads, and so that when we specify
  decompilers, we can avoid cycles.
This commit is contained in:
Andy Wingo 2009-01-30 11:41:02 +01:00
parent 4b31848284
commit 5d6fb8bbeb
8 changed files with 43 additions and 34 deletions

View file

@ -21,7 +21,6 @@
(define-module (language objcode spec)
#:use-module (system base language)
#:use-module (language value spec)
#:use-module (system vm objcode)
#:use-module (system vm program)
#:export (objcode make-objcode-env))
@ -49,5 +48,5 @@
#:version "0.3"
#:reader #f
#:printer write-objcode
#:compilers `((,value . ,objcode->value))
#:compilers `((value . ,objcode->value))
)