1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-24 12:20:20 +02:00

rudimentary syncase support; some dash symbol syncase removal

* module/system/vm/assemble.scm (dump-object!):
* src/vm_loader.c (VM_DEFINE_LOADER): Use scm_from_locale_keywordn, not
  the krazy dash symbol stuff.

* module/language/scheme/translate.scm (lookup-transformer): Add a
  special case for syncase macros.
This commit is contained in:
Andy Wingo 2008-05-15 23:38:52 +02:00
parent 7f52f9e3b4
commit a52b96a70a
3 changed files with 8 additions and 5 deletions

View file

@ -61,6 +61,12 @@
(lambda (env loc exp)
(retrans (apply (defmacro-transformer val) (cdr exp)))))
((and (macro? val) (eq? (macro-name val) 'sc-macro))
;; syncase!
(let ((syncase (module-ref (resolve-interface '(ice-9 syncase)) 'syncase)))
(lambda (env loc exp)
(retrans (syncase exp)))))
((macro? val)
(syntax-error #f "unknown kind of macro" head))

View file

@ -280,8 +280,7 @@
((symbol? x)
(push-code! `(load-symbol ,(symbol->string x))))
((keyword? x)
(push-code! `(load-keyword
,(symbol->string (keyword-dash-symbol x)))))
(push-code! `(load-keyword ,(symbol->string (keyword->symbol x)))))
((list? x)
(for-each dump! x)
(let ((len (length x)))