remove useless <glil-vars> helper type, serialize GHIL more strictly
authorAndy Wingo <wingo@pobox.com>
Sun, 11 Jan 2009 11:09:19 +0000 (12:09 +0100)
committerAndy Wingo <wingo@pobox.com>
Sun, 11 Jan 2009 11:09:19 +0000 (12:09 +0100)
commitc2c82b62f40242a4212528c3d3e882038b48f0a2
tree0b2787282a3ae09d9ae4d2b414568f90a37e4d18
parentca445ba5ec5babe2d160061ed627570e36a28dd1
remove useless <glil-vars> helper type, serialize GHIL more strictly

* module/language/ghil.scm (parse-ghil, unparse-ghil): Rework to make the
  parse format correspond more closely with the object representation, so
  that I only have to document it once in the manual. The salient change
  is that no expression is self-quoting, and that variable references
  should go through `(ref FOO)'. Rename `set!' to `set'.

* module/language/ghil/compile-glil.scm: Add a couple of compilers for
  unquote and unquote-splicing, that just raise an error. This way I can
  document unquote and unquote-splicing as normal ghil expressions,
  except that it's the compiler that catches them if they're outside a
  quasiquote.
  (codegen): Adapt to change in <glil-asm>.

* module/language/ghil/spec.scm (parse): Fix parser typo bug.

* module/language/glil.scm (<glil-asm>): Remove useless <glil-vars>
  structure, which also had a confusing name. Just put the nargs, nrest,
  nlocs, and nexts in the <glil-asm> directly.
  (parse-glil, unparse-glil): Serialize `asm' more straightforwardly.

* module/language/glil/compile-objcode.scm (<bytespec>): Remove
  <glil-vars>, as with <glil-asm>.
  (preprocess, make-meta, codegen, dump-object!): Adapt to change in
  <glil-asm>.
module/language/ghil.scm
module/language/ghil/compile-glil.scm
module/language/ghil/spec.scm
module/language/glil.scm
module/language/glil/compile-objcode.scm