more ghil parsing fixen
authorAndy Wingo <wingo@pobox.com>
Tue, 11 Nov 2008 23:29:45 +0000 (00:29 +0100)
committerAndy Wingo <wingo@pobox.com>
Tue, 11 Nov 2008 23:29:45 +0000 (00:29 +0100)
* module/system/il/ghil.scm (parse-ghil): Fix a typo for values*
  (unparse-ghil): Only output (quote foo) if the object is a symbol.
  (unparse-ghil): Fix some missing ,@.

module/system/il/ghil.scm

index 50db309..0340c03 100644 (file)
       (make-ghil-values env loc (map retrans values)))
 
      ((values* . ,values)
-      (make-ghil-values env loc (map retrans values)))
+      (make-ghil-values* env loc (map retrans values)))
 
      ((compile-time-environment)
       (make-ghil-reified-env env loc))
     ((<ghil-void> env loc)
      '(void))
     ((<ghil-quote> env loc obj)
-     `(,'quote ,obj))
+     (if (symbol? obj)
+         `(,'quote ,obj)
+         obj))
     ((<ghil-quasiquote> env loc exp)
      `(,'quasiquote ,(map unparse-ghil exp)))
     ((<ghil-unquote> env loc exp)
     ((<ghil-mv-call> env loc producer consumer)
      `(mv-call ,(unparse-ghil producer) ,(unparse-ghil consumer)))
     ((<ghil-inline> env loc inline args)
-     `(inline ,inline (map unparse-ghil args)))
+     `(inline ,inline ,@(map unparse-ghil args)))
     ((<ghil-values> env loc values)
-     `(values (map unparse-ghil values)))
+     `(values ,@(map unparse-ghil values)))
     ((<ghil-values*> env loc values)
-     `(values* (map unparse-ghil values)))
+     `(values* ,@(map unparse-ghil values)))
     ((<ghil-reified-env> env loc)
      `(compile-time-environment))))