At 04:43 PM 2/5/2001 -0200, Branden wrote:
>Edwin Steiner wrote:
I snipped a bunch of stuff here. Generally speaking low-level perl
variables will share a single base structure, the PMC, which will be the
same for hashes, arrays, lists, and scalars. (I'm not sure whether
filehandles and dirhandles should be separate things, or just variants of
scalars under the hood)
Extensions will *not* deal with them in anything other than a completely
opaque way, and extensions will *not* use vtable functions. They will
instead use higher-level API to get data in and out of the PMCs.
> > I thought of the `tie'-like thing because of Dan's:
> >
> > " The vtable stuff won't be exposed outside the core. This means embedding
> > programs and extensions will *not* be using it. Generally speaking,
>it'll
> > be opcode functions only that'll be hitting the vtables. "
>
>I understand the point of view. I think Dan believes the vtable API is too
>complicated to cope with directly, but I actually disagree with that.
Nope. (Well, sort of, but there are days when I'm a Coder Of Very Little
Brain, so take it with however much salt as need be) I want to isolate us
from vtables for another reason entirely.
Binary compatibility.
If we isolate things that don't need to deal with vtables from those
vtables it means we can completely redo how perl handles variables
internally, but extensions and embedding apps won't need to know anything
about it. Yank out the old, drop in the new, and nobody knows we switched
from vtables to, say, the old perl5 way, or to some new Ultra-Clever(tm)
variable access scheme.
It also means that we isolate folks from the details they don't generally
need to know. Not that I mind people knowing we do vtables, but you
shouldn't be forced to care. The less annoying trivia about perl's
internals you need to know the more room in your brain for useful things.
(Or annoying trivia about other things, but that is *not* my problem...:)
"Hiding" things like this (And yes, those quotes are actually appropriate)
reduces the level of cognitive complexity. This is good--details are a pain
in the butt, and people aren't good at details.
Dan
--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk