On Jan 14, 2009, at 10:27 AM, Marc Feeley wrote:
I've studied the Gambit source code a bit, and even made some contributions over the years, but Marc's programming style is something I have not seen elsewhere---highly macroized and layered, there are patterns in the coding techniques but not ones that I've been able to unravel in general. Perhaps one way to help new developers get into Gambit would be fore Marc to take a subsystem and write down an explanation of how the macros and layers of code for types, exceptions, constructors, functions, ... of that subsystem work. (Christian Jaeger seems to have had some success in doing this, but it would be good to have an explanation of how Marc sees the construction of subsystems of the runtime.) Just to get an idea of Marc's programming style would allow others to divine more easily the structure of the code.
Marc:
Thank you for your reply.
I'm thinking something along the lines of Shriram's talk "The Swine before Perl", which goes through an example of how to program finite- state automata using define-syntax macros. To object to no documentation is not to demand full documentation---I've included one of my paragraphs above which explains that it would be nice to see how you think of programming. Pick a subsystem of the runtime or of the compiler (the register allocator, beta-reduction, lambda-lifting, one of them), explain what the layers are, how and why you do it. People would learn from it (I think I would be a better programmer if I understood it).
Brad