[CM] Performance of S7

bil at ccrma.Stanford.EDU bil at ccrma.Stanford.EDU
Thu Dec 31 13:15:34 PST 2020

I haven't had a chance to look at the code yet, but
I think Kjetil is saying you are using define-macro
throughout your code.  In s7 macros are "first class"
entities, so a macro can be local, or passed as
a function argument, etc.  That means there's no
way to expand the macro at load time and splice
it into the code.  define-expansion is like define-macro,
but it does expand (at read time), somewhat like
other schemes/lisps handle this, at least in the sense
that the expansion-macro is only expanded once per
occurrence in the code. You might try

(define define-macro define-expansion)

to automatically turn all s7-macros into normal-macros,
but any name collisions will cause confusion (the
reader only sees the current global environment,
and know nothing about the local code structure).

More information about the Cmdist mailing list