OK, this is the last I'll say on it before laying *myself* to rest.
:-)
Simon Cozens <[EMAIL PROTECTED]> wrote:
> On Tue, Aug 01, 2000 at 02:31:15AM -0400, Sam Tregar wrote:
> > Note that we don't have to take that "chance," but I don't think we should
> > turn it down lightly. I suppose a reasonable question is: can we achieve
> > our goals without a rewrite? Can we succeed in integrating threading and
> > Unicode where the Perl5 developers have failed, without rewriting the
> > internals? I'm not qualified to say no, but I'd like to hear compelling
> > arguments before I'd believe a yes!
>
> I don't think I'm qualified to say no, but if I was, I'd say no. Too much
> in perl 5 has been bolted on as afterthoughts. Things like threading really
> need to be built in from the beginning. Unicode is currently a devious hack
> which is steadily working, but to get it *right* would mean ripping out
> reasonably big chunks of code. And there isn't very much room to maneuver
> in the internals right now.
Ripping chunks out is acceptable as a means to an end. The only
requirement is that 80% of the tests pass at least once a month.
I'm taking a top-down approach, starting with a library that just
thinly masks the Perl 5 implementation (i.e., perl.h) while exposing
the core semantics. Some semantics I don't choose to support because
they are hairy, non-useful, or generally regarded as bugs. As I start
pilfering code from Perl's *.c files for my own *.hh's, I'll trim out
enough to break 20% of the test suite if it'll reduce the complexity.
Then later we'll fix (most of) the 20%.
-John
> It's like a delicately balanced stack of cards: changes are very rarely
> atomic, and usually end up with you burbling around in toke.c (this is not
> fun) or in the macro hell that is deep SV and GV manipulation. If you want a
> fun afternoon, look at how UTF8 stashes are implemented. And then there's the
> regular expression engine.
>
> Time to lay this to rest, I think.
>
> --
> I think... I think it's in my basement... Let me go upstairs and check.
> -- Escher
>
>