Does anyone have any benchmarks for guile 2.2 compared to 2.0? I have a lot of small scripts, but for work we use guile as a recursive macro expander for pascal (It was my project, and I like scheme. This was a "first draft" implementation, but stuck and no one could be bothered to rewrite it). That could use a speedup, since for big macros it takes quite some time, and I don't think I can optimize it any more and still be able to read the source.
Edit: so I read the NEWS file in the 2.1.2 branch, and apparently the eval.scm (the interpreter) got 2-3 times faster just by being compiled by the new bytecode compiler. Life is good. I'll compile it in my lunch break tomorrow and see if it works :)
Chicken compiles to C, which is then compiled to native ELF by C compiler. This ELF can be loaded by OS loader, that is implemented in the kernel. Chicken can produce statically compiled binaries: http://wiki.call-cc.org/man/4/Deployment
Guile does not compile to native code. It compiles to bytecode, which is stored in .rtl-text section of ELF file. It is not native code executed by CPU, but the code for Guile VM. Resulting ELF files can't be loaded by OS, they are loaded by Guile which executes bytecode. The advantage is that object file is portable between architectures, but it depends on Guile loader, which should be installed.
Software built in one's free time can take awhile, basically. But Guile 2.2 is in the prerelease phase now, using 2.1.x version numbers. The new compiler and VM are essentially frozen for now. A little more polish and some additional bug fixes and then 2.2 will be released.
Edit: so I read the NEWS file in the 2.1.2 branch, and apparently the eval.scm (the interpreter) got 2-3 times faster just by being compiled by the new bytecode compiler. Life is good. I'll compile it in my lunch break tomorrow and see if it works :)