develooper Front page | perl.perl6.compiler | Postings from April 2005

ITypes (was: [Pugs] Some slice oddities)

Thread Previous
From:
Autrijus Tang
Date:
April 9, 2005 10:59
Subject:
ITypes (was: [Pugs] Some slice oddities)
Message ID:
20050409175919.GA20796@aut.dyndns.org
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/


Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About