Hello all,

A brief note. I have syncase in boot-9, with define-macro implemented in
terms of syntax-case. This work can be found on the syncase-in-boot-9
branch.

It's not quite ready yet, as there are some Scheme bits that still don't
compile. I had to add docstring support to psyntax -- surprising to
learn that other Schemes don't do docstrings. But the current linguistic
sticking point are idioms like this:

(if (something) (define foo bar))

or

(if (defined? foo)
    (redefine foo)
    (define foo))

The latter is used in define-class for class redefinition. The former
could be replaced with:

(define bar (if (something) new-bar bar))

And the latter cases could probably be reimplemented using syntax-case
instead of defmacro, but it's still really a shame that definitions and
expressions are different things.

Anyway, if you want to give it a try, checkout the syncase-in-boot-9
branch, and make -k, to step over the noncompiling scheme files. It's a
work in progress, but I will not be rebasing it.

Cheers,

Andy
-- 
http://wingolog.org/


Reply via email to