---- Ian Grant <ian.a.n.gr...@googlemail.com> wrote: ....
> One may ask what has this to do with scheme? Well, Standard ML can > compose scheme or C code just as easily as it can compose assembler > code. So a Standard ML functor can define a typed template that will > allow one to exchange underling scheme implementations of functional > interfaces as easily as it does ML. This is why I want to get Moscow > ML working under Guile. Moscow ML is really light-weight when compared > with Guile. My machine takes 42 minutes (no, really, I timed it!) to > byte-compile just ice9-pp.go. By comparison, the whole Moscow ML > autoconf/build cycle takes less than 50s. This includes the runtime, > the Standard ML basis library, and the lexer and parser generators and > the compiler and toplevel REPL. And there's a fair bit of junk we > could trip out, and we could make it a lot faster once we JIT compile > the bytecode instead of interpreting it, and when that JIT compiled > bytecode uses native Guile SCM objects to representall its data, then > there will no penalty whatsoever in a Guile program just switching to > Standard ML when it seems like a good idea. Note that the 42 minutes here is a dumbed-down scheme interpreter written in C building/boostrapping the compiler. The guile compiler (the Scheme one) is quite a bit faster than that. -Dale