Because of the problems I've had sending diffs to the list, I'm just
putting this onto my webserver at
<http://216.254.0.2/~jgoff/Files/Array.tgz>.

This is a *VERY* crude implementation of a very limited array in Parrot.

In addition to the PerlArray class, it also adds two new instructions to
the parrot core:

get i, p, i|ic # Retrieve the integer at index $3 of PMC $2 into $1
set p, i|ic, i|ic # Store value $2 into PMC $1 at index $3

Now, this is -STRICTLY- proof-of-concept, so the implementation doesn't
do the following:
1) Dynamic memory allocation - You're stuck with a max. of 8 integers
2) PMCs - You're stuck with the integer type - I'm planning to fix this
problem tonight

Internally there are of course more things wrong with it, for instance
it should use perlarray_init to do the initialization instead of relying
on perlarray_get_integer_index. This also brings up a small point, that
once a new type is added, every other type needs to become at least
mildly aware of it, especially the perlint, because it by default
assumes that when a new type is being created, it starts as perlint.

I'll be the first person to admit that this code is full of limitations
and probably bugs, but again it's a rough proof of concept. It does only
one thing, but it seems to do it fairly well. Needs a lot of feature
enhancement before it can become a real array class. It does seem to
work fairly well so far, but it's got a long road to go before it
becomes reality.

-Jeff
<[EMAIL PROTECTED]>

Reply via email to