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

Reply via email to