On Tue, Jul 14, 2009 at 10:09 PM, Ben Weaverben@orangesoda.net wrote:
Try using `##define-macro' instead of `define-macro'.
Apologies, I was hasty and didn't try my suggestion before replying. It seems that you need to use identifers bound in the gambit namespace (##) to make this macro work; otherwise an "Ill-defined 'namespace'" error keeps cropping up. The following works for me:
(##namespace ("module-system#"))
(##define-macro (module name) (##quasiquote (##begin (##namespace (,(##string-append (##symbol->string name) "#"))) (##include "~~lib/gambit#.scm"))))
(module bar)
(define quux 1)
quux ; ==> 1 bar#quux ; ==> 1