On Mon, Jan 12, 2009 at 07:34:33AM -0800, Donald Hunter wrote: > It appears that rakudo changes committed over the weekend have broken NCI. > The last known working revision was #35300 for ext/SQLite3/t/test.p6 which > is crashing on #35440. > You'll need to patch ext/SQLite3/Makefile.PL so that it works, then you can > run make test. > > I can still run PIR code that uses Sqlite3 so I'm pretty sure it's isolated > to rakudo.
In order to get parameter passing and object attributes to work properly, some places that had previously been performing a simple "bind" operation now perform a copy or create an ObjectRef PMC. This has the potential to affect NCI in two ways: 1. Until we can completely update method dispatch in Rakudo (or Parrot), sometimes a method will be invoked with 'self' set to an ObjectRef PMC instead of the actual 'self'. I don't yet know of a good way to improve this using Parrot's existing method dispatch. 2. Some assignment/initialization operations may result in a PMC being cloned where previously it was simply referenced. The NCI method might be confused about operating on a clone. In general, Rakudo currently creates ObjectRef PMCs (references) whenever it comes across a PMC that isn't in Rakudo's type hierarchy and that doesn't do the (Parrot) 'scalar' role. If we have some specific code that is failing, we can see about either updating Rakudo to work with that code or providing some workarounds until we get method dispatch straightened out. Pm