- A new impromptu x86 compiler.
- Audio signal processing directly in
- A new concurrent garbage collector.
The new impromptu x86 compiler uses
LLVM for backend code generation and supports
runtime compilation of scheme functions to x86
machine code. In particular the compiler has been
added to impromptu to support the efficient
compilation of scheme code for data processing tasks
such as image processing, audio signal processing
and OpenGL. The compiler is exposed at runtime
through the sys:compile call which accepts a scheme
closure and returns a foreign function which may be
called freely from scheme. (help sys:compile #t)
will give you a bunch of examples.
On-the-fly audio DSP programming is
now supported directly within the impromptu scheme
environment by allowing x86 code (i.e. compiled
scheme code) to be hot-swapped into the kernel of a
custom code AudioUnit. You may use one or more of
these custom code audiounits anywhere in your
audiounit chain - as both generators and or effects.
Code is hot-swapped into an AU kernel by passing a
given scheme closure to the au:code:load function.
There is also a mechanism for sharing memory between
the AU and the scheme runtime. (help au:code:load
#t) will give you a bunch of examples.
The primary motivation for the new
GC is to provide greater performance with larger
v2.0 also adds support for Snow
Leopard but is no longer provided as a Universal
Binary. Intel only from v2.0 forward.
Impromptu is a Mac OS X programming
environment for composers, sound artists, VJs and
graphic artists with an interest in live or
interactive programming. Impromptu is a Scheme
language environment, a member of the Lisp family of