Hi,
In the past I've used Blackhole, the bundled syntax-case implementation and
Alexpander.
Each one has its own advantages and disadvantages:
blackhole
- A: it works well, and not only syntax-rules, but also
sc-macro-transformer and er-macro-transformer
- D: forces you to use its module system. I think this is a mistake, since
is not standard, but anyway it has some current limitations for my work
that I tried to fix in my own branch but stem from deep parts of blackhole
that would require a deep understanding and rewrite. I tried that already
and spent a fair amount of time working with Per these issues and decided
to drop it.
syntax-case
- A: installed with Gambit, easy to setup, supports syntax-case? (I guess
so, but haven't tried this last point as I don't really care at the moment)
- D: incompatible with DSSSL and other Gambit functionality. I really don't
understand why the bundled implementation doesn't support it...
Alexpander
- A: it is supposed to support DSSSL and be nicer to Gambit
- D: I still get errors related to define-macros, even if they are not
mixed with define-syntax macros. Taking into account that some of my macros
work with both blackhole and syntax-case but not with alexpander, I assume
this implementation is less mature/stable.
The point is: is there any stable, good implementation of R5RS syntax-rules
that is fully-compatible and nice to all of Gambit's functionality?
I believe this should be a basic feature of the Gambit ecosystem, but maybe
I'm missing something.
Any help, ideas or opinions?
Best regards,
Álvaro Castro-Castilla