Andre van Tonder wrote:
So unless the performance problem can be ameliorated, giving a practical and truly portable implementation based on SYNTAX-RULES, there may be a case for withdrawal. Possible reasons for keeping it alive regardless of current performance are its conceptual simplicity (this remains a pure rewriting system, without the phase separation complexities of syntax-case), and the possibility that future additions to SYNTAX-RULESmay enable a more efficient implementation (however, it seems more likely that something like SYNTAX-CASE will become part of the standard).
I'm less than thrilled with syntax-case, mainly because it is so poorly specified. In fact there is no specification, just a bunch of neat examples of what you can do with it. But as an example I haven't seen any discussion of what is supposed to happen if a syntax transformer references a run-time variable. I've found the implementation and the description of syntax-case hard to understand, and not at all intuitive. The "portable" implementation is far from a direct drop-in to an existing implementation that aready supports macros, and figuring out what needs to be changed is non-trivial. I've started studying the implementation more than once, and decided I decided I have more important things to do.
On the other hand a syntax library like srfi-53 should be much easier to incorporate, even if I have to add a few new primitives.
-- --Per Bothner per@xxxxxxxxxxx http://per.bothner.com/