Ponie Snapshot 4 Released

pudge on 2005-07-15T18:34:00

nicholas writes "A fourth ponie snapshot is now available from the Fotango opensource site http://opensource.fotango.com/user/nclark/ponie-4.tar.bz2 (12M, or .gz if you prefer 15M)."

md5sums are

13c5690ba78fadfde3fd12e7e4503554  ponie-4.tar.bz2
eae0a6a55a39be600a53a2465a09cc35  ponie-4.tar.gz


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).



Please see the README file in the distribution for instructions on how to build and install ponie, and where to report problems.