Hi Marc,
Does gsc perform any full program optimization and cross module inlining when compiling executables?
I am particularly interested in the case of linking multiple scheme modules together to compile executables. The Gerbil compiler uses this mode for compiling static executables, which was done with full program optimization in mind. At a very basic level, it allows global prelude declarations like `(not safe)` to be applied to the whole program, but it could do much more.
It doesn't have to be too complicated: - the partial evaluator should look across module boundaries - small procedures should be inlined across module boundaries - (block) declarations should be taken into account across modules, so that mutability information can be propagated. Tthis would allow the compiler to elide procedure call checks for procedures defined in another module when the binding is not mutated.
-- vyzo