allow specification of languages by name; add decompilers to languages
authorAndy Wingo <wingo@pobox.com>
Fri, 30 Jan 2009 10:41:02 +0000 (11:41 +0100)
committerAndy Wingo <wingo@pobox.com>
Fri, 30 Jan 2009 10:41:02 +0000 (11:41 +0100)
commit5d6fb8bbeb5a6ab423062da3744ca215b0310dc2
tree128189158c6fab48f2e2595129b0c4fc67484496
parent4b3184828416acfa5c099a54954ca00ce3cc0d0d
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.
module/language/assembly/spec.scm
module/language/bytecode/spec.scm
module/language/ghil/spec.scm
module/language/glil/spec.scm
module/language/objcode/spec.scm
module/language/scheme/spec.scm
module/system/base/compile.scm
module/system/base/language.scm