[perl #47313] [BUG] config/auto/va_ptr.pm delivering surprising result

2007-11-11 Thread James Keenan via RT
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

2007-11-11 Thread via RT
# 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

2007-11-11 Thread via RT
# 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

2007-11-11 Thread James Keenan via RT
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

2007-11-11 Thread Paul Cochrane via RT
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

2007-11-11 Thread Paul Cochrane
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

2007-11-11 Thread Andy_Bach
--- 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

2007-11-11 Thread James Keenan via RT
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

2007-11-11 Thread James Keenan via RT
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?

2007-11-11 Thread Bob Rogers
   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

2007-11-11 Thread Paul Cochrane
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