Matthew, hello.

On 8 Jul 2024, at 18:48, [email protected] wrote:

Faced with a similar problem, I've used s7 to generate C before. Specifically, I can point towards util-extra.c.in at [1], which includes #(...) forms within the source, which expand to C, using a very simple function in scheme-macro-filter.scm there.

Thanks I'll take a look. I tend to lean toward CPP macros through
familiarity but that may change as I build up a body of code, provided
I can keep magic out of the build process.

I'm fully sympathetic with the less-magic point of view. I've written a modest amount of CPP macro cleverness over the years, and I find my tolerance for CPP magic has gone _down_ rather than up over the years.[*]

As it happens, my previous version of that scheme-macro-filter.scm program was also written in the service of creating an FFI for a library. That is, exactly the problem of writing repetitive code which I might want to change my mind about. I started off writing a pile of CPP macros, and quickly confused myself. I had at the time recently stumbled across s7, thought hmm...., and very quickly knocked together the core of the macro-filter program.

Have fun!

Norman



[*] At one point, a while ago, I participated in the maintenance of a library which was written in object-oriented C. This being the 90s, and C++ still rather unstable, the original author of the library had elected to implement the OO system entirely in CPP macros. This was simultaneously extremely impressive, and completely paralysing, since it meant that almost the only changes I was confident making were cut-and-paste-and-tweak. I've had Views about the desirable features of a macro system ever since.


--
Norman Gray  :  https://nxg.me.uk
_______________________________________________
Cmdist mailing list
[email protected]
https://cm-mail.stanford.edu/mailman/listinfo/cmdist

Reply via email to