[Changes for 0.09 - December 22, 2004]
- Installing this module no longer requires SWIG. Yay!
- Fixed a spurious warning from t/1-basic.t.
[Changes for 0.08 - June 15, 2004]
- Object and Environment now has ->val and ->sym to easily create
MzScheme objects from Perl.
- Fixed building and eliminated segmentation faults on Mac OS X.
[Changes for 0.07 - June 15, 2004]
- MzPerl now correctly supports end-of-file as end of ";__PERL__;" regions.
- All MzScheme code are now evaluated in Language::MzScheme::Env::__eval;
this made Spiffy-based modules (eg. IO::All) work better.
- Avoid importing invalid symbols, such as '(OVERLOAD', into MzScheme space.
- Adds nifty call/cc example to bin/mzperl's POD.
- Suppressed harmless warnings under -w.
[Changes for 0.06 - June 14, 2004]
- Beginning of at least some module documentations.
- Massive refactoring for Perl method wrappers, resulting in better
- error handling and more robust symbol importing.
- The script/mzperl program now supports inlined Perl code, via
;__PERL__; ... ;__END__; blocks.
[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 require.
- 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]