Tuesday Release

Andrew Dougherty doughera at lafayette.edu
Wed Dec 10 15:16:46 UTC 2008


On Tue, 9 Dec 2008, Andrew Whitworth wrote:

> 4) Two tasks on the roadmap are listed as "at risk", meaning they
> might not land before the release. To anybody with a few extra tuits
> and strong C-foo, I need some help in the calling_conventions branch
> tracking down a nasty and confusing bug.

Unfortunately, I tried haven't been able to even get this to build.  Last 
night, I set off a job to build it, but it failed due to some MANIFEST 
issues.  I fixed them later in the evening and restarted the build, but it 
still failed.  Earlier this morning, I re-ran 'svn up' to sync up to rev 
33761, and it still fails to build with syntax errors (patch below) in 
src/multidispatch.c.  Fixing those, it now fails to build with linker 
errors, for which I don't have a patch handy.

CC -o miniparrot src/main.o src/null_config.o \
 -L/net/kepler/export/home/doughera/src/parrot/parrot-cc/blib/lib -lparrot  -lsocket -lnsl -ldl -lm -lpthread -lrt -lpcre -lcrypto -lintl -L/usr/lib -L/usr/ccs/lib -L/opt/SUNWspro/SC4.2/lib -L/usr/local/lib -xlibmieee
Undefined			first referenced
 symbol  			    in file
Parrot_io_write_utf8                /net/kepler/export/home/doughera/src/parrot/parrot-cc/blib/lib/libparrot.a(api.o)
Parrot_io_read_utf8                 /net/kepler/export/home/doughera/src/parrot/parrot-cc/blib/lib/libparrot.a(api.o)
Parrot_IOData_mark                  /net/kepler/export/home/doughera/src/parrot/parrot-cc/blib/lib/libparrot.a(dod.o)
Parrot_io_init                      /net/kepler/export/home/doughera/src/parrot/parrot-cc/blib/lib/libparrot.a(inter_create.o)
Parrot_io_finish                    /net/kepler/export/home/doughera/src/parrot/parrot-cc/blib/lib/libparrot.a(inter_create.o)
piooffsetzero                       /net/kepler/export/home/doughera/src/parrot/parrot-cc/blib/lib/libparrot.a(filehandle.o)
ld: fatal: Symbol referencing errors. No output written to miniparrot
*** Error code 1
make: Fatal error: Command failed for target `miniparrot'

Anyway, since each attempt takes a *long* time (the one that generated 
that linker error took well over an hour), I'm afraid I'm out of time and 
can't help any further.

--- parrot-svn/src/multidispatch.c	2008-12-10 08:54:14.000000000 -0500
+++ parrot-cc/src/multidispatch.c	2008-12-10 09:48:05.000000000 -0500
@@ -370,7 +370,7 @@
     INTVAL in_return_sig     = 0;
     PMC    *returns          = PMCNULL;
     PMC    *call_object      = pmc_new(interp, enum_class_CallSignature);
-    PMC    *type_tuple =  PMCNULL; // = pmc_new(interp, enum_class_FixedIntegerArray);
+    PMC    *type_tuple =  PMCNULL; /* = pmc_new(interp, enum_class_FixedIntegerArray); */
     INTVAL  sig_len          = strlen(sig);
     STRING *s_sig            = string_from_cstring(interp, sig, sig_len);
     STRING *string_sig       = NULL;
@@ -393,8 +393,8 @@
         sig_len = sig_len + 2;
     }
 
-    //VTABLE_set_integer_native(interp, type_tuple, sig_len);
-    //VTABLE_set_pmc(interp, call_object, type_tuple);
+    /* VTABLE_set_integer_native(interp, type_tuple, sig_len); */
+    /* VTABLE_set_pmc(interp, call_object, type_tuple); */
 
     VTABLE_set_string_native(interp, call_object, string_sig);
 
@@ -457,16 +457,20 @@
                             Parrot_ex_throw_from_c_args(interp, NULL,
                                 EXCEPTION_INVALID_OPERATION,
                                 "Multiple Dispatch: 'i' adverb modifier may only be used on the invocant");
-                        //VTABLE_set_integer_keyed_int(interp, type_tuple, 0,
-                        //        VTABLE_type(interp, obj));
+                        /*
+			  VTABLE_set_integer_keyed_int(interp, type_tuple, 0,
+                                VTABLE_type(interp, obj));
+			*/
                         VTABLE_push_pmc(interp, call_object, obj);
                         i++; /* skip the 'i' modifier */
                     }
                     else {
                         PMC *pmc_arg = va_arg(args, PMC *);
-                        //if (!PMC_IS_NULL(pmc_arg))
-                        //    VTABLE_set_integer_keyed_int(interp, type_tuple,
-                        //        i, VTABLE_type(interp, pmc_arg));
+			/*
+                          if (!PMC_IS_NULL(pmc_arg))
+                              VTABLE_set_integer_keyed_int(interp, type_tuple,
+                                  i, VTABLE_type(interp, pmc_arg));
+			*/
 
                         VTABLE_push_pmc(interp, call_object, pmc_arg);
                     }

-- 
    Andy Dougherty		doughera at lafayette.edu



More information about the parrot-dev mailing list