Ponie Snapshot 3 Released

rafael on 2004-07-22T14:20:00

nicholas writes "A third ponie snapshot is now available from the Fotango opensource site
http://opensource.fotango.com/user/nclark/ponie-3.tar.bz2 (16M, or a .gz at 20M)."

Read below for the release notes.

md5sums are:
7a42f87aebc65379fa6c23ba64b6f824 ponie-3.tar.bz2
e9a659e407c6ee7748db8c5b038fb0fe ponie-3.tar.gz

With this release the C type of the perl core's data pointer, SV *, is actually PMC *, the C type of parrot's data pointer. The functions emulating the macros perl traditionally used to access its data structures now retrieve data from the parrot PMCs. Some values are now retrieved and set via parrot's keyed lookup methods in the PMC vtable. Other values are now intentionally stored in other locations - the integer and floating point values (IVX and NVX) are now moved to the SV head structure, and any references are pointed to from the core parrot PMC structure, rather than sharing the space used by perl's PVX pointer. The latter change will allow parrot to directly track perl references with its dead object detection routines, once the switch is made from perl's reference counting to parrot's garbage collection. All this has been hidden by changing just the functions emulating perl's access macros - there has been no need to change any other part of the core code, or the core's XS modules.

The purpose of this release is to make sure this approach keeps on working with the XS modules available on CPAN and to let people test with their own source code.

The next few steps are:

  • Make ponie's PMCs dynamically loaded
  • Make ponie's PMCs properly inherit in the perl5 class hierarchy
  • Move all the data access to PMC methods
Completing these will allow all the perl data structures currently dangling off the PMCs to be eliminated.


Hmms... I know I am ignorant

ambs on 2004-07-24T18:33:31

but, what is ponney?

Re:Hmms... I know I am ignorant

btilly on 2004-07-24T20:24:03

Ponie is Perl 5 running on Parrot.

When Perl 6 detects old Perl 5 code, Ponie is what it will fall back onto. Therefore the compatibility between Perl 5 and Ponie matters. A lot.

Re:Hmms... I know I am ignorant

ajs on 2004-07-25T05:06:46

What you said is true, but, IMHO, the really important part of Ponie is that it will be Parrot-hosted along-side the other languages long before Perl 6 is finalized. This means that you'll be able to call Python code from your Perl 5 programs and visa versa or instantiate a Ruby object in Perl 5. This will, it is my hope, lead to greater harmony between developers that use different languages.

Re:Hmms... I know I am ignorant

btilly on 2004-07-25T09:17:57

IMO the Inline::* modules are doing a pretty good job of letting languages cooperate. Besides there will be differences between Parrot hosted versions of any language and the original. Unless Parrot succeeds on its own, I don't think that, for instance, you'll find many Python people who're going to jump in joy for the message, You don't have to use your version of Python any more, you can use ours instead!

People don't tend to be that appreciative when you solve problems that they didn't think that they had. The appreciation doesn't immediately increase even when - perhaps that's particularly when - you turn out to be right.

Cheers,
Ben