Ponie snapshot 3

[email protected] (Nicholas Clark) Wed, 21 Jul 2004 16:26:36 +0100
Newsgroups perl.ponie.dev
Message-ID <[email protected]>
I've made a ponie snapshot; ponie development snapshot 3.

Get it from Fotango's opensource web server:

http://opensource.fotango.com/~nclark/ponie-3.tar.bz2

(.bs2 is 16M, or .gz if you really want 20M)

md5sums are:

7a42f87aebc65379fa6c23ba64b6f824  ponie-3.tar.bz2
e9a659e407c6ee7748db8c5b038fb0fe  ponie-3.tar.gz

From the README:

  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.

Known gotchas:

t/op/alarm.t fails test 4 on FreeBSD 5.1. I don't know why. Explanations
welcome. The ICU in parrot won't build on AIX without the IBM C++ compiler,
so I've not been able to test there. The whole ponie Configure.pl assumes
you can run perl's Configure (a shell script) so ponie isn't going to build
on any platform where this isn't the case (eg Win32). I don't have access to
a Win32 machine with compiler, so I'm not in a position to fix this.

The short-term plan from here is

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

which will allow all the perl data structures currently dangling off the PMCs
to be eliminated.


You can check the latest ponie out from CVS with

  cvs -d :pserver:[email protected]:/cvs/public co ponie
  cd ponie
  cvs -d :pserver:[email protected]:/cvs/public co parrot

Nicholas Clark