James Long wrote:
I would be very interested in this kind of work, especially studying Gambit's internals. It would overlap some with my plans of prototyping a native threading strategy this summer.
Good, albeit I expect most things related to module handling to be in the early stages of compilation and in the user interface of the debugger, but broad knowledge of the internals will always be good.
- experiment also with the practical aspects on the filesystem side
(filesystem layout, compilation caching strategies, C code compilation / some sort of make tools integration (integrate make tool calls into the module system and not vice versy!)).
Essentially a build system. It would be nice to have a build system on top of a module system. (I don't think make tool calls should be integrated with modules, but rather placed on top of.)
I'm very open in this area. The reason why I've stated it the other way around is that the "normal" case, i.e. modules consisting simply of Scheme files that need no special compilation options, should not require any build setup, those should compile transparently when needed just like scripting languages like Perl load their files (if they are not containing foreign code, and note that the Perl guys went so far as to create the Inline::C stuff which removes the burden of dealing with make stuff again).
chjmodule currently supports cc-opts and ld-opts declarations which take a string to be fed to the compiler or linker for the cases where the Scheme file needs to be compiled/linked with special options; I'm open on whether to keep this or do something else. (Currently the module declaration forms are not being evaluated (they are not Scheme code), so there's no way creating the string depending on the host system etc., which is obviously wrong because it's not portable; making the module language (a subset of) executable Scheme would solve this; good idea or not?)
I would be happy if a student or other people would take part in this. So I would like to offer to be a mentor. I think we may not get done everything of the above during this summer, so if you want to participate (or also if you don't) help pick out what you think is important.
Count me in.
Cool!
Christian.