I've rolled up a development snapshot. It's available at
http://opensource.fotango.com/~nclark/ponie-4.tar.bz2
(12M, or .gz if you prefer 15M).
md5sums are
13c5690ba78fadfde3fd12e7e4503554 ponie-4.tar.bz2
eae0a6a55a39be600a53a2465a09cc35 ponie-4.tar.gz
As cribbed from the README:
With this release the abstraction of SVs to PMCs is considerably improved.
There is now a full PMC hierarchy reflecting the hierarchy of perl's SV
types. It's possible to have multiple PMC types emulating the same core
perl 5 type, which allows behaviour/storage to be changed cleanly by
deriving from an existing PMC type, instead of cluttering the existing code
with switch statements. It's also trivial to add new core types (less than
an hour's work) All perl 5 flags lookup is done as PMC calls, which means
we're free to lie creatively and prevent existing perl code from being aware
of any changes we make behind the scenes. All perl type upgrades are now
performed as PMC type changes using the PMC morph method. All SV memory
allocation has been abstracted to the individual PMC files, which allows
each PMC to be changed independently.
The ponie repository has been moved to subversion, considerably simplifying
the checkout procedure:
svn co http://svn.perl.org/ponie/trunk/ ponie
That's all. Including fetching a copy of parrot. There is now a detailed
roadmap of the tasks ahead in the file Roadmap in the top level of the
distribution.
Parts of the perl core code have been converted from both accessing and
setting SV values using one macro to using explicit _set macros for
setting. The remainder are converted in the main perl repository, ready to
merge over. I'd like thank Steve Peters for attacking this task with
gusto. This release is also part way through getting all reference counting
and destruction ordering correct, so that this won't cause any nasty
surprises when converted to mark & sweep GC. Some of the problems now being
tidied were present in perl 5.000.
The purpose of this release is to make sure that ponie keeps on working with
the XS modules available on CPAN, and to let people test ponie with their
own private source code.
ponie is based on perl 5.9.2 as released in April, so will contain all core
perl bugs still present in that release. When 5.9.3 is released ponie will
be updated to that version.
If you embed perl, nothing should have changed but parrot takes control over
a substantial part of the interface to the operating system, this might
cause problems for you. (One example is that parrot seems to hijack SIGINT
currently, and weird issues with STDERR).
Of course, the release is likely to be out of date by tomorrow, so if you're
reading this sometime next week (or later), you'd be much better off grabbing
the current source from subversion:
http://svn.perl.org/ponie/trunk/
Nicholas Clark
Thread Next