[Changes for 0.05 - June 13, 2004]
Much more efficient vector<=>arrayref type conversion.
Context symbols added to function definition and runtime object
invocation with sigils; the default context is to interpret it
as scalar if only one value has been returned, and as a list otherwise.
Objects and code references now preserve their identity when
casted into scheme object and later dereferenced with ->as_perl_data.
Environment is now created with Language::MzScheme->new, which adds
perl-specific bindings (perl-use, perl-require, perl-do, perl-eval)
on top of the basic env.
New utility, script/mzperl, a perl-embedded mzscheme interpreter.
Full round-trip for non-self-referential data structures now works;
you can now pass unblessed references into scheme. (Blessed references
already works as object closures.)
Proper error handling; scheme-level errors are turned into "die" calls.
Calls within eval{} will return scheme_undefined, but $SIG{__DIE__} will
catch the actual error.
Object closure invocation now demands a method instead of silently dying.
Extensive tests for context, object, data, perl-calls and error handling.
[Changes for 0.04 - June 11, 2004]
Backported to SWIG 1.3.19 and earlier versions.
Methods refactored into Language::MzScheme::Object and
Language::MzScheme::Env classes.
All scheme value types turned into properly overloaded Perl objects.
Type checking methods, eg. ->isa('CODE'), are also implemented.
Deep copying into perl data structure supported as $obj->as_perl_data.
Previously exported symbols now become class methods for Language::MzScheme,
with the prefix 'mzscheme_', 'scheme_' and 'SCHEME_' removed.
Transparent procedure calls across perl/scheme boundaries.
Perl objects and classes may now be bound as scheme primitives.
To invoke perl objects from scheme, do this:
(object 'method arg1 arg2 ...)
[Changes for 0.03 - June 9, 2004]
Build cleanly on SWIG 1.3.21, which we now requires.
It is now possible to insert Perl subroutines as MzScheme primitives.
(See t/1-basic.t for how.)
Perl-based primitives can both accept and return lists of any size.
[Changes for 0.02 - June 7, 2004]
Worked around automatic "swig -shadow" on Mac OS X, by not rebuilding
lib/Language/MzScheme_in.pm by default.
All publicly supported functions from "schemex.h" are now wrapped.
Fixed ithreads building problem by setting scheme_set_stack_base().
[Changes for 0.01 - June 7, 2004]
Initial CPAN Release.