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/
pgpCwM4rgMGUw.pgp
Description: PGP signature