Re: [ PATCH ] Broken link on parrotcode.org dev page - list item "Parrot Testing Status"

2008-09-06 Thread Allison Randal

Ronald Schmidt wrote:
I applied for an account and built what seems to me to be an appropriate 
Parrot Testing Status page.  My proposed link target is 
http://www.parrot.org/wiki/some-testing-status-tools .  If someone wants 
to set me up as a site editor I will fix the link myself otherwise the 
page is available for someone else to fix the link.


Someone else beat me to granting you editor access. But, while I was in 
there anyway, I went ahead and switched the "Wiki" tab at the top to 
point to the top-level parrot.org wiki page.


Allison


[svn:parrot-pdd] r30814 - trunk/docs/pdds/draft

2008-09-06 Thread allison
Author: allison
Date: Sat Sep  6 02:24:42 2008
New Revision: 30814

Modified:
   trunk/docs/pdds/draft/pdd30_install.pod
   trunk/docs/pdds/draft/pdd31_hll_interop.pod

Log:
[cage] Update two draft PDDs so they meet the coding standards.


Modified: trunk/docs/pdds/draft/pdd30_install.pod
==
--- trunk/docs/pdds/draft/pdd30_install.pod (original)
+++ trunk/docs/pdds/draft/pdd30_install.pod Sat Sep  6 02:24:42 2008
@@ -8,10 +8,10 @@
 =head1 ABSTRACT
 
 This PDD defines Parrot's installation details. The goal is to provide binary
-packages, a working C for parrot, the installables, FHS compliant
-search paths for the installables and solving the problem of not accessing
-installed source-only files and the optimization of config bootstrapping
-if a frozen config_hash is already linked.
+packages, a working C for parrot, the installables, FHS
+compliant search paths for the installables and solving the problem of not
+accessing installed source-only files and the optimization of config
+bootstrapping if a frozen config_hash is already linked.
 
 =head1 VERSION
 
@@ -26,28 +26,28 @@
 
 =head1 DESCRIPTION
 
-Parrot installation mechanisms are more powerful than perl5's.
-MANIFEST contains also the end location, tools/dev/install_files.pl is driven
-by this definition.
-The three runtime paths for "include", "library" for load_bytecode and "dynext"
-for loadlib should end up in the $prefix/lib/parrot paths.
-See #56996-fhs-runtime.patch
+Parrot installation mechanisms are more powerful than perl5's.  MANIFEST
+contains also the end location, tools/dev/install_files.pl is driven by this
+definition.  The three runtime paths for "include", "library" for
+load_bytecode and "dynext" for loadlib should end up in the $prefix/lib/parrot
+paths.  See #56996-fhs-runtime.patch
 
 Contrary to perl5, parrot and its language implementions on top of parrot may
 be installed as self-hosting single-file executables, with the help of merged
 pbc's and pbc2exe --install.
 
 Bootstrapping the config hash should not read a config file when the hash is
-already contained in the pmc or executable. See #57418 [TODO] optimize
-_config to omit .include "library/config.pir" on installables.
+already contained in the pmc or executable. See #57418 [TODO] optimize _config
+to omit .include "library/config.pir" on installables.
 
 The same problem is for every .include, .loadlib and .load_bytecode statement
-in installed files where the target is not installed. This could be solved with
-a module system or with pbc_merge removing not needed .load_bytecode 
statements.
+in installed files where the target is not installed. This could be solved
+with a module system or with pbc_merge removing not needed .load_bytecode
+statements.
 
 Test executables are binary different to installable executables because of
-this embedded config hash. Test executables contain config hash with
-the prefix to the build_dir, installables to the given prefix from 
Configure.pl.
+this embedded config hash. Test executables contain config hash with the
+prefix to the build_dir, installables to the given prefix from Configure.pl.
 
 There are's also a long-standing conflict in building parrot with an already
 installed shared libparrot.so. See #39742-installed-conflict.patch which adds
@@ -61,16 +61,18 @@
 have a similar packaging problem, which they haven't solved yet.
 
 B is the full path where parrot was built. It is defined in the
-config hash. When building from source build_dir is also the PARROT_RUNTIME 
prefix.
+config hash. When building from source build_dir is also the PARROT_RUNTIME
+prefix.
 
-B is the end location of the parrot tree in front of the prefix
-(/usr or /usr/local). This allows packaging by installing into a seperate
-install tree and do a tar cf there.
+B is the end location of the parrot tree in front of the prefix (/usr
+or /usr/local). This allows packaging by installing into a seperate install
+tree and do a tar cf there.
 
 The B is the return value of the global function C<_config()>,
-generated in F, and either defined in F, 
or
-as frozen pmc embedded in the test executable (F), the installable
-executable (F) or empty for miniparrot 
(F).
+generated in F, and either defined in F,
+or as frozen pmc embedded in the test executable (F), the
+installable executable (F) or empty for miniparrot
+(F).
 
 =head1 IMPLEMENTATION
 
@@ -78,8 +80,8 @@
 
 The parrot build system is optimized for building and testing in the
 build_dir, but not for building with an already installed parrot due to simple
-build system bugs, and not optimized to build and test installables, which 
should
-not access the libraries in the build_dir, but in the DESTDIR.
+build system bugs, and not optimized to build and test installables, which
+should not access the libraries in the build_dir, but in the DESTDIR.
 
 The goal is to make install work for parrot, the utils, and all the l

Re: [perl #52054] [CAGE]: Make all PDDs conform to coding standards

2008-09-06 Thread Allison Randal

Christoph Otto wrote:


The non-draft PDDs are all passing t/codingstd/pdd_format.t as of 
r30810, but two of the draft PDDs aren't.  Since they're still drafts 
and as such are very likely to change, it doesn't seem worthwhile to 
bring them into compliance or to have a test depend on them.


I propose that pdd_format.t be split into 2 otherwise identical tests; 
one for draft PDDs and one for final PDDs.  The draft test could be 
permanently TODO'd, which would indicate if any of the drafts were 
broken without messing up the test results.  The final PDD test could 
become part of make test and this ticket could be marked resolved.


I'll submit a patch if this seems to be a reasonable solution.


I just updated the draft PDDs so they pass. For as long as the 'draft' 
directory exists, I'd like the PDDs there to be subjected to the same 
formatting standards as the approved ones, even if they aren't 
"official" yet.


Allison



Re: [svn:parrot-pdd] r30569 - trunk/docs/pdds

2008-09-06 Thread Allison Randal

jerry gay wrote:



the sugar for what can be on the left side of an equals sign needs to
be changed. simply having a first parameter with OUT isn't enough. the
same thing happens for
  $P0 = push $S1
which is legal pir syntax, but obscure at best.

ops must have some means of specifying (perhaps an attribute like
C<:returns> or C<:rvalue>?) that allows them to be on the right side
of the equals. only this class of ops allows the syntax described
above.


Yes, agreed.

Allison


Re: How may I help maintain parrot.org?

2008-09-06 Thread Allison Randal

Alejandro Gómez de Argüello y de Laburu wrote:

Following the instructions I found in "How to Get Involved" at the
parrot.org website, I hereby volunteer to help maintain said website
"by updating existing pages or adding new content", or in other ways
such as my skills and time allow.


Thanks for volunteering! Editor access granted.

At the moment (since we just migrated), the biggest thing that's helpful 
is checking for broken links.


The next thing that will be helpful is checking pages for out-of-date 
content. Even someone new to the project can try out the instructions a 
page gives and see if they still work. If they don't work, and you're 
not sure how they should work, you can check with us here.


Allison


[perl #52976] [BUG] perl6 stand-alone binary broken

2008-09-06 Thread Christoph Otto via RT
On Wed Apr 16 14:24:28 2008, [EMAIL PROTECTED] wrote:
> On Wednesday 16 April 2008 10:49:15 Christoph Otto (Volt) wrote:
> 
> > The perl6 stand-alone binary chokes on chromatic's mmd example
> >
>
(http://www.oreillynet.com/onlamp/blog/2008/04/multiple_dispatch_now_please
> >.html) under linux/x86.  The bug was exposed in r26173, but the root
> cause
> > is probably deeper.  It looks easy to reproduce, but I can certainly
> > provide more information if as needed.
> 
> The root cause is a double-free on something in a context somewhere.
> If you
> keep the patch in r26173 around and bisect the thousand or so commits
> before
> there, you (or I) can probably find it.
> 
> -- c
> 


I'm not sure why this didn't get closed earlier, but now's a fine time
to do so.  
resolved


[perl #51838] [BUG] cygwin build fails

2008-09-06 Thread Christoph Otto via RT
On Tue Mar 18 14:05:34 2008, rurban wrote:
> > It's time to use Configure.pl with the option --without-crypto
> 
> Or to add -lcrypto to the cmdline.
> Configure.pl fails to pick it up apparently.
> 
> my %Parrot::Config::Generated::PConfig contains -lcrypto in libs
>   'libs' => '-ldl -lcrypt -lgmp -lreadline -lcrypto', 
> so there's something else broken.
> However, the rest compiles ok.
> 
> dynpmc does contain it:
> my $extraLibs = '-ldl -lcrypt -lgmp -lreadline -lcrypto ';
> but it is only used on windows. How should does work on other platforms?
> 
> Anyway I fixed it with this patch:
> 
> config/gen/makefiles/dynpmc_pl.in
> diff -ub  config/gen/makefiles/dynpmc_pl.in.orig
> --- config/gen/makefiles/dynpmc_pl.in.orig  2008-03-15
> 22:01:26.015625000 +
> +++ config/gen/makefiles/dynpmc_pl.in   2008-03-18 21:06:16.25000
+
> @@ -92,6 +92,8 @@
>  }
>  else {
>  $liblist = join( ' ', map { "-l$_" } keys %$libs );
> +my $extraLibs = '@libs@ @icu_shared@';
> +$liblist .= ' ' . $extraLibs;
>  }
> 
>  return
> 
> 

It looks like chromatic added this patch in r26632.  Does it resolve
this issue?



[perl #48439] [TODO] [configure] compiling Parrot with LLVM

2008-09-06 Thread Christoph Otto via RT
On Mon Dec 10 08:52:27 2007, [EMAIL PROTECTED] wrote:
> Marton Papp has successfully compiled Parrot with LLVM on Windows with 
> mingw-make (it's failing 18 tests, which is impressively low for a first 
> run on a new compiler). Below is his summary of the steps he followed. 
> I'd like to extract the changes he made for the configuration system.
> 
>  Original Message 
> Subject: Re: hi! LLVM and parrot
> Date: Mon, 10 Dec 2007 14:33:46 +0100
> From: [EMAIL PROTECTED]
> 
> [...]
> I used this file to compile it
> set path=%path%;c:\mingw\bin;D:\extracted\icu2\icu\bin
> e:
> cd e:\extracted\parrot-0.5.0\bin
> perl configure.pl --cc=E:\llvm\bin\llvm-gcc.exe
> --cxx=E:\llvm\bin\llvm-g++.exe --link=E:\llvm\bin\llvm-gcc.exe
> --ld=E:\llvm\bin\llvm-gcc.exe
> 
> 
> 
> I changed the makefile in the directory
> where there is line CUR_DIR = .
> I changed it for  full path of the current directory.
> (Otherwise ./mini_parrot caused in error)
> In my case,
> It became CUR_DIR = E:\extracted\parrot-0.5.0
> 
> and ran mingw-make
> Then make stopped.
> I moved into the directory, it just left.
> Changed these files/
> In dynpmc.pl
> I changed last line of partial_link_cmd.
> return
> "$LD ".
> '-o ' . $target . " " .
> join(" ", map {"$PATHQUOTE$_$PATHQUOTE"} @$sources) .
> " $PATHQUOTE$LIBPARROT$PATHQUOTE $liblist $LDFLAGS
$LD_LOAD_FLAGS ";
> 
> and changed this:our $LIBPARROT = q[]; for our $LIBPARROT = q[-lparrot]
> 
> continued make by mingw-make...
> 
> The make failed again , then
> 
> I changed parrot-0.5.0\tools\build\dynoplibs.pl
> I inserted these lines (copied them from tools\build\dynpmc.pl) :
> # Also note that we may need to look in the Parrot blib directory.
> if ($CC =~ /gcc/i) {
> $liblist .= qq{ -Wl,-L "E:/extracted/parrot-0.5.0/blib/lib"};
> }
> else {
> $liblist .= qq{
/LIBPATH:"E:/extracted/parrot-0.5.0/blib/lib"};
> }
> 
> I changed last lines of partial_link_cmd in dynpmc.pl
> (something similar to this)
> 
> return
> "$LD ".
> '-o ' . $target . " " .
> join(" ", map {"$PATHQUOTE$_$PATHQUOTE"} @$sources) .
> " $liblist $LDFLAGS $LD_LOAD_FLAGS ";
> 
> The explanation: remove $PATHQUOTE$LIBPARROT$PATHQUOTE  so that
> unreferenced symbol do not occur..
> I did something similar in the code it is not worth duplicating it here.
> 
> I changed $extraLibs in dynoplibs.pl inpartial_link_cmd
> for $extraLibs = '-lparrot ..
> I added -lparrot at the beginning
> 
> I went into directory just failed. I ran make.
> Then I want back to the main make.
> I ran it.
> 
> Marton Papp
> 

All tests pass on Debian/x86 with --cc=llvm-gcc --link=llvm-gcc 
--ld=llvm-gcc passed to Configure.pl .  If someone can confirm that
Configure.pl is similarly smart on Windows, this ticket can be closed.



[perl #48176] [TODO] [pugs] Warning: use of uninitialized value

2008-09-06 Thread Christoph Otto via RT
On Wed Dec 05 04:53:15 2007, pcoch wrote:
> In languages/pugs/pmc/pugscapture.pmc there are todo items of the form:
> 
> /* XXX Warning: use of uninitialized value */
> 
> This looks very similar to RT#48170 which was in the regex language.  Does
> this todo item mean that we should be *warning* about an uninitialised
value
> here, rather than that there is one in the C code?

I'm rejecting this, since pugs has been deleted from trunk.


[perl #32087] [PATCH] .include with an absolute path

2008-09-06 Thread Christoph Otto via RT
On Fri Sep 05 00:58:51 2008, cotto wrote:
> On Fri Aug 01 06:44:05 2008, coke wrote:
> > On Thu, Jul 31, 2008 at 7:35 PM, James Keenan via RT
> > <[EMAIL PROTECTED]> wrote:
> > > Coke:  Given the points Leo made and the fact that there has been
> > > nothing from the OP in 4 years, can we close this ticket?
> > >
> > > Thanks.
> > >
> > > kid51
> > >
> > 
> > Just because there's no activity or followups on a ticket doesn't mean
> > the bug isn't still there. In this case, though, I can't reproduce the
> > poster's original complaint about an absolute include path not
> > working, ignoring the quality or state of his patch.
> > 
> > We can close this ticket by adding a test that
> > - creates a temporary PIR file with a simple one line :main that
> > outputs something.
> > - gets the absolute path of that file
> > - uses another file to .include  that temporary file via the absolute
> path.
> > - verifies the output
> > - removes the temporary file.
> > 
> 
> This patch adds test of this functionality to
> t/compilers/imcc/syn/file.t .  It passes on Linux/x86.  I'll try it on a
> windows machine tomorrow and apply it over the weekend unless there any
> objections.
> 
> Christoph

The patched test works on windows, so I've applied it as r30801 and am
resolving this ticket.



[svn:parrot-pdd] r30809 - trunk/docs/pdds/draft

2008-09-06 Thread cotto
Author: cotto
Date: Fri Sep  5 23:06:22 2008
New Revision: 30809

Modified:
   trunk/docs/pdds/draft/pdd31_hll_interop.pod

Log:
[pdd] replace some stray tabs with spaces


Modified: trunk/docs/pdds/draft/pdd31_hll_interop.pod
==
--- trunk/docs/pdds/draft/pdd31_hll_interop.pod (original)
+++ trunk/docs/pdds/draft/pdd31_hll_interop.pod Fri Sep  5 23:06:22 2008
@@ -49,7 +49,7 @@
 --allison }}
 
 |
-   |
+|
 |Calling sub
 | |
 |   Language X|
@@ -60,13 +60,13 @@
   "plain Parrot"  |
   |
 + |
-|V
-|  Called wrapper
+|  V
+|Called wrapper
 | |
 | |
 |   Language YV
 | Called sub
-   |
+|
 
 Where necessary, a language may need to provide a "wrapper" sub to interface
 external calls to the language's internal calling and data representation
@@ -176,11 +176,11 @@
 definition for a given sub (i.e. one that provides the wrapper) that can be
 done without too much namespace hair.  I.e.
 
-   .sub foo :extern
+.sub foo :extern
 
 defines the version that is used by interlanguage calling, and
 
-   .sub foo
+.sub foo
 
 defines the version that is seen by other code written in that language
 (i.e. via C).  If there is no plain C, the C<:extern>


[perl #50878] [BUG] is_equal vtable function not callable in C

2008-09-06 Thread Christoph Otto via RT
On Fri Feb 15 02:43:05 2008, [EMAIL PROTECTED] wrote:
> 
> They're marked as MMD in vtable.tbl, so my guess is that they're not
> directly
> callable by vtable pointer from C.  F (though admittedly
> out of
> date) suggests that mmd_dispatch_* is the right approach.
> 
> -- c
> 

Sounds good enough for me.  I'm marking this as resolved.


[perl #58628] Re: [ PATCH ] Broken link on parrotcode.org dev page - list item "Parrot Testing Status"

2008-09-06 Thread via RT
# New Ticket Created by  Allison Randal 
# Please include the string:  [perl #58628]
# in the subject line of all future correspondence about this issue. 
# http://rt.perl.org/rt3/Ticket/Display.html?id=58628 >


Ronald Schmidt wrote:
> I applied for an account and built what seems to me to be an appropriate 
> Parrot Testing Status page.  My proposed link target is 
> http://www.parrot.org/wiki/some-testing-status-tools .  If someone wants 
> to set me up as a site editor I will fix the link myself otherwise the 
> page is available for someone else to fix the link.

Someone else beat me to granting you editor access. But, while I was in 
there anyway, I went ahead and switched the "Wiki" tab at the top to 
point to the top-level parrot.org wiki page.

Allison


[perl #54938] [BUG] Double free

2008-09-06 Thread Christoph Otto via RT
On Tue May 27 13:33:11 2008, [EMAIL PROTECTED] wrote:
> Running this program:
> 
> sub foo($a) {say $a} ; my $x = ;
> 
> on Ubuntu 8.04 with latest Parrot from svn gives this:
> 
> $ ./perl6 test.p6 
> Statement not terminated properly at line 1, near "= ;\n"
> current instr.: 'parrot;PGE::Util;die' pc 120
> (runtime/parrot/library/PGE/Util.pir:82)
> called from Sub 'parrot;Perl6::Grammar;statementlist' pc 18610
> (src/gen_grammar.pir:2736)
> called from Sub 'parrot;Perl6::Grammar;statement_block' pc 15456
> (src/gen_grammar.pir:1614)
> called from Sub 'parrot;Perl6::Grammar;TOP' pc 11688
> (src/gen_grammar.pir:211)
> called from Sub 'parrot;PCT::HLLCompiler;parse' pc 562
> (src/PCT/HLLCompiler.pir:348)
> called from Sub 'parrot;PCT::HLLCompiler;compile' pc 438
> (src/PCT/HLLCompiler.pir:291)
> called from Sub 'parrot;PCT::HLLCompiler;eval' pc 753
> (src/PCT/HLLCompiler.pir:450)
> called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1065
> (src/PCT/HLLCompiler.pir:587)
> called from Sub 'parrot;PCT::HLLCompiler;command_line' pc 1244
> (src/PCT/HLLCompiler.pir:676)
> called from Sub 'parrot;Perl6::Compiler;main' pc 10064 (perl6.pir:186)
> *** glibc detected *** ./perl6: double free or corruption (!prev):
> 0x00e83310 ***
> 
> Attached is a valgrind --leak-check=full log of a double free with this
> program: 
> 

I'm no longer seeing the double free on Debian/x86.  It would be good to
get a confirmation from the thread starter, but it looks like this
ticket can be resolved.  I'll give it a couple days and mark it as such.

Christoph



[perl #55196] [BUG] print/say opcodes have different float precision

2008-09-06 Thread Christoph Otto via RT
On Mon Jun 02 13:08:27 2008, [EMAIL PROTECTED] wrote:
> On Monday 02 June 2008 12:27:17 Bernhard Schmalhofer wrote:
> 
> > The behavior of
> >
> > .sub main
> >
> >   $N0 = 3.14159
> >   say $N0
> >   print $N0
> >   print "\n"
> > .end
> >
> > surprised me, as I got:
> >
> >
> > [EMAIL PROTECTED]:~/devel/Parrot/trunk$ uname -a
> > Linux heist 2.6.24-17-generic #1 SMP Thu May 1 14:31:33 UTC 2008
> i686
> > GNU/Linux
> > [EMAIL PROTECTED]:~/devel/Parrot/trunk$ ./parrot t.pir
> > 3.14159
> > 3.141590
> >
> > Why should 'print' print trailing a '0' and 'say' not?
> 
> The print opcode calls PIO_printf with a format of %f, while the say
> pseudo-opcode calls the say method on a ParrotIO PMC and Parrot
> converts the
> N-register argument into a string by some other means.  This happens
> in
> src/inter_call.c, in convert_arg_from_num(), which calls
> string_from_num() in
> src_string.c with a format of %vg.
> 
> They should probably be consistent, but changing either of them to
> match the
> other causes test failures (though they all look superficial).
> 
> -- c
> 

I'll sign up to do the grunt work to fix the failing tests if someone
makes a decision on what the consistent behavior should be.

Christoph


[perl #52854] [bug] Build failure with G++

2008-09-06 Thread Christoph Otto via RT
On Mon Apr 14 08:07:32 2008, [EMAIL PROTECTED] wrote:
> On Mon, Apr 14, 2008 at 11:40:01AM +0530, Senaka Fernando wrote:
> 
> > On Mon, Apr 14, 2008 at 6:33 AM, chromatic <[EMAIL PROTECTED]>
> wrote:
> 
> > > Thanks, applied as r26965, except for the patch to
> > > compilers/imcc/imclexer.c, which is a generated file.  The source
> is
> > > compilers/imcc/imcc.l.
> 
> > Well if it is a generated file, why should it be under version
> control?
> > Shouldn't that be removed?
> 
> Normally, yes.  In this case, we don't want to require everyone to
> install the
> correct versions of lex/flex and yacc/bison just to be able to build
> Parrot.
> In practice, very few people touch the IMCC parser or lexer.
> 
> -- c
> 

I'm marking this resolved, since #52874 is resolved and is a
continuation of this ticket.



[svn:parrot-pdd] r30810 - trunk/docs/pdds

2008-09-06 Thread cotto
Author: cotto
Date: Fri Sep  5 23:19:14 2008
New Revision: 30810

Modified:
   trunk/docs/pdds/pdd07_codingstd.pod
   trunk/docs/pdds/pdd09_gc.pod
   trunk/docs/pdds/pdd19_pir.pod
   trunk/docs/pdds/pdd27_multiple_dispatch.pod

Log:
[pdd] make non-draft PDDs pass pdd_format.t


Modified: trunk/docs/pdds/pdd07_codingstd.pod
==
--- trunk/docs/pdds/pdd07_codingstd.pod (original)
+++ trunk/docs/pdds/pdd07_codingstd.pod Fri Sep  5 23:19:14 2008
@@ -987,6 +987,10 @@
 or C).  One can use wildcards in the list to exempt,
 for example, all files under a given directory.
 
+=head1 REFERENCES
+
+none
+
 =cut
 
 # Local Variables:

Modified: trunk/docs/pdds/pdd09_gc.pod
==
--- trunk/docs/pdds/pdd09_gc.pod(original)
+++ trunk/docs/pdds/pdd09_gc.podFri Sep  5 23:19:14 2008
@@ -557,9 +557,9 @@
 
 For PMCs and Buffers to be collected properly, you must set the appropriate
 flags on them. Directly manipulating these flags is not recommended because
-the exact values can be changed over time. A series of macros have been created
-in F that set and check for these flags. Always use
-these provided macros when you need to test or set these flags.
+the exact values can be changed over time. A series of macros have been 
+created in F that set and check for these flags.
+Always use these provided macros when you need to test or set these flags.
 
 =over 4
 

Modified: trunk/docs/pdds/pdd19_pir.pod
==
--- trunk/docs/pdds/pdd19_pir.pod   (original)
+++ trunk/docs/pdds/pdd19_pir.pod   Fri Sep  5 23:19:14 2008
@@ -65,8 +65,8 @@
 Note that by using an opcode name as a local variable name, the variable will
 I the opcode name, effectively making the opcode unusable.
 
-In contrast to opcode names, PIR keywords I reserved, and cannot be used 
as
-identifiers. Some opcode names are, in fact, PIR keywords, which therefore
+In contrast to opcode names, PIR keywords I reserved, and cannot be used
+as identifiers. Some opcode names are, in fact, PIR keywords, which therefore
 cannot be used as identifiers.
 
 The following are PIR keywords, and cannot be used as identifiers:
@@ -1282,6 +1282,10 @@
 
 N/A
 
+=head1 REFERENCES
+
+N/A
+
 =cut
 
 __END__

Modified: trunk/docs/pdds/pdd27_multiple_dispatch.pod
==
--- trunk/docs/pdds/pdd27_multiple_dispatch.pod (original)
+++ trunk/docs/pdds/pdd27_multiple_dispatch.pod Fri Sep  5 23:19:14 2008
@@ -111,8 +111,8 @@
 
 Return an array of matching candidates, sorted from best matching to worst
 matching, for a passed in signature. The signature passed in is a simple type
-string for the signature ('P' for PMC, 'I' for integer, 'N' for number, and 'S'
-for string).
+string for the signature ('P' for PMC, 'I' for integer, 'N' for number, and 
+'S' for string).
 
 =item get_iter
 
@@ -146,8 +146,8 @@
 Return an array of matching candidates, sorted from best matching to worst
 matching, for a passed in signature. If the signature passed in is an array of
 PMCs, the types are extracted from the types of the array elements. If the
-signature passed in is a simple type string for the signature ('P' for PMC, 'I'
-for integer, 'N' for number, and 'S' for string), the types are matched as
+signature passed in is a simple type string for the signature ('P' for PMC, 
+'I' for integer, 'N' for number, and 'S' for string), the types are matched as
 simple types.
 
 =back


[perl #48172] [TODO] [pugs] Getting nonexistent value, exception or undef?

2008-09-06 Thread Christoph Otto via RT
On Wed Dec 05 04:49:22 2007, pcoch wrote:
> In languages/pugs/pmc/pugscapture.pmc:retval() there is the todo item:
> 
> /* XXX getting non existent value, exception or undef?
> 
> It looks like we need to determine at this point whether or not the value 
> we are getting doesn't exist, is an exception, or is undef.  Please
correct
> me if I'm wrong!


I'm rejecting this, since pugs has been deleted from trunk.


[perl #54414] [BUG] t\benchmark\benchmarks.t failure (r27624)

2008-09-06 Thread Christoph Otto via RT
On Mon May 19 03:55:46 2008, [EMAIL PROTECTED] wrote:
> On Sun May 18 17:02:30 2008, ajr wrote:
> > t\benchmark\benchmarks..28/37
> > #   Failed test 'examples/benchmarks/primes2.pasm'
> > #   at t\benchmark\benchmarks.t line 219.
> > # Exited with error code: 1
> 
> I think this problem is not restricted to Windows.  Like Alan, I was
> running 'make fulltest' in response to chromatic's request for
> pre-release feedback.  During the section 'make benchmark_tests', I got
> the attached on linux/386.
> 
> 

All the benchmark tests are passing for me in linux/x86.  Is that enough
to close this ticket?

Christoph




[perl #54110] [BUG] segfault in infix/n_infix with string arguments

2008-09-06 Thread Christoph Otto via RT
On Tue May 13 08:05:08 2008, coke wrote:
> On Tue, May 13, 2008 at 9:48 AM, via RT Patrick R. Michaud
> <[EMAIL PROTECTED]> wrote:
> > # New Ticket Created by  Patrick R. Michaud
> >  # Please include the string:  [perl #54110]
> >  # in the subject line of all future correspondence about this
> issue.
> >  # http://rt.perl.org/rt3/Ticket/Display.html?id=54110 >
> >
> >
> >
> >  The infix and n_infix opcodes cause segfaults when invoked with
> >  string arguments.  (Kubuntu 8.04, x86, r27472)
> >
> >  Here's an example:
> >
> >  $ cat z.pir
> >  .sub main :main
> > $P0 = new 'Float'
> > $P0 = 3
> > n_mul $P1, $P0, "4"
> > say $P1# 12
> >  .end
> >  $ ./parrot z.pir
> >  Segmentation fault
> >  $
> >
> >  Pm
> >
> 
> Doing some digging: This code (String pmc instead of STRING register)
> generates the expected result:
> 
> .sub main :main
>$P0 = new 'Float'
>$P0 = 3
>$P2 = new 'String'
>$P2 = "4"
>n_mul $P1, $P0, $P2
>say $P1# 12
> .end
> 
> And here's the backtrace on the original code:
> #0  0x in ?? ()
> #1  0xb7dedd1e in Parrot_Integer_multiply (interp=0x804f040,
> pmc=0x82313f8,
> value=0x81fba7c, dest=0x0) at ./src/pmc/integer.pmc:605
> #2  0xb7c773e3 in mmd_dispatch_p_psp (interp=0x804f040,
> left=0x82313f8,
> right=0x81fba7c, dest=0x0, func_nr=4) at src/mmd.c:569
> #3  0xb7c0b684 in Parrot_n_infix_ic_p_p_sc (cur_opcode=0x82490b0,
> interp=0x804f040) at src/ops/math.ops:102
> #4  0xb7c9eef4 in runops_slow_core (interp=0x804f040, pc=0x82490b0)
> at src/runops_cores.c:221
> #5  0xb7c704d6 in runops_int (interp=0x804f040, offset=0)
> at src/interpreter.c:918
> #6  0xb7c70e07 in runops (interp=0x804f040, offs=0) at
> src/inter_run.c:106
> #7  0xb7c71096 in runops_args (interp=0x804f040, sub=0x82317b0,
> obj=0x8096090,
> meth_unused=0x0, sig=0xb7ecda37 "vP",
> ap=0xbfb1ba6c
>
"\224\027#\b¨º±¿P\fø·Ðò\004\b\224\027#\b°\027#\b|[EMAIL PROTECTED]")
> at src/inter_run.c:232
> #8  0xb7c711cc in Parrot_runops_fromc_args (interp=0x804f040,
> sub=0x82317b0,
> sig=0xb7ecda37 "vP") at src/inter_run.c:301
> #9  0xb7c59de7 in Parrot_runcode (interp=0x804f040, argc=1,
> argv=0xbfb1bbd8)
> at src/embed.c:943
> #10 0xb7ea9f92 in imcc_run_pbc (interp=0x804f040, obj_file=0,
> output_file=0x0,
> argc=1, argv=0xbfb1bbd8) at compilers/imcc/main.c:783
> #11 0xb7eaa982 in imcc_run (interp=0x804f040, sourcefile=0xbfb1c9dd
> "z.pir",
> ...
> 
> 

Is this bug going to continue to be relevant, since the pdd27mmd branch
has removed the n_* opcodes (and presumably trunk will too after the
branch is merged back)?

Christoph


[perl #48971] [BUG] Parrot build failure "no such instruction: `trap'"

2008-09-06 Thread Christoph Otto via RT
On Sun May 04 03:11:12 2008, [EMAIL PROTECTED] wrote:
> Excellent, the patch from ticket 52214 works.
> 
> Walter
> 


resolved


[perl #48320] [BUG] Example in pdd23 doesn't work

2008-09-06 Thread Christoph Otto via RT
On Sat Feb 16 17:23:47 2008, coke wrote:
> The example in the PDD now reads:
> 
>   $P0 = new 'String'
>   $P0 = "something bad happened"
>   $P1 = new ['parrot';'exception'], $P0  # create new exception object
>   throw $P1  # throw it
> 


This code continues to not work.  Would it be DTRT to copy/pasta some
code from t/pmc/exception.t, such as the "throw - no handler" test?


[perl #54414] [BUG] t\benchmark\benchmarks.t failure (r27624)

2008-09-06 Thread Ronald Blaschke via RT
On Fri Sep 05 14:05:11 2008, cotto wrote:
> On Mon May 19 03:55:46 2008, [EMAIL PROTECTED] wrote:
> > On Sun May 18 17:02:30 2008, ajr wrote:
> > > t\benchmark\benchmarks..28/37
> > > #   Failed test 'examples/benchmarks/primes2.pasm'
> > > #   at t\benchmark\benchmarks.t line 219.
> > > # Exited with error code: 1
> > 
> > I think this problem is not restricted to Windows.  Like Alan, I was
> > running 'make fulltest' in response to chromatic's request for
> > pre-release feedback.  During the section 'make benchmark_tests', I got
> > the attached on linux/386.
> 
> All the benchmark tests are passing for me in linux/x86.  Is that enough
> to close this ticket?

r30816 tests fine on Windows XP, MSVC 9, as well.  I'm closing this
ticket.  Please reopen or create a new one if the problem persists
somewhere.

$ prove t\benchmark
t\benchmark\benchmarksok
All tests successful.
Files=1, Tests=37, 158 wallclock secs ( 0.02 usr +  0.02 sys =  0.03 CPU)
Result: PASS

Thanks,
Ron


[perl #48320] [BUG] Example in pdd23 doesn't work

2008-09-06 Thread Bob Rogers
   From: "Christoph Otto via RT" <[EMAIL PROTECTED]>
   Date: Fri, 05 Sep 2008 18:34:51 -0700

   This code continues to not work.  Would it be DTRT to copy/pasta some
   code . . .

Only if it's not spaghetti code.  ;-}

-- Bob Rogers
   http://rgrjr.dyndns.org/


Re: [perl #48320] [BUG] Example in pdd23 doesn't work

2008-09-06 Thread NotFound
On Sat, Sep 6, 2008 at 3:34 AM, Christoph Otto via RT
<[EMAIL PROTECTED]> wrote:
> On Sat Feb 16 17:23:47 2008, coke wrote:
>> The example in the PDD now reads:
>>
>>   $P0 = new 'String'
>>   $P0 = "something bad happened"
>>   $P1 = new ['parrot';'exception'], $P0  # create new exception object
>>   throw $P1  # throw it
>>
>
>
> This code continues to not work.  Would it be DTRT to copy/pasta some
> code from t/pmc/exception.t, such as the "throw - no handler" test?

The attached patch makes it work. It also allows:

$P0 = new 'Hash'
$P0 ['severity'] = 1
$P0 ['message'] = 'something bad happened'
$P1 = new ['parrot';'exception'], $P0  # create new exception object
throw $P1  # throw it

Not sure if this is the desired design. Comments?

-- 
Salu2
Index: src/pmc/exception.pmc
===
--- src/pmc/exception.pmc	(revision 30822)
+++ src/pmc/exception.pmc	(working copy)
@@ -101,6 +101,40 @@
 
 /*
 
+=item C
+
+Initializes the exception with supplied values.
+
+=cut
+
+*/
+
+VTABLE void init_pmc(PMC *values) {
+Parrot_Exception * const core_struct =
+mem_allocate_zeroed_typed(Parrot_Exception);
+INTVAL ishash = VTABLE_isa(interp, values, CONST_STRING(interp, 'Hash'));
+
+/* Set flags for custom DOD mark and destroy. */
+PObj_custom_mark_SET(SELF);
+PObj_active_destroy_SET(SELF);
+
+/* Set up the core struct and default values for the exception object. */
+PMC_data(SELF)  = core_struct;
+core_struct->severity   = ishash ?
+VTABLE_get_integer_keyed_str(interp, values, CONST_STRING(interp, 'severity')) :
+0;
+core_struct->handled= 0;
+core_struct->message= ishash ?
+VTABLE_get_string_keyed_str(interp, values, CONST_STRING(interp, 'message')) :
+VTABLE_get_string(interp, values);
+core_struct->payload= PMCNULL;
+core_struct->resume = PMCNULL;
+core_struct->stacktrace = PMCNULL;
+core_struct->handler_iter = PMCNULL;
+}
+
+/*
+
 =item C
 
 Mark any active exception data as live.


[perl #51464] [TODO] [PDD] add date stamps to PDD's

2008-09-06 Thread Christoph Otto via RT
On Fri Apr 04 16:52:39 2008, [EMAIL PROTECTED] wrote:
> On Fri Apr 04 04:30:17 2008, [EMAIL PROTECTED] wrote:
> 
> > One (possibly solvable) problem is that subversion tags don't 
> > substitute properly in the HTML generated versions on the website 
> > .
> >
> 
> What code do we use to generate those pages?
> 
> How frequently are they updated?
> 
> Who has permissions needed to run the update process?
>  
> > A bigger problem is that the $Id$ tag shows the last time the file was 
> > modified in any way (property changes, for example), but what people 
> > are looking for is a way to know the last time the design document was 
> > edited in a significant way.
> > 
> 
> Ah, 'significant'.  So this will require human intervention after all.

Is this something we want to go ahead with or should this ticket be
rejected?


pdd23 - subs as exception handlers

2008-09-06 Thread Patrick R. Michaud
PDD23:41 says

: =item B>
: 
: Push an invocable PMC -- usually a closure or, in rarer cases, a subroutine or
: continuation -- onto the exception handler stack.
: ...
: If a I is provided, Parrot pushes the pmc which will execute
: if invoked, which has the effect of unconditionally handling all errors,
: replacing the stack with that execution context of the invocable pmc.

1.  Can someone create or point me to a working example that uses 
this form of exception handler (i.e., with an invocable pmc
instead of a label as the target of push_eh)?  The variations I've
tried all seem to result in segfaults.

2.  The phrase "...pushes the pmc which will execute if invoked..." 
sounds very odd to me.  I think it should be something like
"...pushes a pmc to be invoked as an exception handler..."

Pm


throw oddities in pdd23

2008-09-06 Thread Patrick R. Michaud
PDD23:67 has:

: =item B>
: 
: Throw an exception consisting of the given I PMC.  Active exception
: handlers (if any) will be invoked with I as the only parameter.
: 
: 
: =item B [ , I ]>
: 
: Throw an exception consisting of the given I PMC after taking
: a continuation at the next opcode.  When a I is passed in,
: it will use that instead. Active exception handlers (if any) will be
: invoked with I and the given continuation as parameters.

This looks weird in a couple of respects.  The second C 
opcode shows I as an optional parameter, which 
would seem to be in conflict with the first form (i.e., they
end up being identical if I is omitted).

Next, reading the above makes it look as though exception handlers
can sometimes be invoked with a single parameter (the exception)
and sometimes with two parameters (the exception and a continuation).
Perhaps it would be better to have a consistent calling interface?
(I do suppose we could say that the second parameter is always optional.)

I suspect much of the confusion comes from when C was
(apparently) eliminated in favor of a single C opcode, 
but pdd23 wasn't made internally consistent.

Also, note that the single-argument C opcode is currently
doing more than simply cause exception handlers to be invoked -- 
it's also takes a resume continuation and stores it in the
I PMC itself (src/ops/core.ops:817).  This would seem 
to be in conflict with the next sentence at pdd23:80 :

: Any type of PMC can be thrown as an exception.  

Clearly we cannot use the single-argument C on a PMC that
doesn't have a "resume" attribute for us to store the
resume continuation.

Personally I like the idea that "any PMC can be thrown as an
exception", which would seem to argue against forcing resume
continuations into the thrown PMC (which might not have a slot
for them).  So, rather than saying that anything thrown as an 
exception contains its resume continuation, perhaps we should 
say that all handlers are invoked with the exception and resume 
continuation as arguments, and the single-argument throw simply 
takes a continuation at the next instruction to pass to the
handler(s).  

Alternatively, we could say that C only places a resume
continuation into PMCs that "does exception", but somehow I
find this less desirable than the above approach.

Pm


Re: [perl #48320] [BUG] Example in pdd23 doesn't work

2008-09-06 Thread NotFound
After some brief comment on irc, applied in r30833

-- 
Salu2


Re: [perl #48320] [BUG] Example in pdd23 doesn't work

2008-09-06 Thread NotFound
Sorry, the code I poste was bad. The valid form is:

$P1 = new ['Exception'], $P0  # create new exception object

-- 
Salu2


Re: [perl #57920] [PATCH] Suggestion for Parrot Configure test of AIO

2008-09-06 Thread Andy Dougherty
On Fri, 5 Sep 2008, James Keenan via RT wrote:

> On Thu Sep 04 19:22:56 2008, [EMAIL PROTECTED] wrote:
> > FWIW, here is a data point:  What happens on my Darwin/PPC (10.4) Mac at
> > auto::aio:
> > 
> > On Darwin, Configure.pl reports that AIO is unsupported.  
> 
> Follow-up question:  If I 'locate aio' on my Mac and come up with this
> (excerpted) list of files:
> 
> /usr/include/aio.h
> /usr/include/sys/aio.h
> /usr/share/man/man2/aio_cancel.2
> /usr/share/man/man2/aio_error.2
> /usr/share/man/man2/aio_read.2
> /usr/share/man/man2/aio_return.2
> /usr/share/man/man2/aio_suspend.2
> /usr/share/man/man2/aio_write.2
> 
> ... what *else* would I need to have AIO available on Darwin?

It looks like you already have it available.  If you try with my patch in 
verbose mode, what, exactly, goes wrong such that Configure.pl concludes 
AIO is unsupported?

-- 
Andy Dougherty  [EMAIL PROTECTED]


Re: [PATCH] added links to dotnet/doc/contents.pod

2008-09-06 Thread Christoph Otto

Reini Urban wrote:

Attached patch adds links to external dotnet ressources Jonathan
mentioned (his paper, the specs),
and the implementations.

Jonathan should approve it because it links to a bad poem on VM's in
his paper on page 1.

No ticket because it's so simple.


Thanks.  This was applied as r30842.


Re: [perl #52054] [CAGE]: Make all PDDs conform to coding standards

2008-09-06 Thread Christoph Otto

Allison Randal via RT wrote:

Christoph Otto wrote:
The non-draft PDDs are all passing t/codingstd/pdd_format.t as of 
r30810, but two of the draft PDDs aren't.  Since they're still drafts 
and as such are very likely to change, it doesn't seem worthwhile to 
bring them into compliance or to have a test depend on them.


I propose that pdd_format.t be split into 2 otherwise identical tests; 
one for draft PDDs and one for final PDDs.  The draft test could be 
permanently TODO'd, which would indicate if any of the drafts were 
broken without messing up the test results.  The final PDD test could 
become part of make test and this ticket could be marked resolved.


I'll submit a patch if this seems to be a reasonable solution.


I just updated the draft PDDs so they pass. For as long as the 'draft' 
directory exists, I'd like the PDDs there to be subjected to the same 
formatting standards as the approved ones, even if they aren't 
"official" yet.


Allison


If those are your thoughts on the subject, then it seems to make sense to add 
the pdd format test to make test.  The attached patch does this.
I'll apply it and mark this ticket as resolved before the next #parrotsketch 
unless there are any objections.


Christoph

Index: lib/Parrot/Harness/DefaultTests.pm
===
--- lib/Parrot/Harness/DefaultTests.pm	(revision 30841)
+++ lib/Parrot/Harness/DefaultTests.pm	(working copy)
@@ -80,6 +80,7 @@
 t/compilers/json/*.t
 t/examples/*.t
 t/doc/*.t
+t/codingstd/pdd_format.t
 t/distro/manifest.t
 );
 


Re: [svn:parrot] r30843 - trunk/src/pmc

2008-09-06 Thread chromatic
On Saturday 06 September 2008 18:41:25 Patrick R. Michaud wrote:

> On Sat, Sep 06, 2008 at 05:02:44PM -0700, [EMAIL PROTECTED] wrote:
> > Log:
> > Add hll_map method to parrotinterpreter.pmc
>
> ...doesn't seem to work yet, at least not on my system:
>
> $ cat x.pir
> .HLL 'Perl6', ''
>
> .sub 'main' :main
> $P0 = get_class 'Integer'
> $P1 = subclass $P0, 'MyInt'
>
> $P2 = getinterp
> $P2.'hll_map'($P0, $P1)
>
> $P3 = 'foo'()
> say $P3 # "3\n"
> $S0 = typeof $P3
> say $S0 # "MyInt"
> .end
>
> .sub 'foo'
> .return (3)
> .end
>
> $ ./parrot x.pir
> Segmentation fault

Nasty example, added as a test (and worked around) in r30847, and explained in 
RT #58636.  We need to rethink some of this design anyway when type ids go 
away, so we can live with this workaround briefly.

-- c


[perl #57920] [PATCH] Suggestion for Parrot Configure test of AIO

2008-09-06 Thread James Keenan via RT
On Sat Sep 06 16:46:08 2008, doughera wrote:
> > 
> > ... what *else* would I need to have AIO available on Darwin?
> 
> It looks like you already have it available.  If you try with my patch in 
> verbose mode, what, exactly, goes wrong such that Configure.pl concludes 
> AIO is unsupported?
> 

See attached, run at r30847.  Thanks.
kid51



auto::aio -   Does your platform support AIO...
/usr/bin/gcc -fno-common -no-cpp-precomp  -pipe -I/opt/local/include -pipe
-fno-common -Wno-long-double  -DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED
-DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN
-DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT
-falign-functions=16 -fvisibility=hidden -W -Wall -Waggregate-return
-Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization
-Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral
-Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline
-Winvalid-pch -Wmissing-braces -Wmissing-field-initializers
-Wno-missing-format-attribute -Wmissing-include-dirs -Wpacked -Wparentheses
-Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow -Wsign-compare
-Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs
-Wundef -Wunknown-pragmas -Wno-unused -Wvariadic-macros -Wwrite-strings
-Wbad-function-cast -Wdeclaration-after-statement
-Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations
-Wmissing-prototypes -Wnested-externs -Wnonnull  -I./include -c
test_17787.c
test_17787.c: In function 'main':
test_17787.c:45: error: 'SIGRTMIN' undeclared (first use in this function)
test_17787.c:45: error: (Each undeclared identifier is reported only once
test_17787.c:45: error: for each function it appears in.)
test_17787.c:46: error: 'SIGRTMAX' undeclared (first use in this function)
{standard input}:60:non-relocatable subtraction expression, "_retval" minus 
"L002$pb"
{standard input}:60:symbol: "_retval" can't be undefined in a subtraction 
expression
{standard input}:59:non-relocatable subtraction expression, "_retval" minus 
"L002$pb"
{standard input}:59:symbol: "_retval" can't be undefined in a subtraction 
expression
{standard input}:52:non-relocatable subtraction expression, "_flag" minus 
"L002$pb"
{standard input}:52:symbol: "_flag" can't be undefined in a subtraction 
expression
{standard input}:51:non-relocatable subtraction expression, "_flag" minus 
"L002$pb"
{standard input}:51:symbol: "_flag" can't be undefined in a subtraction 
expression
{standard input}:46:non-relocatable subtraction expression, "_my_sig" minus 
"L002$pb"
{standard input}:46:symbol: "_my_sig" can't be undefined in a subtraction 
expression
{standard input}:45:non-relocatable subtraction expression, "_my_sig" minus 
"L002$pb"
{standard input}:45:symbol: "_my_sig" can't be undefined in a subtraction 
expression
 (no) 
Setting Configuration Data:
(
verbose => undef,
);

  Does your platform support AIO...no.


Re: [perl #57920] [PATCH] Suggestion for Parrot Configure test of AIO

2008-09-06 Thread chromatic
On Saturday 06 September 2008 20:19:56 James Keenan via RT wrote:

> On Sat Sep 06 16:46:08 2008, doughera wrote:
> > > ... what *else* would I need to have AIO available on Darwin?
> >
> > It looks like you already have it available.  If you try with my patch in
> > verbose mode, what, exactly, goes wrong such that Configure.pl concludes
> > AIO is unsupported?
>
> See attached, run at r30847.  Thanks.
> kid51


test_17787.c: In function 'main':
test_17787.c:45: error: 'SIGRTMIN' undeclared (first use in this function)
test_17787.c:45: error: (Each undeclared identifier is reported only once
test_17787.c:45: error: for each function it appears in.)
test_17787.c:46: error: 'SIGRTMAX' undeclared (first use in this function)

If they're not in signal.h in Darwin, where are they?  (And if they're not in 
signal.h in Darwin, can someone squelch the rumor that Mac OS X is a 
Unix-like platform?  POSIX 2001!)

... or we could use SIGUSR for the tests, I suppose.  We're not using 
real-time signals elsewhere in Parrot right now.

-- c