[svn:parrot] r36122 - trunk/t
Author: jkeenan Date: Wed Jan 28 16:22:50 2009 New Revision: 36122 Modified: trunk/t/README Log: Add entries for t/ subdirs not previously mentioned. Delete entries for t/ subdirs which have been superseded. Modified: trunk/t/README == --- trunk/t/README (original) +++ trunk/t/README Wed Jan 28 16:22:50 2009 @@ -3,53 +3,58 @@ This directory contains the Parrot test suite. -For details on how tests are written see the documentation in '../docs/tests.pod'. +For details on how tests are written see the documentation +in '../docs/tests.pod'. For status of the testing effort, see 'TESTS.STATUS.pod' in this directory. The script 'harness' actually runs the test suite. Below is a list of subdirs along with a short description of what is tested in there. -benchmark: Run benchmarks +benchmark: Run benchmarks. -codingstd: Conventions and Guidelines for Parrot Source Code +codingstd: Conventions and guidelines for Parrot source code. -compilers: Mini languages distributed with Parrot +compilers: Mini languages distributed with Parrot. -configure: Perl modules of configuration subsystem +configure: Perl modules of configuration subsystem. -distro: Tests run before a distribution is released +distro: Tests run before a distribution is released. -doc:Completeness and sanity of the documentation +doc:Completeness and sanity of the documentation. -dynoplibs: Dynamic opcode libraries +dynoplibs: Dynamic opcode libraries. -dynpmc: Dynamic PMCs +dynpmc: Dynamic PMCs. -examples: Check whether the examples are still working +examples: Check whether the examples are still working. -library:Parrot modules +library:Parrot modules. -native_pbc: Parrot Byte Code +manifest: Functionality supporting the creation of MANIFEST +and related files. -oo: Object oriented features of Parrot +native_pbc: Parrot Byte Code. -op: Try to cover all core operators +oo: Object oriented features of Parrot. -pdd15oo:New version of the object support as specified in PDD15 +op: Try to cover all core operators. -perl: Test Perl 5 modules used for configuration, building and testing of Parrot. +perl: Test Perl 5 modules used for configuration, building +and testing of Parrot. -pmc:Try to cover all builtin PMCs +pharness: Functionality supporting Parrot's test harnesses. + +pmc:Try to cover all builtin PMCs. postconfigure: Tests of configuration system which cannot be run until configuration has completed. -run:Mostly command line options of the 'parrot' executable +run:Mostly command line options of the 'parrot' executable. src:Tests written in C. -stm:Storage transactional memory +steps: Steps in the Parrot configuration process. stress: Stress testing. Make Parrot sweat.
[svn:parrot] r36075 - in trunk: . docs
Author: jkeenan Date: Tue Jan 27 19:49:23 2009 New Revision: 36075 Modified: trunk/PLATFORMS trunk/docs/parrot.pod Log: Apply patch submitted by Andy Dougherty in https://trac.parrot.org/parrot/ticket/214: Remove Solaris 8 (SPARC) from list of supported platforms. Modified: trunk/PLATFORMS == --- trunk/PLATFORMS (original) +++ trunk/PLATFORMS Tue Jan 27 19:49:23 2009 @@ -22,8 +22,6 @@ linux-x86-gcc4.2.4YY? Y Y YY ? 20081023 linux-x86-gcc4.3.2YY? Y Y YY ? 20081030 linux-x86-llvm-gcc-4.2YY? ? ? YY ? 20080801 -sol8-sparc-ccB--- - - -Y/85 ? 20080818 -sol8-sparc-gcc_4.1.0 B--- - - -Y/87 ? 20080818 sol10-sparc-cc_5.9 B4*2 Y-- Y Y YY ? 20080510 sol10-sparc-cc_5.9 B8 Y-- Y Y YY/2 ? 20080518 sol10-sparc-gcc_4.0.2B4*2 Y-- Y Y YY/1 ? 20080510 @@ -44,6 +42,8 @@ linux-x86_64-gcc4.1.2 8 Y-- Y Y YY ? 20080220 linux-x86_64-gcc4.3.2 8 Y-- Y Y YY ? 20081118 opensolaris-x86-gcc_4.0.3 4 YY? ? ? YY/2 ? 20080325 +sol8-sparc-ccB--- - - -Y/85 ? 20080818 +sol8-sparc-gcc_4.1.0 B--- - - -Y/87 ? 20080818 win32-x86-mingw_gcc4.3.0 YY- - - YY/88 ? 20081203 win32-x64-msvc_9.08 -N- - - YY/51 ? 20081203 win32-x64-mingw_gcc3.4.5 8 YY? ? ? YY ? 20081216 Modified: trunk/docs/parrot.pod == --- trunk/docs/parrot.pod (original) +++ trunk/docs/parrot.pod Tue Jan 27 19:49:23 2009 @@ -121,7 +121,7 @@ Parrot compiles and runs on a large number of platforms, including all common ones. The Parrot team is committed to supporting the following combinations as "core platforms": Linux (x86), Win32 (x86), OS X (x86 and PPC), Cygwin, Tru64, -OpenVMS (Alpha), Solaris (Sparc), FreeBSD (x86). +OpenVMS (Alpha), FreeBSD (x86). =head2 Authors
[svn:parrot] r36074 - in trunk: . examples/pir lib/Parrot runtime/parrot/include t/examples
Author: jkeenan Date: Tue Jan 27 19:31:07 2009 New Revision: 36074 Removed: trunk/examples/pir/hello-dwim.pir trunk/runtime/parrot/include/DWIM.pir Modified: trunk/MANIFEST trunk/lib/Parrot/Manifest.pm trunk/t/examples/pir.t Log: Re-applying patch originally applied in r34951, subsequently reverted. Remove DWIM.pir per https://trac.parrot.org/parrot/ticket/120. Modified: trunk/MANIFEST == --- trunk/MANIFEST (original) +++ trunk/MANIFEST Tue Jan 27 19:31:07 2009 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Tue Jan 27 07:05:41 2009 UT +# generated by tools/dev/mk_manifest_and_skip.pl Wed Jan 28 03:05:41 2009 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -712,7 +712,6 @@ examples/pir/euclid.pir [main]doc examples/pir/genprog.bas[main]doc examples/pir/hanoi.pir [main]doc -examples/pir/hello-dwim.pir [main]doc examples/pir/interlangs.bas [main]doc examples/pir/io.pir [main]doc examples/pir/levenshtein.pir[main]doc @@ -2640,7 +2639,6 @@ parrot.spec [] parrotbug [] runtime/parrot/dynext/README[devel]doc -runtime/parrot/include/DWIM.pir [devel]doc runtime/parrot/include/README [devel]doc runtime/parrot/include/fp_equality.pasm [library] runtime/parrot/include/hllmacros.pir[library] Modified: trunk/lib/Parrot/Manifest.pm == --- trunk/lib/Parrot/Manifest.pm(original) +++ trunk/lib/Parrot/Manifest.pmTue Jan 27 19:31:07 2009 @@ -176,7 +176,6 @@ examples/sdl/raw_pixels.pir [devel] languages/t/harness [] runtime/parrot/dynext/README[devel]doc -runtime/parrot/include/DWIM.pir [devel]doc runtime/parrot/include/README [devel]doc src/call_list.txt [devel]doc src/ops/ops.num [devel] Modified: trunk/t/examples/pir.t == --- trunk/t/examples/pir.t (original) +++ trunk/t/examples/pir.t Tue Jan 27 19:31:07 2009 @@ -305,7 +305,6 @@ { local $TODO = 'some examples not testable yet'; -fail('hello-dwim.pir'); fail('queens_r.pir'); fail('thr_primes.pir'); }
[svn:parrot] r36042 - trunk/t/pmc
Author: jkeenan Date: Mon Jan 26 16:07:15 2009 New Revision: 36042 Modified: trunk/t/pmc/class.t Log: Applying patch submitted by Ron Schmidt in https://trac.parrot.org/parrot/ticket/230. Uncomment several tests which are now passing. Modified: trunk/t/pmc/class.t == --- trunk/t/pmc/class.t (original) +++ trunk/t/pmc/class.t Mon Jan 26 16:07:15 2009 @@ -17,7 +17,7 @@ =cut -.const int TESTS = 53 +.const int TESTS = 62 .sub 'main' :main @@ -35,7 +35,7 @@ 'attributes'() 'add_attribute'() 'set_attr/get_attr'() -# 'add_method'() # TODO not yet implemented + 'add_method'() 'parents'() 'roles'() 'inspect'() @@ -217,8 +217,8 @@ # L -.sub 'add_method' # todo => 'not yet implemented' -.local pmc class, attribs, meth_to_add, test_attr_val +.sub 'add_method' +.local pmc class, attribs, meth_to_add, test_attr_val, obj_inst .local int test_val class = new ['Class'] @@ -263,8 +263,20 @@ .local string test_string_val +$I0 = 1 +push_eh t_class_meth test_string_val = class.'foo'() +$I0 = 0 +pop_eh + is(test_string_val, 'bar', 'add_method() invoking method added to class works') +t_class_meth: +todo(0, 'add_method() invoking method added to class works', "classes don't seem to call methods yet") + +obj_inst = class.'new'() +test_string_val = obj_inst.'foo'() +is(test_string_val, 'bar', 'add_method() invoking method added to class through instance works') + $I0 = 1 push_eh t_existing_method @@ -277,7 +289,7 @@ .end .sub 'foo' :method -.return ('foo') +.return ('bar') .end
[svn:parrot] r36001 - trunk/t/steps
Author: jkeenan Date: Sun Jan 25 10:15:57 2009 New Revision: 36001 Modified: trunk/t/steps/auto_pmc-01.t Log: Provide explanatory inline comment. Modified: trunk/t/steps/auto_pmc-01.t == --- trunk/t/steps/auto_pmc-01.t (original) +++ trunk/t/steps/auto_pmc-01.t Sun Jan 25 10:15:57 2009 @@ -144,6 +144,9 @@ $conf->replenish($serialized); ## --pmc ## +# What happens when user tells Configure.pl to use only +# specified PMCs to build Parrot? +### my @dummy_options = qw( default.pmc
[svn:parrot] r36000 - in trunk: config/auto t/steps
Author: jkeenan Date: Sun Jan 25 10:10:45 2009 New Revision: 36000 Modified: trunk/config/auto/pmc.pm trunk/t/steps/auto_pmc-01.t Log: Per discussion in https://trac.parrot.org/parrot/ticket/223, in config/auto/pmc.pm eliminate test for PMC files with names beginning 'const' -- we don't have them any more -- and eliminate tests in auto_pmc-01.t testing for such files. Modified: trunk/config/auto/pmc.pm == --- trunk/config/auto/pmc.pm(original) +++ trunk/config/auto/pmc.pmSun Jan 25 10:10:45 2009 @@ -75,7 +75,6 @@ for my $pmc ( split( /\s+/, $pmc_list ) ) { $pmc =~ s/\.pmc$//; -next if $pmc =~ /^const/; # make each pmc depend upon its parent. my $parent_dumps = ''; @@ -124,7 +123,6 @@ my %parents; PMC: for my $pmc_file ( split( /\s+/, $pmc_list ) ) { -next if $pmc_file =~ /^const/; open my $PMC, "<", "src/pmc/$pmc_file" or die "open src/pmc/$pmc_file: $!"; Modified: trunk/t/steps/auto_pmc-01.t == --- trunk/t/steps/auto_pmc-01.t (original) +++ trunk/t/steps/auto_pmc-01.t Sun Jan 25 10:10:45 2009 @@ -5,7 +5,7 @@ use strict; use warnings; -use Test::More tests => 36; +use Test::More tests => 32; use Carp; use Cwd; use File::Path qw| mkpath |; @@ -226,91 +226,6 @@ $ret = $step->runstep($conf); ok( $ret, "runstep() returned true value" ); -$conf->replenish($serialized); - -## --pmc ## - -...@dummy_options = qw( -default.pmc -null.pmc -env.pmc -key.pmc -random.pmc -unmanagedstruct.pmc -managedstruct.pmc -constexception.pmc -parrotlibrary.pmc -parrotinterpreter.pmc -parrotthread.pmc -lexpad.pmc -timer.pmc -pointer.pmc -sub.pmc -continuation.pmc -retcontinuation.pmc -exceptionhandler.pmc -coroutine.pmc -eval.pmc -nci.pmc -float.pmc -integer.pmc -bigint.pmc -complex.pmc -string.pmc -boolean.pmc -ref.pmc -sharedref.pmc -array.pmc -fixedintegerarray.pmc -iterator.pmc -fixedstringarray.pmc -hash.pmc -orderedhash.pmc -tqueue.pmc -os.pmc -file.pmc -addrregistry.pmc -bound_nci.pmc -capture.pmc -class.pmc -codestring.pmc -exporter.pmc -fixedbooleanarray.pmc -fixedfloatarray.pmc -fixedpmcarray.pmc -lexinfo.pmc -multisub.pmc -namespace.pmc -object.pmc -parrotrunningthread.pmc -pccmethod_test.pmc -pmcproxy.pmc -resizablebooleanarray.pmc -resizablefloatarray.pmc -resizableintegerarray.pmc -resizablepmcarray.pmc -resizablestringarray.pmc -role.pmc -scalar.pmc -scheduler.pmc -slice.pmc -task.pmc -undef.pmc -); -$dummy_options = join q{ } => @dummy_options; - -($args, $step_list_ref) = process_options( -{ -argv => [ qq{--pmc=$dummy_options} ], -mode => q{configure}, -} -); - -$conf->options->set( %{$args} ); -$step = test_step_constructor_and_description($conf); -$ret = $step->runstep($conf); -ok( $ret, "runstep() returned true value" ); - pass("Completed all tests in $0"); ### DOCUMENTATION ###
[svn:parrot] r35999 - trunk/config/auto
Author: jkeenan Date: Sun Jan 25 09:14:40 2009 New Revision: 35999 Modified: trunk/config/auto/pmc.pm Log: For consistency with other config step classes, move runstep() to sit immediately after _init(). Modified: trunk/config/auto/pmc.pm == --- trunk/config/auto/pmc.pm(original) +++ trunk/config/auto/pmc.pmSun Jan 25 09:14:40 2009 @@ -33,108 +33,6 @@ }; } -# Return the (lowercased) name of the immediate parent of the given -# (lowercased) pmc name. -sub pmc_parent { -my ($self, $pmc) = @_; - -return $self->{PMC_PARENTS}{$pmc} if defined $self->{PMC_PARENTS}{$pmc}; - -local $/; -open( my $PMC, '<', "src/pmc/$pmc.pmc" ) -or die "open src/pmc/$pmc.pmc failed: $!"; -local $_ = <$PMC>; -close $PMC; - -# Throw out everything but the pmclass declaration -s/^.*?pmclass//s; -s/\{.*$//s; - -return $self->{PMC_PARENTS}{$pmc} = lc($1) if m/extends\s+(\w+)/; -return $self->{PMC_PARENTS}{$pmc} = 'default'; -} - -# Return an array of all -sub pmc_parents { -my ($self, $pmc) = @_; - -my @parents = ($pmc); -push @parents, $self->pmc_parent( $parents[-1] ) -until $parents[-1] eq 'default'; - -shift @parents; -return @parents; -} - -sub get_pmc_order { -open my $IN, '<', 'src/pmc/pmc.num' or die "Can't read src/pmc/pmc.num"; -my %order; -while (<$IN>) { -next if /^#/; - -if (/(\w+\.\w+)\s+(\d+)/) { -$order{$1} = $2; -} -} - -close $IN; - -return \%order; -} - -sub sort_pmcs { -my @pmcs = @_; -my $pmc_order = get_pmc_order(); -my $n = keys %$pmc_order; -my @sorted_pmcs; - -for my $pmc (@pmcs) { -if ( exists $pmc_order->{$pmc} ) { -$sorted_pmcs[ $pmc_order->{$pmc} ] = $pmc; -} -else { -$sorted_pmcs[ $n++ ] = $pmc; -} -} - -return @sorted_pmcs; -} - -sub contains_pccmethod { -my $file = shift; -open( my $fh, '<', $file ) or die "Can't read '$file': $!\n"; - -local $_; -while (<$fh>) { -next unless /METHOD/; -return 1; -} - -return; -} - -# Given a PMC file name, get a list of all the includes it specifies -sub get_includes { -my $file = shift; -open( my $fh, '<', $file ) or die "Can't read '$file': $!\n"; - -my @retval; -local $_; -while (<$fh>) { -next unless /^\s*#include\s+["<](.*)[">]\s+$/; -my $include = $1; -if ($include =~ m{^(\.|parrot/)}) { # main parrot include dir - $include = "include/" . $include; -} elsif ($include =~ m/^pmc_|\.str$/) { # local pmc header - $include = "src/pmc/" . $include; -} # else it's probably a system header, don't depend on it. -push @retval, $include; -} - -return join(' ', @retval); -} - - sub runstep { my ( $self, $conf ) = @_; @@ -285,6 +183,107 @@ return 1; } +# Return the (lowercased) name of the immediate parent of the given +# (lowercased) pmc name. +sub pmc_parent { +my ($self, $pmc) = @_; + +return $self->{PMC_PARENTS}{$pmc} if defined $self->{PMC_PARENTS}{$pmc}; + +local $/; +open( my $PMC, '<', "src/pmc/$pmc.pmc" ) +or die "open src/pmc/$pmc.pmc failed: $!"; +local $_ = <$PMC>; +close $PMC; + +# Throw out everything but the pmclass declaration +s/^.*?pmclass//s; +s/\{.*$//s; + +return $self->{PMC_PARENTS}{$pmc} = lc($1) if m/extends\s+(\w+)/; +return $self->{PMC_PARENTS}{$pmc} = 'default'; +} + +# Return an array of all +sub pmc_parents { +my ($self, $pmc) = @_; + +my @parents = ($pmc); +push @parents, $self->pmc_parent( $parents[-1] ) +until $parents[-1] eq 'default'; + +shift @parents; +return @parents; +} + +sub get_pmc_order { +open my $IN, '<', 'src/pmc/pmc.num' or die "Can't read src/pmc/pmc.num"; +my %order; +while (<$IN>) { +next if /^#/; + +if (/(\w+\.\w+)\s+(\d+)/) { +$order{$1} = $2; +} +} + +close $IN; + +return \%order; +} + +sub sort_pmcs { +my @pmcs = @_; +my $pmc_order = get_pmc_order(); +my $n = keys %$pmc_order; +my @sorted_pmcs; + +for my $pmc (@pmcs) { +if ( exists $pmc_order->{$pmc} ) { +$sorted_pmcs[ $pmc_order->{$pmc} ] = $pmc; +} +else { +$sorted_pmcs[ $n++ ] = $pmc; +} +} + +return @sorted_pmcs; +} + +sub contains_pccmethod { +my $file = shift;
[svn:parrot] r35998 - trunk/config/auto
Author: jkeenan Date: Sun Jan 25 09:13:09 2009 New Revision: 35998 Modified: trunk/config/auto/pmc.pm Log: Population of $pmc_list is better handled as a branch (using ternary op) rather than as a condition (using || op). Modified: trunk/config/auto/pmc.pm == --- trunk/config/auto/pmc.pm(original) +++ trunk/config/auto/pmc.pmSun Jan 25 09:13:09 2009 @@ -141,7 +141,8 @@ my @pmc = sort_pmcs( @{ $self->{srcpmc} } ); my $pmc_list = $conf->options->get('pmc') -|| join( ' ', grep { defined $_ } @pmc ); +? $conf->options->get('pmc') +: join( ' ', grep { defined $_ } @pmc ); # names of class files for src/pmc/Makefile ( my $TEMP_pmc_o = $pmc_list ) =~ s/\.pmc/\$(O)/g;
[svn:parrot] r35961 - trunk/t/steps
Author: jkeenan Date: Sat Jan 24 11:09:11 2009 New Revision: 35961 Modified: trunk/t/steps/auto_pmc-01.t Log: In partial satisfaction of issues raised in https://trac.parrot.org/parrot/ticket/223, reformat lists to match coding standards. Modified: trunk/t/steps/auto_pmc-01.t == --- trunk/t/steps/auto_pmc-01.t (original) +++ trunk/t/steps/auto_pmc-01.t Sat Jan 24 11:09:11 2009 @@ -146,7 +146,72 @@ ## --pmc ## my @dummy_options = qw( -default.pmc null.pmc env.pmc key.pmc random.pmc unmanagedstruct.pmc managedstruct.pmc exception.pmc parrotlibrary.pmc parrotinterpreter.pmc parrotthread.pmc lexpad.pmc timer.pmc pointer.pmc sub.pmc continuation.pmc retcontinuation.pmc exceptionhandler.pmc coroutine.pmc eval.pmc nci.pmc float.pmc integer.pmc bigint.pmc complex.pmc string.pmc boolean.pmc ref.pmc sharedref.pmc array.pmc fixedintegerarray.pmc iterator.pmc sarray.pmc fixedstringarray.pmc hash.pmc orderedhash.pmc tqueue.pmc os.pmc file.pmc addrregistry.pmc bound_nci.pmc capture.pmc class.pmc codestring.pmc exporter.pmc fixedbooleanarray.pmc fixedfloatarray.pmc fixedpmcarray.pmc lexinfo.pmc multisub.pmc namespace.pmc object.pmc parrotrunningthread.pmc pccmethod_test.pmc pmcproxy.pmc resizablebooleanarray.pmc resizablefloatarray.pmc resizableintegerarray.pmc resizablepmcarray.pmc resizablestringarray.pmc role.pmc scalar.pmc scheduler.pmc slice.pmc task.pmc undef.pmc +default.pmc +null.pmc +env.pmc +key.pmc +random.pmc +unmanagedstruct.pmc +managedstruct.pmc +exception.pmc +parrotlibrary.pmc +parrotinterpreter.pmc +parrotthread.pmc +lexpad.pmc +timer.pmc +pointer.pmc +sub.pmc +continuation.pmc +retcontinuation.pmc +exceptionhandler.pmc +coroutine.pmc +eval.pmc +nci.pmc +float.pmc +integer.pmc +bigint.pmc +complex.pmc +string.pmc +boolean.pmc +ref.pmc +sharedref.pmc +array.pmc +fixedintegerarray.pmc +iterator.pmc +sarray.pmc +fixedstringarray.pmc +hash.pmc +orderedhash.pmc +tqueue.pmc +os.pmc +file.pmc +addrregistry.pmc +bound_nci.pmc +capture.pmc +class.pmc +codestring.pmc +exporter.pmc +fixedbooleanarray.pmc +fixedfloatarray.pmc +fixedpmcarray.pmc +lexinfo.pmc +multisub.pmc +namespace.pmc +object.pmc +parrotrunningthread.pmc +pccmethod_test.pmc +pmcproxy.pmc +resizablebooleanarray.pmc +resizablefloatarray.pmc +resizableintegerarray.pmc +resizablepmcarray.pmc +resizablestringarray.pmc +role.pmc +scalar.pmc +scheduler.pmc +slice.pmc +task.pmc +undef.pmc ); my $dummy_options = join q{ } => @dummy_options; @@ -167,8 +232,72 @@ ## --pmc ## @dummy_options = qw( -default.pmc null.pmc env.pmc key.pmc random.pmc unmanagedstruct.pmc -managedstruct.pmc constexception.pmc parrotlibrary.pmc parrotinterpreter.pmc parrotthread.pmc lexpad.pmc timer.pmc pointer.pmc sub.pmc continuation.pmc retcontinuation.pmc exceptionhandler.pmc coroutine.pmc eval.pmc nci.pmc float.pmc integer.pmc bigint.pmc complex.pmc string.pmc boolean.pmc ref.pmc sharedref.pmc array.pmc fixedintegerarray.pmc iterator.pmc sarray.pmc fixedstringarray.pmc hash.pmc orderedhash.pmc tqueue.pmc os.pmc file.pmc addrregistry.pmc bound_nci.pmc capture.pmc class.pmc codestring.pmc exporter.pmc fixedbooleanarray.pmc fixedfloatarray.pmc fixedpmcarray.pmc lexinfo.pmc multisub.pmc namespace.pmc object.pmc parrotrunningthread.pmc pccmethod_test.pmc pmcproxy.pmc resizablebooleanarray.pmc resizablefloatarray.pmc resizableintegerarray.pmc resizablepmcarray.pmc resizablestringarray.pmc role.pmc scalar.pmc scheduler.pmc slice.pmc task.pmc undef.pmc +default.pmc +null.pmc +env.pmc +key.pmc +random.pmc +unmanagedstruct.pmc +managedstruct.pmc +constexception.pmc +parrotlibrary.pmc +parrotinterpreter.pmc +parrotthread.pmc +lexpad.pmc +timer.pmc +pointer.pmc +sub.pmc +continuation.pmc +retcontinuation.pmc +exceptionhandler.pmc +coroutine.pmc +eval.pmc +nci.pmc +float.pmc +integer.pmc +bigint.pmc +complex.pmc +string.pmc +boolean.pmc +ref.pmc +sharedref.pmc +array.pmc +fixedintegerarray.pmc +iterator.pmc +sarray.pmc +fixedstringarray.pmc +hash.pmc +orderedhash.pmc +tqueue.pmc +os.pmc +file.pmc +addrregistry.pmc +bound_nci.pmc +capture.pmc +class.pmc +codestring.pmc +exporter.pmc +fixedbooleanarray.pmc +fixedfloatarray.pmc +fixedpmcarray.pmc +lexinfo.pmc +multisub.pmc +namespace.pmc +object.pmc +parrotrunningthread.pmc +pccmethod_test.pmc +pmcproxy.pmc +resizablebooleanarray.pmc +resizablefloatarray.pmc +resizableintegerarray.
[svn:parrot] r35938 - trunk/docs/book
Author: jkeenan Date: Fri Jan 23 19:23:59 2009 New Revision: 35938 Modified: trunk/docs/book/ch02_getting_started.pod trunk/docs/book/ch04_pir_subroutines.pod trunk/docs/book/ch07_testing_and_debugging.pod trunk/docs/book/ch08_architecture.pod trunk/docs/book/ch09_pct.pod trunk/docs/book/ch10_hlls.pod trunk/docs/book/ch11_pmcs.pod trunk/docs/book/ch12_opcodes.pod trunk/docs/book/ch13_reference.pod Log: Applying patch submitted in https://trac.parrot.org/parrot/ticket/215 by mikehh: POD corrections in docs/book/. Modified: trunk/docs/book/ch02_getting_started.pod == --- trunk/docs/book/ch02_getting_started.pod(original) +++ trunk/docs/book/ch02_getting_started.podFri Jan 23 19:23:59 2009 @@ -142,7 +142,7 @@ =head1 Building Parrot -Z +Z X The first step before you start playing with Parrot's PASM and PIR @@ -192,7 +192,7 @@ =head3 Patch submission -Z +Z X Parrot development proceeds through a continuous stream of patches. @@ -324,7 +324,7 @@ =head3 Bug tracking -Z +Z X Bug reports go to the same address as patch submissions Modified: trunk/docs/book/ch04_pir_subroutines.pod == --- trunk/docs/book/ch04_pir_subroutines.pod(original) +++ trunk/docs/book/ch04_pir_subroutines.podFri Jan 23 19:23:59 2009 @@ -1,7 +1,5 @@ =pod -Z - =head1 Subroutines Z @@ -454,7 +452,7 @@ =head2 Compilation Units Revisited -Z +Z The term "compilation unit" is one that's been bandied about throughout the chapter and it's worth some amount of explanation here. A compilation unit @@ -499,7 +497,7 @@ =head3 PASM Subroutines -Z +Z X X @@ -537,7 +535,7 @@ =head3 Namespaces -Z +Z X X<.namespace> @@ -586,7 +584,7 @@ =head3 Calling Methods -Z +Z Now that we've discussed namespaces, we can start to discuss all the interesting things that namespaces enable, like object-oriented @@ -793,12 +791,12 @@ =over 4 -=item* Identifies coroutines +=item * Identifies coroutines When Parrot sees a yield, it knows to create a coroutine PMC object instead of a Subroutine one. -=item* Creates a continuation +=item * Creates a continuation Continuations, as we have already seen, allow us to continue execution at the point of the continuation later. It's like a snapshot of @@ -806,7 +804,7 @@ the coroutine and stores the continuation object in the coroutine object or later resuming from the point of the C<.yield>. -=item* Returns a value +=item * Returns a value C<.yield> can return a value N to the caller. It is basically the same as a C<.return> in this regard. Modified: trunk/docs/book/ch07_testing_and_debugging.pod == --- trunk/docs/book/ch07_testing_and_debugging.pod (original) +++ trunk/docs/book/ch07_testing_and_debugging.pod Fri Jan 23 19:23:59 2009 @@ -2,7 +2,7 @@ =head0 Testing and Debugging -Z +Z Programming languages and the virtual machines on which they run are just one small part of the total programming ecosystem. Programmers require not @@ -15,7 +15,7 @@ =head1 Writing Tests -Z +Z X Parrot is volunteer-driven, and contributions from new users are always @@ -118,7 +118,7 @@ =head1 The Parrot Debugger -Z +Z =cut Modified: trunk/docs/book/ch08_architecture.pod == --- trunk/docs/book/ch08_architecture.pod (original) +++ trunk/docs/book/ch08_architecture.pod Fri Jan 23 19:23:59 2009 @@ -2,7 +2,7 @@ =head0 Parrot Internals -Z +Z This chapter details the architecture and internal workings of Parrot, and attempts to explain how Parrot has been designed and how it operates. @@ -13,7 +13,7 @@ =head1 Core Design Principles -Z +Z X Three main principles drive the design of @@ -72,7 +72,7 @@ =head1 Parrot's Architecture -Z +Z The X X @@ -85,7 +85,7 @@ =begin figure Parrot's flow -Z +Z F =end figure @@ -113,7 +113,7 @@ =head2 Parser -Z +Z X X @@ -171,7 +171,7 @@ =head2 Compiler -Z +Z X @@ -194,7 +194,7 @@ =head2 Optimizer -Z +Z X X @@ -316,7 +316,7 @@ =head1 The Interpreter -Z +Z The X interpreter is the engine that actually runs the code emitted by the @@ -360,7 +360,7 @@ =head2 Registers -Z +Z X As we've seen in previous chapers, Parrot has four basic types of @@ -375,7 +375,7 @@ =head2 Strings -Z +Z X X @@ -455,7 +455,7 @@ =head2 Variables -Z +Z X X @@ -506,7 +506,7 @@ =head2 Bytecode -Z +Z Like any CPU, software, or hardware, Parrot needs a set of instructions to tell it what to do. For hardware, this is a stream of @@ -560,7 +560,7 @@ =head1 I/O, Events, and Threads -Z +Z P
[svn:parrot] r35904 - in trunk: src/ops t/pmc
Author: jkeenan Date: Thu Jan 22 19:48:03 2009 New Revision: 35904 Modified: trunk/src/ops/pmc.ops trunk/t/pmc/class.t Log: Applying patches submitted by Ron Schmidt in http://rt.perl.org/rt3/Ticket/Display.html?id=62634 (POD change in src/ops/pmc.ops and http://rt.perl.org/rt3/Ticket/Display.html?id=62588 (activate some tests in t/pmc/class.t). Modified: trunk/src/ops/pmc.ops == --- trunk/src/ops/pmc.ops (original) +++ trunk/src/ops/pmc.ops Thu Jan 22 19:48:03 2009 @@ -48,7 +48,7 @@ new P0, 'ResizableBooleanArray' Optionally a PMC may be passed to the constructor. It's up to the class what -to do with the intializer. See PDD02 for more. +to do with the initializer. See PDD17 and the init_pmc function for more. =cut Modified: trunk/t/pmc/class.t == --- trunk/t/pmc/class.t (original) +++ trunk/t/pmc/class.t Thu Jan 22 19:48:03 2009 @@ -17,7 +17,7 @@ =cut -.const int TESTS = 49 +.const int TESTS = 53 .sub 'main' :main @@ -38,7 +38,7 @@ # 'add_method'() # TODO not yet implemented 'parents'() 'roles'() -# 'inspect'() # XXX must fix 'attributes' test + 'inspect'() 'clone'() 'clone_pmc'() 'new with init hash'() @@ -332,7 +332,7 @@ ok(1, 'inspect() with no args called returns successfully') test_val = elements result -is(test_val, 6, 'inspect() returns correctly sized value') +is(test_val, 7, 'inspect() returns correctly sized value') result = class.'inspect'('name') is(result, 'foo', 'inspect() "name" param returns expected value')
[svn:parrot] r35662 - trunk/include/parrot
Author: jkeenan Date: Fri Jan 16 20:36:49 2009 New Revision: 35662 Modified: trunk/include/parrot/sub.h Log: Make file pass t/codingstd/c_macro_args.t. Modified: trunk/include/parrot/sub.h == --- trunk/include/parrot/sub.h (original) +++ trunk/include/parrot/sub.h Fri Jan 16 20:36:49 2009 @@ -171,12 +171,12 @@ struct Parrot_Context *outer_ctx; /* outer context, if a closure */ } Parrot_sub; -#define PMC_sub(pmc) (pmc->vtable->base_type == enum_class_Sub || \ - pmc->vtable->base_type == enum_class_Coroutine || \ - pmc->vtable->base_type == enum_class_Eval || \ - pmc->vtable->base_type == enum_class_Closure ? \ +#define PMC_sub(pmc) ((pmc)->vtable->base_type == enum_class_Sub || \ + (pmc)->vtable->base_type == enum_class_Coroutine || \ + (pmc)->vtable->base_type == enum_class_Eval || \ + (pmc)->vtable->base_type == enum_class_Closure ? \ (Parrot_sub *)PMC_struct_val(pmc) : \ -Parrot_get_sub_pmc_from_subclass(interp, pmc)) +Parrot_get_sub_pmc_from_subclass(interp, (pmc))) /* the first entries must match Parrot_sub, so we can cast * these two to the other type
[svn:parrot] r35661 - in trunk/src: . pmc
Author: jkeenan Date: Fri Jan 16 19:40:47 2009 New Revision: 35661 Modified: trunk/src/oo.c trunk/src/pmc/tqueue.pmc trunk/src/sub.c Log: Eliminate trailing whitespace in 3 files. Modified: trunk/src/oo.c == --- trunk/src/oo.c (original) +++ trunk/src/oo.c Fri Jan 16 19:40:47 2009 @@ -226,7 +226,7 @@ /* XXX TT#182: This is a hack! We should be able to treat all PMC types the same through pmc_type_p or some interface to it */ -if (base_type == enum_class_Key +if (base_type == enum_class_Key || base_type == enum_class_ResizableStringArray || base_type == enum_class_String) type = pmc_type_p(interp, key); Modified: trunk/src/pmc/tqueue.pmc == --- trunk/src/pmc/tqueue.pmc(original) +++ trunk/src/pmc/tqueue.pmcFri Jan 16 19:40:47 2009 @@ -210,7 +210,7 @@ /* s. tsq.c:queue_push */ queue_lock(queue); - + GET_ATTR_thread_count(INTERP, SELF, thread_count); ++thread_count; SET_ATTR_thread_count(INTERP, SELF, thread_count); Modified: trunk/src/sub.c == --- trunk/src/sub.c (original) +++ trunk/src/sub.c Fri Jan 16 19:40:47 2009 @@ -711,7 +711,7 @@ =item C Gets a Parrot_sub structure from something that isn't a Sub PMC, but rather a -subclass. +subclass. =cut
[svn:parrot] r35660 - trunk/languages/pheme
Author: jkeenan Date: Fri Jan 16 19:38:58 2009 New Revision: 35660 Modified: trunk/languages/pheme/Configure.pl Log: Add missing copyright statement. Modified: trunk/languages/pheme/Configure.pl == --- trunk/languages/pheme/Configure.pl (original) +++ trunk/languages/pheme/Configure.pl Fri Jan 16 19:38:58 2009 @@ -1,5 +1,6 @@ #! perl # $Id$ +# Copyright (C) 2009, The Perl Foundation. use strict; use warnings;
[svn:parrot] r35659 - trunk
Author: jkeenan Date: Fri Jan 16 19:26:00 2009 New Revision: 35659 Modified: trunk/DEPRECATED.pod Log: Punctuation correction only. Modified: trunk/DEPRECATED.pod == --- trunk/DEPRECATED.pod(original) +++ trunk/DEPRECATED.podFri Jan 16 19:26:00 2009 @@ -7,7 +7,7 @@ guaranteed to appear in. When deprecated items are removed, all usage of the feature in the -repository should be updated or removed; including documentation. +repository should be updated or removed, including documentation. When deprecating opcodes, in addition to the ticket, be sure to mark the opcode with the :deprecated flag; this will allow users to enable deprecation
[svn:parrot] r35657 - trunk/editor
Author: jkeenan Date: Fri Jan 16 17:39:40 2009 New Revision: 35657 Modified: trunk/editor/indent_pir.vim Log: Change date of last revision. Modified: trunk/editor/indent_pir.vim == --- trunk/editor/indent_pir.vim (original) +++ trunk/editor/indent_pir.vim Fri Jan 16 17:39:40 2009 @@ -1,7 +1,7 @@ " Description: PIR indenter " Author: Andrew Rodland " Maintainer: Jimmy Zhuo -" Last Change: 2008 Dec 3 +" Last Change: 2009 Jan 16 " As usual, we want to be alone if exists("b:did_indent")
[svn:parrot] r35656 - trunk/editor
Author: jkeenan Date: Fri Jan 16 17:24:07 2009 New Revision: 35656 Modified: trunk/editor/indent_pir.vim Log: Applying patch submitted by Jimmy Zhuo in https://trac.parrot.org/parrot/ticket/176: Better indentation in line following a line consisting of a LABEL: and a comment. Modified: trunk/editor/indent_pir.vim == --- trunk/editor/indent_pir.vim (original) +++ trunk/editor/indent_pir.vim Fri Jan 16 17:24:07 2009 @@ -56,7 +56,7 @@ let SUB = '^\s*\.pcc_sub\s\+\|^\s*\.sub\s\+\|^\s*\.macro\s\+' let RETURNBLOCK = '\s*\.begin_return\s*$' let END = '^\s*\.end\s*$\|^\s*\.end_return\s*\|^\s*\.endm$' -let LABEL = '^\s*\k\+:\s*$' +let LABEL = '^\s*\k\+:' if prevline =~? SUB let ind = ind + &sw
[svn:parrot] r35594 - in trunk: languages/perl6/src/pmc src/pmc
Author: jkeenan Date: Thu Jan 15 08:56:07 2009 New Revision: 35594 Modified: trunk/languages/perl6/src/pmc/perl6multisub.pmc trunk/src/pmc/parrotrunningthread.pmc Log: Applying patch submitted by jimmy in TT#175. POD corrections in two files. Modified: trunk/languages/perl6/src/pmc/perl6multisub.pmc == --- trunk/languages/perl6/src/pmc/perl6multisub.pmc (original) +++ trunk/languages/perl6/src/pmc/perl6multisub.pmc Thu Jan 15 08:56:07 2009 @@ -214,6 +214,8 @@ Takes two candidates and determines if the first one is narrower than the second. Returns a true value if they are. +=cut + */ static INTVAL is_narrower(PARROT_INTERP, candidate_info *a, candidate_info *b) { STRING *ACCEPTS = CONST_STRING(interp, "ACCEPTS"); @@ -266,6 +268,8 @@ Takes a ResizablePMCArray of the candidates, collects information about them and then does a topological sort of them. +=cut + */ static candidate_info** sort_candidiates(PARROT_INTERP, PMC *candidates, PMC **proto_out) { INTVAL i, j, sig_elems, candidates_to_sort, result_pos; @@ -430,6 +434,8 @@ or throws an error saying that the dispatch failed if there were no candidates or that it was ambiguous if there were tied candidates. +=cut + */ static PMC* do_dispatch(PARROT_INTERP, candidate_info **candidates, PMC *proto, @@ -641,6 +647,8 @@ Checks if a PMC is invokable; returns a true value if so and a false value if not. +=cut + */ static int check_invokable(PARROT_INTERP, PMC *value) { STRING * const _sub = CONST_STRING(interp, "Sub"); @@ -893,6 +901,8 @@ Marks the candidate list. +=cut + */ VTABLE void mark() { PMC *candidates; Modified: trunk/src/pmc/parrotrunningthread.pmc == --- trunk/src/pmc/parrotrunningthread.pmc (original) +++ trunk/src/pmc/parrotrunningthread.pmc Thu Jan 15 08:56:07 2009 @@ -82,6 +82,8 @@ Change the thread ID we refer to to C. +=cut + */ VTABLE void set_integer_native(INTVAL new_tid) {
[svn:parrot] r35510 - trunk/config/gen/makefiles
Author: jkeenan Date: Tue Jan 13 14:30:47 2009 New Revision: 35510 Modified: trunk/config/gen/makefiles/root.in Log: Correction in 'help' message re 'make rpms'. Cf.: https://trac.parrot.org/parrot/ticket/171. Patch contributed by Gerd Pokorra. Modified: trunk/config/gen/makefiles/root.in == --- trunk/config/gen/makefiles/root.in (original) +++ trunk/config/gen/makefiles/root.in Tue Jan 13 14:30:47 2009 @@ -740,7 +740,7 @@ @echo "" @echo "Release:" @echo " release: Create a tarball." - @echo " rpm: Create RPMs." + @echo " rpms: Create RPMs." @echo " win32-inno-installer: Create MSWin32 setup." @echo "" @echo "Examples:"
[svn:parrot] r35430 - trunk/t/library
Author: jkeenan Date: Sun Jan 11 17:48:40 2009 New Revision: 35430 Modified: trunk/t/library/File_Spec.t trunk/t/library/data_escape.t Log: Applying patch submitted by Geraud Continsouzas in https://trac.parrot.org/parrot/ticket/160: conversion on tests from Perl 5 (using Parrot::Test) to PIR. Modified: trunk/t/library/File_Spec.t == --- trunk/t/library/File_Spec.t (original) +++ trunk/t/library/File_Spec.t Sun Jan 11 17:48:40 2009 @@ -1,20 +1,14 @@ -#! perl -# Copyright (C) 2001-2008, The Perl Foundation. +#! parrot +# Copyright (C) 2001-2009, The Perl Foundation. # $Id$ -use strict; -use warnings; -use lib qw( t . lib ../lib ../../lib ); -use Test::More; -use Parrot::Test tests => 20; - =head1 NAME -t/library/File-Spec.t - test File::Spec module +t/library/File_Spec.t - test File::Spec module =head1 SYNOPSIS -% prove t/library/File-Spec.t +% prove t/library/File_Spec.t =head1 DESCRIPTION @@ -25,93 +19,87 @@ ## # File::Spec -my $PRE = <<'PRE'; -.sub 'main' :main -load_bytecode 'library/File/Spec.pir' - -.local int classtype -.local pmc spec - -spec = new 'File::Spec' - -PRE -my $POST = <<'POST'; -goto OK -NOK: -print "not " -OK: -print "ok" -END: -print "\n" -.end -POST - -## 1 -pir_output_is( <<'CODE'. $POST, <<'OUT', "load_bytecode" ); -.sub 'main' :main -load_bytecode 'File/Spec.pir' -CODE -ok -OUT - -pir_output_is( $PRE . <<'CODE'. $POST, <<'OUT', "new" ); -CODE -ok -OUT - -my @meths = ( -qw/ -__isa VERSION devnull tmpdir case_tolerant file_name_is_absolute catfile -catdir path canonpath splitpath splitdir catpath abs2rel rel2abs -/ -); -pir_output_is( $PRE . <<"CODE". $POST, <<'OUT', "can ($_)" ) for @meths; -.local pmc meth -\$I0 = can spec, "$_" -unless \$I0, NOK -CODE -ok -OUT - -pir_output_like( $PRE . <<'CODE'. $POST, <<'OUT', "isa" ); -.local pmc class -class= new 'String' - -class= spec.'__isa'() -print class -print "\n" -CODE -/^File::Spec::.+/ -OUT - -pir_output_is( $PRE . <<'CODE'. $POST, <<'OUT', "version" ); -.local pmc version -version= spec.'VERSION'() -print version -goto END -CODE -0.1 -OUT - -## testing private subs -pir_output_is( $PRE . <<'CODE'. $POST, <<'OUT', "_get_module" ); -.local string module -.local pmc get_module -get_module = get_hll_global [ 'File::Spec' ], '_get_module' -module= get_module( 'MSWin32' ) -print module -print "\n" -module= get_module( 'foobar' ) -print module -goto END -CODE -Win32 -Unix -OUT +.sub main :main +.include 'test_more.pir' +plan(22) + +FS_load_bytecode() +FS_new() +FS_can() +FS_isa() +FS_version() +FS_private_subs() +.end + +.sub FS_load_bytecode +load_bytecode 'File/Spec.pir' +ok(1, 'load_bytecode') +.end + +.sub FS_new +.local pmc spec + +spec = new 'File::Spec' +ok(1, 'new') +.end + +.sub FS_can +.local pmc spec +.local pmc method_list + +$S0 = '__isa VERSION devnull tmpdir case_tolerant file_name_is_absolute ' +$S0 = concat $S0, 'catfile catdir path canonpath splitpath splitdir ' +$S0 = concat $S0, 'catpath abs2rel rel2abs' +method_list = split ' ', $S0 + +spec = new 'File::Spec' + + LOOP: +$I0 = elements method_list +if $I0 == 0 goto END_TEST +$S0 = method_list.'shift'() +$I0 = can spec, $S0 +$S1 = concat 'File::Spec can ', $S0 +ok($I0, $S1) +goto LOOP + + END_TEST: +.end + +.sub FS_isa +.local pmc spec + +spec = new 'File::Spec' +isa_ok(spec, 'File::Spec') +$S0 = spec.'__isa'() +like($S0, "File '::' Spec '::' .+", 'The object isa File::Spec::.+') +.end + +.sub FS_version +.local pmc spec + +spec = new 'File::Spec' +$S0 = spec.'VERSION'() +is($S0, '0.1', 'VERSION 0.1') +.end + +.sub FS_private_subs +.local pmc spec + +spec = new 'File::Spec' +.local string module +.local pmc get_module +get_module = get_hll_global [ 'File::Spec' ], '_get_module' + +m
[svn:parrot] r35328 - trunk
Author: jkeenan Date: Fri Jan 9 18:55:43 2009 New Revision: 35328 Modified: trunk/MANIFEST Log: Correct earlier failure to update MANIFEST. Error reported by GeJ++. Modified: trunk/MANIFEST == --- trunk/MANIFEST (original) +++ trunk/MANIFEST Fri Jan 9 18:55:43 2009 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Fri Jan 9 15:18:09 2009 UT +# generated by tools/dev/mk_manifest_and_skip.pl Sat Jan 10 02:54:21 2009 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -2161,7 +2161,6 @@ languages/perl6/src/classes/Signature.pir [perl6] languages/perl6/src/classes/Str.pir [perl6] languages/perl6/src/classes/Sub.pir [perl6] -languages/perl6/src/classes/UnderConstructionProto.pir [perl6] languages/perl6/src/classes/Whatever.pir[perl6] languages/perl6/src/ops/perl6.ops [perl6] languages/perl6/src/parser/actions.pm [perl6]
[svn:parrot] r35324 - trunk/src/jit/i386
Author: jkeenan Date: Fri Jan 9 16:12:33 2009 New Revision: 35324 Modified: trunk/src/jit/i386/jit_defs.c Log: Eliminate duplicate '#include' statement. Modified: trunk/src/jit/i386/jit_defs.c == --- trunk/src/jit/i386/jit_defs.c (original) +++ trunk/src/jit/i386/jit_defs.c Fri Jan 9 16:12:33 2009 @@ -12,7 +12,6 @@ #include "parrot/oplib/ops.h" #include "jit.h" #include "jit_emit.h" -#include "parrot/oplib/ops.h" INTVAL get_nci_I(PARROT_INTERP, ARGMOD(call_state *st), int n)
[svn:parrot] r35120 - in trunk: . compilers/pirc/src docs languages/perl6/src/classes languages/pipp/docs languages/pipp/src/common runtime/parrot/library/Data/Dumper
Author: jkeenan Date: Wed Jan 7 05:09:43 2009 New Revision: 35120 Modified: trunk/CREDITS trunk/compilers/pirc/src/bcgen.c trunk/compilers/pirc/src/pirpcc.c trunk/docs/vtables.pod trunk/languages/perl6/src/classes/Abstraction.pir trunk/languages/perl6/src/classes/Callable.pir trunk/languages/perl6/src/classes/IO.pir trunk/languages/perl6/src/classes/Mapping.pir trunk/languages/pipp/docs/pipp.pod trunk/languages/pipp/src/common/guts.pir trunk/runtime/parrot/library/Data/Dumper/Default.pir Log: Applying patch submitted by Geraud Continsouzas in https://trac.parrot.org/parrot/ticket/135 (plus one small fix to CREDITS). Modified: trunk/CREDITS == --- trunk/CREDITS (original) +++ trunk/CREDITS Wed Jan 7 05:09:43 2009 @@ -1,4 +1,5 @@ =pod + # $Id$ Following in the steps of other open source projects that Modified: trunk/compilers/pirc/src/bcgen.c == --- trunk/compilers/pirc/src/bcgen.c(original) +++ trunk/compilers/pirc/src/bcgen.cWed Jan 7 05:09:43 2009 @@ -227,7 +227,7 @@ /* -static void +=item C Perform a sanity check on a requested constant. The constant at index C @@ -384,7 +384,7 @@ /* -void +=item C Add an annotation for the bytecode at C, having a key C, Modified: trunk/compilers/pirc/src/pirpcc.c == --- trunk/compilers/pirc/src/pirpcc.c (original) +++ trunk/compilers/pirc/src/pirpcc.c Wed Jan 7 05:09:43 2009 @@ -15,8 +15,6 @@ =head1 FUNCTIONS -=over 4 - */ #include "pirpcc.h" @@ -31,6 +29,8 @@ /* +=over 4 + =item C Modified: trunk/docs/vtables.pod == --- trunk/docs/vtables.pod (original) +++ trunk/docs/vtables.pod Wed Jan 7 05:09:43 2009 @@ -82,7 +82,7 @@ This will produce a skeleton PMC file (to be preprocessed into ordinary C code by the F program) with stubs for all the methods -you need to fill in. N to fill in. Your PMC isn't going to want to support all these methods, and in many cases you may want to fall back to default behavior instead of implementing a dummy method.> The function C allows you to @@ -310,3 +310,5 @@ See the POD documentation in F for a list of useful keywords that you may use in the .pmc file. + +=cut Modified: trunk/languages/perl6/src/classes/Abstraction.pir == --- trunk/languages/perl6/src/classes/Abstraction.pir (original) +++ trunk/languages/perl6/src/classes/Abstraction.pir Wed Jan 7 05:09:43 2009 @@ -15,10 +15,6 @@ abstraction = '!keyword_role'('Abstraction') .end -=back - -=cut - # Local Variables: # mode: pir # fill-column: 100 Modified: trunk/languages/perl6/src/classes/Callable.pir == --- trunk/languages/perl6/src/classes/Callable.pir (original) +++ trunk/languages/perl6/src/classes/Callable.pir Wed Jan 7 05:09:43 2009 @@ -15,10 +15,6 @@ callable = '!keyword_role'('Callable') .end -=back - -=cut - # Local Variables: # mode: pir # fill-column: 100 Modified: trunk/languages/perl6/src/classes/IO.pir == --- trunk/languages/perl6/src/classes/IO.pir(original) +++ trunk/languages/perl6/src/classes/IO.pirWed Jan 7 05:09:43 2009 @@ -244,6 +244,8 @@ =head2 Coercion methods +=over 4 + =item Scalar Return the value inside this container in item context. Modified: trunk/languages/perl6/src/classes/Mapping.pir == --- trunk/languages/perl6/src/classes/Mapping.pir (original) +++ trunk/languages/perl6/src/classes/Mapping.pir Wed Jan 7 05:09:43 2009 @@ -310,6 +310,7 @@ .return (rv) .end +=back =head2 Private methods Modified: trunk/languages/pipp/docs/pipp.pod == --- trunk/languages/pipp/docs/pipp.pod (original) +++ trunk/languages/pipp/docs/pipp.pod Wed Jan 7 05:09:43 2009 @@ -29,14 +29,12 @@ =item No old style constructors, where the constructor is named after the class. -=cut +=back =head1 Implementation Pipp is based on the Parrot Compiler Toolkit. -=back - =head1 Status No current status available. Modified: trunk/languages/pipp/src/common/guts.pir == --- trunk/languages/pipp/src/common/guts.pir(original) +++ trunk/languages/pipp/src/common/guts.pirWed Jan 7 05:09:43 2009 @@ -57,7 +57,7 @@ .include 'except_types
[svn:parrot] r35023 - trunk/tools/dev
Author: jkeenan Date: Tue Jan 6 04:31:18 2009 New Revision: 35023 Removed: trunk/tools/dev/src-t.sh Log: Removed per discussion in http://rt.perl.org/rt3/Ticket/Display.html?id=41912.
[svn:parrot] r35012 - in trunk: . examples/pir lib/Parrot runtime/parrot/include t/examples
Author: jkeenan Date: Mon Jan 5 16:37:40 2009 New Revision: 35012 Added: trunk/examples/pir/hello-dwim.pir - copied unchanged from r34950, /trunk/examples/pir/hello-dwim.pir trunk/runtime/parrot/include/DWIM.pir - copied unchanged from r34950, /trunk/runtime/parrot/include/DWIM.pir Modified: trunk/MANIFEST trunk/lib/Parrot/Manifest.pm trunk/t/examples/pir.t Log: Revert r34951, restoring DWIM.pir and associated test. Cf.: https://trac.parrot.org/parrot/ticket/120. Modified: trunk/MANIFEST == --- trunk/MANIFEST (original) +++ trunk/MANIFEST Mon Jan 5 16:37:40 2009 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Mon Jan 5 00:44:31 2009 UT +# generated by tools/dev/mk_manifest_and_skip.pl Tue Jan 6 00:35:09 2009 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -715,6 +715,7 @@ examples/pir/euclid.pir [main]doc examples/pir/genprog.bas[main]doc examples/pir/hanoi.pir [main]doc +examples/pir/hello-dwim.pir [main]doc examples/pir/io.pir [main]doc examples/pir/levenshtein.pir[main]doc examples/pir/life.pir [main]doc @@ -2809,6 +2810,7 @@ parrot.spec [] parrotbug [] runtime/parrot/dynext/README[devel]doc +runtime/parrot/include/DWIM.pir [devel]doc runtime/parrot/include/README [devel]doc runtime/parrot/include/fp_equality.pasm [library] runtime/parrot/include/hllmacros.pir[library] @@ -3798,6 +3800,7 @@ tools/util/gen_release_info.pl [] tools/util/ncidef2pasm.pl [] tools/util/parrot-config.pir[] +tools/util/perlcritic-cage.conf [] tools/util/perlcritic.conf [] tools/util/perltidy.conf[] tools/util/pgegrep [] Modified: trunk/lib/Parrot/Manifest.pm == --- trunk/lib/Parrot/Manifest.pm(original) +++ trunk/lib/Parrot/Manifest.pmMon Jan 5 16:37:40 2009 @@ -170,6 +170,7 @@ examples/sdl/raw_pixels.pir [devel] languages/t/harness [] runtime/parrot/dynext/README[devel]doc +runtime/parrot/include/DWIM.pir [devel]doc runtime/parrot/include/README [devel]doc src/call_list.txt [devel]doc src/ops/ops.num [devel] Modified: trunk/t/examples/pir.t == --- trunk/t/examples/pir.t (original) +++ trunk/t/examples/pir.t Mon Jan 5 16:37:40 2009 @@ -305,6 +305,7 @@ { local $TODO = 'some examples not testable yet'; +fail('hello-dwim.pir'); fail('queens_r.pir'); fail('thr_primes.pir'); }
[svn:parrot] r34952 - trunk/config/init
Author: jkeenan Date: Sun Jan 4 17:49:53 2009 New Revision: 34952 Modified: trunk/config/init/defaults.pm Log: Restore assignment of empty string to 'cygchkdll' so that that attribute is not seen as undefined by genfile() call in config step gen::makefiles. Modified: trunk/config/init/defaults.pm == --- trunk/config/init/defaults.pm (original) +++ trunk/config/init/defaults.pm Sun Jan 4 17:49:53 2009 @@ -200,6 +200,9 @@ make_set_make => $Config{make_set_make}, make_and => '&&', +# for cygwin +cygchkdll => '', + # make_c: Command to emulate GNU make's C<-C directory> option: chdir # to C before executing $(MAKE) make_c => '$(PERL) -e \'chdir shift @ARGV; system q{$(MAKE)}, @ARGV; exit $$? >> 8;\'',
[svn:parrot] r34951 - in trunk: . examples/pir lib/Parrot runtime/parrot/include t/examples
Author: jkeenan Date: Sun Jan 4 17:01:14 2009 New Revision: 34951 Removed: trunk/examples/pir/hello-dwim.pir trunk/runtime/parrot/include/DWIM.pir Modified: trunk/MANIFEST trunk/lib/Parrot/Manifest.pm trunk/t/examples/pir.t Log: Remove dwim.pir example. Cf.: https://trac.parrot.org/parrot/ticket/120. Modified: trunk/MANIFEST == --- trunk/MANIFEST (original) +++ trunk/MANIFEST Sun Jan 4 17:01:14 2009 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Mon Jan 5 00:08:40 2009 UT +# generated by tools/dev/mk_manifest_and_skip.pl Mon Jan 5 00:44:31 2009 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -715,7 +715,6 @@ examples/pir/euclid.pir [main]doc examples/pir/genprog.bas[main]doc examples/pir/hanoi.pir [main]doc -examples/pir/hello-dwim.pir [main]doc examples/pir/io.pir [main]doc examples/pir/levenshtein.pir[main]doc examples/pir/life.pir [main]doc @@ -2810,7 +2809,6 @@ parrot.spec [] parrotbug [] runtime/parrot/dynext/README[devel]doc -runtime/parrot/include/DWIM.pir [devel]doc runtime/parrot/include/README [devel]doc runtime/parrot/include/fp_equality.pasm [library] runtime/parrot/include/hllmacros.pir[library] Modified: trunk/lib/Parrot/Manifest.pm == --- trunk/lib/Parrot/Manifest.pm(original) +++ trunk/lib/Parrot/Manifest.pmSun Jan 4 17:01:14 2009 @@ -170,7 +170,6 @@ examples/sdl/raw_pixels.pir [devel] languages/t/harness [] runtime/parrot/dynext/README[devel]doc -runtime/parrot/include/DWIM.pir [devel]doc runtime/parrot/include/README [devel]doc src/call_list.txt [devel]doc src/ops/ops.num [devel] Modified: trunk/t/examples/pir.t == --- trunk/t/examples/pir.t (original) +++ trunk/t/examples/pir.t Sun Jan 4 17:01:14 2009 @@ -305,7 +305,6 @@ { local $TODO = 'some examples not testable yet'; -fail('hello-dwim.pir'); fail('queens_r.pir'); fail('thr_primes.pir'); }
[svn:parrot] r34948 - in trunk: . t/postconfigure
Author: jkeenan Date: Sun Jan 4 16:10:06 2009 New Revision: 34948 Added: trunk/t/postconfigure/02-data_get_PConfig.t - copied unchanged from r34947, /trunk/t/postconfigure/02-data_slurp.t trunk/t/postconfigure/06-data_get_PConfig_Temp.t - copied unchanged from r34947, /trunk/t/postconfigure/06-data_slurp_temp.t Removed: trunk/t/postconfigure/02-data_slurp.t trunk/t/postconfigure/06-data_slurp_temp.t Modified: trunk/MANIFEST Log: Change names of two postconfiguration test files to correspond to changes in names of Parrot::Configure::Data methods. Modified: trunk/MANIFEST == --- trunk/MANIFEST (original) +++ trunk/MANIFEST Sun Jan 4 16:10:06 2009 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools\dev\mk_manifest_and_skip.pl Sun Jan 4 16:05:50 2009 UT +# generated by tools/dev/mk_manifest_and_skip.pl Mon Jan 5 00:08:40 2009 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -3601,9 +3601,9 @@ t/pmc/unmanagedstruct.t [] t/pmc/vtablecache.t [] t/postconfigure/01-options.t[] -t/postconfigure/02-data_slurp.t [] +t/postconfigure/02-data_get_PConfig.t [] t/postconfigure/05-trace.t [] -t/postconfigure/06-data_slurp_temp.t[] +t/postconfigure/06-data_get_PConfig_Temp.t [] t/run/README[] t/run/exit.t[] t/run/options.t []
[svn:parrot] r34947 - in trunk: lib/Parrot/Configure t/configure t/postconfigure tools/dev
Author: jkeenan Date: Sun Jan 4 16:07:29 2009 New Revision: 34947 Modified: trunk/lib/Parrot/Configure/Data.pm trunk/t/configure/004-configure.t trunk/t/postconfigure/02-data_slurp.t trunk/t/postconfigure/06-data_slurp_temp.t trunk/tools/dev/reconfigure.pl Log: Change names of two Parrot::Configure::Data methods to reduce the number of subroutines named '*slurp*'. Cf.: https://trac.parrot.org/parrot/ticket/117. Modified: trunk/lib/Parrot/Configure/Data.pm == --- trunk/lib/Parrot/Configure/Data.pm (original) +++ trunk/lib/Parrot/Configure/Data.pm Sun Jan 4 16:07:29 2009 @@ -236,7 +236,7 @@ return keys %{ $self->{c} }; } -=item * C +=item * C =over 4 @@ -256,7 +256,7 @@ =cut -sub slurp { +sub get_PConfig { my $self = shift; my $res = eval <{c} = $res; } -=item * C +=item * C =over 4 @@ -292,7 +292,7 @@ =cut -sub slurp_temp { +sub get_PConfig_Temp { my $self = shift; my $res = eval <data()->slurp(); }; +eval { $conf->data()->get_PConfig(); }; like( $@, qr/You cannot use --step until you have completed the full configure process/, -"Got expected error message for --step option and slurp() without prior configuration" +"Got expected error message for --step option and get_PConfig() without prior configuration" ); } @@ -95,17 +95,17 @@ SKIP: { my $reason = <data()->slurp_temp(); }; +eval { $conf->data()->get_PConfig_Temp(); }; like( $@, qr/You cannot use --step until you have completed the full configure process/, -"Got expected error message for --step option and slurp_temp() without prior configuration" +"Got expected error message for --step option and get_PConfig_Temp() without prior configuration" ); } Modified: trunk/t/postconfigure/02-data_slurp.t == --- trunk/t/postconfigure/02-data_slurp.t (original) +++ trunk/t/postconfigure/02-data_slurp.t Sun Jan 4 16:07:29 2009 @@ -1,7 +1,7 @@ #! perl # Copyright (C) 2007, The Perl Foundation. # $Id$ -# 02-data_slurp.t +# 02-data_get_PConfig.t use strict; use warnings; @@ -81,15 +81,15 @@ SKIP: { my $reason = <data()->slurp(); }; -ok( ( defined $@ ) && ( !$@ ), "Parrot::Configure::slurp() succeeded" ); +eval { $conf->data()->get_PConfig(); }; +ok( ( defined $@ ) && ( !$@ ), "Parrot::Configure::get_PConfig() succeeded" ); my $rv; my $stdout; capture ( sub {$rv = $conf->run_single_step( $args->{step})}, \$stdout ); @@ -102,11 +102,11 @@ =head1 NAME -02-data_slurp.t - test Parrot::Configure::Data::slurp() once configuration has been completed +02-data_get_PConfig.t - test Parrot::Configure::Data::get_PConfig() once configuration has been completed =head1 SYNOPSIS -% prove t/postconfigure/02-data_slurp.t +% prove t/postconfigure/02-data_get_PConfig.t =head1 DESCRIPTION @@ -117,7 +117,7 @@ when your Parrot filesystem is in a "pre-F, post-F" state. The tests in this file mimic the functionality of F -and test C. What is 'slurped' here is an +and test C. What is 'slurped' here is an already created C<%Parrot::Config::PConfig>. =head1 AUTHOR Modified: trunk/t/postconfigure/06-data_slurp_temp.t == --- trunk/t/postconfigure/06-data_slurp_temp.t (original) +++ trunk/t/postconfigure/06-data_slurp_temp.t Sun Jan 4 16:07:29 2009 @@ -1,7 +1,7 @@ #! perl # Copyright (C) 2007, The Perl Foundation. # $Id$ -# 06-data_slurp_temp.t +# 06-data_get_PConfig_Temp.t use strict; use warnings; @@ -83,18 +83,18 @@ SKIP: { my $reason = <data()->slurp(); }; -ok( ( defined $@ ) && ( !$@ ), "Parrot::Configure::slurp() succeeded" ); +eval { $conf->data()->get_PConfig(); }; +ok( ( defined $@ ) && ( !$@ ), "Parrot::Configure::get_PConfig() succeeded" ); -eval { $conf->data()->slurp_temp(); }; -ok( ( defined $@ ) && ( !$@ ), "Parrot::Configure::slurp_temp() succeeded" ); +eval { $conf->data()->get_PConfig_Temp(); }; +ok( ( defined $@ ) && ( !$@ ), "Parrot::Configure::get_PConfig_Temp() succeeded" ); my $rv; my $stdout; capture ( sub {$rv = $conf->run_single_step( $args->{step}) }, \$stdout); @@ -107,11 +107,11 @@ =head1 NAME -06-data_slurp_temp.t - test Parrot::Configure::Data::slurp() once configuration has been completed +06-data_get_PConfig_Temp.t - test Parrot::Configure::Data::get_PConfig_Temp() once configuration has been completed =head1 SYNOPSIS -% prove t/postconfigure/06-dat
[svn:parrot] r34938 - branches/pdd30install_stage3/t/pmc
Author: jkeenan Date: Sun Jan 4 13:09:27 2009 New Revision: 34938 Modified: branches/pdd30install_stage3/t/pmc/key.t Log: Correct number of tests in plan. Modified: branches/pdd30install_stage3/t/pmc/key.t == --- branches/pdd30install_stage3/t/pmc/key.t(original) +++ branches/pdd30install_stage3/t/pmc/key.tSun Jan 4 13:09:27 2009 @@ -19,7 +19,7 @@ .sub main :main .include 'include/test_more.pir' -plan(7) +plan(6) traverse_key_chain() extract_int_from_string_keys()
[svn:parrot] r34937 - trunk/lib/Parrot
Author: jkeenan Date: Sun Jan 4 12:50:59 2009 New Revision: 34937 Modified: trunk/lib/Parrot/Distribution.pm Log: Restore POD for slurp() method. Modified: trunk/lib/Parrot/Distribution.pm == --- trunk/lib/Parrot/Distribution.pm(original) +++ trunk/lib/Parrot/Distribution.pmSun Jan 4 12:50:59 2009 @@ -784,6 +784,12 @@ }; } +=item C + +Returns the text of the file at the given path + +=cut + sub slurp { my $self = shift; my $path = shift;
[svn:parrot] r34936 - trunk/lib/Parrot
Author: jkeenan Date: Sun Jan 4 12:48:46 2009 New Revision: 34936 Modified: trunk/lib/Parrot/Distribution.pm Log: Restore slurp() method. Modified: trunk/lib/Parrot/Distribution.pm == --- trunk/lib/Parrot/Distribution.pm(original) +++ trunk/lib/Parrot/Distribution.pmSun Jan 4 12:48:46 2009 @@ -34,6 +34,8 @@ use ExtUtils::Manifest; use File::Spec; +use lib qw( lib ); +use Parrot::BuildUtil (); use base 'Parrot::Docs::Directory'; @@ -782,6 +784,23 @@ }; } +sub slurp { +my $self = shift; +my $path = shift; +my $buf; + +# slurp in the file +open( my $fh, '<', $path ) +or die "Cannot open '$path' for reading: $!\n"; +{ +local $/; +$buf = <$fh>; +} +close $fh; + +return $buf; +} + 1; # Local Variables:
[svn:parrot] r34929 - trunk/lib/Parrot/Configure
Author: jkeenan Date: Sun Jan 4 11:17:18 2009 New Revision: 34929 Modified: trunk/lib/Parrot/Configure/Utils.pm Log: Alias _slurp to Parrot::BuildUtil::slurp_file() per https://trac.parrot.org/parrot/ticket/117. Modified: trunk/lib/Parrot/Configure/Utils.pm == --- trunk/lib/Parrot/Configure/Utils.pm (original) +++ trunk/lib/Parrot/Configure/Utils.pm Sun Jan 4 11:17:18 2009 @@ -33,6 +33,7 @@ use File::Spec; use File::Which; use lib ("lib"); +use Parrot::BuildUtil (); our @EXPORT= (); our @EXPORT_OK = qw( prompt copy_if_diff move_if_diff integrate @@ -295,19 +296,12 @@ =item C<_slurp($filename)> -Slurps C<$filename> into memory and returns it as a string. +Slurps C<$filename> into memory and returns it as a string. This is just an +alias for C. =cut -sub _slurp { -my $filename = shift; - -open( my $fh, '<', $filename ) or die "Can't open $filename: $!"; -my $text = do { local $/; <$fh> }; -close($fh) or die "Can't close $filename: $!"; - -return $text; -} +*_slurp = \&Parrot::BuildUtil::slurp_file; =back
[svn:parrot] r34920 - trunk/lib/Parrot
Author: jkeenan Date: Sun Jan 4 07:09:11 2009 New Revision: 34920 Modified: trunk/lib/Parrot/Distribution.pm trunk/lib/Parrot/Test.pm Log: 1. Alias Parrot::Test::slurp_file() to Parrot::BuildUtil::slurp_file(). 2. Delete Parrot::Distribution::slurp(). Function was never used. If needed, use Parrot::Configure::Utils::_slurp(). Cf.: https://trac.parrot.org/parrot/ticket/117. Modified: trunk/lib/Parrot/Distribution.pm == --- trunk/lib/Parrot/Distribution.pm(original) +++ trunk/lib/Parrot/Distribution.pmSun Jan 4 07:09:11 2009 @@ -779,29 +779,6 @@ }; } -=item C - -Returns the text of the file at the given path - -=cut - -sub slurp { -my $self = shift; -my $path = shift; -my $buf; - -# slurp in the file -open( my $fh, '<', $path ) -or die "Cannot open '$path' for reading: $!\n"; -{ -local $/; -$buf = <$fh>; -} -close $fh; - -return $buf; -} - 1; # Local Variables: Modified: trunk/lib/Parrot/Test.pm == --- trunk/lib/Parrot/Test.pm(original) +++ trunk/lib/Parrot/Test.pmSun Jan 4 07:09:11 2009 @@ -225,7 +225,8 @@ =item C -Read the whole file $file_name and return the content as a string. +Read the whole file $file_name and return the content as a string. This is +just an alias for C. =item C @@ -266,6 +267,8 @@ use File::Basename; use Memoize (); +use lib qw( lib ); +use Parrot::BuildUtil (); use Parrot::Config; require Exporter; @@ -384,22 +387,10 @@ return; } -# We can inherit from Test::More, so we do it. +# We can inherit from other modules, so we do so. *plan = \&Test::More::plan; *skip = \&Test::More::skip; - -# What about File::Slurp? -sub slurp_file { -my ($file_name) = @_; - -open( my $SLURP, '<', $file_name ) or die "open '$file_name': $!"; -local $/ = undef; -my $file = <$SLURP> . ''; -$file=~ s/\cM\cJ/\n/g; -close $SLURP; - -return $file; -} +*slurp_file = \&Parrot::BuildUtil::slurp_file; sub convert_line_endings { my ($text) = @_;
[svn:parrot] r34909 - trunk/t/examples
Author: jkeenan Date: Sat Jan 3 20:17:47 2009 New Revision: 34909 Modified: trunk/t/examples/shootout.t Log: Deleted '[TODO]' from POD because it was erroneously suggesting there were open TODO items in this test. The deleted word was simply part of the name of an RT ticket, long closed. Modified: trunk/t/examples/shootout.t == --- trunk/t/examples/shootout.t (original) +++ trunk/t/examples/shootout.t Sat Jan 3 20:17:47 2009 @@ -45,7 +45,7 @@ =head1 SEE ALSO -#40064: [TODO] shootout example testing in Parrot RT +#40064: shootout example testing in Parrot RT L<"https://rt.perl.org/rt3/Public/Bug/Display.html?id=40064";>
[svn:parrot] r34908 - trunk/t/tools/ops2pm
Author: jkeenan Date: Sat Jan 3 19:59:40 2009 New Revision: 34908 Modified: trunk/t/tools/ops2pm/06-load_op_map_files.t Log: Delete 2 items for TODO section in POD, as testing is covering them. Modified: trunk/t/tools/ops2pm/06-load_op_map_files.t == --- trunk/t/tools/ops2pm/06-load_op_map_files.t (original) +++ trunk/t/tools/ops2pm/06-load_op_map_files.t Sat Jan 3 19:59:40 2009 @@ -347,24 +347,9 @@ $self->{max_op_num} ||= 0; -Real question: can C<$self->{max_op_num}> ever be C, C<0> -or empty string? - -=item * - -Can these C statements be provoked? - -if ( exists $self->{optable}->{$name} ) { -die "duplicate opcode $name and $number"; -} - -=item * - -Can this C statement be provoked? - -if ( exists $self->{optable}->{$name} ) { -die "skipped opcode is also in $num_file"; -} +Real questions: Can C<$self->{max_op_num}> ever be C, C<0> +or empty string? Is there any place prior to this where +C<$self->{max_op_num}> can be assigned to? =back
[svn:parrot] r34907 - trunk/t/tools/ops2pm
Author: jkeenan Date: Sat Jan 3 19:44:41 2009 New Revision: 34907 Modified: trunk/t/tools/ops2pm/04-prepare_ops.t Log: Change TODO heading in POD to COMMENT and explain why we don't really need to do what TODO was suggesting. Modified: trunk/t/tools/ops2pm/04-prepare_ops.t == --- trunk/t/tools/ops2pm/04-prepare_ops.t (original) +++ trunk/t/tools/ops2pm/04-prepare_ops.t Sat Jan 3 19:44:41 2009 @@ -256,7 +256,7 @@ F<04-prepare_ops.t> tests whether C works properly. -=head1 TODO +=head1 COMMENT The following statements and branches in C are as yet uncovered: @@ -270,6 +270,10 @@ die "$self->{script}: Could not read ops file '$self->{file}'!\n" unless defined $ops; +Probably not, because the existence of C<$self->{file} has already been +checked. But it never hurts to check whether a constructor has returned a +defined value. + =item * Can I provoke this C message? @@ -278,6 +282,8 @@ die "$self->{script}: Could not read ops file '$f'!\n" unless defined $temp_ops; +Probably not, for same reason as above. + =back =head1 AUTHOR
[svn:parrot] r34905 - in trunk: . compilers/pirc compilers/pirc/new compilers/pirc/src config/gen/makefiles docs/pdds/draft lib/Parrot t/codingstd
Author: jkeenan Date: Sat Jan 3 16:22:40 2009 New Revision: 34905 Added: trunk/compilers/pirc/src/ - copied from r34904, /trunk/compilers/pirc/new/ Removed: trunk/compilers/pirc/new/ Modified: trunk/MANIFEST trunk/compilers/pirc/README.pod trunk/compilers/pirc/src/hdocprep.c trunk/compilers/pirc/src/pirlexer.c trunk/compilers/pirc/src/pirlexer.h trunk/compilers/pirc/src/pirsymbol.c trunk/config/gen/makefiles/pirc.in trunk/lib/Parrot/Distribution.pm trunk/t/codingstd/linelength.t Changes in other areas also in this revision: Modified: trunk/docs/pdds/draft/pdd06_pasm.pod Log: Change directory compilers/pirc/new/ to compilers/pirc/src, and edit references to this directory in other files. Cf.: https://trac.parrot.org/parrot/ticket/70. Modified: trunk/MANIFEST == --- trunk/MANIFEST (original) +++ trunk/MANIFEST Sat Jan 3 16:22:40 2009 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Fri Jan 2 18:21:30 2009 UT +# generated by tools/dev/mk_manifest_and_skip.pl Sat Jan 3 23:56:06 2009 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -158,39 +158,39 @@ compilers/pirc/macro/macrolexer.h [] compilers/pirc/macro/macroparser.c [] compilers/pirc/macro/macroparser.h [] -compilers/pirc/new/bcgen.c [] -compilers/pirc/new/bcgen.h [] -compilers/pirc/new/hdocprep.c [] -compilers/pirc/new/hdocprep.l [] -compilers/pirc/new/main.c [] -compilers/pirc/new/pir.l[] -compilers/pirc/new/pir.y[] -compilers/pirc/new/pircapi.c[] -compilers/pirc/new/pircapi.h[] -compilers/pirc/new/pircompiler.c[] -compilers/pirc/new/pircompiler.h[] -compilers/pirc/new/pircompunit.c[] -compilers/pirc/new/pircompunit.h[] -compilers/pirc/new/pirdefines.h [] -compilers/pirc/new/piremit.c[] -compilers/pirc/new/piremit.h[] -compilers/pirc/new/pirerr.c [] -compilers/pirc/new/pirerr.h [] -compilers/pirc/new/pirheredoc.h [] -compilers/pirc/new/pirlexer.c [] -compilers/pirc/new/pirlexer.h [] -compilers/pirc/new/pirmacro.c [] -compilers/pirc/new/pirmacro.h [] -compilers/pirc/new/pirparser.c [] -compilers/pirc/new/pirparser.h [] -compilers/pirc/new/pirpcc.c [] -compilers/pirc/new/pirpcc.h [] -compilers/pirc/new/pirregalloc.c[] -compilers/pirc/new/pirregalloc.h[] -compilers/pirc/new/pirsymbol.c [] -compilers/pirc/new/pirsymbol.h [] -compilers/pirc/new/piryy.h [] compilers/pirc/pirc.c [] +compilers/pirc/src/bcgen.c [] +compilers/pirc/src/bcgen.h [] +compilers/pirc/src/hdocprep.c [] +compilers/pirc/src/hdocprep.l [] +compilers/pirc/src/main.c [] +compilers/pirc/src/pir.l[] +compilers/pirc/src/pir.y[] +compilers/pirc/src/pircapi.c[] +compilers/pirc/src/pircapi.h[] +compilers/pirc/src/pircompiler.c[] +compilers/pirc/src/pircompiler.h[] +compilers/pirc/src/pircompunit.c[] +compilers/pirc/src/pircompunit.h[] +compilers/pirc/src/pirdefines.h [] +compilers/pirc/src/piremit.c[] +compilers/pirc/src/piremit.h[] +compilers/pirc/src/pirerr.c [] +compilers/pirc/src/pirerr.h [] +compilers/pirc/src/pirheredoc.h [] +compilers/pirc/src/pirlexer.c [] +compilers/pirc/src/pirlexer.h [] +compilers/pirc/src/pirmacro.c
[svn:parrot] r34895 - trunk/src/jit/ppc
Author: jkeenan Date: Sat Jan 3 10:24:32 2009 New Revision: 34895 Modified: trunk/src/jit/ppc/exec_dep.h Log: Run 'make headerizer' on Darwin/PPC to capture recent changes, particularly ASSERT_ARGS. Modified: trunk/src/jit/ppc/exec_dep.h == --- trunk/src/jit/ppc/exec_dep.h(original) +++ trunk/src/jit/ppc/exec_dep.hSat Jan 3 10:24:32 2009 @@ -20,19 +20,31 @@ #define PARROT_PPC_EXEC_DEP_H_GUARD /* HEADERIZER BEGIN: src/exec_dep.c */ +/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ -void -Parrot_exec_normal_op(Parrot_jit_info_t *jit_info, PARROT_INTERP); - -void -Parrot_exec_cpcf_op(Parrot_jit_info_t *jit_info, PARROT_INTERP); - -void -Parrot_exec_restart_op(Parrot_jit_info_t *jit_info, PARROT_INTERP); - -void -offset_fixup(Parrot_exec_objfile_t *obj); - +void offset_fixup(Parrot_exec_objfile_t *obj); +void Parrot_exec_cpcf_op(Parrot_jit_info_t *jit_info, PARROT_INTERP) +__attribute__nonnull__(2); + +void Parrot_exec_normal_op(Parrot_jit_info_t *jit_info, PARROT_INTERP) +__attribute__nonnull__(2); + +void Parrot_exec_normal_op(Parrot_jit_info_t *jit_info, PARROT_INTERP) +__attribute__nonnull__(2); + +void Parrot_exec_restart_op(Parrot_jit_info_t *jit_info, PARROT_INTERP) +__attribute__nonnull__(2); + +#define ASSERT_ARGS_offset_fixup __attribute__unused__ int _ASSERT_ARGS_CHECK = 0 +#define ASSERT_ARGS_Parrot_exec_cpcf_op __attribute__unused__ int _ASSERT_ARGS_CHECK = \ + PARROT_ASSERT_ARG(interp) +#define ASSERT_ARGS_Parrot_exec_normal_op __attribute__unused__ int _ASSERT_ARGS_CHECK = \ + PARROT_ASSERT_ARG(interp) +#define ASSERT_ARGS_Parrot_exec_normal_op __attribute__unused__ int _ASSERT_ARGS_CHECK = \ + PARROT_ASSERT_ARG(interp) +#define ASSERT_ARGS_Parrot_exec_restart_op __attribute__unused__ int _ASSERT_ARGS_CHECK = \ + PARROT_ASSERT_ARG(interp) +/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: src/exec_dep.c */ #endif /* PARROT_PPC_EXEC_DEP_H_GUARD */
[svn:parrot] r34848 - in branches/assert_args: compilers/imcc src
Author: jkeenan Date: Fri Jan 2 20:32:24 2009 New Revision: 34848 Modified: branches/assert_args/compilers/imcc/debug.c branches/assert_args/compilers/imcc/imcc.y branches/assert_args/src/oo.c Log: Add ASSERT_ARGS() to each function. Modified: branches/assert_args/compilers/imcc/debug.c == --- branches/assert_args/compilers/imcc/debug.c (original) +++ branches/assert_args/compilers/imcc/debug.c Fri Jan 2 20:32:24 2009 @@ -45,6 +45,7 @@ IMCC_fatal(PARROT_INTERP, SHIM(int code), ARGIN(const char *fmt), ...) { va_list ap; +ASSERT_ARGS(IMCC_fatal); va_start(ap, fmt); IMCC_INFO(interp)->error_message = Parrot_vsprintf_c(interp, fmt, ap); @@ -68,6 +69,7 @@ IMCC_fataly(PARROT_INTERP, SHIM(int code), ARGIN(const char *fmt), ...) { va_list ap; +ASSERT_ARGS(IMCC_fataly); va_start(ap, fmt); IMCC_INFO(interp)->error_message = Parrot_vsprintf_c(interp, fmt, ap); @@ -92,6 +94,7 @@ IMCC_fatal_standalone(PARROT_INTERP, int code, ARGIN(const char *fmt), ...) { va_list ap; +ASSERT_ARGS(IMCC_fatal_standalone); va_start(ap, fmt); imcc_vfprintf(interp, Parrot_io_STDERR(interp), fmt, ap); @@ -117,6 +120,7 @@ { va_list ap; +ASSERT_ARGS(IMCC_fataly_standalone); va_start(ap, fmt); fprintf(stderr, "error:imcc:"); @@ -142,6 +146,7 @@ IMCC_warning(PARROT_INTERP, ARGIN(const char *fmt), ...) { va_list ap; +ASSERT_ARGS(IMCC_warning); if (IMCC_INFO(interp)->imcc_warn) return; @@ -166,6 +171,7 @@ IMCC_info(PARROT_INTERP, int level, ARGIN(const char *fmt), ...) { va_list ap; +ASSERT_ARGS(IMCC_info); if (level > IMCC_INFO(interp)->verbose) return; @@ -190,6 +196,7 @@ IMCC_debug(PARROT_INTERP, int level, ARGIN(const char *fmt), ...) { va_list ap; +ASSERT_ARGS(IMCC_debug); if (!(level & IMCC_INFO(interp)->debug)) return; @@ -213,6 +220,7 @@ { const Instruction *ins; intpc; +ASSERT_ARGS(dump_instructions); Parrot_io_fprintf(interp, Parrot_io_STDERR(interp), "\nDumping the instructions status:" @@ -257,6 +265,7 @@ { unsigned int i; Edge *e; +ASSERT_ARGS(dump_cfg); fprintf(stderr, "\nDumping the CFG:\n---\n"); for (i = 0; i < unit->n_basic_blocks; i++) { @@ -296,6 +305,7 @@ { int i; Loop_info ** loop_info = unit->loop_info; +ASSERT_ARGS(dump_loops); fprintf(stderr, "Loop info\n-\n"); for (i = 0; i < unit->n_loops; i++) { @@ -342,6 +352,7 @@ { const SymHash * const hsh = &unit->hash; unsigned int i; +ASSERT_ARGS(dump_labels); fprintf(stderr, "Labels\n"); fprintf(stderr, "name\tpos\tlast ref\n" @@ -375,6 +386,7 @@ { unsigned int i; SymReg ** const reglist = unit->reglist; +ASSERT_ARGS(dump_symreg); if (!reglist) return; @@ -423,6 +435,7 @@ { unsigned int i; SymReg ** const reglist = unit->reglist; +ASSERT_ARGS(dump_liveness_status); fprintf(stderr, "\nSymbols:\n--\n"); @@ -449,6 +462,7 @@ void dump_liveness_status_var(ARGIN(const IMC_Unit *unit), ARGIN(const SymReg* r)) { +ASSERT_ARGS(dump_liveness_status_var); fprintf(stderr, "\nSymbol %s:", r->name); if (r->life_info) { unsigned int i; @@ -500,6 +514,7 @@ int x; SymReg** const reglist = unit->reglist; const int n_symbols = unit->n_symbols; +ASSERT_ARGS(dump_interference_graph); fprintf(stderr, "\nDumping the Interf. graph:" "\n---\n"); @@ -537,6 +552,7 @@ dump_dominators(ARGIN(const IMC_Unit *unit)) { unsigned int i; +ASSERT_ARGS(dump_dominators); fprintf(stderr, "\nDumping the Dominators Tree:" "\n---\n"); @@ -571,6 +587,7 @@ dump_dominance_frontiers(ARGIN(const IMC_Unit *unit)) { unsigned int i; +ASSERT_ARGS(dump_dominance_frontiers); fprintf(stderr, "\nDumping the Dominance Frontiers:" "\n---\n"); Modified: branches/assert_args/compilers/imcc/imcc.y == --- branches/assert_args/compilers/imcc/imcc.y (original) +++ branches/assert_args/compilers/imcc/imcc.y Fri Jan 2 20:32:24 2009 @@ -329,6 +329,7 @@ va_list ap; SymReg *r[IMCC_MAX_FIX_REGS]; int i; +ASSERT_ARGS(MK_I); for (p = opname, q = fmt; *q && *q != ' ';) *p++ = *q++; @@ -499,6 +500,7 @@ { Instruction * const ins = _mk_instruction("", "%s:", 1,
[svn:parrot] r34847 - branches/assert_args/src
Author: jkeenan Date: Fri Jan 2 20:06:00 2009 New Revision: 34847 Modified: branches/assert_args/src/oo.c Log: Add ASSERT_ARGS() to each function. Modified: branches/assert_args/src/oo.c == --- branches/assert_args/src/oo.c (original) +++ branches/assert_args/src/oo.c Fri Jan 2 20:06:00 2009 @@ -94,6 +94,7 @@ Parrot_oo_extract_methods_from_namespace(PARROT_INTERP, ARGIN(PMC *self), ARGIN(PMC *ns)) { PMC *methods, *vtable_overrides; + ASSERT_ARGS(Parrot_oo_extract_methods_from_namespace); /* Pull in methods from the namespace, if any. */ if (PMC_IS_NULL(ns)) @@ -157,6 +158,7 @@ { Parrot_Class_attributes * const _class = PARROT_CLASS(classobj); PMC * const _namespace = _class->_namespace; + ASSERT_ARGS(Parrot_oo_get_namespace); if (PMC_IS_NULL(_namespace)) return PMCNULL; @@ -182,6 +184,7 @@ Parrot_oo_get_class(PARROT_INTERP, ARGIN(PMC *key)) { PMC *classobj = PMCNULL; +ASSERT_ARGS(Parrot_oo_get_class); if (PObj_is_class_TEST(key)) classobj = key; @@ -249,6 +252,7 @@ PMC * const ns = Parrot_get_namespace_keyed_str(interp, hll_ns, name); PMC * const _class = PMC_IS_NULL(ns) ? PMCNULL : VTABLE_get_class(interp, ns); +ASSERT_ARGS(Parrot_oo_get_class_str); /* Look up a low-level class and create a proxy */ if (PMC_IS_NULL(_class)) { @@ -286,6 +290,7 @@ PMC * const namearg = pmc_new(interp, enum_class_String); PMC*namehash = pmc_new(interp, enum_class_Hash); PMC*classobj; +ASSERT_ARGS(Parrot_oo_newclass_from_str); VTABLE_set_string_native(interp, namearg, name); VTABLE_set_pmc_keyed_str(interp, namehash, CONST_STRING(interp, "name"), namearg); @@ -314,6 +319,7 @@ ARGIN(PMC *classobj), ARGIN(STRING *name)) { Parrot_Class_attributes *class_info; +ASSERT_ARGS(Parrot_oo_find_vtable_override_for_class); PARROT_ASSERT(PObj_is_class_TEST(classobj)); class_info = PARROT_CLASS(classobj); @@ -339,6 +345,7 @@ ARGIN(PMC *classobj), ARGIN(STRING *name)) { Parrot_Class_attributes * const _class = PARROT_CLASS(classobj); +ASSERT_ARGS(Parrot_oo_find_vtable_override); if (VTABLE_exists_keyed_str(interp, _class->parent_overrides, name)) return VTABLE_get_pmc_keyed_str(interp, _class->parent_overrides, name); @@ -386,6 +393,7 @@ /* some of the first "slots" don't have names. skip 'em. */ INTVAL low = PARROT_VTABLE_LOW; INTVAL high = NUM_VTABLE_FUNCTIONS + PARROT_VTABLE_LOW; +ASSERT_ARGS(Parrot_get_vtable_index); while (low < high) { const INTVAL mid= (low + high) / 2; @@ -427,6 +435,7 @@ const char* Parrot_MMD_method_name(SHIM_INTERP, INTVAL idx) { +ASSERT_ARGS(Parrot_MMD_method_name); PARROT_ASSERT(idx >= 0); if (idx >= MMD_USER_FIRST) @@ -455,6 +464,7 @@ { const INTVAL type = pmc_type(interp, class_name); PMC *pmc; +ASSERT_ARGS(Parrot_class_lookup); if (type <= 0) return PMCNULL; @@ -483,6 +493,7 @@ { const INTVAL type = pmc_type_p(interp, class_name); PMC *pmc; +ASSERT_ARGS(Parrot_class_lookup_p); if (type <= 0) return PMCNULL; @@ -510,6 +521,7 @@ fail_if_type_exists(PARROT_INTERP, ARGIN(PMC *name)) { PMC * const value = (PMC *)VTABLE_get_pointer_keyed(interp, interp->class_hash, name); +ASSERT_ARGS(fail_if_type_exists); if (PMC_IS_NULL(value)) return 0; @@ -556,6 +568,7 @@ { INTVAL type; const INTVAL typeid_exists = fail_if_type_exists(interp, name); +ASSERT_ARGS(Parrot_oo_register_type); PMC *classobj = VTABLE_get_class(interp, namespace); if (!PMC_IS_NULL(classobj)) { @@ -604,6 +617,7 @@ Parrot_remove_parent(PARROT_INTERP, ARGIN(PMC *removed_class), ARGIN(PMC *existing_class)) { +ASSERT_ARGS(Parrot_remove_parent); UNUSED(interp); UNUSED(removed_class); UNUSED(existing_class); @@ -632,6 +646,7 @@ { Caches * const mc = interp->caches; UINTVAL type, entry; +ASSERT_ARGS(mark_object_cache); if (!mc) return; @@ -665,6 +680,7 @@ init_object_cache(PARROT_INTERP) { Caches * const mc = interp->caches = mem_allocate_zeroed_typed(Caches); +ASSERT_ARGS(init_object_cache); mc->idx = NULL; } @@ -684,6 +700,7 @@ { UINTVAL i; Caches * const mc = interp->caches; +ASSERT_ARGS(destroy_object_cache); /* mc->idx[type][bits] = e; */ for (i = 0; i < mc->mc_size; i++) { @@ -711,6 +728,7 @@ { Caches * const mc = interp->caches; INTVAL i; +ASSERT_ARGS(invalidate_type_caches); if (!mc) return; @@ -747,6 +765,7 @@ invalidate_all_caches(PARROT_INTERP) { UINTVAL
[svn:parrot] r34846 - in branches/assert_args: compilers/imcc src
Author: jkeenan Date: Fri Jan 2 19:47:29 2009 New Revision: 34846 Modified: branches/assert_args/compilers/imcc/sets.c branches/assert_args/src/charset.c branches/assert_args/src/embed.c branches/assert_args/src/inter_run.c branches/assert_args/src/pbc_merge.c branches/assert_args/src/pic.c Log: Fix positioning of ASSERT_ARGS() to be below last variable declaration in a given subroutine; avoid C90 warnings. Modified: branches/assert_args/compilers/imcc/sets.c == --- branches/assert_args/compilers/imcc/sets.c (original) +++ branches/assert_args/compilers/imcc/sets.c Fri Jan 2 19:47:29 2009 @@ -51,8 +51,8 @@ Set* set_make(unsigned int length) { -ASSERT_ARGS(set_make); Set * const s = mem_allocate_zeroed_typed(Set); +ASSERT_ARGS(set_make); s->length = length; s->bmp= mem_allocate_n_zeroed_typed(NUM_BYTES(length), unsigned char); @@ -76,9 +76,9 @@ Set* set_make_full(unsigned int length) { -ASSERT_ARGS(set_make_full); Set * const s = set_make(length); const size_t bytes = NUM_BYTES(length); +ASSERT_ARGS(set_make_full); if (bytes) memset(s->bmp, 0xff, bytes); @@ -141,8 +141,8 @@ Set* set_copy(ARGIN(const Set *s)) { -ASSERT_ARGS(set_copy); Set * const d = set_make(s->length); +ASSERT_ARGS(set_copy); memcpy(d->bmp, s->bmp, NUM_BYTES(d->length)); return d; @@ -166,8 +166,8 @@ set_equal(ARGIN(const Set *s1), ARGIN(const Set *s2)) { int mask; -ASSERT_ARGS(set_equal); const size_t bytes = s1->length / 8; +ASSERT_ARGS(set_equal); if (s1->length != s2->length) fatal(1, "set_equal", "Sets don't have the same length\n"); @@ -201,9 +201,9 @@ void set_add(ARGMOD(Set *s), unsigned int element) { -ASSERT_ARGS(set_add); const int elem_byte_in_set = BYTE_IN_SET(element); const int bytes_in_set = BYTE_IN_SET(s->length); +ASSERT_ARGS(set_add); if (bytes_in_set < elem_byte_in_set) { s->bmp = (unsigned char *)mem_sys_realloc_zeroed(s->bmp, @@ -302,8 +302,8 @@ set_union(ARGIN(const Set *s1), ARGIN(const Set *s2)) { unsigned int i; -ASSERT_ARGS(set_union); Set * const s = set_make(s1->length); +ASSERT_ARGS(set_union); if (s1->length != s2->length) fatal(1, "set_union", "Sets don't have the same length\n"); @@ -335,8 +335,8 @@ set_intersec(ARGIN(const Set *s1), ARGIN(const Set *s2)) { unsigned int i; -ASSERT_ARGS(set_intersec); Set * const s = set_make(s1->length); +ASSERT_ARGS(set_intersec); if (s1->length != s2->length) fatal(1, "set_intersec", "Sets don't have the same length\n"); Modified: branches/assert_args/src/charset.c == --- branches/assert_args/src/charset.c (original) +++ branches/assert_args/src/charset.c Fri Jan 2 19:47:29 2009 @@ -116,8 +116,8 @@ Parrot_charsets_encodings_deinit(SHIM_INTERP) { int i; -ASSERT_ARGS(Parrot_charsets_encodings_deinit); const int n = all_charsets->n_charsets; +ASSERT_ARGS(Parrot_charsets_encodings_deinit); for (i = 0; i < n; ++i) { if (all_charsets->set[i].n_converters) @@ -148,8 +148,8 @@ Parrot_find_charset(SHIM_INTERP, ARGIN(const char *charsetname)) { int i; -ASSERT_ARGS(Parrot_find_charset); const int n = all_charsets->n_charsets; +ASSERT_ARGS(Parrot_find_charset); for (i = 0; i < n; ++i) { if (STREQ(all_charsets->set[i].charset->name, charsetname)) { @@ -198,8 +198,8 @@ Parrot_charset_number(PARROT_INTERP, ARGIN(const STRING *charsetname)) { int i; -ASSERT_ARGS(Parrot_charset_number); const int n = all_charsets->n_charsets; +ASSERT_ARGS(Parrot_charset_number); for (i = 0; i < n; ++i) { if (!string_equal(interp, all_charsets->set[i].name, charsetname)) @@ -224,8 +224,8 @@ Parrot_charset_number_of_str(SHIM_INTERP, ARGIN(const STRING *src)) { int i; -ASSERT_ARGS(Parrot_charset_number_of_str); const int n = all_charsets->n_charsets; +ASSERT_ARGS(Parrot_charset_number_of_str); for (i = 0; i < n; ++i) { if (src->charset == all_charsets->set[i].charset) @@ -319,8 +319,8 @@ ARGIN(CHARSET *charset)) { int i; -ASSERT_ARGS(register_charset); const int n = all_charsets->n_charsets; +ASSERT_ARGS(register_charset); for (i = 0; i < n; ++i) { if (STREQ(all_charsets->set[i].charset->name, charsetname)) @@ -528,8 +528,8 @@ ARGIN(const CHARSET *lhs), ARGIN(const CHARSET *rhs)) { int i; -ASSERT_ARGS(Parrot_find_charset_converter); c
[svn:parrot] r34803 - branches/assert_args/src
Author: jkeenan Date: Fri Jan 2 05:05:54 2009 New Revision: 34803 Modified: branches/assert_args/src/pic.c Log: Adding ASSERT_ARGS() to all functions in src/pic.c; storing tested results. Modified: branches/assert_args/src/pic.c == --- branches/assert_args/src/pic.c (original) +++ branches/assert_args/src/pic.c Fri Jan 2 05:05:54 2009 @@ -251,6 +251,7 @@ { Parrot_PIC_store *store; size_t size; +ASSERT_ARGS(parrot_PIC_alloc_store); /* * estimated 95% of calls are monomorphic, 5% are polymorphic @@ -286,6 +287,7 @@ void parrot_PIC_destroy(ARGMOD(PackFile_ByteCode *cs)) { +ASSERT_ARGS(parrot_PIC_destroy); Parrot_PIC_store *store = cs->pic_store; while (store) { @@ -311,6 +313,7 @@ int parrot_PIC_op_is_cached(int op_code) { +ASSERT_ARGS(parrot_PIC_op_is_cached); switch (op_code) { case PARROT_OP_get_params_pc: case PARROT_OP_set_returns_pc: @@ -337,6 +340,7 @@ Parrot_MIC* parrot_PIC_alloc_mic(const PARROT_INTERP, size_t n) { +ASSERT_ARGS(parrot_PIC_alloc_mic); Parrot_PIC_store * const store = interp->code->pic_store; PARROT_ASSERT(n < store->n_mics); return store->mic + n; @@ -358,6 +362,7 @@ Parrot_PIC* parrot_PIC_alloc_pic(PARROT_INTERP) { +ASSERT_ARGS(parrot_PIC_alloc_pic); Parrot_PIC_store *store = interp->code->pic_store; Parrot_PIC_store *new_store; @@ -402,6 +407,7 @@ void * parrot_pic_opcode(PARROT_INTERP, INTVAL op) { +ASSERT_ARGS(parrot_pic_opcode); #ifdef HAVE_COMPUTED_GOTO op_lib_t *cg_lib; #endif @@ -432,6 +438,7 @@ ARGIN(const void **src), ARGOUT(char *dest_base), ARGIN(void * const *dest)) { int i; +ASSERT_ARGS(pass_int); int n = SIG_ELEMS(sig); for (i = 2; n; ++i, --n) { @@ -456,6 +463,7 @@ ARGIN(const void **src), ARGOUT(char *dest_base), ARGIN(void * const *dest)) { int i; +ASSERT_ARGS(pass_num); int n = SIG_ELEMS(sig); for (i = 2; n; ++i, --n) { @@ -480,6 +488,7 @@ ARGIN(const void **src), ARGOUT(char *dest_base), ARGIN(void * const *dest)) { int i; +ASSERT_ARGS(pass_str); int n = SIG_ELEMS(sig); for (i = 2; n; ++i, --n) { @@ -504,8 +513,9 @@ pass_pmc(SHIM_INTERP, ARGIN(const PMC *sig), ARGIN(const char *src_base), ARGIN(const void **src), ARGOUT(char *dest_base), ARGIN(void * const *dest)) { -int n = SIG_ELEMS(sig); int i; +ASSERT_ARGS(pass_pmc); +int n = SIG_ELEMS(sig); for (i = 2; n; ++i, --n) { PMC * const arg = *(PMC* const *)(src_base + ((const opcode_t*)src)[i]); @@ -528,9 +538,10 @@ pass_mixed(PARROT_INTERP, ARGIN(const PMC *sig), ARGIN(const char *src_base), ARGIN(void * const *src), ARGOUT(char *dest_base), ARGIN(void * const *dest)) { -int n = SIG_ELEMS(sig); int i; INTVAL *bitp; +ASSERT_ARGS(pass_mixed); +int n = SIG_ELEMS(sig); ASSERT_SIG_PMC(sig); bitp = SIG_ARRAY(sig); @@ -616,6 +627,7 @@ { int i, n, t0; +ASSERT_ARGS(parrot_pic_check_sig); ASSERT_SIG_PMC(sig1); ASSERT_SIG_PMC(sig2); @@ -680,6 +692,7 @@ static int is_pic_param(PARROT_INTERP, ARGIN(void **pc), ARGOUT(Parrot_MIC *mic), opcode_t op) { +ASSERT_ARGS(is_pic_param); PMC *sig2; Parrot_Context*caller_ctx; opcode_t *args; @@ -781,6 +794,7 @@ * pc is at set_args */ +ASSERT_ARGS(is_pic_func); PMC *sub, *sig_results; opcode_t *op, n; int flags; @@ -839,6 +853,7 @@ void parrot_PIC_prederef(PARROT_INTERP, opcode_t op, ARGOUT(void **pc_pred), int core) { +ASSERT_ARGS(parrot_PIC_prederef); op_func_t * const prederef_op_func = interp->op_lib->op_func_table; opcode_t * const cur_opcode = (opcode_t *)pc_pred; Parrot_MIC *mic = NULL; @@ -900,6 +915,7 @@ static void parrot_pic_move(PARROT_INTERP, ARGMOD(Parrot_MIC *mic)) { +ASSERT_ARGS(parrot_pic_move); /* MIC slot is empty - use it */ if (!mic->lru.u.type) return;
[svn:parrot] r34785 - branches/assert_args/src
Author: jkeenan Date: Thu Jan 1 20:03:24 2009 New Revision: 34785 Modified: branches/assert_args/src/pbc_merge.c Log: Adding ASSERT_ARGS() to all functions in src/pbc_merge.c; storing tested results. Modified: branches/assert_args/src/pbc_merge.c == --- branches/assert_args/src/pbc_merge.c(original) +++ branches/assert_args/src/pbc_merge.cThu Jan 1 20:03:24 2009 @@ -233,6 +233,7 @@ INTVAL program_size, wanted; char *program_code; PackFile *pf; +ASSERT_ARGS(pbc_merge_loadpbc); FILE * io = NULL; INTVAL is_mapped = 0; size_t chunk_size; @@ -321,9 +322,10 @@ pbc_merge_bytecode(PARROT_INTERP, ARGMOD(pbc_merge_input **inputs), int num_inputs, ARGMOD(PackFile *pf)) { +int i; +ASSERT_ARGS(pbc_merge_bytecode); opcode_t *bc = mem_allocate_typed(opcode_t); opcode_t cursor = 0; -int i; /* Add a bytecode segment. */ PackFile_ByteCode * const bc_seg = @@ -385,9 +387,10 @@ pbc_merge_constants(PARROT_INTERP, ARGMOD(pbc_merge_input **inputs), int num_inputs, ARGMOD(PackFile *pf), ARGMOD(PackFile_ByteCode *bc)) { +int i, j; +ASSERT_ARGS(pbc_merge_constants); PackFile_Constant **constants = mem_allocate_typed(PackFile_Constant *); opcode_t cursor = 0; -int i, j; /* Add a constant table segment. */ PackFile_ConstTable * const const_seg = (PackFile_ConstTable*)PackFile_Segment_new_seg( @@ -480,10 +483,11 @@ pbc_merge_fixups(PARROT_INTERP, ARGIN(pbc_merge_input **inputs), int num_inputs, ARGMOD(PackFile *pf), ARGMOD(PackFile_ByteCode *bc)) { +int i, j; +ASSERT_ARGS(pbc_merge_fixups); PackFile_FixupTable *fixup_seg; PackFile_FixupEntry **fixups = mem_allocate_typed(PackFile_FixupEntry *); opcode_t cursor = 0; -int i, j; /* Add a fixup table segment. */ fixup_seg = (PackFile_FixupTable*)PackFile_Segment_new_seg( @@ -575,13 +579,14 @@ pbc_merge_debugs(PARROT_INTERP, ARGMOD(pbc_merge_input **inputs), int num_inputs, ARGMOD(PackFile *pf), ARGMOD(PackFile_ByteCode *bc)) { +int i, j; +ASSERT_ARGS(pbc_merge_debugs); PackFile_Debug *debug_seg; opcode_t *lines = mem_allocate_typed(opcode_t); PackFile_DebugMapping **mappings = mem_allocate_typed(PackFile_DebugMapping *); opcode_t num_mappings = 0; opcode_t num_lines= 0; -int i, j; /* We need to merge both the mappings and the list of line numbers. The line numbers can just be concatenated. The mappings must have @@ -648,6 +653,7 @@ int i; PackFile_Segment *pic_index; size_t size; +ASSERT_ARGS(pbc_merge_pic_index); opcode_t cursor = 0; opcode_t start = 0; opcode_t last = 0; @@ -697,11 +703,12 @@ pbc_merge_ctpointers(PARROT_INTERP, ARGMOD(pbc_merge_input **inputs), int num_inputs, ARGMOD(PackFile_ByteCode *bc)) { +intcur_arg; opcode_t *op_ptr; +ASSERT_ARGS(pbc_merge_ctpointers); opcode_t *ops = bc->base.data; opcode_t cur_op= 0; intcur_input = 0; -intcur_arg; /* Loop over the ops in the merged bytecode. */ while (cur_op < (opcode_t)bc->base.size) { @@ -781,6 +788,7 @@ { PackFile_ByteCode *bc; PackFile_ConstTable *ct; +ASSERT_ARGS(pbc_merge_begin); /* Create a new empty packfile. */ PackFile * const merged = PackFile_new(interp, 0); @@ -819,6 +827,7 @@ static void pbc_merge_write(PARROT_INTERP, ARGMOD(PackFile *pf), ARGIN(const char *filename)) { +ASSERT_ARGS(pbc_merge_write); FILE *fp; /* Get size of packfile we'll write. */
[svn:parrot] r34782 - branches/assert_args/src
Author: jkeenan Date: Thu Jan 1 19:41:11 2009 New Revision: 34782 Modified: branches/assert_args/src/charset.c Log: Adding ASSERT_ARGS() to all functions in src/charset.c; storing tested results. Modified: branches/assert_args/src/charset.c == --- branches/assert_args/src/charset.c (original) +++ branches/assert_args/src/charset.c Thu Jan 1 19:41:11 2009 @@ -96,6 +96,7 @@ CHARSET * Parrot_new_charset(SHIM_INTERP) { +ASSERT_ARGS(Parrot_new_charset); return mem_allocate_typed(CHARSET); } @@ -114,8 +115,9 @@ void Parrot_charsets_encodings_deinit(SHIM_INTERP) { -const int n = all_charsets->n_charsets; int i; +ASSERT_ARGS(Parrot_charsets_encodings_deinit); +const int n = all_charsets->n_charsets; for (i = 0; i < n; ++i) { if (all_charsets->set[i].n_converters) @@ -146,6 +148,7 @@ Parrot_find_charset(SHIM_INTERP, ARGIN(const char *charsetname)) { int i; +ASSERT_ARGS(Parrot_find_charset); const int n = all_charsets->n_charsets; for (i = 0; i < n; ++i) { @@ -172,6 +175,7 @@ CHARSET * Parrot_load_charset(PARROT_INTERP, ARGIN(const char *charsetname)) { +ASSERT_ARGS(Parrot_load_charset); UNUSED(charsetname); Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED, @@ -193,8 +197,9 @@ INTVAL Parrot_charset_number(PARROT_INTERP, ARGIN(const STRING *charsetname)) { -const int n = all_charsets->n_charsets; int i; +ASSERT_ARGS(Parrot_charset_number); +const int n = all_charsets->n_charsets; for (i = 0; i < n; ++i) { if (!string_equal(interp, all_charsets->set[i].name, charsetname)) @@ -219,6 +224,7 @@ Parrot_charset_number_of_str(SHIM_INTERP, ARGIN(const STRING *src)) { int i; +ASSERT_ARGS(Parrot_charset_number_of_str); const int n = all_charsets->n_charsets; for (i = 0; i < n; ++i) { @@ -245,6 +251,7 @@ STRING* Parrot_charset_name(SHIM_INTERP, INTVAL number_of_charset) { +ASSERT_ARGS(Parrot_charset_name); if (number_of_charset < 0 || number_of_charset >= all_charsets->n_charsets) return NULL; return all_charsets->set[number_of_charset].name; @@ -266,6 +273,7 @@ const CHARSET * Parrot_get_charset(SHIM_INTERP, INTVAL number_of_charset) { +ASSERT_ARGS(Parrot_get_charset); if (number_of_charset < 0 || number_of_charset >= all_charsets->n_charsets) return NULL; return all_charsets->set[number_of_charset].charset; @@ -288,6 +296,7 @@ const char * Parrot_charset_c_name(SHIM_INTERP, INTVAL number_of_charset) { +ASSERT_ARGS(Parrot_charset_c_name); if (number_of_charset < 0 || number_of_charset >= all_charsets->n_charsets) return NULL; return all_charsets->set[number_of_charset].charset->name; @@ -309,8 +318,9 @@ register_charset(PARROT_INTERP, ARGIN(const char *charsetname), ARGIN(CHARSET *charset)) { -const int n = all_charsets->n_charsets; int i; +ASSERT_ARGS(register_charset); +const int n = all_charsets->n_charsets; for (i = 0; i < n; ++i) { if (STREQ(all_charsets->set[i].charset->name, charsetname)) @@ -352,6 +362,7 @@ static void register_static_converters(PARROT_INTERP) { +ASSERT_ARGS(register_static_converters); Parrot_register_charset_converter(interp, Parrot_iso_8859_1_charset_ptr, Parrot_ascii_charset_ptr, charset_cvt_iso_8859_1_to_ascii); @@ -391,6 +402,7 @@ Parrot_register_charset(PARROT_INTERP, ARGIN(const char *charsetname), ARGIN(CHARSET *charset)) { +ASSERT_ARGS(Parrot_register_charset); if (!all_charsets) { all_charsets = mem_allocate_typed(All_charsets); all_charsets->n_charsets = 0; @@ -433,6 +445,7 @@ void Parrot_charsets_encodings_init(PARROT_INTERP) { +ASSERT_ARGS(Parrot_charsets_encodings_init); /* the order is crucial here: * 1) encodings, default = fixed_8 * 2) charsets default = ascii @@ -472,6 +485,7 @@ Parrot_make_default_charset(SHIM_INTERP, SHIM(const char *charsetname), ARGIN(CHARSET *charset)) { +ASSERT_ARGS(Parrot_make_default_charset); Parrot_default_charset_ptr = charset; return 1; } @@ -492,6 +506,7 @@ const CHARSET * Parrot_default_charset(SHIM_INTERP) { +ASSERT_ARGS(Parrot_default_charset); return Parrot_default_charset_ptr; } @@ -513,6 +528,7 @@ ARGIN(const CHARSET *lhs), ARGIN(const CHARSET *rhs)) { int i; +ASSERT_ARGS(Parrot_find_charset_converter); const int n = all_charsets->n_charsets; for (i = 0; i < n; ++i) { @@ -546,8 +562,9 @@ ARGIN(const CHARSET *lhs), ARGIN(CHARSET *rhs), ARGIN(charset_converter_t func)) { -const int n = all_charsets->n_charsets; int i; +ASSERT_ARGS(Parrot_register_charset_converter); +con
[svn:parrot] r34781 - branches/assert_args/src
Author: jkeenan Date: Thu Jan 1 19:07:50 2009 New Revision: 34781 Modified: branches/assert_args/src/inter_run.c Log: Adding ASSERT_ARGS() to all functions in src/inter_run.c; storing tested results. Modified: branches/assert_args/src/inter_run.c == --- branches/assert_args/src/inter_run.c(original) +++ branches/assert_args/src/inter_run.cThu Jan 1 19:07:50 2009 @@ -64,6 +64,7 @@ void runops(PARROT_INTERP, size_t offs) { +ASSERT_ARGS(runops); volatile size_t offset= offs; constintold_runloop_id= interp->current_runloop_id; constintour_runloop_level = ++interp->current_runloop_level; @@ -138,6 +139,7 @@ { opcode_t offset, *dest; Parrot_Context *ctx; +ASSERT_ARGS(Parrot_runops_fromc); /* we need one return continuation with a NULL offset */ PMC * const ret_c= new_ret_continuation_pmc(interp, NULL); @@ -195,6 +197,7 @@ char new_sig[10]; const char *sig_p; +ASSERT_ARGS(runops_args); Parrot_Context * const old_ctx = CONTEXT(interp); interp->current_cont = new_ret_continuation_pmc(interp, NULL); @@ -269,6 +272,7 @@ Parrot_Context *ctx; opcode_t offset, *dest; +ASSERT_ARGS(Parrot_run_meth_fromc); interp->current_cont = new_ret_continuation_pmc(interp, NULL); interp->current_object = obj; dest = VTABLE_invoke(interp, sub, (void *)1); @@ -304,6 +308,7 @@ va_list args; Parrot_Context *ctx; PMC *retval; +ASSERT_ARGS(Parrot_runops_fromc_args); va_start(args, sig); ctx = runops_args(interp, sub, PMCNULL, NULL, sig, args); @@ -335,6 +340,7 @@ va_list args; Parrot_Context *ctx; void *retval; +ASSERT_ARGS(Parrot_runops_fromc_args_event); /* * running code from event handlers isn't fully reentrant due to * these interpreter variables - mainly related to calls @@ -379,6 +385,7 @@ va_list args; Parrot_Context *ctx; INTVAL retval; +ASSERT_ARGS(Parrot_runops_fromc_args_reti); va_start(args, sig); ctx = runops_args(interp, sub, PMCNULL, NULL, sig, args); @@ -409,6 +416,7 @@ va_list args; Parrot_Context *ctx; FLOATVAL retval; +ASSERT_ARGS(Parrot_runops_fromc_args_retf); va_start(args, sig); ctx = runops_args(interp, sub, PMCNULL, NULL, sig, args); @@ -440,6 +448,7 @@ va_list args; Parrot_Context *ctx; void* retval; +ASSERT_ARGS(Parrot_run_meth_fromc_args); va_start(args, sig); ctx = runops_args(interp, sub, obj, meth, sig, args); @@ -470,6 +479,7 @@ va_list args; Parrot_Context *ctx; INTVAL retval; +ASSERT_ARGS(Parrot_run_meth_fromc_args_reti); va_start(args, sig); ctx = runops_args(interp, sub, obj, meth, sig, args); @@ -500,6 +510,7 @@ va_list args; Parrot_Context *ctx; FLOATVAL retval; +ASSERT_ARGS(Parrot_run_meth_fromc_args_retf); va_start(args, sig); ctx = runops_args(interp, sub, obj, meth, sig, args); @@ -529,6 +540,7 @@ ARGIN(const char *sig), va_list args) { void* retval; +ASSERT_ARGS(Parrot_runops_fromc_arglist); Parrot_Context * const ctx = runops_args(interp, sub, PMCNULL, NULL, sig, args); retval = set_retval(interp, *sig, ctx); @@ -555,6 +567,7 @@ ARGIN(const char *sig), va_list args) { INTVAL retval; +ASSERT_ARGS(Parrot_runops_fromc_arglist_reti); Parrot_Context * const ctx = runops_args(interp, sub, PMCNULL, NULL, sig, args); retval = set_retval_i(interp, *sig, ctx); @@ -581,6 +594,7 @@ ARGIN(const char *sig), va_list args) { FLOATVAL retval; +ASSERT_ARGS(Parrot_runops_fromc_arglist_retf); Parrot_Context * const ctx = runops_args(interp, sub, PMCNULL, NULL, sig, args); retval = set_retval_f(interp, *sig, ctx); @@ -609,6 +623,7 @@ { Parrot_Context *ctx; void* retval; +ASSERT_ARGS(Parrot_run_meth_fromc_arglist); ctx = runops_args(interp, sub, obj, meth, sig, args); retval = set_retval(interp, *sig, ctx); @@ -637,6 +652,7 @@ ARGIN(STRING *meth), ARGIN(const char *sig), va_list args) { INTVAL retval; +ASSERT_ARGS(Parrot_run_meth_fromc_arglist_reti); Parrot_Context * const ctx = runops_args(interp, sub, obj, meth, sig, args); retval = set_retval_i(interp, *sig, ctx); @@ -664,6 +680,7 @@ ARGIN(STRING *meth), ARGIN(const char *sig), va_list args) { FLOATVAL retval; +ASSERT_ARGS(Parrot_run_meth_fromc_arglist_retf); Parrot_Context * const ctx = runops_args(interp, sub, obj, meth, sig, args); retval = set_retval_f(interp, *sig, ctx); @@ -693,6 +710,7 @@ new_runloop_jump_point(PARROT_INTERP) { Parrot_runloop *jump_point; +ASSERT_ARGS(new_runloop_jump_point); if (interp->runloop_jmp_free_list) { jump_point
[svn:parrot] r34780 - branches/assert_args/src
Author: jkeenan Date: Thu Jan 1 18:40:36 2009 New Revision: 34780 Modified: branches/assert_args/src/embed.c Log: Adding ASSERT_ARGS() to one functions in src/embed.c; storing tested results. Modified: branches/assert_args/src/embed.c == --- branches/assert_args/src/embed.c(original) +++ branches/assert_args/src/embed.cThu Jan 1 18:40:36 2009 @@ -836,6 +836,7 @@ { opcode_t i; PMC *sub_pmc; +ASSERT_ARGS(set_current_sub); PackFile_ByteCode * const cur_cs = interp->code; PackFile_FixupTable * const ft = cur_cs->fixups;
[svn:parrot] r34779 - branches/assert_args/src
Author: jkeenan Date: Thu Jan 1 17:38:05 2009 New Revision: 34779 Modified: branches/assert_args/src/exec.c Log: Adding ASSERT_ARGS() to one functions in src/exec.c; running 'make headerizer'; storing tested results. Modified: branches/assert_args/src/exec.c == --- branches/assert_args/src/exec.c (original) +++ branches/assert_args/src/exec.c Thu Jan 1 17:38:05 2009 @@ -366,6 +366,7 @@ symbol_list_find(ARGIN(const Parrot_exec_objfile_t *obj), ARGIN(const char *symbol)) { int i; +ASSERT_ARGS(symbol_list_find); for (i = 0; i < obj->symbol_count; i++) if (STREQ(symbol, obj->symbol_table[i].symbol))
[svn:parrot] r34778 - in branches/assert_args: compilers/imcc include/parrot include/parrot/atomic src
Author: jkeenan Date: Thu Jan 1 17:11:34 2009 New Revision: 34778 Modified: branches/assert_args/compilers/imcc/sets.c branches/assert_args/include/parrot/atomic/gcc_x86.h branches/assert_args/include/parrot/exec.h branches/assert_args/src/exec.c Log: Adding ASSERT_ARGS() to all functions in compilers/imcc/sets.c; running 'make headerizer'; storing tested results. Modified: branches/assert_args/compilers/imcc/sets.c == --- branches/assert_args/compilers/imcc/sets.c (original) +++ branches/assert_args/compilers/imcc/sets.c Thu Jan 1 17:11:34 2009 @@ -51,6 +51,7 @@ Set* set_make(unsigned int length) { +ASSERT_ARGS(set_make); Set * const s = mem_allocate_zeroed_typed(Set); s->length = length; s->bmp= mem_allocate_n_zeroed_typed(NUM_BYTES(length), @@ -75,6 +76,7 @@ Set* set_make_full(unsigned int length) { +ASSERT_ARGS(set_make_full); Set * const s = set_make(length); const size_t bytes = NUM_BYTES(length); @@ -98,6 +100,7 @@ void set_free(ARGMOD(Set *s)) { +ASSERT_ARGS(set_free); if (s->bmp) mem_sys_free(s->bmp); @@ -118,6 +121,7 @@ void set_clear(ARGMOD(Set *s)) { +ASSERT_ARGS(set_clear); memset(s->bmp, 0, NUM_BYTES(s->length)); } @@ -137,6 +141,7 @@ Set* set_copy(ARGIN(const Set *s)) { +ASSERT_ARGS(set_copy); Set * const d = set_make(s->length); memcpy(d->bmp, s->bmp, NUM_BYTES(d->length)); @@ -161,6 +166,7 @@ set_equal(ARGIN(const Set *s1), ARGIN(const Set *s2)) { int mask; +ASSERT_ARGS(set_equal); const size_t bytes = s1->length / 8; if (s1->length != s2->length) @@ -195,6 +201,7 @@ void set_add(ARGMOD(Set *s), unsigned int element) { +ASSERT_ARGS(set_add); const int elem_byte_in_set = BYTE_IN_SET(element); const int bytes_in_set = BYTE_IN_SET(s->length); @@ -295,6 +302,7 @@ set_union(ARGIN(const Set *s1), ARGIN(const Set *s2)) { unsigned int i; +ASSERT_ARGS(set_union); Set * const s = set_make(s1->length); if (s1->length != s2->length) @@ -326,8 +334,9 @@ Set * set_intersec(ARGIN(const Set *s1), ARGIN(const Set *s2)) { -Set * const s = set_make(s1->length); unsigned int i; +ASSERT_ARGS(set_intersec); +Set * const s = set_make(s1->length); if (s1->length != s2->length) fatal(1, "set_intersec", "Sets don't have the same length\n"); @@ -355,6 +364,7 @@ set_intersec_inplace(ARGMOD(Set *s1), ARGIN(const Set *s2)) { unsigned int i; +ASSERT_ARGS(set_intersec_inplace); if (s1->length != s2->length) fatal(1, "set_intersec_inplace", "Sets don't have the same length\n"); Modified: branches/assert_args/include/parrot/atomic/gcc_x86.h == --- branches/assert_args/include/parrot/atomic/gcc_x86.h(original) +++ branches/assert_args/include/parrot/atomic/gcc_x86.hThu Jan 1 17:11:34 2009 @@ -33,6 +33,10 @@ long parrot_i386_xadd(ARGIN(volatile long *l), long amount) __attribute__nonnull__(1); +#define ASSERT_ARGS_parrot_i386_cmpxchg assert(ptr); \ +assert(expect); \ +assert(update); +#define ASSERT_ARGS_parrot_i386_xadd assert(l); /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: src/atomic/gcc_x86.c */ Modified: branches/assert_args/include/parrot/exec.h == --- branches/assert_args/include/parrot/exec.h (original) +++ branches/assert_args/include/parrot/exec.h Thu Jan 1 17:11:34 2009 @@ -149,6 +149,21 @@ __attribute__nonnull__(2) FUNC_MODIFIES(*obj); +#define ASSERT_ARGS_Parrot_exec_add_text_rellocation assert(obj); \ + assert(nptr); \ + assert(symbol); +#define ASSERT_ARGS_Parrot_exec_add_text_rellocation_func assert(obj); \ + assert(nptr); \ + assert(func_name); +#define ASSERT_ARGS_Parrot_exec_add_text_rellocation_reg assert(obj); \ + assert(nptr); \ + assert(var); +#define ASSERT_ARGS_Parrot_exec assert(interp); \ +assert(pc); \ +assert(code_start); \ +assert(code_end); +#define ASSERT_ARGS_Parrot_exec_add_symbol assert(obj); \ + asse
[svn:parrot] r34777 - tags/assert_args-34775
Author: jkeenan Date: Thu Jan 1 16:33:48 2009 New Revision: 34777 Added: tags/assert_args-34775/ - copied from r34776, /trunk/ Log: Tagging trunk at r34775 so that the assert_args can later be synched to it.
[svn:parrot] r34776 - branches/assert_args
Author: jkeenan Date: Thu Jan 1 16:33:44 2009 New Revision: 34776 Added: branches/assert_args/ - copied from r34775, /trunk/ Log: Creating assert_args in https://svn.perl.org/parrot//branches
[svn:parrot] r34724 - in branches/pdd30install_stage3: config/gen t/steps
Author: jkeenan Date: Wed Dec 31 12:54:55 2008 New Revision: 34724 Modified: branches/pdd30install_stage3/config/gen/opengl.pm branches/pdd30install_stage3/t/steps/gen_platform-01.t Log: 1. Update test in t/steps/gen_platform-01.t to reflect fact that _handle_begin_c() now takes \$conf as first argument. 2. gen::opengl needs to import Parrot::BuildUtil::add_to_generated().. Modified: branches/pdd30install_stage3/config/gen/opengl.pm == --- branches/pdd30install_stage3/config/gen/opengl.pm (original) +++ branches/pdd30install_stage3/config/gen/opengl.pm Wed Dec 31 12:54:55 2008 @@ -42,7 +42,7 @@ use base qw(Parrot::Configure::Step); use Parrot::Configure::Utils ':gen'; - +use Parrot::BuildUtil; my @GLUT_1_CALLBACKS = ( [ 'Display', 'void' ], Modified: branches/pdd30install_stage3/t/steps/gen_platform-01.t == --- branches/pdd30install_stage3/t/steps/gen_platform-01.t (original) +++ branches/pdd30install_stage3/t/steps/gen_platform-01.t Wed Dec 31 12:54:55 2008 @@ -181,7 +181,7 @@ my $plat_c = q{src/platform.c}; open my $PLATFORM_C, '>', $plat_c or croak "Unable to open handle for writing"; -$step->_handle_begin_c($platform, $PLATFORM_C); +$step->_handle_begin_c($conf, $platform, $PLATFORM_C); close $PLATFORM_C or croak "Unable to close handle after writing"; my $text = _slurp( $plat_c );
[svn:parrot] r34597 - trunk/lib/Parrot
Author: jkeenan Date: Mon Dec 29 18:54:30 2008 New Revision: 34597 Modified: trunk/lib/Parrot/Test.pm Log: Deleting one inline comment; rejecting http://rt.perl.org/rt3/Ticket/Display.html?id=43751. Modified: trunk/lib/Parrot/Test.pm == --- trunk/lib/Parrot/Test.pm(original) +++ trunk/lib/Parrot/Test.pmMon Dec 29 18:54:30 2008 @@ -571,7 +571,6 @@ my $exec_f = per_test( '_pbcexe', $test_no );# Make cleanup and svn:ignore more simple $exe_f =~ s...@[\\/:]...@$pconfig{slash}@g; -# RT#43751 put this into sub generate_pbc() run_command( qq{$parrot $args -o $pbc_f "$code_f"}, CD => $path_to_parrot,
[svn:parrot] r34589 - branches/pdd30install_stage3
Author: jkeenan Date: Mon Dec 29 11:28:02 2008 New Revision: 34589 Modified: branches/pdd30install_stage3/MANIFEST branches/pdd30install_stage3/MANIFEST.SKIP Log: Update MANIFEST and MANIFEST.SKIP. Modified: branches/pdd30install_stage3/MANIFEST == --- branches/pdd30install_stage3/MANIFEST (original) +++ branches/pdd30install_stage3/MANIFEST Mon Dec 29 11:28:02 2008 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools\dev\mk_manifest_and_skip.pl Wed Dec 3 12:59:07 2008 UT +# generated by tools/dev/mk_manifest_and_skip.pl Mon Dec 29 19:27:00 2008 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -311,6 +311,7 @@ config/auto/pcre/pcre.in[] config/auto/perldoc.pm [] config/auto/pmc.pm [] +config/auto/pod2man.pm [] config/auto/readline.pm [] config/auto/readline/readline.in[] config/auto/revision.pm [] @@ -1095,6 +1096,10 @@ languages/PIR/t/whitespace.t[PIR] languages/WMLScript/CREDITS [WMLScript] languages/WMLScript/MAINTAINER [WMLScript] +languages/WMLScript/WMLScript/wmlsconsole.pir [WMLScript] +languages/WMLScript/WMLScript/wmlsfloat.pir [WMLScript] +languages/WMLScript/WMLScript/wmlslang.pir [WMLScript] +languages/WMLScript/WMLScript/wmlsstring.pir[WMLScript] languages/WMLScript/build/SRM/Register.pm [WMLScript] languages/WMLScript/build/SRM/Stack.pm [WMLScript] languages/WMLScript/build/stdlibs.pl[WMLScript] @@ -1109,10 +1114,6 @@ languages/WMLScript/pmc/wmlsinteger.pmc [WMLScript] languages/WMLScript/pmc/wmlsinvalid.pmc [WMLScript] languages/WMLScript/pmc/wmlsstring.pmc [WMLScript] -languages/WMLScript/WMLScript/wmlsconsole.pir [WMLScript] -languages/WMLScript/WMLScript/wmlsfloat.pir [WMLScript] -languages/WMLScript/WMLScript/wmlslang.pir [WMLScript] -languages/WMLScript/WMLScript/wmlsstring.pir[WMLScript] languages/WMLScript/src/WMLScript.pir [WMLScript] languages/WMLScript/src/script.pir [WMLScript] languages/WMLScript/src/translation.rules [WMLScript] @@ -3638,6 +3639,7 @@ t/steps/auto_pcre-01.t [] t/steps/auto_perldoc-01.t [] t/steps/auto_pmc-01.t [] +t/steps/auto_pod2man-01.t [] t/steps/auto_readline-01.t [] t/steps/auto_readline-02.t [] t/steps/auto_revision-01.t [] @@ -3734,7 +3736,6 @@ t/tools/pmc2cutils/README [] tools/build/addopstags.pl [] tools/build/c2str.pl[] -tools/build/cygchkdll.sh[] tools/build/fixup_gen_file.pl [] tools/build/headerizer.pl [] tools/build/jit2c.pl[] Modified: branches/pdd30install_stage3/MANIFEST.SKIP == --- branches/pdd30install_stage3/MANIFEST.SKIP (original) +++ branches/pdd30install_stage3/MANIFEST.SKIP Mon Dec 29 11:28:02 2008 @@ -1,6 +1,6 @@ # ex: set ro: # $Id$ -# generated by tools\dev\mk_manifest_and_skip.pl Tue Dec 2 10:07:56 2008 UT +# generated by tools/dev/mk_manifest_and_skip.pl Mon Dec 29 19:27:00 2008 UT # # This file should contain a transcript of the svn:ignore properties # of the directories in the Parrot subversion repository. (Needed for @@ -480,6 +480,9 @@ # generated from svn:ignore of 'languages/WMLScript/' ^languages/WMLScript/Makefile$ ^languages/WMLScript/Makefile/ +# generated from svn:ignore of 'languages/WMLScript/WMLScript/' +^languages/WMLScript/WMLScript/.*\.pbc$ +^languages/WMLScript/WMLScript/.*\.pbc/ # generated from svn:ignore of 'languages/WMLScript/ops/' ^languages/WMLScript/ops/.*\.bundle$ ^languages/WMLScript/ops/.*\.bundle/ @@ -512,9 +515,6 @@ ^languages/WMLScript/pmc/.*\.pdb/ ^languages/WMLScript/pmc/.*\.so$ ^languages/WMLScript/pmc/.*\.so/ -# generated from svn:ignore of 'languages/WMLScript/runtime/' -^languages/WMLScript/runtime/.*\.pbc$ -^languages/WMLScript/runtime/.*\.pbc/ #
[svn:parrot] r34542 - in trunk: examples/pir examples/streams examples/tutorial t/examples
Author: jkeenan Date: Sun Dec 28 20:21:37 2008 New Revision: 34542 Modified: trunk/examples/pir/io.pir trunk/examples/pir/uniq.pir trunk/examples/streams/FileLines.pir trunk/examples/streams/ParrotIO.pir trunk/examples/tutorial/40_file_ops.pir trunk/t/examples/streams.t Log: Fix PIR used in 'make examples_tests' to reflect discontinuation of certain open modes. Patch courtesy of Geraud Continsouzas. Modified: trunk/examples/pir/io.pir == --- trunk/examples/pir/io.pir (original) +++ trunk/examples/pir/io.pir Sun Dec 28 20:21:37 2008 @@ -20,7 +20,7 @@ .sub 'example' :main .local string test_fn test_fn = "tmp_example_io.tmp" -$P0 = open test_fn, ">" +$P0 = open test_fn, 'w' seek $P0, 300, 0 # 64bit version of seek with high 32bits = 0 #seek $IO, $P0, 0, 400, 0 @@ -32,7 +32,7 @@ print $P0, "test5\n" close $P0 -$P0 = open test_fn, "<" +$P0 = open test_fn, 'r' $S0 = read $P0, 1024 print $S0 Modified: trunk/examples/pir/uniq.pir == --- trunk/examples/pir/uniq.pir (original) +++ trunk/examples/pir/uniq.pir Sun Dec 28 20:21:37 2008 @@ -84,7 +84,7 @@ $I1 = 1 # count .local pmc in_fh - in_fh = open file_name, "<" + in_fh = open file_name, 'r' unless in_fh, ERR .local string prev_line, curr_line prev_line = readline in_fh Modified: trunk/examples/streams/FileLines.pir == --- trunk/examples/streams/FileLines.pir(original) +++ trunk/examples/streams/FileLines.pirSun Dec 28 20:21:37 2008 @@ -40,7 +40,7 @@ # create a file stream file = new "Stream::ParrotIO" -file."open"( name, "<" ) +file."open"( name, 'r' ) # process it one line per read lines = new "Stream::Lines" Modified: trunk/examples/streams/ParrotIO.pir == --- trunk/examples/streams/ParrotIO.pir (original) +++ trunk/examples/streams/ParrotIO.pir Sun Dec 28 20:21:37 2008 @@ -25,7 +25,7 @@ stream = new "Stream::ParrotIO" # open this file -stream."open"( "examples/streams/ParrotIO.pir", "<" ) +stream."open"( "examples/streams/ParrotIO.pir", 'r' ) # you can specifiy a custom block size with # stream."blockSize"( 10 ) Modified: trunk/examples/tutorial/40_file_ops.pir == --- trunk/examples/tutorial/40_file_ops.pir (original) +++ trunk/examples/tutorial/40_file_ops.pir Sun Dec 28 20:21:37 2008 @@ -7,11 +7,11 @@ .sub main :main .local pmc fileout, filein -fileout = open "40_file_ops_data.txt", ">" +fileout = open "40_file_ops_data.txt", 'w' print fileout, "The quick brown fox jumps over the lazy dog.\n" close fileout -filein = open "40_file_ops_data.txt", "<" +filein = open "40_file_ops_data.txt", 'r' $S0 = readline filein say $S0 close filein Modified: trunk/t/examples/streams.t == --- trunk/t/examples/streams.t (original) +++ trunk/t/examples/streams.t Sun Dec 28 20:21:37 2008 @@ -162,7 +162,7 @@ read:[ 40 ] read:[ 41 # create a file stream] read:[ 42 file = new "Stream::ParrotIO"] -read:[ 43 file."open"( name, "<" )] +read:[ 43 file."open"( name, 'r' )] read:[ 44 ] read:[ 45 # process it one line per read] read:[ 46 lines = new "Stream::Lines"] @@ -245,7 +245,7 @@ read:[de "library/Stream/ParrotIO.pir"\n\n# create the] read:[ ParrotIO stream\nstream = new "Stream::ParrotI] read:[O"\n\n# open this file\nstream."open"( "examp] -read:[les/streams/ParrotIO.pir", "<" )\n\n# you can sp] +read:[les/streams/ParrotIO.pir", 'r' )\n\n# you can sp] read:[ecifiy a custom block size with\n# stream."bloc] read:[kSize"( 10 )\n\n# dump the stream\nstream."du] read:[mp"()\n\nend\n.end\n\n=head1 AUTHOR\n\nJens Rieks E
[svn:parrot] r34497 - trunk/src
Author: jkeenan Date: Sun Dec 28 08:29:21 2008 New Revision: 34497 Modified: trunk/src/jit.c Log: Fix errors in r34490; jimmy++. Modified: trunk/src/jit.c == --- trunk/src/jit.c (original) +++ trunk/src/jit.c Sun Dec 28 08:29:21 2008 @@ -366,7 +366,7 @@ else if (flags & KEY_string_FLAG) typ = 2; -if (n < NUM_REGISTERS & !ru[typ].reg_count[n]++) +if ( ( n < NUM_REGISTERS ) && !ru[typ].reg_count[n]++) ru[typ].reg_dir[n] |= PARROT_ARGDIR_IN; } key = key_next(interp, key);
[svn:parrot] r34493 - in trunk/src: . pmc
Author: jkeenan Date: Sun Dec 28 07:16:46 2008 New Revision: 34493 Modified: trunk/src/jit.c trunk/src/list.c trunk/src/pmc/role.pmc Log: Applying cage-cleaning patch submitted in Trac #95. jimmy++. Modified: trunk/src/jit.c == --- trunk/src/jit.c (original) +++ trunk/src/jit.c Sun Dec 28 07:16:46 2008 @@ -366,10 +366,8 @@ else if (flags & KEY_string_FLAG) typ = 2; -if (n < NUM_REGISTERS) { -if (!ru[typ].reg_count[n]++) -ru[typ].reg_dir[n] |= PARROT_ARGDIR_IN; -} +if (n < NUM_REGISTERS & !ru[typ].reg_count[n]++) +ru[typ].reg_dir[n] |= PARROT_ARGDIR_IN; } key = key_next(interp, key); } Modified: trunk/src/list.c == --- trunk/src/list.c(original) +++ trunk/src/list.cSun Dec 28 07:16:46 2008 @@ -652,30 +652,33 @@ int do_sparse = (INTVAL)idx - (INTVAL)list->cap >= 10 * MAX_ITEMS; if (list->item_type == enum_type_sized) { -items = list->items_per_chunk; -size = items * list->item_size; +do_sparse = 0; +items = list->items_per_chunk; +size = items * list->item_size; + list->grow_policy = items == MAX_ITEMS ? enum_grow_fixed : enum_grow_mixed; -do_sparse = 0; } else if (do_sparse) { PARROT_ASSERT(where); /* don't add sparse chunk at start of list */ if (!list->n_chunks) { -list->grow_policy = enum_grow_fixed; -/* if wee need more, the next allocation will allocate the rest */ -items = MAX_ITEMS; -size = items * list->item_size; do_sparse = 0; +items = MAX_ITEMS; + +/* if we need more, the next allocation will allocate the rest */ +size = items * list->item_size; +list->grow_policy = enum_grow_fixed; } else { +/* allocate a dummy chunk holding many items virtually */ +size = list->item_size; items = idx - list->cap - 1; + /* round down this function will then be called again, to add the * final real chunk, with the rest of the needed size */ items &= ~(MAX_ITEMS - 1); list->grow_policy = enum_grow_mixed; -/* allocate a dummy chunk holding many items virtually */ -size = list->item_size; } } /* initial size for empty lists grow_policy is not yet known or was @@ -752,9 +755,10 @@ if (where) {/* at end */ if (chunk) chunk->next = new_chunk; -list->last = new_chunk; if (!list->first) list->first = new_chunk; + +list->last = new_chunk; } else { new_chunk->next = chunk; Modified: trunk/src/pmc/role.pmc == --- trunk/src/pmc/role.pmc (original) +++ trunk/src/pmc/role.pmc Sun Dec 28 07:16:46 2008 @@ -296,8 +296,8 @@ */ VTABLE void add_attribute(STRING *name, PMC *type) { -Parrot_Role_attributes * const role = PARROT_ROLE(SELF); -PMC * const new_attribute = pmc_new(interp, enum_class_Hash); +Parrot_Role_attributes * const role = PARROT_ROLE(SELF); +PMC * const new_attribute = pmc_new(interp, enum_class_Hash); /* Set name and type. */ VTABLE_set_string_keyed_str(interp, new_attribute, CONST_STRING(interp, "name"), name); @@ -486,7 +486,7 @@ VTABLE STRING *get_string() { Parrot_Role_attributes * const role = PARROT_ROLE(SELF); -PMC * const _namespace = role->_namespace; +PMC * const _namespace = role->_namespace; if (!PMC_IS_NULL(_namespace)) { /* Call the 'get_name' method on the role's associated namespace @@ -586,7 +586,7 @@ METHOD name(STRING *name :optional, int got_name :opt_flag) { Parrot_Role_attributes *role = PARROT_ROLE(SELF); -STRING *ret_name = NULL; +STRING *ret_name = NULL; if (got_name) { /* We'll build a hash just containing the name, then give this to @@ -613,8 +613,8 @@ */ METHOD get_namespace() { -Parrot_Role_attributes *role = PARROT_ROLE(SELF); -PMC *ret_namespace = role->_namespace; +Parrot_Role_attributes *role = PARROT_ROLE(SELF); +PMC *ret_namespace = role->_namespace; RETURN(PMC *ret_namespace); }
[svn:parrot] r34463 - trunk/tools/dev
Author: jkeenan Date: Sat Dec 27 19:06:13 2008 New Revision: 34463 Modified: trunk/tools/dev/vms-patch Log: Add copyright notice and SVN Id tag. Modified: trunk/tools/dev/vms-patch == --- trunk/tools/dev/vms-patch (original) +++ trunk/tools/dev/vms-patch Sat Dec 27 19:06:13 2008 @@ -1,4 +1,6 @@ #!/usr/bin/perl +# Copyright (C) 2004-2008, The Perl Foundation. +# $Id$ # usage: # tools/dev/vms-patch < the_patch | patch -p0
[svn:parrot] r34458 - in trunk/src/jit: alpha amd64 arm hppa i386 ia64 mips ppc skeleton sun4
Author: jkeenan Date: Sat Dec 27 16:00:27 2008 New Revision: 34458 Modified: trunk/src/jit/alpha/jit_defs.c trunk/src/jit/amd64/jit_defs.c trunk/src/jit/arm/jit_defs.c trunk/src/jit/hppa/jit_defs.c trunk/src/jit/i386/jit_defs.c trunk/src/jit/ia64/jit_defs.c trunk/src/jit/mips/jit_defs.c trunk/src/jit/ppc/jit_defs.c trunk/src/jit/skeleton/jit_defs.c trunk/src/jit/sun4/jit_defs.c Log: Add copyright and SVN Id tag. Modified: trunk/src/jit/alpha/jit_defs.c == --- trunk/src/jit/alpha/jit_defs.c (original) +++ trunk/src/jit/alpha/jit_defs.c Sat Dec 27 16:00:27 2008 @@ -1,4 +1,8 @@ /* Stub file for RT#38929 fixes */ +/* +Copyright (C) 2008, The Perl Foundation. +$Id$ +*/ /* HEADERIZER HFILE: none */ /* Modified: trunk/src/jit/amd64/jit_defs.c == --- trunk/src/jit/amd64/jit_defs.c (original) +++ trunk/src/jit/amd64/jit_defs.c Sat Dec 27 16:00:27 2008 @@ -1,3 +1,7 @@ +/* +Copyright (C) 2008, The Perl Foundation. +$Id$ +*/ #include "parrot/parrot.h" #include "jit_emit.h" Modified: trunk/src/jit/arm/jit_defs.c == --- trunk/src/jit/arm/jit_defs.c(original) +++ trunk/src/jit/arm/jit_defs.cSat Dec 27 16:00:27 2008 @@ -1,4 +1,8 @@ /* Stub file for RT#38929 fixes */ +/* +Copyright (C) 2008, The Perl Foundation. +$Id$ +*/ /* HEADERIZER HFILE: none */ /* Modified: trunk/src/jit/hppa/jit_defs.c == --- trunk/src/jit/hppa/jit_defs.c (original) +++ trunk/src/jit/hppa/jit_defs.c Sat Dec 27 16:00:27 2008 @@ -1,4 +1,8 @@ /* Stub file for RT#38929 fixes */ +/* +Copyright (C) 2008, The Perl Foundation. +$Id$ +*/ /* HEADERIZER HFILE: none */ /* Modified: trunk/src/jit/i386/jit_defs.c == --- trunk/src/jit/i386/jit_defs.c (original) +++ trunk/src/jit/i386/jit_defs.c Sat Dec 27 16:00:27 2008 @@ -1,4 +1,8 @@ /* Stub file for RT#38929 fixes */ +/* +Copyright (C) 2008, The Perl Foundation. +$Id$ +*/ /* HEADERIZER HFILE: none */ /* Modified: trunk/src/jit/ia64/jit_defs.c == --- trunk/src/jit/ia64/jit_defs.c (original) +++ trunk/src/jit/ia64/jit_defs.c Sat Dec 27 16:00:27 2008 @@ -1,4 +1,8 @@ /* Stub file for RT#38929 fixes */ +/* +Copyright (C) 2008, The Perl Foundation. +$Id$ +*/ /* HEADERIZER HFILE: none */ /* Modified: trunk/src/jit/mips/jit_defs.c == --- trunk/src/jit/mips/jit_defs.c (original) +++ trunk/src/jit/mips/jit_defs.c Sat Dec 27 16:00:27 2008 @@ -1,4 +1,8 @@ /* Stub file for RT#38929 fixes */ +/* +Copyright (C) 2008, The Perl Foundation. +$Id$ +*/ /* HEADERIZER HFILE: none */ /* Modified: trunk/src/jit/ppc/jit_defs.c == --- trunk/src/jit/ppc/jit_defs.c(original) +++ trunk/src/jit/ppc/jit_defs.cSat Dec 27 16:00:27 2008 @@ -1,4 +1,8 @@ /* Stub file for RT#38929 fixes */ +/* +Copyright (C) 2008, The Perl Foundation. +$Id$ +*/ /* HEADERIZER HFILE: none */ /* Modified: trunk/src/jit/skeleton/jit_defs.c == --- trunk/src/jit/skeleton/jit_defs.c (original) +++ trunk/src/jit/skeleton/jit_defs.c Sat Dec 27 16:00:27 2008 @@ -1,4 +1,8 @@ /* Stub file for RT#38929 fixes */ +/* +Copyright (C) 2008, The Perl Foundation. +$Id$ +*/ /* HEADERIZER HFILE: none */ /* Modified: trunk/src/jit/sun4/jit_defs.c == --- trunk/src/jit/sun4/jit_defs.c (original) +++ trunk/src/jit/sun4/jit_defs.c Sat Dec 27 16:00:27 2008 @@ -1,4 +1,8 @@ /* Stub file for RT#38929 fixes */ +/* +Copyright (C) 2008, The Perl Foundation. +$Id$ +*/ /* HEADERIZER HFILE: none */ /*
[svn:parrot] r34456 - trunk/compilers/pct/src/PCT
Author: jkeenan Date: Sat Dec 27 15:53:35 2008 New Revision: 34456 Modified: trunk/compilers/pct/src/PCT/Grammar.pir Log: Eliminate trailing whitespace. Modified: trunk/compilers/pct/src/PCT/Grammar.pir == --- trunk/compilers/pct/src/PCT/Grammar.pir (original) +++ trunk/compilers/pct/src/PCT/Grammar.pir Sat Dec 27 15:53:35 2008 @@ -71,7 +71,7 @@ have_dba: .tailcall self.'panic'("Unable to parse ", dba, "; couldn't find final ", goal) .end - + =item item()
[svn:parrot] r34264 - trunk/t/tools/ops2pm
Author: jkeenan Date: Mon Dec 22 18:17:12 2008 New Revision: 34264 Modified: trunk/t/tools/ops2pm/05-renum_op_map_file.t Log: Jiggle the tests until more of them pass. Modified: trunk/t/tools/ops2pm/05-renum_op_map_file.t == --- trunk/t/tools/ops2pm/05-renum_op_map_file.t (original) +++ trunk/t/tools/ops2pm/05-renum_op_map_file.t Mon Dec 22 18:17:12 2008 @@ -27,8 +27,7 @@ );; ok(-d $samplesdir, "Able to locate samples directory"); -TODO: { -local $TODO = 'Changes to Parrot::OpsRenumber have borked these tests'; +{ # Prepare temporary directory for testing # my $tdir = tempdir( CLEANUP => 1 ); @@ -59,9 +58,9 @@ $numoutput, $major_version, ); -is($lastcode, q{bxors_s_sc_sc}, +is($lastcode, q{bxors_s_s_sc}, "Stage 1: Got expected last opcode"); -is($lastnumber, 190, +is($lastnumber, 177, "Stage 1: Got expected last opcode number"); ## Stage 2: Delete some opcodes and regenerate ops.num # @@ -76,13 +75,16 @@ $numoutput, $major_version, ); -is($lastcode, q{bxor_i_ic_ic}, + +is($lastcode, q{bxor_i_i_ic}, "Stage 2: Got expected last opcode"); -is($lastnumber, 184, +is($lastnumber, 172, "Stage 2: Got expected last opcode number"); # Stage 3: Add some opcodes and regenerate ops.num # + TODO: { +local $TODO = 'Post 1.0 regeneration problematic'; my @stage3 = qw( pic_ops.orig ); copy_into_position($samplesdir, \...@stage3, q{orig}, $opsdir); ($lastcode, $lastnumber) = run_test_stage( @@ -99,6 +101,7 @@ "Stage 3: Got expected last opcode"); is($lastnumber, 189, "Stage 3: Got expected last opcode number"); + } # Stage 4: Again generate ops.num de novo # @@ -120,10 +123,10 @@ $numoutput, $major_version, ); -is($lastcode, q{bxors_s_sc_sc}, -"Stage 4: Got expected last opcode"); -is($lastnumber, 190, -"Stage 4: Got expected last opcode number"); +is($lastcode, q{bxors_s_s_sc}, +"Stage 1: Got expected last opcode"); +is($lastnumber, 177, +"Stage 1: Got expected last opcode number"); # Test post-Parrot 1.0 case $major_version = 1; @@ -140,10 +143,10 @@ $numoutput, $major_version, ); -is($lastcode, q{bxors_s_sc_sc}, -"Stage 5: Got expected last opcode: deletion no longer permitted"); -is($lastnumber, 190, -"Stage 5: Got expected last opcode number: deletion no longer permitted"); +is($lastcode, q{bxor_i_ic_ic}, +"Stage 2: Got expected last opcode"); +is($lastnumber, 189, +"Stage 2: Got expected last opcode number"); # Stage 6: Add some opcodes and regenerate ops.num # @@ -161,7 +164,7 @@ ($lastcode, $lastnumber) = get_last_opcode($numoutput); is($lastcode, q{pic_callr___pc}, "Stage 6: Got expected last opcode: additions permitted"); -is($lastnumber, 195, +is($lastnumber, 194, "Stage 6: Got expected last opcode number: additions permitted"); # Go back where we started to activate cleanup
[svn:parrot] r34262 - trunk
Author: jkeenan Date: Mon Dec 22 15:57:42 2008 New Revision: 34262 Modified: trunk/NEWS Log: Added entry about change in 'make smoke'. Modified: trunk/NEWS == --- trunk/NEWS (original) +++ trunk/NEWS Mon Dec 22 15:57:42 2008 @@ -13,6 +13,10 @@ + Pipp - added support for 'elsif' - added support for 'do-while' +- Miscellaneous + + Infrastructure +- 'make smoke' now generates Smolder reports sent to + http://smolder.plusthree.com/app/public_projects/smoke_reports/8 New in 0.8.2
[svn:parrot] r34222 - trunk/t/codingstd
Author: jkeenan Date: Sun Dec 21 19:13:43 2008 New Revision: 34222 Modified: trunk/t/codingstd/linelength.t Log: Delete inline comment re RT 37. Modified: trunk/t/codingstd/linelength.t == --- trunk/t/codingstd/linelength.t (original) +++ trunk/t/codingstd/linelength.t Sun Dec 21 19:13:43 2008 @@ -55,8 +55,6 @@ WMLScript }; -# RT #44437 this should really be using src_dir instead of build_dir but it -# does not exist (yet) my $build_dir = $PConfig{build_dir}; my $manifest = maniread( File::Spec->catfile( $build_dir, 'MANIFEST' ) );
[svn:parrot] r34211 - trunk
Author: jkeenan Date: Sun Dec 21 08:59:42 2008 New Revision: 34211 Modified: trunk/MANIFEST trunk/MANIFEST.SKIP Log: Updating MANIFEST to reflect recent file deletion. Modified: trunk/MANIFEST == --- trunk/MANIFEST (original) +++ trunk/MANIFEST Sun Dec 21 08:59:42 2008 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Sun Dec 21 15:12:45 2008 UT +# generated by tools/dev/mk_manifest_and_skip.pl Sun Dec 21 16:57:00 2008 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -3766,7 +3766,6 @@ tools/util/perltidy.conf[] tools/util/pgegrep [] tools/util/release.json [] -tools/util/smokeserv-README.pod [] tools/util/templates.json [] tools/util/update_copyright.pl [] xconf/samples/testfoobar[] Modified: trunk/MANIFEST.SKIP == --- trunk/MANIFEST.SKIP (original) +++ trunk/MANIFEST.SKIP Sun Dec 21 08:59:42 2008 @@ -1,6 +1,6 @@ # ex: set ro: # $Id$ -# generated by tools/dev/mk_manifest_and_skip.pl Sun Dec 21 11:40:12 2008 UT +# generated by tools/dev/mk_manifest_and_skip.pl Sun Dec 21 16:57:00 2008 UT # # This file should contain a transcript of the svn:ignore properties # of the directories in the Parrot subversion repository. (Needed for @@ -111,8 +111,6 @@ ^pdump/ ^perl6$ ^perl6/ -^smoke\.html$ -^smoke\.html/ ^tags$ ^tags/ ^temp\.file$
[svn:parrot] r34210 - trunk/lib/Parrot/Docs/Section
Author: jkeenan Date: Sun Dec 21 08:55:54 2008 New Revision: 34210 Modified: trunk/lib/Parrot/Docs/Section/Tools.pm Log: Delete reference to now-deleted file. Modified: trunk/lib/Parrot/Docs/Section/Tools.pm == --- trunk/lib/Parrot/Docs/Section/Tools.pm (original) +++ trunk/lib/Parrot/Docs/Section/Tools.pm Sun Dec 21 08:55:54 2008 @@ -95,7 +95,6 @@ $self->new_item( '', 'tools/dev/gen_class.pl' ), $self->new_item( '', 'tools/dev/nm.pl' ), $self->new_item( '', 'tools/util/ncidef2pasm.pl' ), -$self->new_item( '', 'tools/util/smokeserv-README.pod' ), ), $self->new_group( 'Possibly obsolete',
[svn:parrot] r34209 - trunk/tools/util
Author: jkeenan Date: Sun Dec 21 08:54:48 2008 New Revision: 34209 Removed: trunk/tools/util/smokeserv-README.pod Log: Contents of this file are now out-of-date, as old-style smoke testing has been superseded by smolder.
[svn:parrot] r34208 - tags/smoke-24906
Author: jkeenan Date: Sun Dec 21 08:45:30 2008 New Revision: 34208 Removed: tags/smoke-24906/ Log: No further need for this tag, as smoke has been superseded by smolder.
[svn:parrot] r34207 - branches/smoke
Author: jkeenan Date: Sun Dec 21 08:44:40 2008 New Revision: 34207 Removed: branches/smoke/ Log: No further need for this branch, as smoke has been superseded by smolder.
[svn:parrot] r34206 - tags/smoke2smolder-34199
Author: jkeenan Date: Sun Dec 21 08:42:09 2008 New Revision: 34206 Removed: tags/smoke2smolder-34199/ Log: Branch to which tag corresponded has been merged into trunk; deleting tag.
[svn:parrot] r34205 - branches/smoke2smolder
Author: jkeenan Date: Sun Dec 21 08:41:14 2008 New Revision: 34205 Removed: branches/smoke2smolder/ Log: Branch has been merged into trunk; no longer needed at HEAD.
[svn:parrot] r34204 - in trunk: . config/gen/makefiles docs languages languages/t lib/Parrot/Harness t tools/util
Author: jkeenan Date: Sun Dec 21 08:40:25 2008 New Revision: 34204 Removed: trunk/tools/util/smokeserv-client.pl trunk/tools/util/smokeserv-server.pl Modified: trunk/ (props changed) trunk/DEPRECATED.pod trunk/MANIFEST trunk/config/gen/makefiles/ext.in trunk/config/gen/makefiles/languages.in trunk/config/gen/makefiles/root.in trunk/docs/tests.pod trunk/languages/LANGUAGES_STATUS.pod trunk/languages/t/harness trunk/lib/Parrot/Harness/Smoke.pm trunk/t/harness Log: Merging smoke2smolder branch into trunk. Implement's Coke's patch deactivating old-style smoke testing in favor of Smolder. Cf.: https://trac.parrot.org/parrot/ticket/69 and http://rt.perl.org/rt3/Ticket/Display.html?id=49276. Modified: trunk/DEPRECATED.pod == --- trunk/DEPRECATED.pod(original) +++ trunk/DEPRECATED.podSun Dec 21 08:40:25 2008 @@ -165,17 +165,4 @@ =back -=head1 Misc. - -=over 4 - -=item 'make smoke' [post 0.8.2] - -The functionality currently provided by "make smoke" will be changing to -be an alias for "make smolder_test". We're moving towards smolder as our -single point of online test reporting, and will keep the make target to -simplify the switch for anyone currently smoking parrot. See RT #49276. - -=back - =cut Modified: trunk/MANIFEST == --- trunk/MANIFEST (original) +++ trunk/MANIFEST Sun Dec 21 08:40:25 2008 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Sun Dec 21 14:10:12 2008 UT +# generated by tools/dev/mk_manifest_and_skip.pl Sun Dec 21 15:12:45 2008 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -3767,8 +3767,6 @@ tools/util/pgegrep [] tools/util/release.json [] tools/util/smokeserv-README.pod [] -tools/util/smokeserv-client.pl [] -tools/util/smokeserv-server.pl [] tools/util/templates.json [] tools/util/update_copyright.pl [] xconf/samples/testfoobar[] Modified: trunk/config/gen/makefiles/ext.in == --- trunk/config/gen/makefiles/ext.in (original) +++ trunk/config/gen/makefiles/ext.in Sun Dec 21 08:40:25 2008 @@ -32,12 +32,6 @@ @echo "" @echo " help: Print this help message." @echo "" - @echo " smoke:Run the test suite and send smoke.html to " - @echo "http:smoke.parrotcode.org//"; - @echo "" - @echo " smoke-clean: clean up smoke.html" - @echo "" - @echo "" @echo "Following languages are available:" @echo " $(LANGUAGES)" @echo "A particular language can be built, tested and cleand up" Modified: trunk/config/gen/makefiles/languages.in == --- trunk/config/gen/makefiles/languages.in (original) +++ trunk/config/gen/makefiles/languages.in Sun Dec 21 08:40:25 2008 @@ -50,12 +50,6 @@ @echo "" @echo " help: Print this help message." @echo "" - @echo " smoke: Run the unified test suite and send smoke.html to " - @echo " http:smoke.parrotcode.org//"; - @echo "" - @echo " smoke-clean: clean up smoke.html" - @echo "" - @echo "" @echo "Following languages are available:" @echo " $(LANGUAGES)" @echo "" @@ -96,14 +90,6 @@ WMLScript.test \ Zcode.test - -smoke: all - $(PERL) t/harness --html - $(PERL) ../tools/util/smokeserv-client.pl languages_smoke.html - -smoke-clean : - $(RM_F) languages_smoke.html - clean: \ abc.clean APL.clean \ BASIC.clean befunge.clean bf.clean \ @@ -123,7 +109,6 @@ urm.clean \ WMLScript.clean \ Zcode.clean \ -smoke-clean realclean: \ abc.realclean APL.realclean \ Modified: trunk/config/gen/makefiles/root.in == --- trunk/config/gen/makefiles/root.in (original) +++ trunk/config/gen/makefiles/root.in Sun Dec 21 08:40:25 2008 @@ -690,13 +690,8 @@ @echo " examples_tests:Test the example scripts." @echo "" @echo "Smoke Testing:" -
[svn:parrot] r34203 - in branches/smoke2smolder: . config/gen/makefiles docs languages languages/t lib/Parrot/Harness t tools/util
Author: jkeenan Date: Sun Dec 21 08:05:37 2008 New Revision: 34203 Removed: branches/smoke2smolder/tools/util/smokeserv-client.pl branches/smoke2smolder/tools/util/smokeserv-server.pl Modified: branches/smoke2smolder/ (props changed) branches/smoke2smolder/DEPRECATED.pod branches/smoke2smolder/MANIFEST branches/smoke2smolder/config/gen/makefiles/ext.in branches/smoke2smolder/config/gen/makefiles/languages.in branches/smoke2smolder/config/gen/makefiles/root.in branches/smoke2smolder/docs/tests.pod branches/smoke2smolder/languages/LANGUAGES_STATUS.pod branches/smoke2smolder/languages/t/harness branches/smoke2smolder/lib/Parrot/Harness/Smoke.pm branches/smoke2smolder/t/harness Log: Implement Coke's patch in branch. Modified: branches/smoke2smolder/DEPRECATED.pod == --- branches/smoke2smolder/DEPRECATED.pod (original) +++ branches/smoke2smolder/DEPRECATED.pod Sun Dec 21 08:05:37 2008 @@ -165,17 +165,4 @@ =back -=head1 Misc. - -=over 4 - -=item 'make smoke' [post 0.8.2] - -The functionality currently provided by "make smoke" will be changing to -be an alias for "make smolder_test". We're moving towards smolder as our -single point of online test reporting, and will keep the make target to -simplify the switch for anyone currently smoking parrot. See RT #49276. - -=back - =cut Modified: branches/smoke2smolder/MANIFEST == --- branches/smoke2smolder/MANIFEST (original) +++ branches/smoke2smolder/MANIFEST Sun Dec 21 08:05:37 2008 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Sun Dec 21 14:10:12 2008 UT +# generated by tools/dev/mk_manifest_and_skip.pl Sun Dec 21 15:12:45 2008 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -3767,8 +3767,6 @@ tools/util/pgegrep [] tools/util/release.json [] tools/util/smokeserv-README.pod [] -tools/util/smokeserv-client.pl [] -tools/util/smokeserv-server.pl [] tools/util/templates.json [] tools/util/update_copyright.pl [] xconf/samples/testfoobar[] Modified: branches/smoke2smolder/config/gen/makefiles/ext.in == --- branches/smoke2smolder/config/gen/makefiles/ext.in (original) +++ branches/smoke2smolder/config/gen/makefiles/ext.in Sun Dec 21 08:05:37 2008 @@ -32,12 +32,6 @@ @echo "" @echo " help: Print this help message." @echo "" - @echo " smoke:Run the test suite and send smoke.html to " - @echo "http:smoke.parrotcode.org//"; - @echo "" - @echo " smoke-clean: clean up smoke.html" - @echo "" - @echo "" @echo "Following languages are available:" @echo " $(LANGUAGES)" @echo "A particular language can be built, tested and cleand up" Modified: branches/smoke2smolder/config/gen/makefiles/languages.in == --- branches/smoke2smolder/config/gen/makefiles/languages.in(original) +++ branches/smoke2smolder/config/gen/makefiles/languages.inSun Dec 21 08:05:37 2008 @@ -50,12 +50,6 @@ @echo "" @echo " help: Print this help message." @echo "" - @echo " smoke: Run the unified test suite and send smoke.html to " - @echo " http:smoke.parrotcode.org//"; - @echo "" - @echo " smoke-clean: clean up smoke.html" - @echo "" - @echo "" @echo "Following languages are available:" @echo " $(LANGUAGES)" @echo "" @@ -96,14 +90,6 @@ WMLScript.test \ Zcode.test - -smoke: all - $(PERL) t/harness --html - $(PERL) ../tools/util/smokeserv-client.pl languages_smoke.html - -smoke-clean : - $(RM_F) languages_smoke.html - clean: \ abc.clean APL.clean \ BASIC.clean befunge.clean bf.clean \ @@ -123,7 +109,6 @@ urm.clean \ WMLScript.clean \ Zcode.clean \ -smoke-clean realclean: \ abc.realclean APL.realclean \ Modified: branches/smoke2smolder/config/gen/makefiles/root.in == --- branches/smoke2smolder/config/gen/makefiles/root.i
[svn:parrot] r34200 - branches/smoke2smolder
Author: jkeenan Date: Sun Dec 21 06:39:54 2008 New Revision: 34200 Added: branches/smoke2smolder/ - copied from r34199, /trunk/ Log: Creating smoke2smolder in https://svn.perl.org/parrot//branches
[svn:parrot] r34201 - tags/smoke2smolder-34199
Author: jkeenan Date: Sun Dec 21 06:39:58 2008 New Revision: 34201 Added: tags/smoke2smolder-34199/ - copied from r34200, /trunk/ Log: Tagging trunk at r34199 so that the smoke2smolder can later be synched to it.
[svn:parrot] r34182 - trunk/src
Author: jkeenan Date: Sat Dec 20 20:53:45 2008 New Revision: 34182 Modified: trunk/src/ (props changed) Log: Add 'jit_defs.c' to list of files targeted for 'svn:ignore' in directory src/.
[svn:parrot] r34177 - trunk/t/perl
Author: jkeenan Date: Sat Dec 20 20:21:17 2008 New Revision: 34177 Modified: trunk/t/perl/Parrot_IO.t Log: Applying patch submitted by Ron Schmidt in http://rt.perl.org/rt3/Ticket/Display.html?id=57320. All tests continue to pass. Let's see if this resolves temp directory problem. Modified: trunk/t/perl/Parrot_IO.t == --- trunk/t/perl/Parrot_IO.t(original) +++ trunk/t/perl/Parrot_IO.tSat Dec 20 20:21:17 2008 @@ -10,6 +10,7 @@ use Parrot::Distribution; use File::Spec::Functions ':ALL'; +use File::Temp qw/tempdir/; =head1 NAME @@ -38,6 +39,14 @@ # can do with it. BEGIN { use_ok('Parrot::IO::Path') } +my $file_temp_work_path = tempdir( + 'PARROT_IO_', + TMPDIR => 1, + CLEANUP => 1 +); +# you can sort of count on the var below being the unique part of the temp dir +my $file_temp_dir = (splitdir($file_temp_work_path))[-1]; + my $suffix = 'txt'; my $name = 'file'; my $fullname = join '.', $name, $suffix; @@ -79,7 +88,9 @@ isa_ok( $r, 'Parrot::IO::Directory' ); ok( !$r->parent(), 'root has no parent' ); -my $d = Parrot::IO::Directory->tmp_directory('t'); +my $d = Parrot::IO::Directory->tmp_directory( + catfile($file_temp_dir, 't') +); ok( $d, 'tmp_directory' ); # Create a file in a directory that does not exist. @@ -90,7 +101,7 @@ my $d2 = $d1->directory_with_name('two'); ok( $d1 && $d2, 'directory_with_name' ); -my $f = Parrot::IO::File->tmp_file($fullname); +my $f = Parrot::IO::File->tmp_file(catfile($file_temp_dir, $fullname)); ok( $f, 'tmp_file' ); # Check the instance got re-blessed. @@ -201,7 +212,7 @@ # tmp_dir_path(@dirs) sub tmp_dir_path { -return catdir( tmpdir, @_ ); +return catdir( $file_temp_work_path, @_ ); } # tmp_file_path(@dirs, $file)
[svn:parrot] r34168 - trunk/config/init/hints
Author: jkeenan Date: Sat Dec 20 18:41:14 2008 New Revision: 34168 Modified: trunk/config/init/hints/dec_osf.pm Log: Deleting AIO-related code, per discussion in http://rt.perl.org/rt3/Ticket/Display.html?id=57920. Modified: trunk/config/init/hints/dec_osf.pm == --- trunk/config/init/hints/dec_osf.pm (original) +++ trunk/config/init/hints/dec_osf.pm Sat Dec 20 18:41:14 2008 @@ -27,9 +27,6 @@ if ( $libs !~ /-lpthread/ ) { $libs .= ' -lpthread'; } -if ( $libs !~ /-laio/ ) { -$libs .= ' -laio'; -} $conf->data->set( libs => $libs ); for my $ldflags (qw(ld_load_flags ld_share_flags)) {
[svn:parrot] r34165 - trunk/t/compilers/imcc/syn
Author: jkeenan Date: Sat Dec 20 17:49:08 2008 New Revision: 34165 Modified: trunk/t/compilers/imcc/syn/macro.t (props changed) Log: Restoring previous properties, as deletion of 'svn:mime-type' did not clear up the 'Skipping binary file' problem.
[svn:parrot] r34164 - trunk/t/compilers/imcc/syn
Author: jkeenan Date: Sat Dec 20 17:47:06 2008 New Revision: 34164 Modified: trunk/t/compilers/imcc/syn/macro.t (props changed) Log: Deleting svn:mime-type property in attempt to see whether this fixes the 'Skipping binary file' problem when you try to 'svn blame' this file.
[svn:parrot] r34096 - in trunk: . config/gen/makefiles lib/Parrot lib/Parrot/Configure/Options/Test lib/Parrot/Ops2pm t/tools/ops2pm tools/build
Author: jkeenan Date: Thu Dec 18 18:14:09 2008 New Revision: 34096 Modified: trunk/Configure.pl trunk/config/gen/makefiles/root.in trunk/lib/Parrot/Configure/Options/Test/Prepare.pm trunk/lib/Parrot/Ops2pm.pm trunk/lib/Parrot/Ops2pm/Auxiliary.pm trunk/t/tools/ops2pm/05-renum_op_map_file.t trunk/tools/build/ops2pm.pl Log: In r30478 ( 2008-08-23 ), I changed the name of t/tools/ops2pmutils/ to t/tools/ops2pm/. I did not change all instances of the old name in code and, as a result, the tests in t/tools/ops2pm/*.t have not been run as part of 'make buildtools_tests' or 'perl Configure.pl --test' since then. This fixes that, for the most part. But in the interim changes in the way ops codes are renumbered have broken the tests in t/tools/ops2pm/05-renum_op_map_file.t, so mosts of its tests are TODOed out. Modified: trunk/Configure.pl == --- trunk/Configure.pl (original) +++ trunk/Configure.pl Thu Dec 18 18:14:09 2008 @@ -186,7 +186,7 @@ =item C<--test=build> Run tests found in F, F, -F and F I configuration has +F and F I configuration has completed. These tests demonstrate (a) that certain of Parrot's configuration tools are working properly post-configuration; and (b) that certain of Parrot's build tools will work properly once you call F. Modified: trunk/config/gen/makefiles/root.in == --- trunk/config/gen/makefiles/root.in (original) +++ trunk/config/gen/makefiles/root.in Thu Dec 18 18:14:09 2008 @@ -1431,7 +1431,7 @@ TOOLS_TEST_FILES = \ t/tools/*.t PMC2CUTILS_DIR = t/tools/pmc2cutils -OPS2PMUTILS_DIR = t/tools/ops2pmutils +OPS2PMUTILS_DIR = t/tools/ops2pm OPS2CUTILS_DIR = t/tools/ops2cutils REVISIONUTILS_DIR = t/tools/revision HARNESS_DIR = t/pharness Modified: trunk/lib/Parrot/Configure/Options/Test/Prepare.pm == --- trunk/lib/Parrot/Configure/Options/Test/Prepare.pm (original) +++ trunk/lib/Parrot/Configure/Options/Test/Prepare.pm Thu Dec 18 18:14:09 2008 @@ -33,7 +33,7 @@ glob("t/postconfigure/*.t"), glob("t/tools/pmc2cutils/*.t"), glob("t/tools/ops2cutils/*.t"), -glob("t/tools/ops2pmutils/*.t"), +glob("t/tools/ops2pm/*.t"), glob("t/pharness/*.t"), ); return @postconfiguration_tests; @@ -137,7 +137,7 @@ t/postconfigure/ t/tools/pmc2cutils/ t/tools/ops2cutils/ -t/tools/ops2pmutils/ +t/tools/ops2pm/ t/pharness/ =back Modified: trunk/lib/Parrot/Ops2pm.pm == --- trunk/lib/Parrot/Ops2pm.pm (original) +++ trunk/lib/Parrot/Ops2pm.pm Thu Dec 18 18:14:09 2008 @@ -429,7 +429,7 @@ =head1 NOTE ON TESTING A suite of test files to accompany this package is found in -F. This suite has been developed to maximize its +F. This suite has been developed to maximize its coverage of the code of Parrot::Ops2pm (as measured by Perl module Devel::Cover). Should you wish to refactor this package, it is recommended that you do so in a B manner: @@ -455,7 +455,7 @@ Parrot's F has run but B F has run. Example: $> perl Configure.pl -$> prove -v t/tools/ops2pmutils/*.t +$> prove -v t/tools/ops2pm/*.t $> make =item 5 Modified: trunk/lib/Parrot/Ops2pm/Auxiliary.pm == --- trunk/lib/Parrot/Ops2pm/Auxiliary.pm(original) +++ trunk/lib/Parrot/Ops2pm/Auxiliary.pmThu Dec 18 18:14:09 2008 @@ -52,7 +52,7 @@ Extraction of the subroutines exported by this package from F facilitates the testing of their functionality by the -tests in F. +tests in F. =head1 SUBROUTINES Modified: trunk/t/tools/ops2pm/05-renum_op_map_file.t == --- trunk/t/tools/ops2pm/05-renum_op_map_file.t (original) +++ trunk/t/tools/ops2pm/05-renum_op_map_file.t Thu Dec 18 18:14:09 2008 @@ -15,7 +15,7 @@ use File::Spec; use File::Temp qw( tempdir ); use Tie::File; -use lib '/home/jimk/work/opsrenum/lib'; +use lib 'lib'; use Parrot::OpsRenumber; my ($self, @opsfiles); @@ -27,7 +27,8 @@ );; ok(-d $samplesdir, "Able to locate samples directory"); -{ +TODO: { +local $TODO = 'Changes to Parrot::OpsRenumber have borked these tests'; # Prepare temporary directory for testing # my $tdir = tempdir( CLEANUP => 1 ); Modified: trunk/tools/build/ops2pm.pl == --- trunk/tools/build/ops2pm.pl (original) +++ trunk/tools/build/ops2pm.pl Thu Dec 18 18:14:09 2008 @@ -82,7 +82,7
[svn:parrot] r34093 - trunk/lib/Parrot
Author: jkeenan Date: Thu Dec 18 17:48:45 2008 New Revision: 34093 Modified: trunk/lib/Parrot/OpsRenumber.pm Log: Correct punctuation error in comment. Modified: trunk/lib/Parrot/OpsRenumber.pm == --- trunk/lib/Parrot/OpsRenumber.pm (original) +++ trunk/lib/Parrot/OpsRenumber.pm Thu Dec 18 17:48:45 2008 @@ -86,7 +86,7 @@ # (b) the first 7, never-to-be-altered opcodes. # Below that line are all the remaining opcodes. All opcode lines # match the pattern /^(\w+)\s+(\d+)$/. Everything above the line gets -# pushed into @lines and, if it's an opcode line, get's split and +# pushed into @lines and, if it's an opcode line, gets split and # pushed into %fixed as well. Nothing happens to the (opcode) lines # below the DYNAMIC line.
[svn:parrot] r34009 - in trunk: . config/auto config/auto/aio lib/Parrot/Configure/Step t/configure/testlib t/steps xconf/samples
Author: jkeenan Date: Tue Dec 16 19:47:08 2008 New Revision: 34009 Removed: trunk/config/auto/aio/ trunk/config/auto/aio.pm trunk/t/steps/auto_aio-01.t Modified: trunk/Configure.pl trunk/MANIFEST trunk/lib/Parrot/Configure/Step/List.pm trunk/t/configure/testlib/adefectivefoobar trunk/t/configure/testlib/bdefectivefoobar trunk/t/configure/testlib/cdefectivefoobar trunk/t/configure/testlib/ddefectivefoobar trunk/t/configure/testlib/verbosefoobar trunk/t/steps/auto_snprintf-01.t trunk/xconf/samples/testfoobar trunk/xconf/samples/yourfoobar Log: Remove configuration probe for asynchronous input/output per architect's instruction in RT 57920. Remove associated test file and reference to auto::aio in list of configuration steps, dummy files used in testing, etc. Modified: trunk/Configure.pl == --- trunk/Configure.pl (original) +++ trunk/Configure.pl Tue Dec 16 19:47:08 2008 @@ -168,7 +168,7 @@ =item C<--ask> -This turns on the user prompts during configuraion. Available only in +This turns on the user prompts during configuration. Available only in Command-Line interface. Not available in Configuration-File interface. =item C<--test> @@ -606,7 +606,6 @@ auto::signal auto::socklen_t auto::env -auto::aio auto::gmp auto::readline auto::gdbm Modified: trunk/MANIFEST == --- trunk/MANIFEST (original) +++ trunk/MANIFEST Tue Dec 16 19:47:08 2008 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Tue Dec 16 22:45:43 2008 UT +# generated by tools/dev/mk_manifest_and_skip.pl Wed Dec 17 03:21:14 2008 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -235,8 +235,6 @@ compilers/tge/TGE/Rule.pir [] compilers/tge/TGE/Tree.pir [] compilers/tge/tgc.pir [] -config/auto/aio.pm [] -config/auto/aio/aio.in [] config/auto/alignptrs.pm[] config/auto/alignptrs/test_c.in [] config/auto/arch.pm [] @@ -3609,7 +3607,6 @@ t/src/exit.t[] t/src/extend.t [] t/src/warnings.t[] -t/steps/auto_aio-01.t [] t/steps/auto_alignptrs-01.t [] t/steps/auto_alignptrs-02.t [] t/steps/auto_arch-01.t [] Modified: trunk/lib/Parrot/Configure/Step/List.pm == --- trunk/lib/Parrot/Configure/Step/List.pm (original) +++ trunk/lib/Parrot/Configure/Step/List.pm Tue Dec 16 19:47:08 2008 @@ -51,7 +51,6 @@ auto::signal auto::socklen_t auto::env -auto::aio auto::gmp auto::readline auto::gdbm Modified: trunk/t/configure/testlib/adefectivefoobar == --- trunk/t/configure/testlib/adefectivefoobar (original) +++ trunk/t/configure/testlib/adefectivefoobar Tue Dec 16 19:47:08 2008 @@ -47,7 +47,6 @@ auto::signal auto::socklen_t auto::env -auto::aio auto::gmp auto::readline auto::gdbm Modified: trunk/t/configure/testlib/bdefectivefoobar == --- trunk/t/configure/testlib/bdefectivefoobar (original) +++ trunk/t/configure/testlib/bdefectivefoobar Tue Dec 16 19:47:08 2008 @@ -57,7 +57,6 @@ auto::signal auto::socklen_t auto::env -auto::aio auto::gmp auto::readline auto::gdbm Modified: trunk/t/configure/testlib/cdefectivefoobar == --- trunk/t/configure/testlib/cdefectivefoobar (original) +++ trunk/t/configure/testlib/cdefectivefoobar Tue Dec 16 19:47:08 2008 @@ -58,7 +58,6 @@ auto::signal auto::socklen_t auto::env -auto::aio auto::gmp auto::readline auto::gdbm Modified: trunk/t/configure/testlib/ddefectivefoobar == --- trunk/t/configure/testlib/ddefectivefoobar (original) +++ trunk/t/configure/testlib/ddefectivefoobar Tue Dec 16 19:47:08 2008 @@ -49,7 +49,6 @@ auto::signal auto::socklen_t auto::env -auto::aio auto::gmp auto::readline auto::gdbm Modified: trunk/t/configure/testlib/verbosefoobar == --- trunk/t/configure/testlib/verbosefoobar (or
[svn:parrot] r33889 - trunk
Author: jkeenan Date: Sun Dec 14 08:43:55 2008 New Revision: 33889 Modified: trunk/NEWS Log: Include report of better test coverage of Parrot::Test. Modified: trunk/NEWS == --- trunk/NEWS (original) +++ trunk/NEWS Sun Dec 14 08:43:55 2008 @@ -118,6 +118,7 @@ + Tests - further improvements to parallel tests - tests no longer leave filesystem breadcrumbs +- more thorough testing of Parrot::Test itself New in 0.8.0 - Implementation
[svn:parrot] r33857 - tags/testparrottest-33271
Author: jkeenan Date: Sat Dec 13 06:42:43 2008 New Revision: 33857 Removed: tags/testparrottest-33271/ Log: Branch corresponding to this tag has been merged into trunk; tag no longer needed."
[svn:parrot] r33856 - branches/testparrottest
Author: jkeenan Date: Sat Dec 13 06:41:26 2008 New Revision: 33856 Removed: branches/testparrottest/ Log: Branch has been merged into trunk and is no longer needed at HEAD."
[svn:parrot] r33855 - in trunk: . lib/Parrot t/perl t/perl/testlib
Author: jkeenan Date: Sat Dec 13 06:31:41 2008 New Revision: 33855 Added: trunk/t/perl/testlib/ - copied from r33853, /branches/testparrottest/t/perl/testlib/ trunk/t/perl/testlib/answer.pir - copied unchanged from r33853, /branches/testparrottest/t/perl/testlib/answer.pir trunk/t/perl/testlib/hello - copied unchanged from r33853, /branches/testparrottest/t/perl/testlib/hello trunk/t/perl/testlib/hello.pasm - copied unchanged from r33853, /branches/testparrottest/t/perl/testlib/hello.pasm Modified: trunk/MANIFEST trunk/lib/Parrot/Test.pm trunk/t/perl/Parrot_Test.t Log: Merge in testparrottest branch. Refactoring in lib/Parrot/Test.pm; additional tests of that package; some new dummy files used in testing. Modified: trunk/MANIFEST == --- trunk/MANIFEST (original) +++ trunk/MANIFEST Sat Dec 13 06:31:41 2008 @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Sat Dec 13 11:12:31 2008 UT +# generated by tools/dev/mk_manifest_and_skip.pl Sat Dec 13 14:28:34 2008 UT # # See tools/dev/install_files.pl for documentation on the # format of this file. @@ -3484,6 +3484,9 @@ t/perl/Parrot_IO.t [] t/perl/Parrot_Test.t[] t/perl/README [] +t/perl/testlib/answer.pir [] +t/perl/testlib/hello[] +t/perl/testlib/hello.pasm [] t/pharness/01-default_tests.t [] t/pharness/02-get_test_prog_args.t [] t/pharness/03-handle_long_options.t [] Modified: trunk/lib/Parrot/Test.pm == --- trunk/lib/Parrot/Test.pm(original) +++ trunk/lib/Parrot/Test.pmSat Dec 13 06:31:41 2008 @@ -200,7 +200,7 @@ =item C Determines the language, PIR or PASM, from the extension of C<$example_f> and runs -the appropriate C<^language_output_(is|kike|isnt)> sub. +the appropriate C<^language_output_(is|like|isnt)> sub. C<$example_f> is used as a description, so don't pass one. =item C @@ -303,37 +303,10 @@ sub run_command { my ( $command, %options ) = @_; -# To run the command in a different directory. -my $chdir = delete $options{CD}; +my ( $out, $err, $chdir ) = _handle_test_options( \%options ); -while ( my ( $key, $value ) = each %options ) { -$key =~ m/^STD(OUT|ERR)$/ -or die "I don't know how to redirect '$key' yet!"; -my $strvalue = "$value";# filehandle `eq' string will fail -$value = File::Spec->devnull() # on older perls, so stringify it -if $strvalue eq '/dev/null'; -} - -my $out = $options{'STDOUT'} || ''; -my $err = $options{'STDERR'} || ''; - -local $ENV; if ($PConfig{parrot_is_shared}) { -my $blib_path = File::Spec->catfile( $PConfig{build_dir}, 'blib', 'lib' ); -if ($^O eq 'cygwin') { -$ENV{PATH} = $blib_path . ':' . $ENV{PATH}; -} -elsif ($^O eq 'MSWin32') { -$ENV{PATH} = $blib_path . ';' . $ENV{PATH}; -} -else { -$ENV{LD_RUN_PATH} = $blib_path; -} -} - -## File::Temp overloads 'eq' here, so we need the quotes. RT #58840 -if ( $out and $err and "$out" eq "$err" ) { -$err = '&STDOUT'; +_handle_blib_path(); } local *OLDOUT if $out;## no critic Variables::ProhibitConditionalDeclarations @@ -357,11 +330,7 @@ # If $command isn't already an arrayref (because of a multi-command # test), make it so now so the code below can treat everybody the # same. -$command = [$command] unless ( ref $command ); - -if ( defined $ENV{VALGRIND} ) { -$_ = "$ENV{VALGRIND} $_" for (@$command); -} +$command = _handle_command( $command ); my $orig_dir; if ($chdir) { @@ -382,7 +351,7 @@ chdir $orig_dir; } -my $exit_code = $?; +my $exit_message = _prepare_exit_message(); close STDOUT or die "Can't closestdout" if $out; close STDERR or die "Can't closestderr" if $err; @@ -390,11 +359,7 @@ open STDOUT, ">&", \*OLDOUT or die "Can't restore stdout" if $out; open STDERR, ">&", \*OLDERR or die "Can't restore stderr" if $err; -return ( - ( $exit_code < 0 )? $exit_code -: ( $exit_code &
[svn:parrot] r33822 - branches/testparrottest/lib/Parrot
Author: jkeenan Date: Thu Dec 11 19:33:23 2008 New Revision: 33822 Modified: branches/testparrottest/lib/Parrot/Test.pm Log: Continue to restore previous order of subroutines. Modified: branches/testparrottest/lib/Parrot/Test.pm == --- branches/testparrottest/lib/Parrot/Test.pm (original) +++ branches/testparrottest/lib/Parrot/Test.pm Thu Dec 11 19:33:23 2008 @@ -504,6 +504,130 @@ # The following methods are private. They should not be used by modules # inheriting from Parrot::Test. +sub _handle_error_output { +my ( $builder, $real_output, $expected, $desc ) = @_; + +my $level = $builder->level(); +$builder->level( $level + 1 ); +$builder->ok( 0, $desc ); +$builder->diag( +"Expected error but exited cleanly\n" . "Received:\n$real_output\nExpected:\n$expected\n" ); +$builder->level($level); + +return 0; +} + +sub _run_test_file { +my ( $func, $code, $expected, $desc, %extra ) = @_; +my $path_to_parrot = path_to_parrot(); +my $parrot = File::Spec->join( File::Spec->curdir(), 'parrot' . $PConfig{exe} ); + +# Strange Win line endings +convert_line_endings($expected); + +# $test_no will be part of temporary file +my $test_no = $builder->current_test() + 1; + +# Name of the file where output is written. +# Switch to a different extension when we are generating code. +my $out_f = per_test( '.out', $test_no ); + +# Name of the file with test code. +# This depends on which kind of code we are testing. +my $code_f; +if ( $func =~ m/^pir_.*?output/ ) { +$code_f = per_test( '.pir', $test_no ); +} +elsif ( $func =~ m/^pasm_.*?output_/ ) { +$code_f = per_test( '.pasm', $test_no ); +} +elsif ( $func =~ m/^pbc_.*?output_/ ) { +$code_f = per_test( '.pbc', $test_no ); +} +else { +die "Unknown test function: $func"; +} +$code_f = File::Spec->rel2abs($code_f); +my $code_basef = basename($code_f); + +# native tests are just run, others need to write code first +if ( $code_f !~ /\.pbc$/ ) { +write_code_to_file( $code, $code_f ); +} + +# honor opt* filename to actually run code with -Ox +my $args = $ENV{TEST_PROG_ARGS} || ''; +my $opt = $code_basef =~ m!opt(.)! ? "-O$1" : ""; +$args .= " $opt"; + +my $run_exec = 0; +if ( $args =~ s/--run-exec// ) { +$run_exec = 1; +my $pbc_f = per_test( '.pbc', $test_no ); +my $o_f = per_test( '_pbcexe' . $PConfig{o}, $test_no ); +my $exe_f = +per_test( '_pbcexe' . $PConfig{exe}, $test_no ) +;# Make cleanup and svn:ignore more simple +my $exec_f = per_test( '_pbcexe', $test_no );# Make cleanup and svn:ignore more simple +$exe_f =~ s...@[\\/:]...@$pconfig{slash}@g; + +# RT#43751 put this into sub generate_pbc() +run_command( +qq{$parrot $args -o $pbc_f "$code_f"}, +CD => $path_to_parrot, +STDOUT => $out_f, +STDERR => $out_f +); +if ( -e $pbc_f ) { +run_command( +qq{$parrot $args -o $o_f "$pbc_f"}, +CD => $path_to_parrot, +STDOUT => $out_f, +STDERR => $out_f +); +if ( -e $o_f ) { +run_command( +qq{$PConfig{make} EXEC=$exec_f exec}, +CD => $path_to_parrot, +STDOUT => $out_f, +STDERR => $out_f +); +if ( -e $exe_f ) { +run_command( +$exe_f, +CD => $path_to_parrot, +STDOUT => $out_f, +STDERR => $out_f +); +} +} +} +} + +my ( $exit_code, $cmd ); +unless ($run_exec) { +if ( $args =~ s/--run-pbc// || $args =~ s/-r // ) { +my $pbc_f = per_test( '.pbc', $test_no ); +$args = qq{$args -o "$pbc_f"}; + +# In this case, we need to execute more than one command. Instead +# of a single scalar, build an array of commands. +$cmd = [ qq{$parrot $args "$code_f"}, qq{$parrot "$pbc_f"}, ]; +} +else { +$cmd = qq{$parrot $args "$code_f"}; +} +$exit_code = run_command( +$cmd, +CD => $path_to_parrot, +STDOUT => $out_f, +STDERR => $out_f +); +} + +return ( $out_f, $cmd, $exit_code )
[svn:parrot] r33821 - in branches/testparrottest: lib/Parrot t/perl
Author: jkeenan Date: Thu Dec 11 19:28:44 2008 New Revision: 33821 Modified: branches/testparrottest/lib/Parrot/Test.pm branches/testparrottest/t/perl/Parrot_Test.t Log: Small cleanups. Modified: branches/testparrottest/lib/Parrot/Test.pm == --- branches/testparrottest/lib/Parrot/Test.pm (original) +++ branches/testparrottest/lib/Parrot/Test.pm Thu Dec 11 19:28:44 2008 @@ -501,8 +501,8 @@ } } -# The following methods --up until generate_languages_functions() -- are -# private. They should not be used by modules inheriting from Parrot::Test. +# The following methods are private. They should not be used by modules +# inheriting from Parrot::Test. sub _generate_test_functions { Modified: branches/testparrottest/t/perl/Parrot_Test.t == --- branches/testparrottest/t/perl/Parrot_Test.t(original) +++ branches/testparrottest/t/perl/Parrot_Test.tThu Dec 11 19:28:44 2008 @@ -19,9 +19,7 @@ use strict; use warnings; use Test::More; -#use Test::More qw( no_plan );; use Carp; -use Data::Dumper;$Data::Dumper::Indent=1; use File::Spec; use lib qw( lib ); use Parrot::Config;
[svn:parrot] r33820 - branches/testparrottest/lib/Parrot
Author: jkeenan Date: Thu Dec 11 19:21:45 2008 New Revision: 33820 Modified: branches/testparrottest/lib/Parrot/Test.pm Log: Restore original order of POD and subroutines, to make diff-ing easier. Modified: branches/testparrottest/lib/Parrot/Test.pm == --- branches/testparrottest/lib/Parrot/Test.pm (original) +++ branches/testparrottest/lib/Parrot/Test.pm Thu Dec 11 19:21:45 2008 @@ -1,5 +1,261 @@ # Copyright (C) 2004-2008, The Perl Foundation. # $Id$ + +=head1 NAME + +Parrot::Test - testing routines for Parrot and language implementations + +=head1 SYNOPSIS + +Set the number of tests to be run like this: + +use Parrot::Test tests => 8; + +Write individual tests like this: + +pasm_output_is(<<'CODE', <<'OUTPUT', "description of test"); +print "this is ok\n" +end +CODE +this is ok +OUTPUT + +=head1 DESCRIPTION + +This module provides various Parrot-specific test functions. + +=head2 Functions + +The parameter C<$language> is the language of the code. +The parameter C<$code> is the code that should be executed or transformed. +The parameter C<$expected> is the expected result. +The parameter C<$unexpected> is the unexpected result. +The parameter C<$description> should describe the test. + +Any optional parameters can follow. For example, to mark a test as a TODO test +(where you know the implementation does not yet work), pass: + +todo => 'reason to consider this TODO' + +at the end of the argument list. Valid reasons include C, +C, and so on. + +B you I use a C<$description> with TODO tests. + +=over 4 + +=item C + +=item C + +Runs a language test and passes the test if a string comparison +of the output with the expected result it true. +For C the exit code also has to be non-zero. + +=item C + +=item C + +Runs a language test and passes the test if the output matches the expected +result. +For C the exit code also has to be non-zero. + +=item C + +=item C + +Runs a language test and passes the test if a string comparison +if a string comparison of the output with the unexpected result is false. +For C the exit code also has to be non-zero. + +=item C + +Runs the Parrot Assembler code and passes the test if a string comparison of +the output with the expected result it true. + +=item C + +Runs the Parrot Assembler code and passes the test if a string comparison of +the output with the expected result it true I if Parrot exits with a +non-zero exit code. + +=item C + +Runs the Parrot Assembler code and passes the test if the output matches +C<$expected>. + +=item C + +Runs the Parrot Assembler code and passes the test if the output matches +C<$expected> I if Parrot exits with a non-zero exit code. + +=item C + +Runs the Parrot Assembler code and passes the test if a string comparison of +the output with the unexpected result is false. + +=item C + +Runs the Parrot Assembler code and passes the test if a string comparison of +the output with the unexpected result is false I if Parrot exits with a +non-zero exit code. + +=item C + +Runs the PIR code and passes the test if a string comparison of output with the +expected result is true. + +=item C + +Runs the PIR code and passes the test if a string comparison of output with the +expected result is true I if Parrot exits with a non-zero exit code. + +=item C + +Runs the PIR code and passes the test if output matches the expected result. + +=item C + +Runs the PIR code and passes the test if output matches the expected result +I if Parrot exits with a non-zero exit code. + +=item C + +Runs the PIR code and passes the test if a string comparison of the output with +the unexpected result is false. + +=item C + +Runs the PIR code and passes the test if a string comparison of the output with +the unexpected result is false I if Parrot exits with a non-zero exit +code. + +=item C + +Runs the Parrot Bytecode and passes the test if a string comparison of output +with the expected result is true. + +=item C + +Runs the Parrot Bytecode and passes the test if a string comparison of the output +with the expected result is true I if Parrot exits with a non-zero exit code. + +=item C + +Runs the Parrot Bytecode and passes the test if output matches the expected +result. + +=item C + +Runs the Parrot Bytecode and passes the test if output matches the expected +result I if Parrot exits with a non-zero exit code. + +=item C + +Runs the Parrot Bytecode and passes the test if a string comparison of output +with the unexpected result is false. + +=item C + +Runs the Parrot Bytecode and passes the test if a string comparison of output +with the unexpected result is false I if Parrot exits with a non-zero exit +code. + +=item C + +Compile the Parrot Intermediate Representation and generate Parrot Assembler Code. +Pass if the generated PASM is $
[svn:parrot] r33788 - in branches/testparrottest: lib/Parrot t/perl
Author: jkeenan Date: Wed Dec 10 19:03:38 2008 New Revision: 33788 Modified: branches/testparrottest/lib/Parrot/Test.pm branches/testparrottest/t/perl/Parrot_Test.t Log: 1. Improve one test description. 2. Since $desc is never used after it's been assigned to in _run_test_file(), it may be deleted without affecting anything. Modified: branches/testparrottest/lib/Parrot/Test.pm == --- branches/testparrottest/lib/Parrot/Test.pm (original) +++ branches/testparrottest/lib/Parrot/Test.pm Wed Dec 10 19:03:38 2008 @@ -597,12 +597,6 @@ # Strange Win line endings convert_line_endings($expected); -# set up default description -unless ($desc) { -( undef, my $file, my $line ) = caller(); -$desc = "($file line $line)"; -} - # $test_no will be part of temporary file my $test_no = $builder->current_test() + 1; Modified: branches/testparrottest/t/perl/Parrot_Test.t == --- branches/testparrottest/t/perl/Parrot_Test.t(original) +++ branches/testparrottest/t/perl/Parrot_Test.tWed Dec 10 19:03:38 2008 @@ -417,7 +417,7 @@ } ENDOFCODE -$desc = 'C: hello world'; +$desc = 'C: is hello world'; test_out("ok 1 - $desc"); c_output_is( <
[svn:parrot] r33787 - branches/testparrottest/lib/Parrot
Author: jkeenan Date: Wed Dec 10 18:53:14 2008 New Revision: 33787 Modified: branches/testparrottest/lib/Parrot/Test.pm Log: Delete internal sub _report_odd_hash(). All it provides is a smidgen more diagnostic than you would get with a regular 'die' message, but any competent Perl programmer should be able to figure out what has gone wrong. Modified: branches/testparrottest/lib/Parrot/Test.pm == --- branches/testparrottest/lib/Parrot/Test.pm (original) +++ branches/testparrottest/lib/Parrot/Test.pm Wed Dec 10 18:53:14 2008 @@ -590,7 +590,6 @@ } sub _run_test_file { -local $SIG{__WARN__} = \&_report_odd_hash; my ( $func, $code, $expected, $desc, %extra ) = @_; my $path_to_parrot = path_to_parrot(); my $parrot = File::Spec->join( File::Spec->curdir(), 'parrot' . $PConfig{exe} ); @@ -707,21 +706,6 @@ return ( $out_f, $cmd, $exit_code ); } -sub _report_odd_hash { -my $warning = shift; -if ( $warning =~ m/Odd number of elements in hash assignment/ ) { -require Carp; -my @args = DB::uplevel_args(); -shift @args; -my $func = ( caller() )[2]; - -Carp::carp("Odd $func invocation; probably missing description for TODO test"); -} -else { -warn $warning; -} -} - sub _handle_test_options { my $options = shift; # To run the command in a different directory.
[svn:parrot] r33786 - branches/testparrottest/t/perl
Author: jkeenan Date: Wed Dec 10 18:46:49 2008 New Revision: 33786 Modified: branches/testparrottest/t/perl/Parrot_Test.t Log: Add tests for effects of $ENV{POSTMORTEM}. Modified: branches/testparrottest/t/perl/Parrot_Test.t == --- branches/testparrottest/t/perl/Parrot_Test.t(original) +++ branches/testparrottest/t/perl/Parrot_Test.tWed Dec 10 18:46:49 2008 @@ -33,7 +33,7 @@ plan( skip_all => "Test::Builder::Tester not installed\n" ); exit 0; } -plan( tests => 116 ); +plan( tests => 120 ); } use lib qw( . lib ../lib ../../lib ); @@ -632,7 +632,9 @@ test_test($desc); } +my $outfile = File::Spec->catfile( qw| t perl Parrot_Test_1.out | ); { +unlink $outfile; local $ENV{POSTMORTEM} = 1; $desc = 'pir_output_is: success'; test_out("ok 1 - $desc"); @@ -644,7 +646,28 @@ foo OUTPUT test_test($desc); - +ok( -f $outfile, +"file created during test preserved due to \$ENV{POSTMORTEM}"); +unlink $outfile; +ok( ! -f $outfile, +"file created during test has been deleted"); +} + +{ +unlink $outfile; +local $ENV{POSTMORTEM} = 0; +$desc = 'pir_output_is: success'; +test_out("ok 1 - $desc"); +pir_output_is( <<'CODE', <<'OUTPUT', $desc ); +.sub 'test' :main +print "foo\n" +.end +CODE +foo +OUTPUT +test_test($desc); +ok( ! -f $outfile, +"file created during test was not retained"); }
[svn:parrot] r33761 - in branches/testparrottest: lib/Parrot t/perl
Author: jkeenan Date: Wed Dec 10 05:16:56 2008 New Revision: 33761 Modified: branches/testparrottest/lib/Parrot/Test.pm branches/testparrottest/t/perl/Parrot_Test.t Log: Refactor unlink code into sub so that POSTMORTEM can be tested; test not yet complete. Modified: branches/testparrottest/lib/Parrot/Test.pm == --- branches/testparrottest/lib/Parrot/Test.pm (original) +++ branches/testparrottest/lib/Parrot/Test.pm Wed Dec 10 05:16:56 2008 @@ -193,6 +193,10 @@ my ( $code, $expected, $desc, %extra ) = @_; my $args = $ENV{TEST_PROG_ARGS} || ''; +# Due to ongoing changes in PBC format, all tests in +# t/native_pbc/*.t are currently being SKIPped. This means we +# have no tests on which to model tests of the following block. +# Hence, test coverage will be lacking. if ( $func =~ /^pbc_output_/ && $args =~ /-r / ) { # native tests with --run-pbc don't make sense return $builder->skip("no native tests with -r"); @@ -203,7 +207,7 @@ my $meth= $parrot_test_map{$func}; my $real_output = slurp_file($out_f); -unlink $out_f unless $ENV{POSTMORTEM}; +_unlink_or_retain( $out_f ); # set a todo-item for Test::Builder to find my $call_pkg = $builder->exported_to() || ''; @@ -318,7 +322,7 @@ $builder->diag("'$cmd' failed with exit code $exit_code") if $exit_code and not $pass; -unlink $out_f unless $ENV{POSTMORTEM}; +_unlink_or_retain( $out_f ); return $pass; }; @@ -555,11 +559,11 @@ } } -unless ( $ENV{POSTMORTEM} ) { -unlink $out_f, $build_f, $exe_f, $obj_f; -unlink per_test( '.ilk', $test_no ); -unlink per_test( '.pdb', $test_no ); -} +_unlink_or_retain( +$out_f, $build_f, $exe_f, $obj_f, +per_test( '.ilk', $test_no ), +per_test( '.pdb', $test_no ), +); return $pass; }; @@ -773,6 +777,15 @@ ); } +sub _unlink_or_retain { +my @deletables = @_; +my $deleted = 0; +unless ( $ENV{POSTMORTEM} ) { +$deleted = unlink @deletables; +} +return $deleted; +} + sub generate_languages_functions { my %test_map = ( Modified: branches/testparrottest/t/perl/Parrot_Test.t == --- branches/testparrottest/t/perl/Parrot_Test.t(original) +++ branches/testparrottest/t/perl/Parrot_Test.tWed Dec 10 05:16:56 2008 @@ -33,7 +33,7 @@ plan( skip_all => "Test::Builder::Tester not installed\n" ); exit 0; } -plan( tests => 115 ); +plan( tests => 116 ); } use lib qw( . lib ../lib ../../lib ); @@ -382,6 +382,7 @@ EXPECTED example_output_is( $file, $expected ); +# next is dying at _unlink_or_retain $expected = <
[svn:parrot] r33739 - branches/testparrottest/t/perl
Author: jkeenan Date: Tue Dec 9 19:33:40 2008 New Revision: 33739 Modified: branches/testparrottest/t/perl/Parrot_Test.t Log: Begin developing tests for $ENV{POSTMORTEM}. Modified: branches/testparrottest/t/perl/Parrot_Test.t == --- branches/testparrottest/t/perl/Parrot_Test.t(original) +++ branches/testparrottest/t/perl/Parrot_Test.tTue Dec 9 19:33:40 2008 @@ -19,6 +19,9 @@ use strict; use warnings; use Test::More; +#use Test::More qw( no_plan );; +use Carp; +use Data::Dumper;$Data::Dumper::Indent=1; use File::Spec; use lib qw( lib ); use Parrot::Config; @@ -124,6 +127,7 @@ OUTPUT test_test($desc); + $desc = 'pasm_output_isnt: success'; test_out("ok 1 - $desc"); pasm_output_isnt( <<'CODE', <<"OUTPUT", $desc ); @@ -627,6 +631,20 @@ test_test($desc); } +# Cleanup t/perl/ + +unless ( $ENV{POSTMORTEM} ) { +my $tdir = q{t/perl}; +opendir my $DIRH, $tdir or croak "Unable to open $tdir for reading: $!"; +my @need_cleanup = +grep { m/Parrot_Test_\d+\.(?:pir|pasm|out|c|o|build)$/ } +readdir $DIRH; +closedir $DIRH or croak "Unable to close $tdir after reading: $!"; +for my $f (@need_cleanup) { +unlink qq{$tdir/$f} or croak "Unable to remove $f: $!"; +} +} + # Local Variables: # mode: cperl # cperl-indent-level: 4
[svn:parrot] r33642 - branches/testparrottest/lib/Parrot
Author: jkeenan Date: Sun Dec 7 19:46:11 2008 New Revision: 33642 Modified: branches/testparrottest/lib/Parrot/Test.pm Log: Remove commented-out debugging code. Modified: branches/testparrottest/lib/Parrot/Test.pm == --- branches/testparrottest/lib/Parrot/Test.pm (original) +++ branches/testparrottest/lib/Parrot/Test.pm Sun Dec 7 19:46:11 2008 @@ -588,14 +588,6 @@ sub _run_test_file { local $SIG{__WARN__} = \&_report_odd_hash; my ( $func, $code, $expected, $desc, %extra ) = @_; -#my $incoming_desc_status; -#if ($desc) { -#$incoming_desc_status++; -#print STDERR "desc: $desc\n"; -#} else { -#print STDERR "desc is Perl-false\n"; -#} - my $path_to_parrot = path_to_parrot(); my $parrot = File::Spec->join( File::Spec->curdir(), 'parrot' . $PConfig{exe} ); @@ -607,13 +599,6 @@ ( undef, my $file, my $line ) = caller(); $desc = "($file line $line)"; } -#unless ($incoming_desc_status) { -#if ($desc) { -#print STDERR "desc is now: $desc\n"; -#} else { -#print STDERR "desc is still Perl-false\n"; -#} -#} # $test_no will be part of temporary file my $test_no = $builder->current_test() + 1;
[svn:parrot] r33641 - branches/testparrottest/t/perl/testlib
Author: jkeenan Date: Sun Dec 7 18:54:24 2008 New Revision: 33641 Added: branches/testparrottest/t/perl/testlib/hello (contents, props changed) Log: File used in testing case where file extension is missing. Added: branches/testparrottest/t/perl/testlib/hello == --- (empty file) +++ branches/testparrottest/t/perl/testlib/helloSun Dec 7 18:54:24 2008 @@ -0,0 +1,20 @@ +# Copyright (C) 2001-2008, The Perl Foundation. +# $Id$ + +# Get @ARGV as a ResizableStringArray +get_params "0", P0 + +# Discard the program name +shift S0, P0 + +# Look for additional args +if P0, FOUND_EXTRA_ARG +print "Hello World\n" +end + +FOUND_EXTRA_ARG: +shift S1, P0 +print "Hello " +print S1 +print "\n" +end
[svn:parrot] r33630 - branches/testparrottest/lib/Parrot
Author: jkeenan Date: Sun Dec 7 11:48:39 2008 New Revision: 33630 Modified: branches/testparrottest/lib/Parrot/Test.pm Log: Revert to r33620. My attempts to refactor caused tests in 'make test' to begin to fail massively. Modified: branches/testparrottest/lib/Parrot/Test.pm == --- branches/testparrottest/lib/Parrot/Test.pm (original) +++ branches/testparrottest/lib/Parrot/Test.pm Sun Dec 7 11:48:39 2008 @@ -213,19 +213,19 @@ \$extra{todo} if defined $extra{todo}; -if ($exit_code) { +if ( $func =~ /_error_/ ) { +return _handle_error_output( $builder, $real_output, $expected, $desc ) +unless $exit_code; +} +elsif ($exit_code) { $builder->ok( 0, $desc ); $builder->diag( "Exited with error code: $exit_code\n" . "Received:\n$real_output\nExpected:\n$expected\n" ); return 0; } -if ( $func =~ /_error_/ ) { -return _handle_error_output( $builder, $real_output, $expected, $desc ); -} my $pass = $builder->$meth( $real_output, $expected, $desc ); $builder->diag("'$cmd' failed with exit code $exit_code") if not $pass and $exit_code; - return $pass; };
[svn:parrot] r33622 - branches/testparrottest/lib/Parrot
Author: jkeenan Date: Sun Dec 7 10:09:36 2008 New Revision: 33622 Modified: branches/testparrottest/lib/Parrot/Test.pm Log: Restructure an if-elsif block to make syntax more readable. Modified: branches/testparrottest/lib/Parrot/Test.pm == --- branches/testparrottest/lib/Parrot/Test.pm (original) +++ branches/testparrottest/lib/Parrot/Test.pm Sun Dec 7 10:09:36 2008 @@ -213,16 +213,15 @@ \$extra{todo} if defined $extra{todo}; -if ( $func =~ /_error_/ and not $exit_code ) { -return _handle_error_output( $builder, $real_output, $expected, $desc ); -} -elsif ($exit_code) { +if ($exit_code) { $builder->ok( 0, $desc ); $builder->diag( "Exited with error code: $exit_code\n" . "Received:\n$real_output\nExpected:\n$expected\n" ); - return 0; } +if ( $func =~ /_error_/ ) { +return _handle_error_output( $builder, $real_output, $expected, $desc ); +} my $pass = $builder->$meth( $real_output, $expected, $desc ); $builder->diag("'$cmd' failed with exit code $exit_code") if not $pass and $exit_code;
[svn:parrot] r33621 - branches/testparrottest/lib/Parrot
Author: jkeenan Date: Sun Dec 7 10:06:09 2008 New Revision: 33621 Modified: branches/testparrottest/lib/Parrot/Test.pm Log: Make syntax more readable. Modified: branches/testparrottest/lib/Parrot/Test.pm == --- branches/testparrottest/lib/Parrot/Test.pm (original) +++ branches/testparrottest/lib/Parrot/Test.pm Sun Dec 7 10:06:09 2008 @@ -213,9 +213,8 @@ \$extra{todo} if defined $extra{todo}; -if ( $func =~ /_error_/ ) { -return _handle_error_output( $builder, $real_output, $expected, $desc ) -unless $exit_code; +if ( $func =~ /_error_/ and not $exit_code ) { +return _handle_error_output( $builder, $real_output, $expected, $desc ); } elsif ($exit_code) { $builder->ok( 0, $desc );
[svn:parrot] r33620 - branches/testparrottest/lib/Parrot
Author: jkeenan Date: Sun Dec 7 09:56:38 2008 New Revision: 33620 Modified: branches/testparrottest/lib/Parrot/Test.pm Log: Change some inline comments to reduce confusion. Use identical syntax where possible. Modified: branches/testparrottest/lib/Parrot/Test.pm == --- branches/testparrottest/lib/Parrot/Test.pm (original) +++ branches/testparrottest/lib/Parrot/Test.pm Sun Dec 7 09:56:38 2008 @@ -47,7 +47,7 @@ sub run_command { my ( $command, %options ) = @_; -my ( $out, $err, $chdir ) = _handle_test_options( \%options );; +my ( $out, $err, $chdir ) = _handle_test_options( \%options ); if ($PConfig{parrot_is_shared}) { _handle_blib_path(); @@ -174,7 +174,7 @@ my $pirc = File::Spec->join( File::Spec->curdir(), qw( compilers pirc ), "pirc$PConfig{exe}" ); -# A: Parrot test map # +# 1: Parrot test map # my %parrot_test_map = map { $_ . '_output_is' => 'is_eq', $_ . '_error_output_is' => 'is_eq', @@ -224,8 +224,6 @@ return 0; } - -#print STDERR 'just before $pass: ', "$desc\n"; my $pass = $builder->$meth( $real_output, $expected, $desc ); $builder->diag("'$cmd' failed with exit code $exit_code") if not $pass and $exit_code; @@ -238,7 +236,7 @@ *{ $package . '::' . $func } = $test_sub; } -# B: PIR-to-PASM test map # +# 2: PIR-to-PASM test map # my %pir_2_pasm_test_map = ( pir_2_pasm_is => 'is_eq', pir_2_pasm_isnt=> 'isnt_eq', @@ -322,9 +320,7 @@ $builder->diag("'$cmd' failed with exit code $exit_code") if $exit_code and not $pass; -if ( !$ENV{POSTMORTEM} ) { -unlink $out_f; -} +unlink $out_f unless $ENV{POSTMORTEM}; return $pass; }; @@ -334,7 +330,7 @@ *{ $package . '::' . $func } = $test_sub; } -# C: Language test map # +# 3: Language test map # my %builtin_language_prefix = ( PIR_IMCC => 'pir', PASM_IMCC => 'pasm', @@ -400,7 +396,7 @@ *{ $package . '::' . $func } = $test_sub; } -# D: Example test map # +# 4: Example test map # my %example_test_map = ( example_output_is => 'language_output_is', example_output_like => 'language_output_like', @@ -447,7 +443,7 @@ *{ $package . '::' . $func } = $test_sub; } -# E: C test map # +# 5: C test map # my %c_test_map = ( c_output_is => 'is_eq', c_output_isnt => 'isnt_eq',