[perl #55856] Eliminating (?) _handle_darwin_for_macports and _handle_darwin_for_fink
On Mon Jun 16 07:34:45 2008, [EMAIL PROTECTED] wrote: Should be fixed with patch I committed in r28390. This patch isn't entirely satisfactory; I'm getting some uninitialized value warnings. Nothing really harmful, but I'm working on a solution. Am backing that patch out until after Tuesday release. Done in r28441. kid51
[perl #55910] [PATCH] bug #50056 - running Configure.pl on PPC OS X
# New Ticket Created by Packy Anderson # Please include the string: [perl #55910] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=55910 When I first downloaded the parrot code from svn yesterday, it failed perl Configure.pl with the error Compilation failed with 'cc'. Between poking around the mailing list archives and a script Will gave me I was able to get it working, but it occurred to me that the hints file really should do what's necessary to customize the configuration for OS X on PowerPC so future noobs like me don't run into this problem. I've attached my patch to config/init/hints/darwin.pm; with this patch, I'm able to run perl Configure.pl with no special environment variables set and Configure.pl runs to completion. -packy Index: config/init/hints/darwin.pm === --- config/init/hints/darwin.pm (revision 28436) +++ config/init/hints/darwin.pm (working copy) @@ -21,6 +21,14 @@ } } +unless (exists $ENV{'MACOSX_DEPLOYMENT_TARGET'}) { + my $OSX_vers = `sw_vers -productVersion`; + chomp $OSX_vers; + # remove minor version + $OSX_vers =join '.', (split /[.]/, $OSX_vers)[0,1]; + $ENV{'MACOSX_DEPLOYMENT_TARGET'} = $OSX_vers; +} + my $lib_dir = $conf-data-get('build_dir') . /blib/lib; $ldflags .= -L$lib_dir; $ccflags .= -pipe -fno-common -Wno-long-double ; -- Packy Anderson [EMAIL PROTECTED] They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety. --Benjamin Franklin
[perl #44207] [RFC] remove pmc2c's --tree option?
No complaints since June 7, so I'm resolving this ticket. kid51
[perl #55566] [BUG] Configure.pl dies on gnu/hurd
On Mon Jun 16 13:58:05 2008, coke wrote: On Mon, Jun 16, 2008 at 8:25 AM, Nathan Gray [EMAIL PROTECTED] wrote: perl Configure.pl --nomanicheck --verbose-step=init::hints ... and see if you get reasonable output. The patch applied cleanly, the normal Configure.pl worked, and the one with more debugging says: Loading platform and local hints files... [ No config/init/hints/gnu.pm found. (no hints) ].done. Setting Configuration Data: ( verbose = undef, ); Thanks, Nathan. That's exactly the message we were hoping for. The patch was applied to trunk in r28440. If we can get this applied before the release tomorrow, along with an update to PLATFORMS with your platform/test passing percentage, that'd be great! Nathan, if you can do this today that would be great. Otherwise, we'll look forward to it at any point in the next month. kid51
[svn:parrot-pdd] r28444 - trunk/docs/pdds/draft
Author: smash Date: Mon Jun 16 15:56:26 2008 New Revision: 28444 Modified: trunk/docs/pdds/draft/pdd19_pir.pod Log: [release] * make t/codingstd/pdd_format.t happy Modified: trunk/docs/pdds/draft/pdd19_pir.pod == --- trunk/docs/pdds/draft/pdd19_pir.pod (original) +++ trunk/docs/pdds/draft/pdd19_pir.pod Mon Jun 16 15:56:26 2008 @@ -5,6 +5,11 @@ docs/pdds/pdd19_pir.pod - Parrot Intermediate Representation +=head1 VERSION + +$Revision$ + + =head1 ABSTRACT This document outlines the architecture and core syntax of the Parrot
[perl #49276] [TODO] Refactor tools/util/smokeserv-server.pl
On Wed Jan 16 03:41:56 2008, [EMAIL PROTECTED] wrote: While the fix to my particular problem is simple enough, it is apparent that there's enough bit rot in tools/util/smokeserv-server.pl that it needs a refactoring. And since there are no unit/regression tests for this program, it's going to need a good phalanxing. Accordingly, I have created a 'smoke' branch in our repository as a location for doing this work. And I will be changing the name of this ticket. The assistance of anyone who has experience placing CGI programs on servers would be helpful. Among the things that we will probably need is a security audit of the program. Thank you very much. kid51 We should probably defer this until post-smolder; we may be able to just drop smoke at that point. -- Will Coke Coleda
[perl #44027] [CAGE] In branch_branch, negative array indexes can happen
On Mon Jun 09 17:12:36 2008, [EMAIL PROTECTED] wrote: On Tue Jul 17 22:23:38 2007, petdance wrote: In function branch_branch, there's a line like this: ins-r[get_branch_regno(ins)] = next-r[0]; That call to get_branch_regno() can return -1. That would make a negative array index, and stomp on who knows what. Grepping ./compilers/imcc/optimizer.c for get_branch_regno, I get: 365:(reg = get_branch_regno(last)) = 0) { 1082:if (get_branch_regno(ins) = 0) { 1094:const int regno = get_branch_regno(ins); 1251:reg_index = get_branch_regno(cond); 1327: get_branch_regno(cond) = 0) { ... which suggests that the code Andy was referencing no longer appears in this file. Are the issues raised in this thread still pertinent? Thank you very much. kid51 The code seems to check for a negative value and error now, so no, it doesn't seem to be an issue. I think this is the same issue that was picked up in RT#46227, we just didn't notice until now. Resolving ticket. -- Will Coke Coleda
Re: [perl #55910] - running Configure.pl on PPC OS X
On Jun 16, 2008, at 4:38 PM, Parrot via RT wrote: When I first downloaded the parrot code from svn yesterday, it failed perl Configure.pl with the error Compilation failed with 'cc'. Between poking around the mailing list archives and a script Will gave me I was able to get it working, but it occurred to me that the hints file really should do what's necessary to customize the configuration for OS X on PowerPC so future noobs like me don't run into this problem. I've attached my patch to config/init/hints/darwin.pm; with this patch, I'm able to run perl Configure.pl with no special environment variables set and Configure.pl runs to completion. Ok, I've fixed the problem with my last submission: I've added a CONDITIONED_LINE to config/gen/makefiles/root.in so it's now exporting MACOSX_DEPLOYMENT_TARGET in the Makefile as well as in % ENV, so it's present when you run make, not just while you're doing the configuration. Of course, I'm still doing perl Configure.pl --without-opengl, but I don't know if that's a problem with hints file or with the GLUT implementation... -packy Index: config/init/hints/darwin.pm === --- config/init/hints/darwin.pm (revision 28436) +++ config/init/hints/darwin.pm (working copy) @@ -21,12 +21,21 @@ } } +unless (exists $ENV{'MACOSX_DEPLOYMENT_TARGET'}) { +my $OSX_vers = `sw_vers -productVersion`; +chomp $OSX_vers; +# remove minor version +$OSX_vers =join '.', (split /[.]/, $OSX_vers)[0,1]; +$ENV{'MACOSX_DEPLOYMENT_TARGET'} = $OSX_vers; +} + my $lib_dir = $conf-data-get('build_dir') . /blib/lib; $ldflags .= -L$lib_dir; $ccflags .= -pipe -fno-common -Wno-long-double ; $conf-data-set( darwin = 1, +osx_version = $ENV{'MACOSX_DEPLOYMENT_TARGET'}, ccflags = $ccflags, ldflags = $ldflags, ccwarn = -Wno-shadow, Index: config/gen/makefiles/root.in === --- config/gen/makefiles/root.in(revision 28436) +++ config/gen/makefiles/root.in(working copy) @@ -105,6 +105,7 @@ RECONFIGURE = $(PERL) tools/dev/reconfigure.pl INNO_SETUP = iscc JIT_BUILD_TOOL = $(BUILD_TOOLS_DIR)/jit2c.pl +#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@ ### # -- Packy Anderson [EMAIL PROTECTED] They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety. --Benjamin Franklin
[perl #55846] [BUG]: realclean fails to remove ./src/asmfun.s in Parrot v0.6.2
On Sun Jun 15 09:52:51 2008, toddolson wrote: In parrot 0.6.2 make realclean fails to remove the generate ./src/asmfun.s Repeat by perl ./Configure.pl# generates ./src/asmfun.s make realclean # fails to remove ./src/asmfun.s It is not clear how to modify config/gen/makefiles/root.in to fix this. Feature, not bug. Or, at the very least, intentional. There exist *as source code* the following two files: [parrot] 507 $ fnsa src/jit '*\.s' | xargs ls -ltr -rw-r--r-- 1 jimk jimk 544 Jun 16 18:10 src/jit/ppc/ppc-linux.s -rw-r--r-- 1 jimk jimk 582 Jun 16 18:10 src/jit/ppc/asm.s So we're only talking about PPC machines, but we're talking about either Darwin or Linux on PPC. In the case of your Mac and mine, the relevant file is: src/jit/ppc/asm.s. Here's the code in config/auto/jit.pm which creates this file: my $jitarchname = $cpuarch-$osname; my $sjit = $jitbase/$cpuarch/$jitarchname.s; my $asm = $jitbase/$cpuarch/asm.s; if ( -e $sjit ) { copy_if_diff( $sjit, src/asmfun.s ); $conf-data-set( asmfun_o = 'src/asmfun$(O)' ); } elsif ( -e $asm ) { copy_if_diff( $asm, src/asmfun.s ); $conf-data-set( asmfun_o = 'src/asmfun$(O)' ); } else { $conf-data-set( asmfun_o = '' ); } In the case of your machine, $sjit does not exist but $asm does exist. To avoid unnecessary rebuilds, we copy $asm to src/asmfun.s only if it has changed. Hence, we specifically do *not* want it to be removed by 'make realclean'. (Note: This code was written by Leo between r7591 and 7597 in March 2005 -- a long time ago in Parrot years. I have no reason to believe it's no longer valid, but it might benefit from a review by someone who understands JIT.) Thank you very much. kid51
Re: [perl #55910]
Ah, but it doesn't complete the 'make' because MACOSX_DEPLOYMENT_TARGET. I'll fix that after dinner. -packy -- Packy Anderson [EMAIL PROTECTED] They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety. --Benjamin Franklin
[perl #40204] [BUG] line numbers of *some* runtime errors are one too low
On Sat Aug 19 14:30:53 2006, chip wrote: Runtime errors seem to be off by one these days. Anybody play with line numbering recently? Given this source: .sub foo :main P0 = new .Hash P1 = P0['x'] unless P1 goto no print yes\n no: .end The message claims line number 3: Null PMC access in get_bool() current instr.: 'foo' pc 7 (/tmp/line.pir:3) Whereas the actual error is on line 4. TODO test added to t/compilers/imcc/syn/regresssions.t in r28449. -- Will Coke Coleda
[perl #55926] [TODO] July 2008 Release
# New Ticket Created by Nuno Carvalho # Please include the string: [perl #55926] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=55926 This is a placeholder ticket for the July 2008 release of Parrot.
[perl #55856] Eliminating (?) _handle_darwin_for_macports and _handle_darwin_for_fink
Please try my second attempt at fixing the problem, attached. kid51 Index: lib/Parrot/Configure/Step/Methods.pm === --- lib/Parrot/Configure/Step/Methods.pm(.../trunk) (revision 28442) +++ lib/Parrot/Configure/Step/Methods.pm(.../branches/handledarwin) (revision 28471) @@ -69,13 +69,7 @@ ldflags = -L$fink_lib_dir, ccflags = -I$fink_include_dir, ); -foreach my $flag (keys %intended) { -my $flagstr = $conf-data-get($flag); -my @elements = split /\s+/, $flagstr; -my %seen = map {$_, 1} @elements; -$conf-data-add( ' ', $flag = $intended{$flag} ) -unless $seen{$intended{$flag}}; -} +_add_flags_not_yet_seen($conf, \%intended); } } } @@ -100,13 +94,18 @@ sub _handle_darwin_for_macports { my ($self, $conf, $osname, $file) = @_; if ( $osname =~ /darwin/ ) { -my $ports_root = $conf-data-get( 'ports_base_dir' ); -my $ports_lib_dir = $conf-data-get( 'ports_lib_dir' ); -my $ports_include_dir = $conf-data-get( 'ports_include_dir' ); -if ( $ports_include_dir -f qq{$ports_include_dir/$file} ) { -$conf-data-add( ' ', linkflags = -L$ports_lib_dir ); -$conf-data-add( ' ', ldflags = -L$ports_lib_dir ); -$conf-data-add( ' ', ccflags = -I$ports_include_dir ); +#my $ports_root = $conf-data-get( 'ports_base_dir' ); +my $ports_lib_dir = $conf-data-get( 'ports_lib_dir' ); +my $ports_include_dir = $conf-data-get( 'ports_include_dir' ); +if ( defined $ports_lib_dir defined $ports_include_dir ) { +if ( -f qq{$ports_include_dir/$file} ) { +my %intended = ( +linkflags = -L$ports_lib_dir, +ldflags = -L$ports_lib_dir, +ccflags = -I$ports_include_dir, +); +_add_flags_not_yet_seen($conf, \%intended); +} } } return 1; @@ -210,7 +209,18 @@ return 1; } +sub _add_flags_not_yet_seen { +my ($conf, $intended) = @_; +foreach my $flag (keys %{ $intended }) { +my $flagstr = $conf-data-get($flag); +my @elements = split /\s+/, $flagstr; +my %seen = map {$_, 1} @elements; +$conf-data-add( ' ', $flag = $intended-{$flag} ) +unless $seen{$intended-{$flag}}; +} +} + =head1 SEE ALSO Parrot::Configure::Step. Index: t/steps/auto_readline-01.t === --- t/steps/auto_readline-01.t (.../trunk) (revision 28442) +++ t/steps/auto_readline-01.t (.../branches/handledarwin) (revision 28471) @@ -5,7 +5,7 @@ use strict; use warnings; -use Test::More qw(no_plan); # tests = 52; +use Test::More tests = 72; use Carp; use Cwd; use File::Spec; @@ -109,12 +109,12 @@ my $cwd = cwd(); { -my $tdir = tempdir( CLEANUP = 1 ); -ok(chdir $tdir, Able to change to temporary directory); +my $tdir1 = tempdir( CLEANUP = 1 ); +ok(chdir $tdir1, Able to change to temporary directory); ok( (mkdir 'lib'), Able to make lib directory); ok( (mkdir 'include'), Able to make include directory); -my $libdir = File::Spec-catdir( $tdir, 'lib' ); -my $includedir = File::Spec-catdir( $tdir, 'include' ); +my $libdir = File::Spec-catdir( $tdir1, 'lib' ); +my $includedir = File::Spec-catdir( $tdir1, 'include' ); $conf-data-set('fink_lib_dir' = $libdir); $conf-data-set('fink_include_dir' = $includedir); $osname = 'darwin'; @@ -122,7 +122,8 @@ ok($step-_handle_darwin_for_fink($conf, $osname, 'readline/readline.h'), handle_darwin_for_fink() returned true value); $flagsafter = $conf-data-get( 'linkflags' ); -is($flagsbefore, $flagsafter, No change in linkflags, as expected); +is($flagsbefore, $flagsafter, +No change in linkflags, as expected, where Fink lib and include directories exist but readline/readline.h does not); ok(chdir $cwd, Able to change back to original directory after testing); } @@ -149,11 +150,56 @@ $flagsafter = $conf-data-get( 'linkflags' ); isnt($flagsbefore, $flagsafter, Change in linkflags, as expected); like($conf-data-get( 'linkflags' ), qr/-L\Q$libdir\E/, -'linkflags' modified as expected); +'linkflags' modified as expected, in case where Fink lib and include dirs exist and readline/readline.h exists); +$conf-data-set( linkflags = $flagsbefore ); #reset for next test ok(chdir $cwd, Able to change back to original directory after testing); } +{ +my $tdir3 = tempdir( CLEANUP = 1 ); +ok(chdir $tdir3, Able to change to temporary directory); +ok( (mkdir 'lib'), Able to make lib
Re: [perl #55910] - running Configure.pl on PPC OS X
On Mon, 2008-06-16 at 23:17 -0500, Packy Anderson wrote: Of course, I'm still doing perl Configure.pl --without-opengl, but I don't know if that's a problem with hints file or with the GLUT implementation... That would be for me to look at Join #parrot (irc.perl.org) and ping japhb, or file a separate RT with details, and I'll happily debug your OpenGL troubles with you. -'f
Re: [perl #40204] [BUG] line numbers of *some* runtime errors are one too low
On Mon, 2008-06-16 at 20:01 -0700, Will Coleda via RT wrote: On Sat Aug 19 14:30:53 2006, chip wrote: Runtime errors seem to be off by one these days. Anybody play with line numbering recently? Note that this bug (or a similar one) affects line numbers of disassembly (I assume because the line number info in the PBC is wrong). You can see this effect with tools/util/dump_pbc.pl; certain PIR constructs seem to be reliably misnumbered, so that the disassembly for a line will appear just before the matching source code rather than just after. -'f
Parrot 0.6.3 Beautiful Parrot Released!
Greetings, On behalf of the Parrot team, I'm proud to announce Parrot 0.6.3 Beautiful Parrot. Parrot (http://parrotcode.org/) is a virtual machine aimed at running all dynamic languages. Parrot 0.6.3 is available via CPAN (soon), or follow the download instructions at http://parrotcode.org/source.html. For those who would like to develop on Parrot, or help develop Parrot itself, we recommend using Subversion on the source code repository to get the latest and best Parrot code. Parrot 0.6.3 News: - Specification + updated pdd09_gc.pod - Languages + Cardinal: - dramatically improved parsing speed - added support for defining and instantiating classes - started fleshing out the builtin class hierarchy - added support for hashes and arrays + Chitchat: added the start of a smalltalk compiler + Pheme: updated to match PGE changes + Pynie: return statement, other minor updates + Rakudo: - added working list and hash contexts - added 'return' statements - added = pair constructor - added ?? !! ternary - added Range, range operators, Complex - added common List, Hash methods - refactored base classes - added Mutable, Perl6Scalar classes - added type-checking, is readonly/rw/copy for parameters - added make localtest, docs/spectest-progress.csv - fix named unaries + Squaak: implement return statement + Tcl: updated control flow exceptions to use new builtin types - Compilers + All tools converted to P6object metamodel + PGE: - ?foo is now a zero-width match - reduced backtracking to improve parsing speed + PCT: - added return PAST.op node type for subroutine returns - added keyed_int scoping to PAST::Var - fixed calls to closures - automatically transcode 7-bit unicode to ascii for faster processing + NQP: added return statement, ?? !! ternary operator - Configuration + expanded step gen::opengl - Implementation + updated function and macro names to match pdd09_gc.pod + removed Super PMC + add .namespace [] as alternative to .namespace + make codetest target runs standard coding tests - Miscellaneous + added P6object class for Perl 6 interfaces to objects in Parrot + ported OpenGL/GLU/GLUT bindings to Win32, BSD, and more Mac OS X variants + generate OpenGL/GLU/GLUT bindings by parsing system headers + new OpenGL example shapes.pir, covering basic OpenGL 1.1 / GLUT 3 APIs + new float4.pir structure-packing benchmark + reduced memory use for variables + improved constant string caching + made code g++ and gcc (with optimizations) safe + the usual collection of bugfixes and optimizations Many thanks to all our contributors for making this possible, and our sponsors for supporting this project. Our next scheduled release is 15 July 2008. Enjoy! ./smash
Re: Parrot 0.6.3 Beautiful Parrot Released!
Congratulations. And nice timing. Right before Mozilla gets firefox.com working. Cheers Alberto Nuno 'smash' Carvalho wrote: Greetings, On behalf of the Parrot team, I'm proud to announce Parrot 0.6.3 Beautiful Parrot. Parrot (http://parrotcode.org/) is a virtual machine aimed at running all dynamic languages. Parrot 0.6.3 is available via CPAN (soon), or follow the download instructions at http://parrotcode.org/source.html. For those who would like to develop on Parrot, or help develop Parrot itself, we recommend using Subversion on the source code repository to get the latest and best Parrot code. Parrot 0.6.3 News: - Specification + updated pdd09_gc.pod - Languages + Cardinal: - dramatically improved parsing speed - added support for defining and instantiating classes - started fleshing out the builtin class hierarchy - added support for hashes and arrays + Chitchat: added the start of a smalltalk compiler + Pheme: updated to match PGE changes + Pynie: return statement, other minor updates + Rakudo: - added working list and hash contexts - added 'return' statements - added = pair constructor - added ?? !! ternary - added Range, range operators, Complex - added common List, Hash methods - refactored base classes - added Mutable, Perl6Scalar classes - added type-checking, is readonly/rw/copy for parameters - added make localtest, docs/spectest-progress.csv - fix named unaries + Squaak: implement return statement + Tcl: updated control flow exceptions to use new builtin types - Compilers + All tools converted to P6object metamodel + PGE: - ?foo is now a zero-width match - reduced backtracking to improve parsing speed + PCT: - added return PAST.op node type for subroutine returns - added keyed_int scoping to PAST::Var - fixed calls to closures - automatically transcode 7-bit unicode to ascii for faster processing + NQP: added return statement, ?? !! ternary operator - Configuration + expanded step gen::opengl - Implementation + updated function and macro names to match pdd09_gc.pod + removed Super PMC + add .namespace [] as alternative to .namespace + make codetest target runs standard coding tests - Miscellaneous + added P6object class for Perl 6 interfaces to objects in Parrot + ported OpenGL/GLU/GLUT bindings to Win32, BSD, and more Mac OS X variants + generate OpenGL/GLU/GLUT bindings by parsing system headers + new OpenGL example shapes.pir, covering basic OpenGL 1.1 / GLUT 3 APIs + new float4.pir structure-packing benchmark + reduced memory use for variables + improved constant string caching + made code g++ and gcc (with optimizations) safe + the usual collection of bugfixes and optimizations Many thanks to all our contributors for making this possible, and our sponsors for supporting this project. Our next scheduled release is 15 July 2008. Enjoy! ./smash -- Alberto Simões - Departamento de Informática - Universidade do Minho Campus de Gualtar - 4710-057 Braga - Portugal
Re: Parrot and Smolder
I've got this working pretty well on my checkout (except that the current revision, #28476, doesn't build). You can do a make smolder_test and have the results sent to the Smolder server. I talked with chromatic and some others about removing some of the old existing smoke stuff, but I'll do that later. So now the question is how do I send this as a patch. It touches several files and adds new ones. Is a simple svn diff good enough? If so, it's attached. -- Michael Peters Plus Three, LP Index: lib/Parrot/Harness/Options.pm === --- lib/Parrot/Harness/Options.pm (revision 28476) +++ lib/Parrot/Harness/Options.pm (working copy) @@ -50,6 +50,14 @@ $longopts{help} = grep { $_ eq '--help' } @argv; @argv = grep { $_ ne '--help' } @argv; +$longopts{archive} = grep { $_ eq '--archive' } @argv; +@argv = grep { $_ ne '--archive' } @argv; + +if( $longopts{archive} ) { +$longopts{send_to_smolder} = grep { $_ eq '--send-to-smolder' } @argv; +@argv = grep { $_ ne '--send-to-smolder' } @argv; +} + return (\%longopts, @argv); } @@ -91,6 +99,8 @@ --runcore-tests --html --code-tests +--archive ... create a TAP archive of the test run +--send-to-smolder ... send the TAP archive to the Parrot Smolder server EOF return; Index: lib/Parrot/Harness/Smoke.pm === --- lib/Parrot/Harness/Smoke.pm (revision 28476) +++ lib/Parrot/Harness/Smoke.pm (working copy) @@ -27,11 +27,55 @@ use lib qw( . lib ../lib ../../lib ); use Parrot::Config qw/%PConfig/; +use Config; use base qw( Exporter ); our @EXPORT_OK = qw( generate_html_smoke_report +send_archive_to_smolder ); +my %SMOLDER_CONFIG = ( +server = 'http://smolder.plusthree.com', +username = 'parrot-autobot', +password = '[EMAIL PROTECTED]', +project_id = 8, +); + +sub send_archive_to_smolder { +eval { require LWP::UserAgent }; +if( $@ ) { +die \n . ('-' x 55) . \nCould not load LWP::UserAgent. +. \nPlease install it if you want to send TAP archives smolder.\n +. ('-' x 55) . [EMAIL PROTECTED]; +} + +# get the comments from svn +my @lines = `svn info`; +@lines = grep { $_ =~ /URL|Revision|LastChanged/ } @lines; +push(@lines, `perl -v | grep -i 'this is perl'`); +chomp foreach @lines; +my $comments = join(\n, @lines); + +my $url = $SMOLDER_CONFIG{server}/app/developer_projects/process_add_report/$SMOLDER_CONFIG{project_id}; +my $ua = LWP::UserAgent-new(); +my $response = $ua-post( +$url, +Content_Type = 'form-data', +Content = [ +architecture = $Config{myarchname}, +platform = $^O, +comments = $comments, +username = $SMOLDER_CONFIG{username}, +password = $SMOLDER_CONFIG{password}, +report_file = ['parrot_test_run.tar.gz'], +] +); +if($response-code != 302) { +die Could not upload report to Smolder at $SMOLDER_CONFIG{server} +. \nHTTP CODE: . $response-code . ( . $response-message . )\n; +} +} + sub generate_html_smoke_report { my $argsref = shift; my $html_fn = $argsref-{file}; Index: t/harness === --- t/harness (revision 28476) +++ t/harness (working copy) @@ -19,6 +19,7 @@ ); use Parrot::Harness::Smoke qw( generate_html_smoke_report +send_archive_to_smolder ); local @ARGV = @ARGV; @@ -51,21 +52,46 @@ $longopts-{runcore_tests_only} ); -my @tests = map { glob( $_ ) } (@ARGV ? @ARGV : @default_tests); +my @tests; +if ($longopts-{code}) { +@tests = @developing_tests; +} else { +@tests = map { glob($_) } (@ARGV ? @ARGV : @default_tests); +} -if ( $longopts-{code} ) { -Test::Harness::runtests(@developing_tests); +if ($longopts-{html}) { +generate_html_smoke_report( +{ +tests = [EMAIL PROTECTED], +args = $args, +file = 'smoke.html', +} +); +} else { +my $harness; +if ($longopts-{archive}) { +eval { require TAP::Harness::Archive }; +if( $@ ) { +die \n . ('-' x 55) . \nCould not load TAP::Harness::Archive. +. \nPlease install it if you want to create TAP archives.\n +. ('-' x 55) . [EMAIL PROTECTED]; +} +$harness = TAP::Harness::Archive-new( +{ +verbosity = $ENV{HARNESS_VERBOSE}, +archive = 'parrot_test_run.tar.gz', +merge = 1, +} +); +} else { +$harness = TAP::Harness-new({verbosity = $ENV{HARNESS_VERBOSE}, merge = 0}); +} +$harness-runtests(@tests); + +if($longopts-{send_to_smolder}) { +send_archive_to_smolder(); +} } -elsif (
[perl #39877] [BUG] [CAGE] Distro tests incomplete
On Mon Apr 14 05:32:54 2008, coke wrote: On Sun, Apr 13, 2008 at 10:36 PM, James Keenan via RT [EMAIL PROTECTED] wrote: Coke: Have we overcome this problem? kid51 I don't think so, no. Try this: % mkdir foo % touch foo/bar.t % svn add foo % prove t/distro Shouldn't this complain about: - items that have been svn added but are not in the MANIFEST - those items not having the appropriate properties? I can see if it were a multistep process: fix manifest. oh, now that you've fixed that, I can see the properties are broken. Regards. As I was working on this (to report things that are checked in but not in the MANIFEST), I found the following files that are checked into the repository, but not in MANIFEST - ports/debian. I checked MANIFEST.SKIP, but it's skipping /debian, not ports/debian; I assume this is a leftover from when debian was in the root. Anyone remember what's going on here? -- Will Coke Coleda
Re: Parrot and Smolder
On Tue, Jun 17, 2008 at 10:31 AM, Michael Peters [EMAIL PROTECTED] wrote: I've got this working pretty well on my checkout (except that the current revision, #28476, doesn't build). You can do a make smolder_test and have the results sent to the Smolder server. I talked with chromatic and some others about removing some of the old existing smoke stuff, but I'll do that later. So now the question is how do I send this as a patch. It touches several files and adds new ones. Is a simple svn diff good enough? If so, it's attached. excellent! this came together quickly and simply, by the looks of it. the patch format is fine, especially for a first patch (for more details of our precise requirements you can read docs/submissions.pod). one gotcha, you've got 'use Config;' which pulls info from perl, when you should be using Parrot::Config instead. it should be an easy switch from $Config{myarchname} to $PConfig{archname}, if i understand correctly. as far as i'm concerned, with that simple change this patch can be applied--and anyone familiar with perl can make that change, it doesn't have to be michael. ~jerry
Re: Parrot and Smolder
I forwarded this to parrotbug so that an RT is opened.
[perl #55538] [RFC] .macro_const doesn't work in *.pir files
General consensus (at least from what I've heard) is that this is useful to add in PIR files, so I've applied the patch and a few other updates and tests for it in r28473. Resolving ticket. --Andrew Whitworth
[perl #55954] [PATCH]: Add 'make smolder_test' target
# New Ticket Created by James Keenan # Please include the string: [perl #55954] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=55954 Forwarding Michael's post so that an RT is opened. I've got this working pretty well on my checkout (except that the current revision, #28476, doesn't build). You can do a make smolder_test and have the results sent to the Smolder server. I talked with chromatic and some others about removing some of the old existing smoke stuff, but I'll do that later. So now the question is how do I send this as a patch. It touches several files and adds new ones. Is a simple svn diff good enough? If so, it's attached. -- Michael Peters Plus Three, LP Index: lib/Parrot/Harness/Options.pm === --- lib/Parrot/Harness/Options.pm (revision 28476) +++ lib/Parrot/Harness/Options.pm (working copy) @@ -50,6 +50,14 @@ $longopts{help} = grep { $_ eq '--help' } @argv; @argv = grep { $_ ne '--help' } @argv; +$longopts{archive} = grep { $_ eq '--archive' } @argv; +@argv = grep { $_ ne '--archive' } @argv; + +if( $longopts{archive} ) { +$longopts{send_to_smolder} = grep { $_ eq '--send-to-smolder' } @argv; +@argv = grep { $_ ne '--send-to-smolder' } @argv; +} + return (\%longopts, @argv); } @@ -91,6 +99,8 @@ --runcore-tests --html --code-tests +--archive ... create a TAP archive of the test run +--send-to-smolder ... send the TAP archive to the Parrot Smolder server EOF return; Index: lib/Parrot/Harness/Smoke.pm === --- lib/Parrot/Harness/Smoke.pm (revision 28476) +++ lib/Parrot/Harness/Smoke.pm (working copy) @@ -27,11 +27,55 @@ use lib qw( . lib ../lib ../../lib ); use Parrot::Config qw/%PConfig/; +use Config; use base qw( Exporter ); our @EXPORT_OK = qw( generate_html_smoke_report +send_archive_to_smolder ); +my %SMOLDER_CONFIG = ( +server = 'http://smolder.plusthree.com', +username = 'parrot-autobot', +password = '[EMAIL PROTECTED]', +project_id = 8, +); + +sub send_archive_to_smolder { +eval { require LWP::UserAgent }; +if( $@ ) { +die \n . ('-' x 55) . \nCould not load LWP::UserAgent. +. \nPlease install it if you want to send TAP archives smolder.\n +. ('-' x 55) . [EMAIL PROTECTED]; +} + +# get the comments from svn +my @lines = `svn info`; +@lines = grep { $_ =~ /URL|Revision|LastChanged/ } @lines; +push(@lines, `perl -v | grep -i 'this is perl'`); +chomp foreach @lines; +my $comments = join(\n, @lines); + +my $url = $SMOLDER_CONFIG{server}/app/developer_projects/process_add_report/$SMOLDER_CONFIG{project_id}; +my $ua = LWP::UserAgent-new(); +my $response = $ua-post( +$url, +Content_Type = 'form-data', +Content = [ +architecture = $Config{myarchname}, +platform = $^O, +comments = $comments, +username = $SMOLDER_CONFIG{username}, +password = $SMOLDER_CONFIG{password}, +report_file = ['parrot_test_run.tar.gz'], +] +); +if($response-code != 302) { +die Could not upload report to Smolder at $SMOLDER_CONFIG{server} +. \nHTTP CODE: . $response-code . ( . $response-message . )\n; +} +} + sub generate_html_smoke_report { my $argsref = shift; my $html_fn = $argsref-{file}; Index: t/harness === --- t/harness (revision 28476) +++ t/harness (working copy) @@ -19,6 +19,7 @@ ); use Parrot::Harness::Smoke qw( generate_html_smoke_report +send_archive_to_smolder ); local @ARGV = @ARGV; @@ -51,21 +52,46 @@ $longopts-{runcore_tests_only} ); -my @tests = map { glob( $_ ) } (@ARGV ? @ARGV : @default_tests); +my @tests; +if ($longopts-{code}) { +@tests = @developing_tests; +} else { +@tests = map { glob($_) } (@ARGV ? @ARGV : @default_tests); +} -if ( $longopts-{code} ) { -Test::Harness::runtests(@developing_tests); +if ($longopts-{html}) { +generate_html_smoke_report( +{ +tests = [EMAIL PROTECTED], +args = $args, +file = 'smoke.html', +} +); +} else { +my $harness; +if ($longopts-{archive}) { +eval { require TAP::Harness::Archive }; +if( $@ ) { +die \n . ('-' x 55) . \nCould not load TAP::Harness::Archive. +. \nPlease install it if you want to create TAP archives.\n +. ('-' x 55) . [EMAIL PROTECTED]; +} +$harness = TAP::Harness::Archive-new( +{ +verbosity = $ENV{HARNESS_VERBOSE}, +archive = 'parrot_test_run.tar.gz', +merge = 1, +
[perl #55950] problem compiling OpenGL/GLUT on PPC OS X
# New Ticket Created by Packy Anderson # Please include the string: [perl #55950] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=55950 On Jun 17, 2008, at 11:36 AM, Geoffrey Broadwell wrote: On Mon, 2008-06-16 at 23:17 -0500, Packy Anderson wrote: Of course, I'm still doing perl Configure.pl --without-opengl, but I don't know if that's a problem with hints file or with the GLUT implementation... That would be for me to look at Join #parrot (irc.perl.org) and ping japhb, or file a separate RT with details, and I'll happily debug your OpenGL troubles with you. Here's the command I'm using to configure and make $ make realclean; CC=gcc-4.0 CX=g++-4.0 perl Configure.pl -- cc=$CC --cxx=$CX --link=$CX --ld=$CX --optimize; make -j 2 (much configuring and making happens) ... c++ -o digest_group.bundle lib-digest_group.o md2.o md4.o md5.o ripemd160.o sha.o sha1.o sha256.o sha512.o -lm -framework OpenGL - framework GLUT -lcrypto -L/usr/local/lib -L/usr/local/source/parrot/ blib/lib -L/opt/local/lib -L/usr/local/source/parrot/blib/lib - bundle -undefined dynamic_lookup -L/usr/local/source/parrot/blib/lib - lparrot /usr/bin/ld: warning can't open dynamic library: /opt/local/lib/libz. 1.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2) c++ -o dynlexpad.bundle dynlexpad.o -lm -framework OpenGL -framework GLUT -lcrypto -L/usr/local/lib -L/usr/local/source/parrot/blib/lib - L/opt/local/lib -L/usr/local/source/parrot/blib/lib -bundle - undefined dynamic_lookup -L/usr/local/source/parrot/blib/lib -lparrot /usr/bin/ld: warning can't open dynamic library: /opt/local/lib/libz. 1.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2) c++ -o foo.bundle foo.o -lm -framework OpenGL -framework GLUT - lcrypto -L/usr/local/lib -L/usr/local/source/parrot/blib/lib -L/opt/ local/lib -L/usr/local/source/parrot/blib/lib -bundle -undefined dynamic_lookup -L/usr/local/source/parrot/blib/lib -lparrot /usr/bin/ld: warning can't open dynamic library: /opt/local/lib/libz. 1.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2) c++ -o rotest.bundle rotest.o -lm -framework OpenGL -framework GLUT - lcrypto -L/usr/local/lib -L/usr/local/source/parrot/blib/lib -L/opt/ local/lib -L/usr/local/source/parrot/blib/lib -bundle -undefined dynamic_lookup -L/usr/local/source/parrot/blib/lib -lparrot /usr/bin/ld: warning can't open dynamic library: /opt/local/lib/libz. 1.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2) c++ -o rational.bundle rational.o -lm -framework OpenGL -framework GLUT -lcrypto -L/usr/local/lib -L/usr/local/source/parrot/blib/lib - L/opt/local/lib -L/usr/local/source/parrot/blib/lib -bundle - undefined dynamic_lookup -L/usr/local/source/parrot/blib/lib -lparrot /usr/bin/ld: warning can't open dynamic library: /opt/local/lib/libz. 1.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2) c++ -o subproxy.bundle subproxy.o -lm -framework OpenGL -framework GLUT -lcrypto -L/usr/local/lib -L/usr/local/source/parrot/blib/lib - L/opt/local/lib -L/usr/local/source/parrot/blib/lib -bundle - undefined dynamic_lookup -L/usr/local/source/parrot/blib/lib -lparrot /usr/bin/ld: warning can't open dynamic library: /opt/local/lib/libz. 1.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2) My environment: $ sw_vers -productName Mac OS X $ sw_vers -productVersion 10.4.11 $ sw_vers -buildVersion 8S165 -packy -- Packy Anderson [EMAIL PROTECTED] They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety. --Benjamin Franklin
[perl #55960] [BUG] [PATCH] Hash declarations broken in c++ build
# New Ticket Created by NotFound # Please include the string: [perl #55960] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=55960 C++ building is broken because of differences in struct Hash declarations and usage. This patch fixes the problem, but I'm not very sure that is the best way. -- Salu2 Index: src/string.c === --- src/string.c (revisión: 28490) +++ src/string.c (copia de trabajo) @@ -265,7 +265,7 @@ /* Set up the cstring cache, then load the basic encodings and charsets */ if (!interp-parent_interpreter) { parrot_new_cstring_hash(interp, const_cstring_hash); -interp-const_cstring_hash = (struct Hash *)const_cstring_hash; +interp-const_cstring_hash = (Hash *)const_cstring_hash; Parrot_charsets_encodings_init(interp); } /* initialize the constant string table */ Index: include/parrot/interpreter.h === --- include/parrot/interpreter.h (revisión: 28490) +++ include/parrot/interpreter.h (copia de trabajo) @@ -388,7 +388,7 @@ struct _Caches * caches; /* see caches.h */ STRING **const_cstring_table; /* CONST_STRING(x) items */ -struct Hash *const_cstring_hash; /* cache of const_string items */ +struct _hash *const_cstring_hash; /* cache of const_string items */ struct QUEUE* task_queue; /* per interpreter queue */ struct _handler_node_t *exit_handler_list;/* exit.c */
[perl #55910] [PATCH] running Configure.pl on PPC OS X
Patch applied in r28477. I wouldn't be surprised if we have to do some small fixes on t/steps/*.t tests which, in the past, have been sensitive to the DEPLOYMENT variable -- but that's cleanup work. I'll keep the ticket open for a few days to see if anyone reports, e.g., uninitialized value warnings. In the meantime, thanks, Packy, for your first (I think) patch accepted to the Parrot project. You can work with japhb on any aspects of this problem that are more openGL-related. Thank you very much. kid51
[perl #55954] [PATCH]: Add 'make smolder_test' target
... and now, adding Jerry Gay's comment: excellent! this came together quickly and simply, by the looks of it. the patch format is fine, especially for a first patch (for more details of our precise requirements you can read docs/submissions.pod). one gotcha, you've got 'use Config;' which pulls info from perl, when you should be using Parrot::Config instead. it should be an easy switch from $Config{myarchname} to $PConfig{archname}, if i understand correctly. as far as i'm concerned, with that simple change this patch can be applied--and anyone familiar with perl can make that change, it doesn't have to be michael. ~jerry
[perl #55640] [BUG] [PATCH] oo_get_class segfaults
By chromatic's suggestion, here is a different approach: change pmc_type signature to allow a null string argument, returning enum_type_undef in that case. Other changes in this patch are replacing 0 with enum_type_undef in the same function, and adding a test in t/pmc/namespace.t checking that get_class return a null pmc for the root namespace. This test segfault if the patch is not applied. Index: src/pmc.c === --- src/pmc.c (revisión: 28476) +++ src/pmc.c (copia de trabajo) @@ -422,20 +422,24 @@ PARROT_API PARROT_WARN_UNUSED_RESULT INTVAL -pmc_type(PARROT_INTERP, ARGIN(STRING *name)) +pmc_type(PARROT_INTERP, ARGIN_NULLOK(STRING *name)) { -PMC * const classname_hash = interp-class_hash; -PMC * const item = -(PMC *)VTABLE_get_pointer_keyed_str(interp, classname_hash, name); +if (! name) +return enum_type_undef; +else { +PMC * const classname_hash = interp-class_hash; +PMC * const item = +(PMC *)VTABLE_get_pointer_keyed_str(interp, classname_hash, name); -/* nested namespace with same name */ -if (item-vtable-base_type == enum_class_NameSpace) -return 0; +/* nested namespace with same name */ +if (item-vtable-base_type == enum_class_NameSpace) +return enum_type_undef; -if (!PMC_IS_NULL(item)) -return VTABLE_get_integer(interp, item); +if (!PMC_IS_NULL(item)) +return VTABLE_get_integer(interp, item); -return Parrot_get_datatype_enum(interp, name); +return Parrot_get_datatype_enum(interp, name); +} } /* Index: include/parrot/pmc.h === --- include/parrot/pmc.h (revisión: 28476) +++ include/parrot/pmc.h (copia de trabajo) @@ -82,9 +82,8 @@ PARROT_API PARROT_WARN_UNUSED_RESULT -INTVAL pmc_type(PARROT_INTERP, ARGIN(STRING *name)) -__attribute__nonnull__(1) -__attribute__nonnull__(2); +INTVAL pmc_type(PARROT_INTERP, ARGIN_NULLOK(STRING *name)) +__attribute__nonnull__(1); PARROT_API INTVAL pmc_type_p(PARROT_INTERP, ARGIN(PMC *name)) Index: t/pmc/namespace.t === --- t/pmc/namespace.t (revisión: 28476) +++ t/pmc/namespace.t (copia de trabajo) @@ -6,7 +6,7 @@ use warnings; use lib qw( . lib ../lib ../../lib ); use Test::More; -use Parrot::Test tests = 62; +use Parrot::Test tests = 63; use Parrot::Config; =head1 NAME @@ -1058,6 +1058,20 @@ Found root namespace. OUTPUT +pir_output_is( 'CODE', 'OUTPUT', 'root namespace is not a class' ); +.sub main :main +.local pmc root_ns +root_ns = get_root_namespace +.local pmc root_class +root_class = get_class root_ns +.local int is_class +is_class = defined root_class +say is_class +.end +CODE +0 +OUTPUT + pir_output_is( 'CODE', 'OUTPUT', 'get_root_namespace Foo' ); .sub main :main .local pmc foo_ns
Re: [perl #55950] problem compiling OpenGL/GLUT on PPC OS X
On Tue, 2008-06-17 at 11:27 -0700, Packy Anderson wrote: Here's the command I'm using to configure and make $ make realclean; CC=gcc-4.0 CX=g++-4.0 perl Configure.pl -- cc=$CC --cxx=$CX --link=$CX --ld=$CX --optimize; make -j 2 That's a pretty advanced build method. OK, let's sanity check: * Does it still fail if you don't override the compiler and linker? * Does it still fail if you don't run a parallel make? * Does it still fail if you don't configure with --optimize? * Does it still fail for just 'make realclean; perl Configure.pl; make'? (These aren't just silly questions. Parrot is not tested as often or as well with non-default build configurations, so a bug could easily have crept back in.) c++ -o digest_group.bundle lib-digest_group.o md2.o md4.o md5.o ripemd160.o sha.o sha1.o sha256.o sha512.o -lm -framework OpenGL - framework GLUT -lcrypto -L/usr/local/lib -L/usr/local/source/parrot/ blib/lib -L/opt/local/lib -L/usr/local/source/parrot/blib/lib - bundle -undefined dynamic_lookup -L/usr/local/source/parrot/blib/lib - lparrot /usr/bin/ld: warning can't open dynamic library: /opt/local/lib/libz. 1.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2) This seems very odd to me. I'm not sure what is needing libz, or why it is pulling it from /opt/local/ ... I've asked another Mac OS X person to take a look at this, since it makes no sense to me. -'f