On Sat, Apr 09, 2005 at 08:48:59PM +1000, Andrew Savige wrote:
> I noticed some changes in Pugs behaviour when trying to update the
> golf tests (I will update them in svn within 24 hours, I hope). I'm
> not certain they are bugs, hence this email.

They are.  I concluded this week that Pugs's current model of only
having "Const" and "Var" ITypes is ill-fitted with Perl 6 itself,
and we cannot implement the full set of autovivification and tieables
using the old model.

So, today I rewrote all the variable types, symbol tables, and
casting rules, to agree with the Perl 5 model as set forth in
perltie.pod.  It's still failing tests, so I've put a SVK patch
at http://autrijus.org/tmp/itype.patch if people are interested
to take a look.

Currently there are six builtin ITypes, each with a set of minimal
implementation:

    Scalar: fetch, store
    Rule:   match
    Hash:   fetch, store, delete, firstKey, nextKey, isEmpty
    Handle: write, read, close
    Code:   assuming, apply
    Array:  fetch, store, fetchSize, storeSize

I hope that looks sane, and reasonably close to the Synopses.
%*ENV will then be a instance of Hash IType, binding the various
methods to the actual environment.  That also means the "Magic"
interface from Perl 5 can be cleanly replaced with layered ties.

If there are no significant design problems found in the next few
hours, I expect to check it in today after I wake up and fix some
of the casting issues.

Thanks,
/Autrijus/

Attachment: pgpCwM4rgMGUw.pgp
Description: PGP signature

Reply via email to