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