[perl #47313] [BUG] config/auto/va_ptr.pm delivering surprising result
The patch attached changes x86 -> stack and ppc -> register in the relevant files. I have tested it successfully in a 'stack' environment (Linux x86) but don't have a 'register' environment in which to test it. Can someone please help out here? I would then apply it to trunk. kid51 Index: config/auto/va_ptr/test_c.in === --- config/auto/va_ptr/test_c.in(revision 22794) +++ config/auto/va_ptr/test_c.in(working copy) @@ -1,10 +1,10 @@ #include #include -#if defined VA_TYPE_PPC +#if defined VA_TYPE_REGISTER # define PARROT_VA_TO_VAPTR(x) (x) #endif -#if defined VA_TYPE_X86 +#if defined VA_TYPE_STACK # define PARROT_VA_TO_VAPTR(x) (&(x)) #endif Index: config/auto/va_ptr.pm === --- config/auto/va_ptr.pm (revision 22794) +++ config/auto/va_ptr.pm (working copy) @@ -35,17 +35,17 @@ my $va_type; cc_gen('config/auto/va_ptr/test_c.in'); -eval { cc_build('-DVA_TYPE_X86'); }; +eval { cc_build('-DVA_TYPE_STACK'); }; if ( $@ || cc_run() !~ /^ok/ ) { -eval { cc_build('-DVA_TYPE_PPC'); }; +eval { cc_build('-DVA_TYPE_REGISTER'); }; if ( $@ || cc_run() !~ /^ok/ ) { die "Unknown va_ptr type"; } -$va_type = 'ppc'; +$va_type = 'register'; } else { -$va_type = 'x86'; +$va_type = 'stack'; } cc_clean(); $self->set_result($va_type); Index: config/gen/config_h/feature_h.in === --- config/gen/config_h/feature_h.in(revision 22794) +++ config/gen/config_h/feature_h.in(working copy) @@ -73,13 +73,13 @@ /* from config/auto/va_ptr.pm: va_ptr_type => $va_result */ END_PRINT -if (@va_ptr_type@ eq 'ppc') { +if (@va_ptr_type@ eq 'register') { print OUT <<'END_PRINT'; /* if defined __powerpc__ || defined __x86_64__ || defined __s390__ */ # define PARROT_VA_TO_VAPTR(x) (x) END_PRINT } -if (@va_ptr_type@ eq 'x86') { +if (@va_ptr_type@ eq 'stack') { print OUT <<'END_PRINT'; # define PARROT_VA_TO_VAPTR(x) (&(x)) END_PRINT
[perl #47347] [TODO] Merge configuration steps gen::cpu and auto::cpu
# New Ticket Created by James Keenan # Please include the string: [perl #47347] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=47347 > What follows is in part a modified version of a post to list on Nov 09 2007. Following a bit of discussion with ptc on IRC, I'm entering it as an RT ticket. Currently, Parrot configuration step #32 is gen::cpu, while step #50 is auto:cpu. Let's do a diff between their respective packages (at r22775): [parrot] 504 $ diff -w config/gen/cpu.pm config/auto/cpu.pm > ~/learn/ parrot/diff.gen.auto.cpu.txt 1c1 < # Copyright (C) 2001-2006, The Perl Foundation. --- > # Copyright (C) 2001-2007, The Perl Foundation. 6c6 < config/gen/cpu.pm - CPU specific Files --- > config/auto/cpu.pm - CPU specific Files 10c10 < Runs C<&run_cpu()> in F if it exists. --- > Runs C<&run_cpu()> in F if it exists. 14c14 < package gen::cpu; --- > package auto::cpu; 18a19 > 21c22 < use Parrot::Configure::Step qw(copy_if_diff); --- > use Parrot::Configure::Step; 24d24 < 28c28 < $data{description} = q{Generating CPU specific stuff}; --- > $data{description} = q{Running CPU specific stuff}; 44c44,46 < my $hints = "gen::cpu::" . $conf->data->get('cpuarch') . "::auto"; --- > $conf->data->add( ' ', TEMP_atomic_o => '' );# assure a default > > my $hints = "auto::cpu::" . $conf->data->get('cpuarch') . "::auto"; Not very much, if you think about it. Both classes exist primarily to run a subroutine in an OS/platform-specific .pm hints file one level down in the hierarchy. config/gen/cpu.pm has hints files for i386 and x86_64. In neither case are any Makefiles, header files or any other kind of files generated, so the name 'gen::cpu' for this config step is a misnomer. config/auto/cpu.pm has hints files for i386, ppc, sun4 and x86_64. They run C probes of the platform much like any other 'auto' configuration step. I haven't yet run Parrot::Configure::Trace to see how the values in the Parrot::Configure object set by gen::cpu affect the steps between #32 and #50. But I have begun to experiment with combining the two packages into one and running it at step #32. In SVN, I have created branch 'cpu' for this purpose. For the record, let me repeat one of the questiona I first posed on list two days ago: Does anyone recall anything about these packages that in the past mandated that their functionality be split between the two widely separated configuration steps? Thank you very much. kid51
[perl #47349] [BUG] 'make' failure on Darwin
# New Ticket Created by James Keenan # Please include the string: [perl #47349] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=47349 > After an 'svn update' to r22806 on my iBook this morning, I configured and sought to build Parrot. 'make' failed about 1/3 of the way through. See attached file; here are the highlights: /usr/local/bin/perl tools/build/c2str.pl src/pmc/undef.c > src/pmc/ undef.str /usr/local/bin/perl tools/build/c2str.pl --all src/string.c In file included from include/parrot/atomic.h:26, from include/parrot/thread.h:19, from include/parrot/pmc.h:18, from include/parrot/parrot.h:272, from src/string.c:27: include/parrot/atomic/gcc_pcc.h:26: error: syntax error before "static" include/parrot/atomic/gcc_pcc.h:50: error: syntax error before "static" src/string.c: In function `string_escape_string_delimited': src/string.c:2509: warning: switch missing default case make: *** [src/string.o] Error 1 The last time I ran a full 'make' on Darwin was on October 18, so this error probably crept in since then. I configured, built and tested successfully on Linux this morning, so this may be an error that occurs on certain OSes and not others. kid51 [parrot] 549 $ make Compiling with: xx.c /usr/bin/gcc-3.3 -I./include -fno-common -no-cpp-precomp -pipe -I/usr/local/include -pipe -fno-common -Wno-long-double -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_FORMAT -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -g -std=c89 -W -Wall -Waggregate-return -Wbad-function-cast -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wimport -Winline -Wmain -Wmissing-braces -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-unused -Wnonnull -Wpacked -Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-aliasing -Wstrict-prototypes -Wswitch -Wswitch-default -Wnested-externs -Wundef -Wunknown-pragmas -Wwrite-strings -Wsign-compare -falign-functions=16 -Wdisabled-optimization -Wformat-nonliteral -Wformat-security -Wpacked -Wno-shadow -DHAS_JIT -DPPC -DHAVE_COMPUTED_GOTO -I. -o xx.o -c xx.c /usr/local/bin/perl tools/build/ops2pm.pl src/ops/core.ops src/ops/bit.ops src/ops/cmp.ops src/ops/debug.ops src/ops/experimental.ops src/ops/io.ops src/ops/math.ops src/ops/object.ops src/ops/pic.ops src/ops/pmc.ops src/ops/set.ops src/ops/stack.ops src/ops/stm.ops src/ops/string.ops src/ops/sys.ops src/ops/var.ops throwcc_pSKIPPED: not in ops.num nor ops.skip throwcc_p_p SKIPPED: not in ops.num nor ops.skip print_newline 1219 experimental, not in ops.num print_newline_p 1220 experimental, not in ops.num gcd_i_n_n 1221 experimental, not in ops.num gcd_i_nc_n1222 experimental, not in ops.num gcd_i_n_nc1223 experimental, not in ops.num gcd_i_nc_nc 1224 experimental, not in ops.num gcd_i_i_i_i_i 1225 experimental, not in ops.num gcd_i_i_i_ic_i1226 experimental, not in ops.num gcd_i_i_i_i_ic1227 experimental, not in ops.num gcd_i_i_i_ic_ic 1228 experimental, not in ops.num splice_p_p_i_i1229 experimental, not in ops.num splice_p_p_ic_i 1230 experimental, not in ops.num splice_p_p_i_ic 1231 experimental, not in ops.num splice_p_p_ic_ic 1232 experimental, not in ops.num slice_p_p_k 1233 experimental, not in ops.num slice_p_p_kc 1234 experimental, not in ops.num slice_p_p_k_ic1235 experimental, not in ops.num slice_p_p_kc_ic 1236 experimental, not in ops.num iter_p_p 1237 experimental, not in ops.num morph_p_i 1238 experimental, not in ops.num morph_p_ic1239 experimental, not in ops.num morph_p_s 1240 experimental, not in ops.num morph_p_sc1241 experimental, not in ops.num exec_s1242 experimental, not in ops.num exec_sc 1243 experimental, not in ops.num classname_p_p 1244 experimental, not in ops.num trap 1245 experimental, not in ops.num pow_n_n_i 1246 experimental, not in ops.num pow_n_nc_i1247 experimental, not in ops.num pow_n_n_ic1248 experimental, not in ops.num pow_n_nc_ic 1249 experimental, not in ops.num getclass_p_i 1250
[perl #47347] [TODO] Merge configuration steps gen::cpu and auto::cpu
I will periodically post the results of my research into the issues raised in this RT. 1. I began by moving the ppc-related files from auto::cpu to gen::cpu, i.e., earlier in the configuration process. I then ran Configure.pl on both trunk and branch. I then did a diff on the contents of lib/Parrot/Configure/Generated.pm, which records the results of configuration. That diff is attached in diff.trunk.cpu.generated.txt. There were no significant differences between trunk and the cpu branch. 2. I then did a recursive diff between trunk and the cpu branch in the post-Configure.pl, pre-make state. The results are found in the attached file diff.trunk.cpu.txt. AFAICT, there were no significant differences between trunk and branch. (Note: I had done an 'svn up' on trunk in the interim, and two new files entered trunk: U lib/Parrot/Distribution.pm A compilers/pirc/new/pasm.y A compilers/pirc/new/pasm.l U t/codingstd/linelength.t I don't think these additions made any difference in the following results.) 3. I tried to 'make' and 'make test' in the branch, but I ran into what I think is an unrelated problem building Parrot on Darwin. This has been reported in RT 47349. Once this is resolved, I will try to build in the cpu branch on Darwin. kid51 54c54 < 'build_dir' => '/Users/jimk/work/parrot', --- > 'build_dir' => '/Users/jimk/work/cpu', 70c70 < 'configdate' => 'Sun Nov 11 15:10:57 2007 GMT', --- > 'configdate' => 'Sun Nov 11 15:11:57 2007 GMT', 224c224 < 'ldflags' => ' -L/usr/local/lib -L/Users/jimk/work/parrot/blib/lib -flat_namespace ', --- > 'ldflags' => ' -L/usr/local/lib -L/Users/jimk/work/cpu/blib/lib > -flat_namespace ', 399c399 < 'TEMP_generated' => 'config/auto/cpu/ppc/test_gcc_cmpset.in', --- > 'TEMP_generated' => 'config/gen/cpu/ppc/test_gcc_cmpset.in', Only in /Users/jimk/work/parrot: .DS_Store Binary files /Users/jimk/work/parrot/.configure_trace.sto and /Users/jimk/work/cpu/.configure_trace.sto differ diff -w -r -x .svn -x .html /Users/jimk/work/parrot/MANIFEST /Users/jimk/work/cpu/MANIFEST 2c2 < # $Id$ --- > # $Id: MANIFEST 22802 2007-11-11 14:42:53Z jkeenan $ 4c4 < # generated by tools/dev/mk_manifest_and_skip.pl Sun Nov 11 14:08:40 2007 UT --- > # generated by tools/dev/mk_manifest_and_skip.pl Sun Nov 11 14:31:18 2007 UT 183,184d182 < config/auto/cpu/ppc/auto.pm [] < config/auto/cpu/ppc/test_gcc_cmpset.in [] 257a256,257 > config/gen/cpu/ppc/auto.pm [] > config/gen/cpu/ppc/test_gcc_cmpset.in [] Only in /Users/jimk/work/parrot: MANIFEST.2.mine Only in /Users/jimk/work/parrot: MANIFEST.mine Only in /Users/jimk/work/parrot: MANIFEST.r22775 Only in /Users/jimk/work/parrot: MANIFEST.r22776 Only in /Users/jimk/work/parrot: MANIFEST.r22788 Only in /Users/jimk/work/parrot: MANIFEST.r22795 diff -w -r -x .svn -x .html /Users/jimk/work/parrot/Makefile /Users/jimk/work/cpu/Makefile 5c5 < # $Id: root.in 22797 2007-11-11 13:55:30Z bernhard $ --- > # $Id: root.in 22801 2007-11-11 14:25:15Z jkeenan $ 106c106 < LDFLAGS= -L/usr/local/lib -L/Users/jimk/work/parrot/blib/lib -flat_namespace --- > LDFLAGS= -L/usr/local/lib -L/Users/jimk/work/cpu/blib/lib > -flat_namespace diff -w -r -x .svn -x .html /Users/jimk/work/parrot/compilers/bcg/Makefile /Users/jimk/work/cpu/compilers/bcg/Makefile 6,7c6,7 < PARROT= /Users/jimk/work/parrot/parrot < LIBPARROT = /Users/jimk/work/parrot/blib/lib/libparrot.a --- > PARROT= /Users/jimk/work/cpu/parrot > LIBPARROT = /Users/jimk/work/cpu/blib/lib/libparrot.a 11c11 < CC_INC= -I./include -I/Users/jimk/work/parrot/include --- > CC_INC= -I./include -I/Users/jimk/work/cpu/include 19c19 < LDFLAGS = -L/usr/local/lib -L/Users/jimk/work/parrot/blib/lib -flat_namespace -L/Users/jimk/work/parrot/blib/lib/ -lparrot --- > LDFLAGS = -L/usr/local/lib -L/Users/jimk/work/cpu/blib/lib -flat_namespace > -L/Users/jimk/work/cpu/blib/lib/ -lparrot 22c22 < BUILD_PMC = $(PERL) /Users/jimk/work/parrot/tools/build/dynpmc.pl --- > BUILD_PMC = $(PERL) /Users/jimk/work/cpu/tools/build/dynpmc.pl 24c24 < DEST_PMC_DIR = /Users/jimk/work/parrot/runtime/parrot/dynext --- > DEST_PMC_DIR = /Users/jimk/work/cpu/runtime/parrot/dynext 26c26 < LIB_BCG = /Users/jimk/work/parrot/blib/lib/libbcg$(SHARE_EXT) --- > LIB_BCG = /Users/jimk/work/cpu/blib/lib/libbcg$(SHARE_EXT) 74c74 < $(CP) /Users/jimk/work/parrot/blib/lib/libbcg$(SHARE_EXT) /Users/jimk/work/parrot --- > $(CP) /Users/jimk/work/cpu/blib/lib/libbcg$(SHARE_EXT) > /Users/jimk/work/cpu Only in /Users/jimk/work/parrot/compilers/imcc: imcc.l.flag diff -w -r -x .svn -x .html /Users/jimk/work/parrot/compilers/past-pm/Makefile /Users/jimk/work/cpu/compilers/past-pm/Makefile 16c16 < BUILD= $(PERL) /User
[perl #46697] [TODO] [C] Move the exception macros from src/pmc/coroutine.pmc into exceptions.h
On Sun Nov 11 09:57:07 2007, coke wrote: > On Mon Oct 22 15:02:26 2007, rgrjr wrote: > >From: Paul Cochrane (via RT) <[EMAIL PROTECTED]> > >Date: Mon, 22 Oct 2007 10:43:32 -0700 > > > ># New Ticket Created by Paul Cochrane > ># Please include the string: [perl #46697] > ># in the subject line of all future correspondence about this issue. > ># http://rt.perl.org/rt3/Ticket/Display.html?id=46697 > > > > >In src/pmc/coroutine.pmc there is the todo item: > > > >/* XXX put these into exceptions.h */ > > > >After this comment there are four macros. These need to be transferred > >to exceptions.h and then the header used in this file. > > > > These macros are not used, so I nuked 'em in r22406. > > > > -- Bob Rogers > >http://rgrjr.dyndns.org/ > > > > So, can we close this ticket now? Yup. Closing ticket.
Re: [perl #47349] [BUG] 'make' failure on Darwin
kid51, this error is caused by gcc_pcc.h using 'inline' directly, and I added -std=c89 to the list of gcc compiler options just recently. What you need to do is replace the 'inline' keyword in gcc_pcc.h with PARROT_INLINE and everything should work again. Paul On 11/11/2007, via RT James Keenan <[EMAIL PROTECTED]> wrote: > # New Ticket Created by James Keenan > # Please include the string: [perl #47349] > # in the subject line of all future correspondence about this issue. > # http://rt.perl.org/rt3/Ticket/Display.html?id=47349 > > > > After an 'svn update' to r22806 on my iBook this morning, I > configured and sought to build Parrot. 'make' failed about 1/3 of > the way through. See attached file; here are the highlights: > > /usr/local/bin/perl tools/build/c2str.pl src/pmc/undef.c > src/pmc/ > undef.str > /usr/local/bin/perl tools/build/c2str.pl --all > src/string.c > In file included from include/parrot/atomic.h:26, > from include/parrot/thread.h:19, > from include/parrot/pmc.h:18, > from include/parrot/parrot.h:272, > from src/string.c:27: > include/parrot/atomic/gcc_pcc.h:26: error: syntax error before "static" > include/parrot/atomic/gcc_pcc.h:50: error: syntax error before "static" > src/string.c: In function `string_escape_string_delimited': > src/string.c:2509: warning: switch missing default case > make: *** [src/string.o] Error 1 > > The last time I ran a full 'make' on Darwin was on October 18, so > this error probably crept in since then. I configured, built and > tested successfully on Linux this morning, so this may be an error > that occurs on certain OSes and not others. > > kid51 > > > [parrot] 549 $ make > Compiling with: > xx.c > /usr/bin/gcc-3.3 -I./include -fno-common -no-cpp-precomp -pipe > -I/usr/local/include -pipe -fno-common -Wno-long-double -DHASATTRIBUTE_CONST > -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_FORMAT -DHASATTRIBUTE_MALLOC > -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE > -DHASATTRIBUTE_UNUSED -g -std=c89 -W -Wall -Waggregate-return > -Wbad-function-cast -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment > -Wdisabled-optimization -Wformat-nonliteral -Wformat-security -Wformat-y2k > -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wimport -Winline > -Wmain -Wmissing-braces -Wmissing-declarations -Wmissing-prototypes > -Wnested-externs -Wno-unused -Wnonnull -Wpacked -Wparentheses -Wpointer-arith > -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-aliasing > -Wstrict-prototypes -Wswitch -Wswitch-default -Wnested-externs -Wundef > -Wunknown-pragmas -Wwrite-strings -Wsign-compare -falign-functions=16 > -Wdisabled-optimization -Wformat-nonliteral -Wformat-security -Wpacked > -Wno-shadow -DHAS_JIT -DPPC -DHAVE_COMPUTED_GOTO -I. -o xx.o -c xx.c > /usr/local/bin/perl tools/build/ops2pm.pl src/ops/core.ops src/ops/bit.ops > src/ops/cmp.ops src/ops/debug.ops src/ops/experimental.ops src/ops/io.ops > src/ops/math.ops src/ops/object.ops src/ops/pic.ops src/ops/pmc.ops > src/ops/set.ops src/ops/stack.ops src/ops/stm.ops src/ops/string.ops > src/ops/sys.ops src/ops/var.ops > throwcc_pSKIPPED: not in ops.num nor ops.skip > throwcc_p_p SKIPPED: not in ops.num nor ops.skip > print_newline 1219 experimental, not in ops.num > print_newline_p 1220 experimental, not in ops.num > gcd_i_n_n 1221 experimental, not in ops.num > gcd_i_nc_n1222 experimental, not in ops.num > gcd_i_n_nc1223 experimental, not in ops.num > gcd_i_nc_nc 1224 experimental, not in ops.num > gcd_i_i_i_i_i 1225 experimental, not in ops.num > gcd_i_i_i_ic_i1226 experimental, not in ops.num > gcd_i_i_i_i_ic1227 experimental, not in ops.num > gcd_i_i_i_ic_ic 1228 experimental, not in ops.num > splice_p_p_i_i1229 experimental, not in ops.num > splice_p_p_ic_i 1230 experimental, not in ops.num > splice_p_p_i_ic 1231 experimental, not in ops.num > splice_p_p_ic_ic 1232 experimental, not in ops.num > slice_p_p_k 1233 experimental, not in ops.num > slice_p_p_kc 1234 experimental, not in ops.num > slice_p_p_k_ic1235 experimental, not in ops.num > slice_p_p_kc_ic 1236 experimental, not in ops.num > iter_p_p 1237 experimental, not in ops.num > morph_p_i 1238 experimental, not in ops.num > morph_p_ic1239 experimental, not in ops.num > morph_p_s 1240 experimental, not in ops.num > morph_p_sc1241 experimental, not in ops.num > exec_s1242 experimental, not in ops.num > exec_sc
Re: [perl #47349] [BUG] 'make' failure on Darwin
--- trunk/include/parrot/atomic/gcc_pcc.h2007/06/12 14:08:35 18945 +++ trunk/include/parrot/atomic/gcc_pcc.h2007/10/10 06:31:20 22000 @@ -28,7 +28,7 @@ { void *tmp; /* see http://www-128.ibm.com/developerworks/linux/library/pa-atom/ */ -__asm__ __volatile__( /*%0 = tmp, %1 = ptr, %2 = old, %3 = new */ +__asm__ __volatile__(/*%0 = tmp, %1 = ptr, %2 = old, %3 = new */ "1: lwarx %0, 0, %1\n" /* tmp = *ptr, with reservation */ "cmpw %2, %0\n" /* tmp == old ? */ "bne 2f\n" /* no, goto flush reservation, end */ @@ -50,7 +50,7 @@ inline static long parrot_ppc_add(volatile long *val, long what) { long tmp; -__asm__ __volatile__( /*%0 = tmp, %1 = val, %2 = what */ +__asm__ __volatile__(/*%0 = tmp, %1 = val, %2 = what */ "1: lwarx %0, 0, %1\n" /* tmp = *val, with reservation */ "add %0, %0, %2\n" /* tmp += what */ /* "sync\n" -- XXX needed on PPC 405, see could it be Darwin doesn't like comments so close to the paren? Just a guess. a Andy Bach Systems Mangler Internet: [EMAIL PROTECTED] VOICE: (608) 261-5738 FAX 264-5932 In matters of style, swim with the current; in matters of principal, stand like a rock. Thomas Jefferson
[perl #47349] [BUG] 'make' failure on Darwin
On Sun Nov 11 10:27:32 2007, ptc wrote: > kid51, > > this error is caused by gcc_pcc.h using 'inline' directly, and I added > -std=c89 to the list of gcc compiler options just recently. What you > need to do is replace the 'inline' keyword in gcc_pcc.h with > PARROT_INLINE and everything should work again. > Sorry, everything did not work again. While substituting PARROT_INLINE for inline did not prevent 'make' from succeeding on Linux, I got extensive failures on Darwin. See attached file 'diff.atomic.txt' to see the patch I applied. See attached file '11.11.2007.atomic.txt' for my 'make' output. Note errors beginning at line 447. Index: include/parrot/atomic/gcc_pcc.h === --- include/parrot/atomic/gcc_pcc.h (revision 22808) +++ include/parrot/atomic/gcc_pcc.h (working copy) @@ -23,7 +23,7 @@ # define PARROT_ATOMIC_PTR_SET(a, b) (a).val = (void *) (b) -inline static void *parrot_ppc_cmpset(void * volatile *ptr, +PARROT_INLINE static void *parrot_ppc_cmpset(void * volatile *ptr, void *expect, void *update) { void *tmp; @@ -47,7 +47,7 @@ return tmp; } -inline static long parrot_ppc_add(volatile long *val, long what) +PARROT_INLINE static long parrot_ppc_add(volatile long *val, long what) { long tmp; __asm__ __volatile__(/*%0 = tmp, %1 = val, %2 = what */ Compiling with: xx.c /usr/bin/gcc-3.3 -I./include -fno-common -no-cpp-precomp -pipe -I/usr/local/include -pipe -fno-common -Wno-long-double -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_FORMAT -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -g -std=c89 -W -Wall -Waggregate-return -Wbad-function-cast -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wimport -Winline -Wmain -Wmissing-braces -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-unused -Wnonnull -Wpacked -Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-aliasing -Wstrict-prototypes -Wswitch -Wswitch-default -Wnested-externs -Wundef -Wunknown-pragmas -Wwrite-strings -Wsign-compare -falign-functions=16 -Wdisabled-optimization -Wformat-nonliteral -Wformat-security -Wpacked -Wno-shadow -DHAS_JIT -DPPC -DHAVE_COMPUTED_GOTO -I. -o xx.o -c xx.c /usr/local/bin/perl tools/build/ops2pm.pl src/ops/core.ops src/ops/bit.ops src/ops/cmp.ops src/ops/debug.ops src/ops/experimental.ops src/ops/io.ops src/ops/math.ops src/ops/object.ops src/ops/pic.ops src/ops/pmc.ops src/ops/set.ops src/ops/stack.ops src/ops/stm.ops src/ops/string.ops src/ops/sys.ops src/ops/var.ops throwcc_pSKIPPED: not in ops.num nor ops.skip throwcc_p_p SKIPPED: not in ops.num nor ops.skip print_newline 1219 experimental, not in ops.num print_newline_p 1220 experimental, not in ops.num gcd_i_n_n 1221 experimental, not in ops.num gcd_i_nc_n1222 experimental, not in ops.num gcd_i_n_nc1223 experimental, not in ops.num gcd_i_nc_nc 1224 experimental, not in ops.num gcd_i_i_i_i_i 1225 experimental, not in ops.num gcd_i_i_i_ic_i1226 experimental, not in ops.num gcd_i_i_i_i_ic1227 experimental, not in ops.num gcd_i_i_i_ic_ic 1228 experimental, not in ops.num splice_p_p_i_i1229 experimental, not in ops.num splice_p_p_ic_i 1230 experimental, not in ops.num splice_p_p_i_ic 1231 experimental, not in ops.num splice_p_p_ic_ic 1232 experimental, not in ops.num slice_p_p_k 1233 experimental, not in ops.num slice_p_p_kc 1234 experimental, not in ops.num slice_p_p_k_ic1235 experimental, not in ops.num slice_p_p_kc_ic 1236 experimental, not in ops.num iter_p_p 1237 experimental, not in ops.num morph_p_i 1238 experimental, not in ops.num morph_p_ic1239 experimental, not in ops.num morph_p_s 1240 experimental, not in ops.num morph_p_sc1241 experimental, not in ops.num exec_s1242 experimental, not in ops.num exec_sc 1243 experimental, not in ops.num classname_p_p 1244 experimental, not in ops.num trap 1245 experimental, not in ops.num pow_n_n_i 1246 experimental, not in ops.num pow_n_nc_i1247 experimental, not in ops.num pow_n_n_ic1248 experimental, not in ops.num pow_n_nc_ic 1249
[perl #47373] Configure.pl hints not found on Dragonflybsd
On Sun Nov 11 18:37:30 2007, [EMAIL PROTECTED] wrote: > For revision 22808 on Dragonfly 1.10.1-RELEASE #0: > > Checking >MANIFEST.done. > Setting up Configure's default >values.done. > Setting up installation >paths.done. > Tweaking settings for >miniparrot...skipped. > Loading platform and local hints files... > step init::hints died during execution: Can't locate >init/hints/dragonfly.pm in @INC (@INC contains: lib config >/usr/pkg/lib/perl5/site_perl/5.8.0/i386-dragonfly-thread-multi >/usr/pkg/lib/perl5/site_perl/5.8.0 /usr/pkg/lib/perl5/site_perl >/usr/pkg/lib/perl5/vendor_perl/5.8.0/i386-dragonfly-thread-multi >/usr/pkg/lib/perl5/vendor_perl/5.8.0 /usr/pkg/lib/perl5/vendor_perl >/usr/pkg/lib/perl5/5.8.0/i386-dragonfly-thread-multi >/usr/pkg/lib/perl5/5.8.0 .) at (eval 18) line 2. > BEGIN failed--compilation aborted at (eval 18) line 2. > > at Configure.pl line 349 Please try out the attached patch on Dragonfly BSD. Thank you very much. kid51 Index: MANIFEST === --- MANIFEST(revision 22808) +++ MANIFEST(working copy) @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Sun Nov 11 03:10:56 2007 UT +# generated by tools/dev/mk_manifest_and_skip.pl Mon Nov 12 03:26:46 2007 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -334,7 +336,7 @@ config/init/hints/cygwin.pm [] config/init/hints/darwin.pm [] config/init/hints/dec_osf.pm[] -config/init/hints/dragonflybsd.pm [] +config/init/hints/dragonfly.pm [] config/init/hints/freebsd.pm[] config/init/hints/hpux.pm [] config/init/hints/irix.pm [] Index: config/init/hints/dragonflybsd.pm === --- config/init/hints/dragonflybsd.pm (revision 22808) +++ config/init/hints/dragonflybsd.pm (working copy) @@ -1,36 +0,0 @@ -# Copyright (C) 2007, The Perl Foundation. -# $Id $ - -package init::hints::dragonflybsd; - -use strict; -use warnings; - -sub runstep { -my ( $self, $conf ) = @_; - -my $libs = $conf->data->get('libs'); - -$libs .= ' -pthread' unless $libs =~ /pthread/; - -$conf->data->set( -libs => $libs, -link => 'g++', -rpath => '-Wl,-R', - -has_dynamic_linking=> 1, -parrot_is_shared => 1, -libparrot_shared => 'libparrot$(SHARE_EXT).$(SOVERSION)', -libparrot_shared_alias => 'libparrot$(SHARE_EXT)', -libparrot_soname => '-Wl,-soname=libparrot$(SHARE_EXT).$(SOVERSION)', -); -} - -1; - -# Local Variables: -# mode: cperl -# cperl-indent-level: 4 -# fill-column: 100 -# End: -# vim: expandtab shiftwidth=4: Index: config/init/hints/dragonfly.pm === --- config/init/hints/dragonfly.pm (revision 22808) +++ config/init/hints/dragonfly.pm (working copy) @@ -1,8 +1,19 @@ -# Copyright (C) 2007, The Perl Foundation. -# $Id $ +# Copyright (C) 2001-2003, The Perl Foundation. +# $Id$ -package init::hints::dragonflybsd; +=head1 NAME +config/init/hints/dragonfly.pm - Platform Hints for Dragonfly BSD + +=head1 DESCRIPTION + +Sets some default values for the Dragonfly BSD operating system. + +=cut + + +package init::hints::dragonfly; + use strict; use warnings;
GC problem in OrderedHash?
I've been seeing this for about two months now, with varying symptoms, but I've had no luck pinning it down. The Kea-CL release candidate on the Web site [1] displays the following symptoms with Parrot r21892 (i386, GNU/Linux): [EMAIL PROTECTED]> /usr/src/parrot/parrot kea.pbc Null PMC access in invoke() current instr.: 'COMMON-LISP;file_onload' pc 16446 (list.imc:5077) called from Sub 'lisp;COMMON-LISP;parrot_load' pc 3873 (kea.pir:1617) called from Sub 'lisp;COMMON-LISP;_main' pc 4185 (kea.pir:1716) [EMAIL PROTECTED]> For some reason a perfectly good sub defined in kea.pir is no longer there by the time it gets around to loading list.pbc (only the fourth one loaded during initialization). However, "parrot -G" makes it work. So far, it looks like a namespace GC bug. So I narrowed it down to working in r21269 but broken in r21270 (see comment below), which seems to have nothing to do with namespaces per se. However, several weeks ago I saw a segfault (reproducible at the time, but I no longer know which versions) in which Parrot was trying to resolve an HLL name to an ID during packfile loading and encountered a 0xdeadbeef string in the name-to-ID map, so perhaps it's not out of the question. But I'm still stumped. Any ideas? TIA, -- Bob Rogers http://rgrjr.dyndns.org/ [1] http://rgrjr.dyndns.org/lisp/kea-cl/kea-cl-0.4.17.tgz; this bug is largely why I haven't released it. r21270 | chromatic | 2007-09-13 21:15:24 -0400 (Thu, 13 Sep 2007) | 7 lines [src] Continued refactoring of HLL subsystem. This change uses an OrderedHash instead of a ResizablePMCArray to hold HLL information. While existing external code looks up HLL information by index, now looking up HLL information by HLL name is an O(1) operation, not an O(n/2) operation. All tests pass on 32-bit x86 Linux, particularly PGE and TGE. As well, Perl 6, Pheme, Lua, and Tcl all pass their expected tests.
Re: [perl #47349] [BUG] 'make' failure on Darwin
On 12/11/2007, James Keenan via RT <[EMAIL PROTECTED]> wrote: > On Sun Nov 11 10:27:32 2007, ptc wrote: > > kid51, > > > > this error is caused by gcc_pcc.h using 'inline' directly, and I added > > -std=c89 to the list of gcc compiler options just recently. What you > > need to do is replace the 'inline' keyword in gcc_pcc.h with > > PARROT_INLINE and everything should work again. > > > > Sorry, everything did not work again. While substituting PARROT_INLINE > for inline did not prevent 'make' from succeeding on Linux, I got > extensive failures on Darwin. My next guess now is that the -std=c89 gcc compiler option doesn't play nicely with your system headers. I've removed the compiler flag in r22809, see how you go. Paul