No record for meeting of 960215
No record for meeting of 960228
Meeting in Southampton on 960619. Present: Dave, Luc, Russell, Julian, Juan. Joined by Danius, Benoit Lanaspre, and Tim Chown.
Meeting in Bath on 960712. Present: Julian, David, Ludo, Andreas, Julio, Juan, Enriche, Rob, John, Russell.
Meeting in Bath on 961016. Present: Julian, Russel, Andreas, Rob, Dave (Power), Darren (Ward), Peter (Bradshaw), Dave (DeRoure), Luc.
On the other hand, a macro cannot be used in the same file as its definition. Luc consider this problem to be inconvenient, while other members find that it is useful to distinguish compile-time and run-time code. This approach has a serious inconvenient when writing macros that generate macros, because it requires to introduce a file (i.e. a module) per level of expansion. This observation lead us to think that it is not possible to compile Christian Queinnec's macro tower which requires an unbounded number of expansion levels.
Though "stylistic" reasons seem to forbid the use of a macro in the module of its definition, the absence of an eval function make it impossible to implement it in practice. A solution would be to write a full interpreter for Eulisp, but there is a risk of inconsistency between the interpreter and the compiler. The other solution is to define eval as the execution of compiled code. Andreas mentioned that such a facility would complicate the compiler which would have to perform the same pass several times. Luc thought that this was "just" a matter of writting a fully reentrant compiler; this might not be efficient but it should work.
In addition, there might be more dependencies than the ones detected by youtoo. For instance, Luc wrote a include macro, which was inlining the code contained in a file at macro expansion time.
Julian said that Eulisp definition concerning modules contained statements that were fully understood, but could be extended.
Luc mentioned a feature of the Bigloo module system which was convenient: Bigloo distinguishes importing a module (which states where free variable can be found) from using a module (which initialises a module). Initialisation of a module is done only once, but imports can be multiple and recusive.