Re: [perl #52054] [CAGE]: Make all PDDs conform to coding standards
James Keenan via RT wrote: The PDDs in docs/pdds/ are now in substantial compliance with the coding standard, those in docs/pdds/draft/ much less so. I'll leave this ticket open, but it's the sort of thing that only needs some cage cleaning attention every month or so. 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.
Re: [ PATCH ] Broken link on parrotcode.org dev page - list item Parrot Testing Status
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
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 Cmake install 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 Cmake install 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. Bbuild_dir 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. -BDESTDIR 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. +BDESTDIR 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 Bconfig hash is the return value of the global function C_config(), -generated in Fconfig_lib.pasm, and either defined in Flibrary/config.pir, or -as frozen pmc embedded in the test executable (Fconfig.fpmc), the installable -executable (Finstall_config.fpmc) or empty for miniparrot (Fnull_config.fpmc). +generated in Fconfig_lib.pasm, and either defined in Flibrary/config.pir, +or as frozen pmc embedded in the test executable (Fconfig.fpmc), the +installable executable (Finstall_config.fpmc) or empty for miniparrot +(Fnull_config.fpmc). =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,
Re: [perl #52054] [CAGE]: Make all PDDs conform to coding standards
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
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?
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
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
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
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
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
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
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 Cget_hll_global). If there is no plain Cfoo, the C:extern
[perl #50878] [BUG] is_equal vtable function not callable in C
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. Fdocs/mmd.pod (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
# New Ticket Created by Allison Randal # Please include the string: [perl #58628] # in the subject line of all future correspondence about this issue. # URL: 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
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
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++
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
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 Cis_perl_exemption()). 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 Finclude/parrot/pobject.h 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 Finclude/parrot/pobject.h 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 Ihide the opcode name, effectively making the opcode unusable. -In contrast to opcode names, PIR keywords Iare reserved, and cannot be used as -identifiers. Some opcode names are, in fact, PIR keywords, which therefore +In contrast to opcode names, PIR keywords Iare 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?
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)
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
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. # URL: 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'
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
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)
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
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
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 Cvoid init_pmc() + +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 Cvoid mark() Mark any active exception data as live.
[perl #51464] [TODO] [PDD] add date stamps to PDD's
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 http://www.parrotcode.org/docs/pdd/pdd07_codingstd.html. 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
PDD23:41 says : =item Bpush_eh IINVOCABLE_PMC : : Push an invocable PMC -- usually a closure or, in rarer cases, a subroutine or : continuation -- onto the exception handler stack. : ... : If a IINVOCABLE_PMC 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
PDD23:67 has: : =item Bthrow IEXCEPTION : : Throw an exception consisting of the given IEXCEPTION PMC. Active exception : handlers (if any) will be invoked with IEXCEPTION as the only parameter. : : : =item Bthrow IEXCEPTION [ , ICONTINUATION ] : : Throw an exception consisting of the given IEXCEPTION PMC after taking : a continuation at the next opcode. When a ICONTINUATION is passed in, : it will use that instead. Active exception handlers (if any) will be : invoked with IEXCEPTION and the given continuation as parameters. This looks weird in a couple of respects. The second Cthrow opcode shows ICONTINUATION as an optional parameter, which would seem to be in conflict with the first form (i.e., they end up being identical if ICONTINUATION 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 Cthrowcc was (apparently) eliminated in favor of a single Cthrow opcode, but pdd23 wasn't made internally consistent. Also, note that the single-argument Cthrow 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 IEXCEPTION 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 Cthrow 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 Cthrow 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
After some brief comment on irc, applied in r30833 -- Salu2
Re: [perl #48320] [BUG] Example in pdd23 doesn't work
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
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
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
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
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
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
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