[svn:ponie] rev 302 - trunk
[email protected] 27 Jun 2005 08:36:31 -0000
| Newsgroups | perl.ponie.changes |
|---|---|
| Message-ID | <[email protected]> |
Author: nicholas
Date: Mon Jun 27 01:36:31 2005
New Revision: 302
Modified:
trunk/ (props changed)
trunk/README
Log:
r25971@ship-in-a-bottle: nick | 2005-06-27 09:33:03 +0100
Update the README.
Modified: trunk/README
==============================================================================
--- trunk/README (original)
+++ trunk/README Mon Jun 27 01:36:31 2005
@@ -1,4 +1,4 @@
-This is Ponie, development release 3
+This is Ponie, development release 4
------------------------------------
"And, isn't sanity really just a one-trick ponie anyway? I mean all you
@@ -6,31 +6,47 @@ This is Ponie, development release 3
oooh, oooh, oooh, the sky is the limit." -- the tick
-Welcome to this third development release of ponie, the mix of perl5 and
+Welcome to this fourth development release of ponie, the mix of perl5 and
parrot. Ponie embeds a parrot interpreter inside perl5 and hands off tasks to
it, the goal of the project is to hand of all data and bytecode handling to
parrot.
-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 hidded 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.
-This is based on perl 5.9.1 as released in March, so will contain all core perl
-bugs still present in that release. When 5.9.2 is released ponie will be
+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
@@ -48,17 +64,30 @@ pass to Configure.pl will be passed on t
After this just do make; make test and all tests should pass!
-Currently it is not possible to install ponie since parrot isn't installable.
-
-Please report any problems/bugs with patches or bug reports [email protected]
+make install will install Ponie - by default this will be to the same
+installation prefix as the perl used to run Configure. To set an alternative
+run Configure --prefix=/path/to/install/to
+As shipped, ponie will refuse to run make install as 'root', to act as a safety
+check.
+
+Once ponie is installed you can use it to build and test perl modules and
+scripts, to check that ponie is compatible with them.
+
+
+If parrot's regression tests fail please report these failures to the parrot
+developers using the parrotbug program in the parrot subdirectory.
+
+If any of the regression tests in the perl directory fail then these indicate
+problems with ponie. Please report these failures, other problems, any bugs
+(with patches if possible) to [email protected].
LICENSE INFORMATION
-------------------
-Parrot is Copyright (C) 2001-2004 The Perl Foundation. All Rights Reserved.
-
-This code is distributed under the same license as Perl 5; you can
-redistribute it and/or modify it under the terms of either:
+Ponie is Copyright (C) 1993-2005 The Perl Foundation, and is a compilation
+incorporating Parrot and Perl 5. Parrot and Ponie are both distributed under
+identical terms to Perl 5; you can redistribute Ponie and/or modify it under
+the terms of either:
a) the GNU General Public License as found in the directory "LICENSES"
@@ -68,5 +97,3 @@ This program is distributed in the hope
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either
the GNU General Public License or the Artistic License for more details.
-
-