[perl #35855] Problem with Perl 5.6.1
# New Ticket Created by Franois PERRAD # Please include the string: [perl #35855] # in the subject line of all future correspondence about this issue. # URL: https://rt.perl.org/rt3/Ticket/Display.html?id=35855 I notice that building with Perl 5.6.1 (on Win32 with Perl 5.6.1 ActiveState-build 635 and MinGW) causes problem. $ parrot Assertion failed: (int)io-image-bufused = 0, file src/pmc_freeze.c, line 478 abnormal program termination This assertion occurs in parrot_get_config_string(). The data parrot_config[] (file src/parrot_config.c) is not valid. This data is the frozen version of runtime/parrot/include/config.fpmc runtime/parrot/include/config.fpmc is a transformation of config_lib.pasm And I don't found a real explanation ... Francois.
Re: t/src/manifest.t failed
On Wednesday 18 May 2005 07:52, Leopold Toetsch wrote: Dino Morelli wrote: I'm seeing the following test failure at r8113 t/src/manifestNOK 6# Failed test (t/src/manifest.t at line 79) I'd say we just drop this test. Whenever you do reasoanble work in the working tree, you got test files, editor swap file and whatnot. The original version of t/src/manifest.t which i have written back in 2002 just tests that version control (CVS at that time) and MANIFEST are in sync. There were no checks for extra file, because this would lead exact to the above effects. Still it is one of the most often failing tests, because people tend to forget to update MANIFEST when adding files to CVS. Garret Goebel wrote a commitinfo file which warned a commiter if he/she forgot to update the MANIFEST. I have an updated version of t/src/manifest.t I was about to commit but is now conflicting with this latest version. This new manifest.t introduces no new features (checking of MANIFEST.SKIP) but just changes from CVS to SVN. While at it, I removed the reliance on the interal files like CVS/Entries. In SVN this is no longer necessary because working Perl-Bindings exist. A new version for the precommit-script is still to be investigated. I can commit this version, but first I want to reach consensus if this is the right way to go. bye boe #! perl -w # Copyright: 2001-2003 The Perl Foundation. All Rights Reserved. # $Id: manifest.t 7803 2005-04-11 13:37:27Z leo $ =head1 NAME t/src/manifest.t - MANIFEST File =head1 SYNOPSIS % perl -Ilib t/src/manifest.t =head1 DESCRIPTION Checks that the distribution and the MANIFEST file agree. =cut use Test::More tests = 4; use strict; no warnings qw(once); use ExtUtils::Manifest; use Cwd; ok (-e $ExtUtils::Manifest::MANIFEST, 'MANIFEST exists'); $ExtUtils::Manifest::Quiet = 1; my @missing = ExtUtils::Manifest::manicheck (); unless (ok ([EMAIL PROTECTED], 'manicheck ()')) { print # Missing files:\n; print # $_\n foreach @missing; } sub svn_check; SKIP: { if (-e '.svn') { eval { require SVN::Client; require SVN::Wc; }; if ($@) { skip ('SVN Perlbindings not installed', 2); } svn_check; } # XXX: somebody can add SVK tests here else { skip ('Not under version control', 2); } } sub svn_check { my (@mani_miss, @svn_miss); my $cwd = cwd (); my %manifest = (); { my $manifest = ExtUtils::Manifest::maniread (); while (my ($key, $value) = each %$manifest) { $key = $cwd/$key; $manifest{$key} = $value; } } my $ctx = new SVN::Client; $ctx-status ($cwd, 'WORKING', \check_func, 1, 1, 0, 1); sub check_func () { my ($path, $status) = @_; my $textstatus = $status-text_status(); if ($textstatus == $SVN::Wc::Status::normal) { push @mani_miss, $path unless -d $path or exists $manifest{$path}; } elsif ($textstatus == $SVN::Wc::Status::modified) { push @mani_miss, $path [modified] unless -d $path or exists $manifest{$path}; } elsif ($textstatus == $SVN::Wc::Status::conflicted) { push @mani_miss, $path [conflicted] unless -d $path or exists $manifest{$path}; } elsif ($textstatus == $SVN::Wc::Status::added) { push @mani_miss, $path [added] unless -d $path or exists $manifest{$path}; } elsif ($textstatus == $SVN::Wc::Status::replaced) { push @mani_miss, $path [re-added] unless -d $path or exists $manifest{$path}; } elsif ($textstatus == $SVN::Wc::Status::missing) { # This is a bit strange the file is still in SVN # but missing in the WC push @mani_miss, $path [missing] unless -d $path or exists $manifest{$path}; } elsif ($textstatus == $SVN::Wc::Status::unversioned) { push @svn_miss, $path if exists $manifest{$path}; } elsif ($textstatus == $SVN::Wc::Status::ignored) { push @svn_miss, $path [ignored] if exists $manifest{$path}; } elsif ($textstatus == $SVN::Wc::Status::deleted) { push @svn_miss, $path [deleted] if exists $manifest{$path}; } else { # Unknown $textstatus, output some debuginfo print # [$textstatus] $path\n; } } local $ = \n\t; ok ([EMAIL PROTECTED], 'all files in MANIFEST are in SVN') or diag (Missing files in SVN:[EMAIL PROTECTED]); ok ([EMAIL PROTECTED], 'all files in SVN are in MANIFEST') or diag (Missing files in MANIFEST:[EMAIL PROTECTED]); }
Re: t/src/manifest.t failed
Juergen Boemmels wrote: On Wednesday 18 May 2005 07:52, Leopold Toetsch wrote: I'd say we just drop this test. Whenever you do reasoanble work in the working tree, you got test files, editor swap file and whatnot. Still it is one of the most often failing tests, because people tend to forget to update MANIFEST when adding files to CVS. It depends of course on how people organize their work. But I think there are basically two cases: - manicheck a clean repo - manicheck a working copy, where you compile and run tests I have both parrot trees, usual work is: a) svn up in the clean tree b) rsync -au trunk/ leo c) work and compile in my tree d) manidiff copy changed files back to trunk e) svn ci Step d) and e) include some scripts that run a manickeck in the clean tree. But this sequence doesn't prevent from just forgetting to add a file to MANIFEST in leo/ :) Garret Goebel wrote a commitinfo file which warned a commiter if he/she forgot to update the MANIFEST. perl tools/dev/manicheck.pl in the clean tree does it I have an updated version of t/src/manifest.t I was about to commit but is now conflicting with this latest version. What about: skip(number 6, 1) if -e parrot$EXE; leo
Re: Parrot as an extension language
Autrijus == Autrijus Tang [EMAIL PROTECTED] writes: Autrijus On Tue, May 17, 2005 at 03:00:14PM +0100, Colin Paul Autrijus Adams wrote: But when I look at http://www.parrotcode.org/docs/embed.html, I can see no way of getting information back from the script - not even an exit code. Is there anyway of doing this that I have missed? Autrijus You may wish to use Parrot_call_sub's SS form, where Autrijus you pass in a string and get back a string. Something Autrijus like this: Autrijus my $interp = Parrot_new(undef); Autrijus # ... load a .pir file or some other code into Autrijus $interp ... Autrijus my $code_pmc = Parrot_find_global( $interp, Autrijus const_string(Namespace), const_string(sub_name), ); Autrijus my $return_str = Parrot_call_sub( $interp, Autrijus $code_pmc, const_string(SS), Autrijus const_string(Your_input_string_here), ); I'm confused by this - what language is it written in? Perl? And will: Parrot_PackFile Parrot_readbc(Parrot_Interp, char *filename) Reads in a bytecode file and returns a packfile structure for it. accept a .pir file? -- Colin Adams Preston Lancashire
Re: Parrot as an extension language
Colin Paul Adams wrote: Autrijus my $return_str = Parrot_call_sub( $interp, Autrijus $code_pmc, const_string(SS), Autrijus const_string(Your_input_string_here), ); I'm confused by this - what language is it written in? Perl? APL: Autrijus' Pseudocde Language And will: Parrot_PackFile Parrot_readbc(Parrot_Interp, char *filename) Reads in a bytecode file and returns a packfile structure for it. accept a .pir file? No, but Parrot_load_bytecode(Interp*, const char*) will do, see the Cload_bytecode opcode. leo
Problems linking with parrot
I've nearly got my first Eiffel program with an embedded parrot VM to compile - well, actually, it DOES compile, just one remaining link problem, which I can't figure out: gcc -o hello -O2 -m486 -pipe -I/opt/Eiffel55/studio/spec/linux-glibc2.1/include -I. -I/home/colin/parrot/include -I/home/colin/eParrot/manual_wrapper/c/include -I/home/colin/eParrot/generated_wrapper/c/include -I/home/colin/eParrot/generated_wrapper/c/include/spec/ise C4/Cobj4.o C3/Cobj3.o C2/Cobj2.o C1/Cobj1.o E2/Eobj2.o E1/Eobj1.o E1/emain.o \ /home/colin/parrot/blib/lib/libparrot.a -lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lrt -lgmp /opt/Eiffel55/studio/spec/linux-glibc2.1/lib/libfinalized.a -lm /home/colin/parrot/blib/lib/libparrot.a(global_setup.o)(.text+0xd): In function `create_config_hash': src/global_setup.c:33: undefined reference to `parrot_get_config_string' collect2: ld returned 1 exit status make: *** [hello] Error 1 It's that: src/global_setup.c:33: undefined reference to `parrot_get_config_string' which I can't figure out. It's decalred in library.h, and called from the line quoted, but I can't find it's definition in src or include/parrot. Can anyone tell me what I'm missing? -- Colin Adams Preston Lancashire
Re: Problems linking with parrot
you need to link with src/parrot_config.o (a recent change). http://www.nntp.perl.org/group/perl.perl6.internals/29468 On 18 May 2005, Colin Paul Adams wrote: I've nearly got my first Eiffel program with an embedded parrot VM to compile - well, actually, it DOES compile, just one remaining link problem, which I can't figure out: gcc -o hello -O2 -m486 -pipe -I/opt/Eiffel55/studio/spec/linux-glibc2.1/include -I. -I/home/colin/parrot/include -I/home/colin/eParrot/manual_wrapper/c/include -I/home/colin/eParrot/generated_wrapper/c/include -I/home/colin/eParrot/generated_wrapper/c/include/spec/ise C4/Cobj4.o C3/Cobj3.o C2/Cobj2.o C1/Cobj1.o E2/Eobj2.o E1/Eobj1.o E1/emain.o \ /home/colin/parrot/blib/lib/libparrot.a -lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lrt -lgmp /opt/Eiffel55/studio/spec/linux-glibc2.1/lib/libfinalized.a -lm /home/colin/parrot/blib/lib/libparrot.a(global_setup.o)(.text+0xd): In function `create_config_hash': src/global_setup.c:33: undefined reference to `parrot_get_config_string' collect2: ld returned 1 exit status make: *** [hello] Error 1 It's that: src/global_setup.c:33: undefined reference to `parrot_get_config_string' which I can't figure out. It's decalred in library.h, and called from the line quoted, but I can't find it's definition in src or include/parrot. Can anyone tell me what I'm missing? -- Colin Adams Preston Lancashire
Re: Problems linking with parrot
Jeff == Jeff Horwitz [EMAIL PROTECTED] writes: Jeff you need to link with src/parrot_config.o (a recent change). Thanks, that did the trick. -- Colin Adams Preston Lancashire
Re: t/src/manifest.t failed
Leopold Toetsch schrieb: Juergen Boemmels wrote: On Wednesday 18 May 2005 07:52, Leopold Toetsch wrote: I'd say we just drop this test. Whenever you do reasoanble work in the working tree, you got test files, editor swap file and whatnot. Yep, checking for temporary files is not a priority. But keeping svn:ignore and MANIFEST.SKIP in sync is nice to have, so that 'perl tools/dev/manicheck.pl' and 'svn status' warn about the same extra files. Still it is one of the most often failing tests, because people tend to forget to update MANIFEST when adding files to CVS. It depends of course on how people organize their work. But I think there are basically two cases: - manicheck a clean repo That's the same as checking that all files in SVN are also in MANIFEST. So a list diff between 'MANIFEST' and 'svn list -R' should be in t/src/manifest.t. Currently this is not checked in 't/src/manifest.t', but I think it is in Jürgens version. - manicheck a working copy, where you compile and run tests I have both parrot trees, usual work is: a) svn up in the clean tree b) rsync -au trunk/ leo c) work and compile in my tree d) manidiff copy changed files back to trunk e) svn ci I have a working copy 'local' for larger changes and a copy for smaller patches 'repos'. I generate patches from 'local' and apply them to 'repos'. Before checking in I usually do 'make test', 'svn status' and look at the output from 'svn diff'. Step d) and e) include some scripts that run a manickeck in the clean tree. But this sequence doesn't prevent from just forgetting to add a file to MANIFEST in leo/ :) Garret Goebel wrote a commitinfo file which warned a commiter if he/she forgot to update the MANIFEST. perl tools/dev/manicheck.pl in the clean tree does it When you run it on a clean copy. I have an updated version of t/src/manifest.t I was about to commit but is now conflicting with this latest version. Should I do a merge? Using the SVN Perl bindings make the code much nicer. What about: skip(number 6, 1) if -e parrot$EXE; I have disabled the 'extra file' test for now. leo CU, Bernhard
Re: t/src/manifest.t failed
On Wednesday 18 May 2005 20:14, Bernhard Schmalhofer wrote: [...] That's the same as checking that all files in SVN are also in MANIFEST. So a list diff between 'MANIFEST' and 'svn list -R' should be in t/src/manifest.t. Currently this is not checked in 't/src/manifest.t', but I think it is in Jürgens version. It was checked in the old CVS version. [...] Should I do a merge? Using the SVN Perl bindings make the code much nicer. I will do it, but I need some time. I have a day-time job. bye boe
Parrot_setup_argv in embed.h
This function declaration does not appear to have a definition. I commented out the declaration, in order to get my code to compile. Is this the right thing to do? embed.c has a reference to it commented out. -- Colin Adams Preston Lancashire
[PATCH] More t/p6rules tests
I moved the \N test out of t/p6rules/cclass.t and made a new file for escape tests: escape.t, currently containing tests for \s \S \w \W \d \D \n \N Patch file for MANIFEST and cclass.t, and new file escape.t attached. -Dino -- .~.Dino Morelli /V\email: [EMAIL PROTECTED] /( )\ weblog: http://categorically.net/d/blog/ ^^-^^ preferred distro: Debian GNU/Linux http://www.debian.orgIndex: MANIFEST === --- MANIFEST(revision 8117) +++ MANIFEST(working copy) @@ -1738,6 +1738,7 @@ t/p6rules/backtrack.t [] t/p6rules/capture.t [] t/p6rules/cclass.t[] +t/p6rules/escape.t[] t/p6rules/ws.t[] t/perl/Parrot_Distribution.t [devel] t/perl/Parrot_Docs.t [devel] Index: t/p6rules/cclass.t === --- t/p6rules/cclass.t (revision 8117) +++ t/p6rules/cclass.t (working copy) @@ -1,8 +1,10 @@ -use Parrot::Test tests = 15; +use strict; +use warnings; +use Parrot::Test tests = 14; use Parrot::Test::PGE; -p6rule_is ('abcdef', 'a\N+?f', 'lazy newline'); +# character class p6rule_is ('abcdef', '[c]', 'character class'); p6rule_is ('abcdef', '[dcb]**{3}', 'repeated character class'); p6rule_is ('abcdef', '^[a]', 'anchored character class'); @@ -11,6 +13,7 @@ p6rule_is ('abcdef', '^-[e]', 'anchored character class'); p6rule_isnt('abcdef', '^-[a]', 'anchored character class'); +# character class range p6rule_is ('abcdef', '[b..d]', 'character range'); p6rule_is ('abxxef', '[b..d]', 'character range'); p6rule_is ('axcxef', '[b..d]', 'character range');
Re: Parrot_setup_argv in embed.h
Colin Paul Adams wrote: This function declaration does not appear to have a definition. I commented out the declaration, in order to get my code to compile. Should probably be a puplic API function again, when calling conventions have settled. leo
Re: [PATCH] More t/p6rules tests
On Wed, 18 May 2005, Dino Morelli wrote: Patch file for MANIFEST and cclass.t, and new file escape.t attached. Looks like I missed the escape.t attachment. -Dino -- .~.Dino Morelli /V\email: [EMAIL PROTECTED] /( )\ weblog: http://categorically.net/d/blog/ ^^-^^ preferred distro: Debian GNU/Linux http://www.debian.org
Re: [PATCH] More t/p6rules tests
On Wed, 18 May 2005, Dino Morelli wrote: On Wed, 18 May 2005, Dino Morelli wrote: Patch file for MANIFEST and cclass.t, and new file escape.t attached. Looks like I missed the escape.t attachment. The list server keeps eating my attached homework. Won't let me attach a .t file. Trying to stick it in the body of the message this time... NEW file: t/p6rules/escape.t - use strict; use warnings; use Parrot::Test tests = 16; use Parrot::Test::PGE; p6rule_isnt('abcdef', 'a\s+f', 'whitespace'); p6rule_is (ab cdef, 'ab\s+cdef', 'whitespace'); p6rule_is ('abcdef', 'a\S+f', 'not whitespace'); p6rule_isnt(ab cdef, 'a\S+f', 'not whitespace'); p6rule_isnt('a=[ *f', 'a\w+f', 'word character'); p6rule_is (abcdef, 'a\w+f', 'word character'); p6rule_is ('a%- f', 'a\W+f', 'not word character'); p6rule_isnt(abcdef, 'a\W+f', 'not word character'); p6rule_isnt('abcdef', 'a\d+f', 'digit'); p6rule_is (ab42cdef, 'ab\d+cdef', 'digit'); p6rule_is ('abcdef', 'a\D+f', 'not digit'); p6rule_isnt(ab0cdef, 'a\D+f', 'not digit'); p6rule_isnt('abcdef', 'a\n+f', 'logical newline'); p6rule_is (ab\n\ncdef, 'ab\n+cdef', 'logical newline'); p6rule_is ('abcdef', 'a\N+f', 'not logical newline'); p6rule_isnt(ab\ncdef, 'a\N+f', 'not logical newline'); # dont forget to change the number of tests :-) - -Dino -- .~.Dino Morelli /V\email: [EMAIL PROTECTED] /( )\ weblog: http://categorically.net/d/blog/ ^^-^^ preferred distro: Debian GNU/Linux http://www.debian.org
r8118: MSWin32 Test Results
Below are the test results of Windows XP SP2 Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86 Activestate Python 2.4.1 Build 245 Activestate Perl 5.8.6 Build 811 ANTLR 2.7.5 ICU 3.2 GDBM 1.8.3 GMP 4.1.4 Failed TestStat Wstat Total Fail Failed List of Failed --- t\dynclass\foo.t 3 768 33 100.00% 1-3 t\dynclass\gdbmhash.t13 332813 13 100.00% 1-13 t\dynclass\pybuiltin.t6 1536 66 100.00% 1-6 t\dynclass\pyclass.t 6 1536 66 100.00% 1-6 t\dynclass\pycomplex.t2 512 22 100.00% 1-2 t\dynclass\pyfunc.t 4 1024 44 100.00% 1-4 t\dynclass\pyint.t 26 665626 26 100.00% 1-26 t\op\spawnw.t 5 1280 65 83.33% 2-6 t\pmc\bigint.t1 256221 4.55% 22 t\pmc\threads.t 7 1792117 63.64% 2-5 7-9 t\pmc\timer.t 2 512 82 25.00% 3 5 2 tests and 65 subtests skipped. Failed 11/151 test scripts, 92.72% okay. 75/2480 subtests failed, 96.98% okay.
Re: [perl #35305] [PATCH] skip threads 'detatch' test on win32
As stated already, this (and possibly other thread) test(s) can't succeed as long as Win32 has no event loop that passes the terminate event on to the running interpreter. 1) Why the heck --- parrot/config/gen/platform/win32/threads.h Mon May 2 14:40:59 2005 +++ parrot-devel/config/gen/platform/win32/threads.h Mon May 2 14:42:58 2005 @@ -0,0 +1,3 @@ + +#include parrot/thr_windows.h + isn't in the repository? 2) To test both cases(MS compiler and not), I played with the macro #ifdef _MCS_VER in thr_windows.h and forgot 1 at the and of it. The patch applied removes it. Though it couldn't affect the test results as long as thr_windows.h wasn't included at all. mcs_ver.patch Description: Binary data
Perl 6 Summary for 2005-05-03 through 2005-05-17
Perl 6 Summary for 2005-05-03 through 2005-05-17 All~ Welcome ot another fortnight's summary. Wouldn't it just figure that I can't think of anything sufficiently non-sequiterish to amuse myself. Perhaps I need a running gag like Leon Brocard or chromatic's cummingseque capitalization Maybe I should start one and not tell you. That could be fun. Sorry for spelling errors, gmails spell checker is busted for the moment. Perl 6 Compiler pugs commit emails If you have ever been foolish enough to want to get an email for every commit in Pugs, Sam Vilain created a way to help you sip from the firehose. Have fun. http://xrl.us/f5q7 given when nested Luke Palmer had a question about how nested when statements in a given block should act. His intuition disagreed with Pugs, but most others supported Pugs. http://xrl.us/f5q8 I don't need to walk around in circles Autrijus has made Pugs into a registered compiler for Parrot. Since Pugs already allowed you to embed parrot code (well pir anyway) directly into perl 6, this allows you to embed the perl 6 in your pir in your perl 6. Now the possibilities are endless, at least until you blow your mental stack. Those of you with tail call optimization in your mental stack may simply go into an infinite loop if you prefer. http://xrl.us/f5q9 xor on lists Trewth Seeker expressed his opinion about the proper definition of xor quite strongly. Unfortunately, his opinion is at odds with established mathematics, as Mark Biggar pointed out to him. http://xrl.us/f5ra PGE features update Patrick provided an update on the state of the Perl Grammar Engine. It has many nifty new features. http://xrl.us/f5rb Pugs on Cygwin Rob Kinyon and Gaal Yahas worked to improve Pugs support for Cygwin. Unfortunately the thread winds down with an unanswered question, fortunately Stevan clued me in on IRC that things are working just yet. http://xrl.us/f5rc Pugs gets some objects and some rules Autrijus announced that Pugs now has basic support for Objects and Rules. Sometimes he scares me. Usually he just makes me really want to learn haskell though. http://xrl.us/f5rd regression test Miroslav Silovic provided a regression test for hyper ops. Some people just don't appreciate the fun of regressing. http://xrl.us/f5re basic test for classes Stevan Little provided a patch for a simple object test. Autrijus applied it. Odd, cause I am pretty sure that Stevan has the commit bit... http://xrl.us/f5rf torturing PGE Juerd provided a link to a big rule that could segfault PGE. Kind reminds me of a homework assignment I had to create a regular expression which matched all strings of numbers that did not contain any repeated digits. Easy in perl, but hard in math. I think the resultant regex was somewhere around 17 MB. http://xrl.us/f5rg Pugs 6.2.3 with Live CD Autrijus released Pugs 6.2.3 which contains 10% more awesome then Pugs 6.2.2. You should check it out on the live CD that Ingo Blechschmidt released. http://xrl.us/f5rh -- release anouncement http://xrl.us/f5ri -- live CD PXPerl meets Pugs Grégoire Péan announced that he has added Pugs binaries to his windows distribution of Perl. Pretty cool. Autrijus innocently asked him to take on the slightly larger task of producing binaries of Parrot too, so that Pugs could be at its more powerful. http://xrl.us/f5rj Parrot Wow did you see how I mentioned Parrot before going into. That was like an awesome transition. My high school english teachers would be so proud... character classes Patrick wants character class opcodes of the form find first and find first not. Leo pointed him to some hysterical raisins who might help. http://xrl.us/f5rk PGE on MinGW François Perrad fixed a problem with building PGE on MinGW. Patrick applied the patch. http://xrl.us/f5rm PIO_fdopen return value Luke Palmer both intoduced me to the wonderfully cute phrase untodid and provided a patch making PIO_fdopen return NULL when give bad flags. Leo applied the patch, but Melvin Smith warned that this might be a bad idea. Silence after that. http://xrl.us/f5rn embedding initialization Jeff Horwitz was having trouble embedding PIR into C. Leo provided some pointers. Jeff was happy. http://xrl.us/f5ro Test::Builder updates Previously, Michael G Schwern announced an update to Test::Builder. chromatic asked if it was worth the upgrade. Michael replied probably, but I don't think anyone has acted on it. http://xrl.us/f5rp miniparrot Robert Spier created a miniparrot at Bernhard Schmalhofer request. This miniparrot does not replace our make system, but it does make our