--- Dan Sugalski <[EMAIL PROTECTED]> wrote:
> I can trigger the problem locally, though not with
> the nci tests.
> (And, indeed, it may not be the NCI tests ultimately
> at fault) The
> core dump shows things dying in the dod run. GDB's
> backtrace is:
>
> Dan
Ok, I tracked it down to a CVS change of
include/parrot/dynext.h and src/dynext.c made in the
early morning hours on Monday (local time).
Here is the result of the diff:
$ diff include/parrot/dynext.h ../bad/dynext.h
3c3
< * $Id: dynext.h,v 1.5 2004/04/22 08:55:05 leo Exp $
---
> * $Id: dynext.h,v 1.6 2004/08/23 09:09:59 leo Exp $
14a15,20
> /* dynamic lib/oplib/PMC init */
> PMC *
> Parrot_init_lib(Interp *interpreter,
> PMC *(*load_func)(Interp *),
> void (*init_func)(Interp *, PMC *));
>
and
$ diff src/dynext.c ../bad/dynext.c
3c3
< $Id: dynext.c,v 1.26 2004/05/26 13:04:07 jrieks Exp
$
---
> $Id: dynext.c,v 1.27 2004/08/23 09:10:02 leo Exp $
228a229,263
> Parrot_init_lib(Interp *interpreter,
> PMC *(*load_func)(Interp *),
> void (*init_func)(Interp *, PMC *))
> {
> STRING *type;
> PMC *lib_pmc;
>
> if (!load_func) {
> /* seems to be a native/NCI lib */
> /*
> * this PMC should better be constant, but
then all the contents
> * and the metadata have to be constant too
> * s. also build_tools/ops2c.pl and
lib/Parrot/Pmc2c.pm
> */
> lib_pmc = pmc_new(interpreter,
enum_class_ParrotLibrary);
> type = const_string(interpreter, "NCI");
> }
> else {
> lib_pmc = (*load_func)(interpreter);
> /* we could set a private flag in the PMC
header too
> * but currently only ops files have
struct_val set
> */
> type = const_string(interpreter,
> PMC_struct_val(lib_pmc) ? "Ops" :
"PMC");
> }
> /*
> * call init, if it exists
> */
> if (init_func)
> (init_func)(interpreter, lib_pmc);
>
> return lib_pmc;
> }
>
> PMC *
266a302
> /* get load_func */
272,292c308
< if (!load_func) {
< /* seems to be a native/NCI lib */
< /*
< * this PMC should better be constant, but
then all the contents
< * and the metadata have to be constant too
< * s. also build_tools/ops2c.pl and
lib/Parrot/Pmc2c.pm
< */
< lib_pmc = pmc_new(interpreter,
enum_class_ParrotLibrary);
< type = const_string(interpreter, "NCI");
< }
< else {
< lib_pmc = (*load_func)(interpreter);
< /* we could set a private flag in the PMC
header too
< * but currently only ops files have
struct_val set
< */
< type = const_string(interpreter,
< PMC_struct_val(lib_pmc) ? "Ops" :
"PMC");
< }
< /*
< * call init, if it exists
< */
---
> /* get init_func */
298,299c314,316
< if (init_func)
< (init_func)(interpreter, lib_pmc);
---
>
> lib_pmc = Parrot_init_lib(interpreter,
load_func, init_func);
>
If there is anything else I can do to help, please let
me know.
Joshua Gatcomb
a.k.a. Limbic~Region
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail