Below is a pod document describing some IMHO worthwhile changes. I hope I didn't miss some issues that could inhibit the implementation.
Okay, the "No" warrants more explanation.
First off, the current structure of PMCs, Buffers, and Strings is definitely a mess, what with the multiple nested structs, semi-shared data, and weird smallobject overlap. A lot of stuff that is, in retrospect, crap has been layered on, so if this gets beaten up and cleaned out I won't mind in the least.
The PMC scheme -- where PMCs are an immovable header with a vtable slot, cache slot, and flag slot -- stays. It's this way on purpose, and matches normal usage patterns (nicely efficiently) for perl 5 as well as (oddly) most python and ruby usage. (Where there's a preponderance of low-level types)
Buffers and strings are special-purpose constructs, or at least they *should* be. They're segregated off for GC purposes. While they could be unified with PMCs, I don't want them to be. They've specific, special purposes, and as such they're staying the way they are.
Strings, FWIW, are *not* a perl 6 specific thing. The current string design is sufficient, and *will* be used, for perl 5, python, and ruby, as well as any other language that wants to live on parrot and handle string data. While there's stuff to be added still, there's no reason that I can see to mess with them.
Finally, Nicholas is right -- this is messing around with stuff that already works. We're better off working on things that don't exist yet, and leave this to later.
If you want, we can hash out the changes to sub calling (with the swapping interpreter structs we've been arguing over), moving the return continuation/calling object/called sub into the interp structure, and fixing up the JIT and exception handling stuff to deal with it. That, at least, will be visible to bytecode programs and worth getting done.
--
Dan
--------------------------------------it's like this------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk