Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

recent rakudo changes have broken NCI #613

Closed
p6rt opened this issue Jan 12, 2009 · 9 comments
Closed

recent rakudo changes have broken NCI #613

p6rt opened this issue Jan 12, 2009 · 9 comments
Labels

Comments

@p6rt
Copy link

p6rt commented Jan 12, 2009

Migrated from rt.perl.org#62244 (status was 'resolved')

Searchable as RT62244$

@p6rt
Copy link
Author

p6rt commented Jan 12, 2009

From @donaldh

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.

Cheers,
Donald.

@p6rt
Copy link
Author

p6rt commented Jan 12, 2009

From @donaldh

Makefile.PL.patch
Index: Makefile.PL
===================================================================
--- Makefile.PL	(revision 35440)
+++ Makefile.PL	(working copy)
@@ -1,5 +1,5 @@
 use lib '../../lib';
 use Parrot::Configure;
 my $pc = Parrot::Configure->new();
-$pc->data->slurp();
+$pc->data->get_PConfig();
 $pc->genfile("Makefile.in" => "Makefile");

@p6rt
Copy link
Author

p6rt commented Jan 12, 2009

From @donaldh

grind.pid12075

@p6rt
Copy link
Author

p6rt commented Jan 13, 2009

From @pmichaud

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

@p6rt
Copy link
Author

p6rt commented Jan 13, 2009

The RT System itself - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Jan 13, 2009

From @donaldh

When building up a simple test case, I hit a problem that is caused by
namespaces. I am working on verifying whether or not this is the problem
I encountered with DBDI but thought I should share this test case
anyway.

@p6rt
Copy link
Author

p6rt commented Jan 13, 2009

From @donaldh

use v6;

q​:PIR {
loadlib $P1, 'cygsqlite3-0'
if $P1 goto has_lib
loadlib $P1, 'libsqlite3'
if $P1 goto has_lib
die 'Failed to load sqlite3 library'
has_lib​:
dlfunc $P2, $P1, 'sqlite3_libversion', 't'
set_hll_global ['SQLite3'], 'libversion', $P2
set_global 'sqlite3_libversion', $P2
};

say sqlite3_libversion().PARROT; # String
say sqlite3_libversion().perl; # String

say SQLite3​::libversion().PARROT; # List
say SQLite3​::libversion().perl;

@p6rt
Copy link
Author

p6rt commented Jan 30, 2012

From @coke

On Mon Jan 12 07​:34​:33 2009, donaldhunter 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.

Cheers,
Donald.

Sorry for the delay; this ticket is now obsolete. See
https://github.com/jnthn/zavolaj/, especially the current SQLite3
example here​:

https://github.com/jnthn/zavolaj/blob/master/examples/sqlite3.p6

Zavolaj is included in the latest version of Rakudo Star
(http://rakudo.org/2012/01/28/rakudo-star-2012-01-released/).

Cheers.
--
Will "Coke" Coleda

@p6rt
Copy link
Author

p6rt commented Jan 30, 2012

@coke - Status changed from 'open' to 'resolved'

@p6rt p6rt closed this as completed Jan 30, 2012
@p6rt p6rt added the Bug label Jan 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant