Re: patch that causes imcc to hang
Patrick R. Michaud wrote: > As I noted online and in the Perl 6 design meeting earlier today, > the attached patch (applied to r28973) causes imcc to hang > while building rakudo at the step > > ../../parrot -o perl6.pbc perl6.pir > > This step never completes -- in fact, I inadvertently left > it running for four hours and it hadn't completed. > > I'm reporting this because it's extremely odd; the patch itself > does nothing more than add a function to src/builtins/guts.pir; > in fact, Rakudo doesn't even use that function yet. Within the > function, simply changing the placement of the push_eh opcode > seems to be enough to get things to compile again. > > Can anyone reproduce the problem on their systems? Yes. On a very normal i386 32bit Linux box (Debian Etch) I get the same behaviour. Moritz -- Moritz Lenz http://moritz.faui2k3.org/ | http://perl-6.de/
next generation parrot compiler tools
a Brainf*** interpreter in lolcode: http://forum.lolcode.com/viewtopic.php?id=51 I wonder whether it runs on parrot :-) kjs
[perl #41666] Test PIR and PASM by generating PBC and running it
On Mi. 02. Jul. 2008, 23:25:56, [EMAIL PROTECTED] wrote: > make testr does this; if that doesn't work, let's re-open the ticket. Actually 'make testr' does something a little bit different. It creates a '*.pbc' File, converts it into an executable and runs the executable. It doesn't run the pbc-File directly. -- /* [EMAIL PROTECTED] */
Re: next generation parrot compiler tools
Klaas-Jan Stol wrote: > a Brainf*** interpreter in lolcode: > > http://forum.lolcode.com/viewtopic.php?id=51 > > I wonder whether it runs on parrot :-) it does not: $ ../../parrot lolcode.pbc ~/bf.lol Syntax error at line 6, near "I HAS A IN" current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82) .. Moritz -- Moritz Lenz http://moritz.faui2k3.org/ | http://perl-6.de/
Re: [svn:parrot] r28816 - trunk/languages/perl6/tools
On Wed, Jul 2, 2008 at 11:06 PM, chromatic <[EMAIL PROTECTED]> wrote: >$ parrot perl6.pbc --output=buggy.pir --trace=PIR buggy.p6 > s/trace/target/
[PATCH] suggestion for the file "grammar.pg"
Hello, I suggest the little attached patch (diff -u) for the file "languages/perl6/src/parser/grammar.pg", so that the following code my $a = .2; will also be accepted from Rakudo. Gerd Pokorra patch.tar Description: Unix tar archive
[perl #56548] PATCH] for file "01-literals.t"
# New Ticket Created by [EMAIL PROTECTED] # Please include the string: [perl #56548] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=56548 > Hello, this patch for the file "languages/perl6/t/00-parrot/01-literals.t" adds a test for a literal with a radix. Gerd Pokorra patch.tar Description: Unix tar archive
Re: [perl #53394] [BUG] Divide-by-zero error in test on Windows
>> > On Windows XP Home Edition, using gcc, the following test error is >> > occurring: >> > >> > Divide by zero^M >> > current instr.: 'life' pc 175 (examples\pir\life.pir:102) >> > > Can any of our windows users duplicate this bug? If not, it may not > exist anymore. It didn't show up in the tests run after R29021. The cause appeared to be time values (for the default number of generations) taken so close together that the divisor, (their difference) was zero. IIRC, the default number of generations was 3, but now appears to be 5,000. -- Email and shopping with the feelgood factor! 55% of income to good causes. http://www.ippimail.com
[perl #56544] [PATCH] install_files.pl
This is the next version. About the /usr/runtime location I'm not sure yet. Is this really kosher? On cygwin the .include searchpath is now: /usr/runtime/parrot/include /usr/runtime/parrot /usr /usr/lib/parrot/include /usr/lib/parrot/ . with extensions: "" .exe .lnk .exe.lnk .past .past.exe .past.lnk .past.exe.lnk .pir .pir.exe .pir.lnk .pir.exe.lnk The exe .lnk magic is cygwin specific. The rest is common. -- Reini Urban 2008-07-03 20:43:41 rurban use sane defaults without destdir, prefix and without buildprefix. esp. main and library files to /usr/lib/parrot and not just to prefix (/usr) is important. there's also a fix for a minor cygwin stat-copy discrepancy. does does about the same as the fedora spec file, the debian rule, the gentto ebuild and freebsd ports Makefile. diff -u src/parrot-0.6.3/tools/dev/install_files.pl.orig --- origsrc/parrot-0.6.3/tools/dev/install_files.pl 2008-05-18 16:44:14.0 + +++ src/parrot-0.6.3/tools/dev/install_files.pl 2008-07-03 07:46:47.5 + @@ -126,7 +126,7 @@ bindir => '/usr/bin', libdir => '/usr/lib', includedir => '/usr/include', -docdir => '/usr/share/doc', +docdir => '/usr/share/doc/parrot', 'dry-run' => 0, ); @@ -189,6 +189,7 @@ } elsif ( $meta{include} ) { $dest =~ s/^include//; +$dest =~ s/^src/parrot/; $dest = File::Spec->catdir( $options{includedir}, $dest ); } elsif ( $meta{doc} ) { @@ -197,12 +198,14 @@ elsif ( $meta{pkgconfig} ) { # For the time being this is hardcoded as being installed under libdir -# as it is typically donw with automake installed packages. If there +# as it is typically done with automake installed packages. If there # is a use case to make this configurable we'll add a seperate # --pkgconfigdir option. $dest = File::Spec->catdir( $options{libdir}, 'pkgconfig', $dest ); } else { +$dest =~ s|^src/|lib/parrot/src/|; +next if $dest =~ /compilers|config|language|tools/; $dest = File::Spec->catdir( $options{prefix}, $dest ); } @@ -243,6 +247,7 @@ } else { next unless -e $src; +next if $^O eq 'cygwin' and -e "$src.exe"; # cygwin stat works, but copy not copy( $src, $dest ) or die "copy $src to $dest: $!\n"; print "$dest\n"; }
[perl #56558] [PATCH] pdb rename to parrot_pdb
# New Ticket Created by Reini Urban # Please include the string: [perl #56558] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=56558 > --- osname= cygwin osvers= 1.5.25(0.15642) arch= cygwin-thread-multi-64int cc= gcc --- Flags: category=core severity=medium ack=no --- 2008-07-03 17:17:39 rurban * requires a svn rename before: svn rename src/pdb.c src/parrot_pdb.c svn rename t/tools/pdb.t t/tools/parrot_pdb.t * MANIFEST, docs/debug.pod, docs/debugger.pod, docs/parrot.pod src/parrot_pdb.c, t/tools/parrot_pdb.t: rename pdb to parrot_pdb to avoid conflicts with existing pdb binaries - e.g. the python debugger or the IBM parallel debugger. Index: parrot-svn/MANIFEST === --- parrot-svn.orig/MANIFEST +++ parrot-svn/MANIFEST @@ -3070,7 +3070,7 @@ src/packfile/pf_items.c src/packout.c [] src/pbc_info.c [] src/pbc_merge.c [] -src/pdb.c [] +src/parrot_pdb.c[] src/pdump.c [] src/pic.c [] src/pic_jit.c [] @@ -3857,7 +3857,7 @@ t/tools/ops2pmutils/09-prepare_real_ops. t/tools/ops2pmutils/10-print_module.t [] t/tools/ops2pmutils/11-print_h.t[] t/tools/pbc_merge.t [] -t/tools/pdb.t [] +t/tools/parrot_pdb.t[] t/tools/pmc2c.t [] t/tools/pmc2cutils/00-qualify.t [] t/tools/pmc2cutils/01-pmc2cutils.t [] Index: parrot-svn/docs/debug.pod === --- parrot-svn.orig/docs/debug.pod +++ parrot-svn/docs/debug.pod @@ -75,9 +75,9 @@ different objects over the lifetime of t Let's say you have written (or generated) a huge .pasm or .pir file. It's not working. You'd like some help in figuring out why. -=head2 pdb +=head2 parrot_pdb -One possible tool is C, the Parrot Debugger. See F for +One possible tool is C, the Parrot Debugger. See F for details on it. =head2 stabs Index: parrot-svn/docs/debugger.pod === --- parrot-svn.orig/docs/debugger.pod +++ parrot-svn/docs/debugger.pod @@ -7,12 +7,12 @@ docs/debugger.pod - The Parrot Debugger =head1 ABSTRACT -This document describes F, the Parrot Debugger. +This document describes F, the Parrot Debugger. =head1 DESCRIPTION Starting from version 0.0.6 Parrot has its own debugger, which is modeled after -Perl's one. Its name is F, and is an interactive environment that let you +Perl's one. Its name is F, and is an interactive environment that let you step through bytecode, set breakpoints, evaluate assembly instructions and peek at the interpreter status. @@ -29,17 +29,17 @@ target: (where C is the same C incarnation you used to build Parrot). -If everything goes well, you should come up with a F executable in the +If everything goes well, you should come up with a F executable in the same directory as the Parrot program. =head1 THE DEBUGGER SHELL To start the debugger type: - pdb file.pbc + parrot_pdb file.pbc -That is, F takes exactly one argument, which is the Parrot bytecode that -you're going to debug. F will automatically load and disassemble the +That is, F takes exactly one argument, which is the Parrot bytecode that +you're going to debug. F will automatically load and disassemble the bytecode file for you. Note that you can't pass command line arguments to your program when you invoke @@ -49,7 +49,7 @@ After the version banner, you'll see the (pdb) -F is ready to receive commands and give output. To list the available +F is ready to receive commands and give output. To list the available commands type 'h'. To quit the debugger type 'q'. As with the Perl debugger, whenever it halts and shows you a line of code, it @@ -69,7 +69,7 @@ sensitive. A blank line always repeats the last command entered. -Also note that at this point in its development, F has very poor error +Also note that at this point in its development, F has very poor error checking on commands and their arguments, so type carefully or something bad will happen. Feel free to report bugs, or better yet patch the source code (see L below). Index: parrot-svn/docs/parrot.pod === --- parr
[perl #56554] [TODO] add languages/*/Makefile install targets
# New Ticket Created by Reini Urban # Please include the string: [perl #56554] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=56554 > --- osname= cygwin osvers= 1.5.25(0.15642) arch= cygwin-thread-multi-64int cc= gcc --- Flags: category=install severity=medium ack=no --- make install in languages should gather the language docs and examples/* --- Summary of my parrot 0.6.3 (r0) configuration: configdate='Wed Jul 2 19:08:15 2008 GMT' Platform: osname=cygwin, archname=cygwin-thread-multi-64int jitcapable=1, jitarchname=i386-cygwin, jitosname=CYGWIN, jitcpuarch=i386 execcapable=1 perl=/usr/bin/perl.exe Compiler: cc='gcc', ccflags='-U__STRICT_ANSI__ -pipe -I/usr/local/include -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -falign-functions=16 -maccumulate-outgoing-args -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 -Wno-missing-format-attribute -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 -Wwrite-strings -Wbad-function-cast -Wdeclaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -DDISABLE_GC_DEBUG=1 -DNDEBUG -O3 -DHAS_GETTEXT', Linker and Libraries: ld='gcc', ldflags=' -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base -L/usr/local/lib', cc_ldflags='', libs='-ldl -lcrypt -lgmp -lreadline -lpcre -lglut -lGLU -lGL -lcrypto -lintl' Dynamic Linking: share_ext='.dll', ld_share_flags='-shared', load_ext='.dll', ld_load_flags='-shared' Types: iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4, ptrsize=4, ptr_alignment=1 byteorder=1234, nv=double, numvalsize=8, doublesize=8 --- Environment: CYGWIN =server HOME =/home/rurban LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH =/usr/src/perl/parrot/parrot-svn/blib/lib:~/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/rurban/bin:/usr/bin:/usr/local/bin:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32:/usr/X11R6/bin:/cygdrive/c/bat:/cygdrive/p/MSVS6/reskit:/usr/bin:/usr/lib/gstreamer-0.8:/usr/lib/lapack SHELL (unset) -- Reini Urban
[perl #56558] [PATCH] pdb rename to parrot_pdb
Added patch -- Reini Urban 2008-07-03 17:17:39 rurban * requires a svn rename before: svn rename src/pdb.c src/parrot_pdb.c svn rename t/tools/pdb.t t/tools/parrot_pdb.t * MANIFEST, docs/debug.pod, docs/debugger.pod, docs/parrot.pod src/parrot_pdb.c, t/tools/parrot_pdb.t: rename pdb to parrot_pdb to avoid conflicts with existing pdb binaries - e.g. the python debugger or the IBM parallel debugger. Index: parrot-svn/MANIFEST === --- parrot-svn.orig/MANIFEST +++ parrot-svn/MANIFEST @@ -3070,7 +3070,7 @@ src/packfile/pf_items.c src/packout.c [] src/pbc_info.c [] src/pbc_merge.c [] -src/pdb.c [] +src/parrot_pdb.c[] src/pdump.c [] src/pic.c [] src/pic_jit.c [] @@ -3857,7 +3857,7 @@ t/tools/ops2pmutils/09-prepare_real_ops. t/tools/ops2pmutils/10-print_module.t [] t/tools/ops2pmutils/11-print_h.t[] t/tools/pbc_merge.t [] -t/tools/pdb.t [] +t/tools/parrot_pdb.t[] t/tools/pmc2c.t [] t/tools/pmc2cutils/00-qualify.t [] t/tools/pmc2cutils/01-pmc2cutils.t [] Index: parrot-svn/docs/debug.pod === --- parrot-svn.orig/docs/debug.pod +++ parrot-svn/docs/debug.pod @@ -75,9 +75,9 @@ different objects over the lifetime of t Let's say you have written (or generated) a huge .pasm or .pir file. It's not working. You'd like some help in figuring out why. -=head2 pdb +=head2 parrot_pdb -One possible tool is C, the Parrot Debugger. See F for +One possible tool is C, the Parrot Debugger. See F for details on it. =head2 stabs Index: parrot-svn/docs/debugger.pod === --- parrot-svn.orig/docs/debugger.pod +++ parrot-svn/docs/debugger.pod @@ -7,12 +7,12 @@ docs/debugger.pod - The Parrot Debugger =head1 ABSTRACT -This document describes F, the Parrot Debugger. +This document describes F, the Parrot Debugger. =head1 DESCRIPTION Starting from version 0.0.6 Parrot has its own debugger, which is modeled after -Perl's one. Its name is F, and is an interactive environment that let you +Perl's one. Its name is F, and is an interactive environment that let you step through bytecode, set breakpoints, evaluate assembly instructions and peek at the interpreter status. @@ -29,17 +29,17 @@ target: (where C is the same C incarnation you used to build Parrot). -If everything goes well, you should come up with a F executable in the +If everything goes well, you should come up with a F executable in the same directory as the Parrot program. =head1 THE DEBUGGER SHELL To start the debugger type: - pdb file.pbc + parrot_pdb file.pbc -That is, F takes exactly one argument, which is the Parrot bytecode that -you're going to debug. F will automatically load and disassemble the +That is, F takes exactly one argument, which is the Parrot bytecode that +you're going to debug. F will automatically load and disassemble the bytecode file for you. Note that you can't pass command line arguments to your program when you invoke @@ -49,7 +49,7 @@ After the version banner, you'll see the (pdb) -F is ready to receive commands and give output. To list the available +F is ready to receive commands and give output. To list the available commands type 'h'. To quit the debugger type 'q'. As with the Perl debugger, whenever it halts and shows you a line of code, it @@ -69,7 +69,7 @@ sensitive. A blank line always repeats the last command entered. -Also note that at this point in its development, F has very poor error +Also note that at this point in its development, F has very poor error checking on commands and their arguments, so type carefully or something bad will happen. Feel free to report bugs, or better yet patch the source code (see L below). Index: parrot-svn/docs/parrot.pod === --- parrot-svn.orig/docs/parrot.pod +++ parrot-svn/docs/parrot.pod @@ -112,7 +112,7 @@ A beginner's guide to debugging the Parr =item F -Documentation for C, the Parrot debugger. +Documentation for C, the Parrot debugger. =back Index: parrot-svn/src/parrot_pdb.c === --- parrot-svn.orig/src/parrot_pdb.c +++ parrot-svn/src/parrot_pdb.c
[ITP] parrot-0.6.3 with parrot-perl6
I would like to contribute and maintain the parrot packages. I've discussed the layout at #parrot and got their blessing, esp. the favor of parrot-perl6 over parrot-rakudo, as it is called on fedora. Just the new php, now called pipp is still called plumhead. This will be in the next release 0.6.4. Updates appear every month. Maintaining pugs, the still defacto reference implementation of perl6, requires ghc, which requires a complicated bootstrap, similar in complexity to sbcl. parrot, libparrot0 and libparrot-devel is in debian, freebsd ports, fedora and gentoo. parrot-perl6 in debian at least. parrot-languages is my compressed version of the fedora split, they have for every single language a seperate package. Otherwise the package layout is similar to fedora, debian, gentoo and freebsd. It's still a mess and a make install is not fully supported yet, but we have to start somewhere to get it finished. I just left the docs/examples, the others stripped it. pdb is called parrot_pdb, disassemble is called pbc_disassemble. README and setup.hints attached. Download: wget -x -nH --cut-dirs=1 \ http://rurban.xarch.at/cygr/parrot/libparrot-devel/libparrot-devel-0.6.3-1.t ar.bz2 \ http://rurban.xarch.at/cygr/parrot/libparrot-devel/setup.hint \ http://rurban.xarch.at/cygr/parrot/libparrot0/libparrot0-0.6.3-1.tar.bz2 \ http://rurban.xarch.at/cygr/parrot/libparrot0/setup.hint \ http://rurban.xarch.at/cygr/parrot/parrot-0.6.3-1-src.tar.bz2 \ http://rurban.xarch.at/cygr/parrot/parrot-0.6.3-1.tar.bz2 \ http://rurban.xarch.at/cygr/parrot/parrot-languages/parrot-languages-0.6.3-1 .tar.bz2 \ http://rurban.xarch.at/cygr/parrot/parrot-languages/setup.hint \ http://rurban.xarch.at/cygr/parrot/parrot-perl6/parrot-perl6-0.6.3-1.tar.bz2 \ http://rurban.xarch.at/cygr/parrot/parrot-perl6/setup.hint \ http://rurban.xarch.at/cygr/parrot/setup.hint -- Reini Urban http://phpwiki.org/ http://murbreak.at/ sdesc: "Parrot Virtual Machine development headers and libraries" ldesc: "Libraries and headers needed for development against Parrot" category: Libs requires: parrot readline libncurses-devel libicu-devel libgmp-devel libgdbm-devel perl pcre-devel libglut-devel external-source: parrot sdesc: "libparrot dll" category: Libs external-source: parrot requires: libreadline6 libintl8 libicu38 libgmp3 libgdbm4parrot -- Parrot is a virtual machine designed to efficiently compile and execute bytecode for interpreted languages. Parrot is a target for Perl 6 and a lot of other languages. .include searchpath: /usr/runtime/parrot/include /usr/runtime/parrot /usr /usr/lib/parrot/include /usr/lib/parrot/ . with extensions: "" .exe .lnk .exe.lnk .past .past.exe .past.lnk .past.exe.lnk .pir .pir.exe .pir.lnk .pir.exe.lnk Runtime requirements: parrot readline ncurses libicu gmp gdbm Build requirements: readline-devel ncurses-devel libicu-devel gmp-devel gdbm-devel perl Canonical homepage: http://www.parrotcode.org/ Canonical download: http://www.parrotcode.org/release/devel --- Build instructions: cd /usr/src cygport parrot--.cygport all This will create: /usr/src/parrot---src.tar.bz2 /usr/src/parrot--.tar.bz2 /usr/src/libparrot0--.tar.bz2 /usr/src/libparrot-devel--.tar.bz2 /usr/src/parrot-perl6--.tar.bz2 Or use 'cygport parrot--.cygport prep' to get a patched source directory. --- Files included in the =parrot= package: /usr/bin/parrot.exe /usr/bin/parrot_pdb.exe /usr/bin/pbc_info.exe /usr/bin/pbc_merge.exe /usr/bin/pbc_to_exe.exe /usr/bin/pdump.exe /usr/lib/parrot/config_lib.pasm /usr/lib/parrot/dynext/apl_group.dll /usr/lib/parrot/dynext/digest_group.dll /usr/lib/parrot/dynext/dotnet.dll /usr/lib/parrot/dynext/dotnet_ops.dll /usr/lib/parrot/dynext/dotnet_ops_cg.dll /usr/lib/parrot/dynext/dotnet_ops_cgp.dll /usr/lib/parrot/dynext/dotnet_ops_switch.dll /usr/lib/parrot/dynext/dotnet_runtime.dll /usr/lib/parrot/dynext/dynlexpad.dll /usr/lib/parrot/dynext/eclectus_group.dll /usr/lib/parrot/dynext/gdbmhash.dll /usr/lib/parrot/dynext/libglutcb.dll /usr/lib/parrot/dynext/libnci_test.dll /usr/lib/parrot/dynext/lua_group.dll /usr/lib/parrot/dynext/match_group.dll /usr/lib/parrot/dynext/perl6_group.dll /usr/lib/parrot/dynext/rational.dll /usr/lib/parrot/dynext/subproxy.dll /usr/lib/parrot/dynext/tcl_group.dll /usr/lib/parrot/dynext/wmls_group.dll /usr/lib/parrot/dynext/wmls_ops.dll /usr/lib/parrot/dynext/wmls_ops_cg.dll /usr/lib/parrot/dynext/wmls_ops_cgp.dll /usr/lib/parrot/dynext/wmls_ops_switch.dll /usr/lib/parrot/library/CGI/QueryHash.pbc /usr/lib/parrot/library/CGI/QueryHash.pir /usr/lib/parrot/library/Config/JSON.pir /usr/lib/parrot/library/Crow.pir /usr/lib/parrot/library/Data/Dumper.pbc /usr/lib/parrot/library/
Re: [perl #56548] PATCH] for file "01-literals.t"
(sorry if this arrives multiple times, br0ken ISP and all..) Hi, [EMAIL PROTECTED] (via RT) wrote: > this patch for the file "languages/perl6/t/00-parrot/01-literals.t" adds > a test for a literal with a radix. Although there are some similar tests in t/00-parrot/ I wouldn't start adding more in this file, because the official test suite lives in the pugs repository under t/spec (svn co http://svn.pugscode.org/pugs/t/spec ). The file S02-literals/radix.t seems like the better place to start, there you also have access to better testing tools (like is(), ok() etc.) If you want to contribute to the test suite, please tell us your desired nick name and you can get a commit bit. Cheers, Moritz -- Moritz Lenz http://moritz.faui2k3.org/ | http://perl-6.de/
Re: [PATCH] suggestion for the file "grammar.pg"
Hi, Gerd Pokorra wrote: > I suggest the little attached patch (diff -u) for the file > "languages/perl6/src/parser/grammar.pg", so that the following code > > my $a = .2; > > will also be accepted from Rakudo. But does the language specification allow it? I don't think so, and STD.pm (after which rakudo's parser is modeled) doesn't allow it. Cheers, Moritz -- Moritz Lenz http://moritz.faui2k3.org/ | http://perl-6.de/
[perl #56562] [PATCH] root.in: add cygwin importlib
# New Ticket Created by Reini Urban # Please include the string: [perl #56562] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=56562 > config/gen/makefiles/root.in: add the cygwin importlib to please -lparrot in packaged version. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ 2008-07-03 13:44:35 rurban * config/gen/makefiles/root.in: add the cygwin importlib to please -lparrot in packaged version. --- origsrc/parrot-0.6.3/config/gen/makefiles/root.in 2008-06-16 13:06:01.0 + +++ src/parrot-0.6.3/config/gen/makefiles/root.in 2008-07-03 11:40:14.171875000 + @@ -870,7 +870,8 @@ $(LIBPARROT_SHARED) : $(O_FILES) $(MKPATH) @blib_dir@ $(LD) $(LD_SHARE_FLAGS) $(LDFLAGS) @[EMAIL PROTECTED]@ @libparrot_soname@ \ -$(O_FILES) $(C_LIBS) $(ICU_SHARED) +#CONDITIONED_LINE(cygchkdll): -Wl,--out-implib=libparrot.dll.a \ + $(O_FILES) $(C_LIBS) $(ICU_SHARED) #CONDITIONED_LINE(libparrot_shared_alias): ( cd @blib_dir@ ; ln -sf @libparrot_shared@ @libparrot_shared_alias@ )
[perl #56564] [TODO] add languages/*/Makefile install targets
# New Ticket Created by Reini Urban # Please include the string: [perl #56564] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=56564 > make install should gather the language docs and examples/* -- Reini Urban
[perl #56566] [PATCH] pdb rename to parrot_pdb
# New Ticket Created by Reini Urban # Please include the string: [perl #56566] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=56566 > 2008-07-03 17:17:39 rurban * requires a svn rename before: svn rename src/pdb.c src/parrot_pdb.c svn rename t/tools/pdb.t t/tools/parrot_pdb.t * MANIFEST, docs/debug.pod, docs/debugger.pod, docs/parrot.pod src/parrot_pdb.c, t/tools/parrot_pdb.t: rename pdb to parrot_pdb to avoid conflicts with existing pdb binaries - e.g. the python debugger or the IBM parallel debugger. [ patch extra ] -- Reini Urban http://phpwiki.org/ http://murbreak.at/
[perl #56570] [PATCH] root.in: add cygwin importlib
# New Ticket Created by Reini Urban # Please include the string: [perl #56570] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=56570 > --- osname= cygwin osvers= 1.5.25(0.15642) arch= cygwin-thread-multi-64int cc= gcc --- Flags: category=core severity=medium ack=no --- config/gen/makefiles/root.in: add the cygwin importlib to please -lparrot in packaged version. 2008-07-03 13:44:35 rurban * config/gen/makefiles/root.in: add the cygwin importlib to please -lparrot in packaged version. --- origsrc/parrot-0.6.3/config/gen/makefiles/root.in 2008-06-16 13:06:01.0 + +++ src/parrot-0.6.3/config/gen/makefiles/root.in 2008-07-03 11:40:14.171875000 + @@ -870,7 +870,8 @@ $(LIBPARROT_SHARED) : $(O_FILES) $(MKPATH) @blib_dir@ $(LD) $(LD_SHARE_FLAGS) $(LDFLAGS) @[EMAIL PROTECTED]@ @libparrot_soname@ \ -$(O_FILES) $(C_LIBS) $(ICU_SHARED) +#CONDITIONED_LINE(cygchkdll): -Wl,--out-implib=libparrot.dll.a \ + $(O_FILES) $(C_LIBS) $(ICU_SHARED) #CONDITIONED_LINE(libparrot_shared_alias):( cd @blib_dir@ ; ln -sf @libparrot_shared@ @libparrot_shared_alias@ ) --- Summary of my parrot 0.6.3 (r28667) configuration: configdate='Thu Jul 3 15:28:37 2008 GMT' Platform: osname=cygwin, archname=cygwin-thread-multi-64int jitcapable=1, jitarchname=i386-cygwin, jitosname=CYGWIN, jitcpuarch=i386 execcapable=1 perl=/usr/bin/perl5.10.0.exe Compiler: cc='gcc', ccflags='-U__STRICT_ANSI__ -pipe -I/usr/local/include -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -falign-functions=16 -maccumulate-outgoing-args -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 -Wno-missing-format-attribute -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 -Wwrite-strings -Wbad-function-cast -Wdeclaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -DDISABLE_GC_DEBUG=1 -DNDEBUG -O3 -DHAS_GETTEXT', Linker and Libraries: ld='gcc', ldflags=' -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base -L/usr/local/lib', cc_ldflags='', libs='-ldl -lcrypt -lgmp -lreadline -lpcre -lglut32 -lglu32 -lopengl32 -lcrypto -lintl' Dynamic Linking: share_ext='.dll', ld_share_flags='-shared', load_ext='.dll', ld_load_flags='-shared' Types: iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4, ptrsize=4, ptr_alignment=1 byteorder=1234, nv=double, numvalsize=8, doublesize=8 --- Environment: CYGWIN =server HOME =/home/rurban LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH =/home/rurban/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/rurban/bin:/usr/bin:/usr/local/bin:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32:/usr/X11R6/bin:/cygdrive/c/bat:/cygdrive/p/MSVS6/reskit:/usr/bin:/usr/lib/gstreamer-0.8:/usr/lib/lapack SHELL (unset)
[perl #56574] [PATCH] pdb rename to parrot_pdb
# New Ticket Created by Reini Urban # Please include the string: [perl #56574] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=56574 > 2008-07-03 17:17:39 rurban * requires a svn rename before: svn rename src/pdb.c src/parrot_pdb.c svn rename t/tools/pdb.t t/tools/parrot_pdb.t * MANIFEST, docs/debug.pod, docs/debugger.pod, docs/parrot.pod src/parrot_pdb.c, t/tools/parrot_pdb.t: rename pdb to parrot_pdb to avoid conflicts with existing pdb binaries - e.g. the python debugger or the IBM parallel debugger. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ 2008-07-03 17:17:39 rurban * requires a svn rename before: svn rename src/pdb.c src/parrot_pdb.c svn rename t/tools/pdb.t t/tools/parrot_pdb.t * MANIFEST, docs/debug.pod, docs/debugger.pod, docs/parrot.pod src/parrot_pdb.c, t/tools/parrot_pdb.t: rename pdb to parrot_pdb to avoid conflicts with existing pdb binaries - e.g. the python debugger or the IBM parallel debugger. Index: parrot-svn/MANIFEST === --- parrot-svn.orig/MANIFEST +++ parrot-svn/MANIFEST @@ -3070,7 +3070,7 @@ src/packfile/pf_items.c src/packout.c [] src/pbc_info.c [] src/pbc_merge.c [] -src/pdb.c [] +src/parrot_pdb.c[] src/pdump.c [] src/pic.c [] src/pic_jit.c [] @@ -3857,7 +3857,7 @@ t/tools/ops2pmutils/09-prepare_real_ops. t/tools/ops2pmutils/10-print_module.t [] t/tools/ops2pmutils/11-print_h.t[] t/tools/pbc_merge.t [] -t/tools/pdb.t [] +t/tools/parrot_pdb.t[] t/tools/pmc2c.t [] t/tools/pmc2cutils/00-qualify.t [] t/tools/pmc2cutils/01-pmc2cutils.t [] Index: parrot-svn/docs/debug.pod === --- parrot-svn.orig/docs/debug.pod +++ parrot-svn/docs/debug.pod @@ -75,9 +75,9 @@ different objects over the lifetime of t Let's say you have written (or generated) a huge .pasm or .pir file. It's not working. You'd like some help in figuring out why. -=head2 pdb +=head2 parrot_pdb -One possible tool is C, the Parrot Debugger. See F for +One possible tool is C, the Parrot Debugger. See F for details on it. =head2 stabs Index: parrot-svn/docs/debugger.pod === --- parrot-svn.orig/docs/debugger.pod +++ parrot-svn/docs/debugger.pod @@ -7,12 +7,12 @@ docs/debugger.pod - The Parrot Debugger =head1 ABSTRACT -This document describes F, the Parrot Debugger. +This document describes F, the Parrot Debugger. =head1 DESCRIPTION Starting from version 0.0.6 Parrot has its own debugger, which is modeled after -Perl's one. Its name is F, and is an interactive environment that let you +Perl's one. Its name is F, and is an interactive environment that let you step through bytecode, set breakpoints, evaluate assembly instructions and peek at the interpreter status. @@ -29,17 +29,17 @@ target: (where C is the same C incarnation you used to build Parrot). -If everything goes well, you should come up with a F executable in the +If everything goes well, you should come up with a F executable in the same directory as the Parrot program. =head1 THE DEBUGGER SHELL To start the debugger type: - pdb file.pbc + parrot_pdb file.pbc -That is, F takes exactly one argument, which is the Parrot bytecode that -you're going to debug. F will automatically load and disassemble the +That is, F takes exactly one argument, which is the Parrot bytecode that +you're going to debug. F will automatically load and disassemble the bytecode file for you. Note that you can't pass command line arguments to your program when you invoke @@ -49,7 +49,7 @@ After the version banner, you'll see the (pdb) -F is ready to receive commands and give output. To list the available +F is ready to receive commands and give output. To list the available commands type 'h'. To quit the debugger type 'q'. As with the Perl debugger, whenever it halts and shows you a line of code, it @@ -69,7 +69,7 @@ sensitive. A blank line always repeats the last command entered. -Also note that at this point in its development, F has very poor error +Also note that at this point in its development, F has very poor error checking
[perl #48014] [DEPRECATED] PMC union struct
A bit more detail on the conversion process for a PMC: 1) Find the core data of the PMC, and convert it into a series of ATTR statement at the beginning of the "pmclass" block. So, if the PMC uses only 'PMC_int_val', create a single entry: 'ATTR INTVAL integer_data;' (Pick a meaningful name, and add a comment at the end of the line explaining what it is. A good example is src/pmc/eventhandler.pmc.) If the core data of the PMC is a whole struct stored in PMC_data, you can directly copy the body of that struct into the .pmc file, and just prepend ATTR to each line. 2) Change any calls to PMC_int_val (or whatever macro the particular PMC uses) to 'GET_ATTR_integer_data' or 'SET_ATTR_integer_data' (the lower-case half of the accessor macros matches the name you gave the attribute in the 'ATTR' declaration.) If your attribute is a PMC/STRING/INTVAL/FLOATVAL type, the accessor is generated to correctly set/retrieve the native type directly. These macros must be used on a separate line, and can't be embedded within other C code on a line. See src/pmc/exporter.pmc for an example. So this is correct: GET_ATTR_ns_src(interp, SELF, tmp_ns_src); but this is wrong: tmp_ns_src = GET_ATTR_ns_src(interp, SELF); 3) Change 'init' and 'init_pmc' to initialize the auto-generated struct instead of whatever initialization it was doing before. For example, if it was previously setting a default value in PMC_int_val, it now needs to allocate a struct of the appropriate type (the autogenerated structe is always named Parrot_, so the Exporter PMC has a struct named Parrot_Exporter), store that struct in PMC_data, and then set default values on the struct. See src/pmc/exporter.pmc for a good example of 'init'. 4) Any place you need to directly access the core struct of the PMC, use the accessor macro for the PMC's struct. It is named the same as the struct but in all caps (for example, the Exporter PMC's accessor macro for the core data struct used like 'Parrot_Exporter *core_struct = PARROT_EXPORTER(SELF);'). 5) Change 'destroy' to destroy PMC_data. 6) Change 'mark' to mark any PMC elements of the core data struct. 7) Check 'freeze'/'thaw' and related vtable entries for direct access to old data elements and update it to the new data elements. That should get you 90-95% of the way there. Rebuild the PMC (make sure the src/pmc/pmc_.h header file for the PMC was regenerated to include the Parrot_ struct GETATTR and SETATTR macros). Check for compile errors and test failures. If the cause of any errors isn't immediately obvious, check with allison or chromatic. Allison
Re: [ITP] parrot-0.6.3 with parrot-perl6
First, thank you for working on this! Now some comments ... On Thu, 2008-07-03 at 19:07 +0200, Reini Urban wrote: > parrot-languages is my compressed version of the fedora split, > they have for every single language a seperate package. Thank you for choosing the single-package route here. > I just left the docs/examples, the others stripped it. > pdb is called parrot_pdb, disassemble is called pbc_disassemble. Both of these are good changes (and I don't think the other packagers should have stripped the examples; they are arguably necessary to understand certain constructions, since our official docs are not complete and are difficult to navigate in places). > .include searchpath: > /usr/runtime/parrot/include > /usr/runtime/parrot > /usr > /usr/lib/parrot/include > /usr/lib/parrot/ > . /usr/runtime doesn't seem "right" to me (and it's not FHS-compliant, IIRC). I notice that none of your packages install to /usr/runtime, and I'd prefer to just drop it. Why is raw '/usr' included? Side note to the Parrot Porters: the redundant 'parrot' directory under 'runtime' in the source tree makes no sense to me. I'm in favor of moving its three subdirectories up a level, and dropping the extra cruft. > /usr/share/doc/parrot/LICENSE > /usr/share/doc/parrot/RESPONSIBLE_PARTIES > /usr/share/doc/parrot/TODO Should probably include NEWS here in the main parrot package; for the last year and a half, all of the key updates have been listed there (ChangeLog is only useful for historical spelunking, and can be placed in -devel). Also, CREDITS fills in a lot of details that RESPONSIBLE_PARTIES leaves out, and it arguably belongs in the main package right next to the LICENSE. Plus it maximizes karma exposure for our valued contributor base; for the same reason, I'd vote for DONORS.pod here as well. A "binary package" version of the official README that drops the PREREQUISITES, INSTRUCTIONS, and NOTES blocks seems like a good idea too. DEPRECATED.pod and PBC_COMPAT need to be in the -devel package. Speaking of all these docs, do the various distro ports/packages include manpages (at least a minimal 'parrot' manpage, as I believe Debian and OpenBSD require to comply with their respective policies)? -'f
[perl #56568] [PATCH] root.in: add cygwin importlib
# New Ticket Created by Reini Urban # Please include the string: [perl #56568] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=56568 > config/gen/makefiles/root.in: add the cygwin importlib to please -lparrot in packaged version. -- Reini Urban http://phpwiki.org/ http://murbreak.at/
[perl #56572] [PATCH] pdb rename to parrot_pdb
# New Ticket Created by Reini Urban # Please include the string: [perl #56572] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=56572 > 2008-07-03 17:17:39 rurban * requires a svn rename before: svn rename src/pdb.c src/parrot_pdb.c svn rename t/tools/pdb.t t/tools/parrot_pdb.t * MANIFEST, docs/debug.pod, docs/debugger.pod, docs/parrot.pod src/parrot_pdb.c, t/tools/parrot_pdb.t: rename pdb to parrot_pdb to avoid conflicts with existing pdb binaries - e.g. the python debugger or the IBM parallel debugger. [resent, after three hours not in rt] -- Reini Urban http://phpwiki.org/ http://murbreak.at/ 2008-07-03 17:17:39 rurban * requires a svn rename before: svn rename src/pdb.c src/parrot_pdb.c svn rename t/tools/pdb.t t/tools/parrot_pdb.t * MANIFEST, docs/debug.pod, docs/debugger.pod, docs/parrot.pod src/parrot_pdb.c, t/tools/parrot_pdb.t: rename pdb to parrot_pdb to avoid conflicts with existing pdb binaries - e.g. the python debugger or the IBM parallel debugger. Index: parrot-svn/MANIFEST === --- parrot-svn.orig/MANIFEST +++ parrot-svn/MANIFEST @@ -3070,7 +3070,7 @@ src/packfile/pf_items.c src/packout.c [] src/pbc_info.c [] src/pbc_merge.c [] -src/pdb.c [] +src/parrot_pdb.c[] src/pdump.c [] src/pic.c [] src/pic_jit.c [] @@ -3857,7 +3857,7 @@ t/tools/ops2pmutils/09-prepare_real_ops. t/tools/ops2pmutils/10-print_module.t [] t/tools/ops2pmutils/11-print_h.t[] t/tools/pbc_merge.t [] -t/tools/pdb.t [] +t/tools/parrot_pdb.t[] t/tools/pmc2c.t [] t/tools/pmc2cutils/00-qualify.t [] t/tools/pmc2cutils/01-pmc2cutils.t [] Index: parrot-svn/docs/debug.pod === --- parrot-svn.orig/docs/debug.pod +++ parrot-svn/docs/debug.pod @@ -75,9 +75,9 @@ different objects over the lifetime of t Let's say you have written (or generated) a huge .pasm or .pir file. It's not working. You'd like some help in figuring out why. -=head2 pdb +=head2 parrot_pdb -One possible tool is C, the Parrot Debugger. See F for +One possible tool is C, the Parrot Debugger. See F for details on it. =head2 stabs Index: parrot-svn/docs/debugger.pod === --- parrot-svn.orig/docs/debugger.pod +++ parrot-svn/docs/debugger.pod @@ -7,12 +7,12 @@ docs/debugger.pod - The Parrot Debugger =head1 ABSTRACT -This document describes F, the Parrot Debugger. +This document describes F, the Parrot Debugger. =head1 DESCRIPTION Starting from version 0.0.6 Parrot has its own debugger, which is modeled after -Perl's one. Its name is F, and is an interactive environment that let you +Perl's one. Its name is F, and is an interactive environment that let you step through bytecode, set breakpoints, evaluate assembly instructions and peek at the interpreter status. @@ -29,17 +29,17 @@ target: (where C is the same C incarnation you used to build Parrot). -If everything goes well, you should come up with a F executable in the +If everything goes well, you should come up with a F executable in the same directory as the Parrot program. =head1 THE DEBUGGER SHELL To start the debugger type: - pdb file.pbc + parrot_pdb file.pbc -That is, F takes exactly one argument, which is the Parrot bytecode that -you're going to debug. F will automatically load and disassemble the +That is, F takes exactly one argument, which is the Parrot bytecode that +you're going to debug. F will automatically load and disassemble the bytecode file for you. Note that you can't pass command line arguments to your program when you invoke @@ -49,7 +49,7 @@ After the version banner, you'll see the (pdb) -F is ready to receive commands and give output. To list the available +F is ready to receive commands and give output. To list the available commands type 'h'. To quit the debugger type 'q'. As with the Perl debugger, whenever it halts and shows you a line of code, it @@ -69,7 +69,7 @@ sensitive. A blank line always repeats the last command entered. -Also note that at this point in its development, F has very poor error +Also note that at this point in its devel
[perl #43334] [TODO] config/auto/icu.pm: Write unit tests
Coleoid just pasted this failure report: t/steps/auto_icu-041/12 # Failed test 'Got expected return value: failed' # at t/steps/auto_icu-04.t line 48. # got: 'no' # expected: 'failed' # Looks like you failed 1 test of 12. t/steps/auto_icu-04 Dubious, test returned 1 (wstat 256, 0x100) Failed 1/12 subtests Am looking into it. kid51
Re: [perl #37664] [TODO] create autogenerated files read-only
From: chromatic <[EMAIL PROTECTED]> Date: Wed, 2 Jul 2008 22:48:02 -0700 These are the files in a pristine repository with 'ex: set ro:' in them; can you (or another Emacs user) edit them to add the appropriate tag for Emacs? The attached patch does this, but raises a question. In the process, I discovered that most of these source files became read-only, because Emacs was looking at the wrong "Local variables:" list! Here is what Emacs expects: The start of the local variables list must be no more than 3000 characters from the end of the file, and must be in the last page if the file is divided into pages. Otherwise, Emacs will not notice it is there . . . [1] It turns out that Emacs uses the *first* such list in the last page or 3000 chars [2], which is often the one in the heredoc. To correct that, I had to add formfeeds to the end of some files. Is this obscure enough in the Perl world to need a comment before the formfeed, so that somebody doesn't delete it? -- Bob Rogers http://rgrjr.dyndns.org/ [1] See the "File Variables" node in the Emacs manual, M-: (Info-goto-node "(emacs)File Variables") [2] I should probably report this as a bug in Emacs, but that won't help until Emacs 23.1 has been out for a while. * tools/build/jit2c.pl: * tools/build/pbcversion_h.pl: * tools/build/vtable_h.pl: * tools/build/vtable_extend.pl: * tools/build/c2str.pl: * tools/build/parrot_config_c.pl: * lib/Parrot/Ops2pm/Utils.pm: * lib/Parrot/Manifest.pm: * lib/Parrot/Ops2c/Utils.pm: * MANIFEST: * MANIFEST.generated: * config/gen/call_list.pm: * config/gen/platform.pm: + Add "buffer-read-only: t" to Emacs "Local variables:" sections in generated files. In most cases, this also means adding a formfeed character before the source file's "Local variables:" section so that Emacs can tell which one to use. Diffs between last version checked in and current workfile(s): Index: tools/build/jit2c.pl === --- tools/build/jit2c.pl(revision 29037) +++ tools/build/jit2c.pl(working copy) @@ -507,6 +507,7 @@ /* * Local variables: * c-file-style: "parrot" + * buffer-read-only: t * End: * vim: expandtab shiftwidth=4: */ @@ -520,6 +521,7 @@ return ( ( $ptr eq '&' ? '&' : '' ) . sprintf( $argmaps{ $type_to_arg{$type} }, $index ) ); } + # Local Variables: # mode: cperl # cperl-indent-level: 4 Index: tools/build/pbcversion_h.pl === --- tools/build/pbcversion_h.pl (revision 29037) +++ tools/build/pbcversion_h.pl (working copy) @@ -55,11 +55,13 @@ /* * Local variables: * c-file-style: "parrot" + * buffer-read-only: t * End: * vim: expandtab shiftwidth=4: */ EOF + # Local Variables: # mode: cperl # cperl-indent-level: 4 Index: tools/build/vtable_h.pl === --- tools/build/vtable_h.pl (revision 29037) +++ tools/build/vtable_h.pl (working copy) @@ -67,11 +67,13 @@ /* * Local variables: * c-file-style: "parrot" + * buffer-read-only: t * End: * vim: expandtab shiftwidth=4: */ EOC + # Local Variables: # mode: cperl # cperl-indent-level: 4 Index: tools/build/vtable_extend.pl === --- tools/build/vtable_extend.pl(revision 29037) +++ tools/build/vtable_extend.pl(working copy) @@ -48,6 +48,7 @@ /* * Local variables: * c-file-style: "parrot" + * buffer-read-only: t * End: * vim: expandtab shiftwidth=4: */ @@ -157,6 +158,7 @@ close $OUT or die $!; + # Local Variables: # mode: cperl # cperl-indent-level: 4 Index: tools/build/c2str.pl === --- tools/build/c2str.pl(revision 29037) +++ tools/build/c2str.pl(working copy) @@ -227,6 +227,7 @@ /* * Local variables: * c-file-style: "parrot" + * buffer-read-only: t * End: * vim: expandtab shiftwidth=4: */ @@ -236,6 +237,7 @@ return; } + # Local Variables: # mode: cperl # cperl-indent-level: 4 Index: tools/build/parrot_config_c.pl === --- tools/build/parrot_config_c.pl (revision 29037) +++ tools/build/parrot_config_c.pl (working copy) @@ -105,11 +105,13 @@ /* * Local variables: * c-file-style: "parrot" + * buffer-read-only: t * End: * vim: expandtab shiftwidth=4: */ EOC + # Local Variables: # mode: cperl # cperl-indent-level: 4 Index: lib/Parrot/Ops2pm/Utils.pm === --- lib/Parrot/Ops2pm/Utils.pm (revision 29037) +++ lib/Parrot/Ops2pm/Utils.pm (working copy) @@ -613,6 +613,7 @@ /
Re: [PATCH] suggestion for the file "grammar.pg"
On Fri, Jul 04, 2008 at 12:15:24AM +0200, Moritz Lenz wrote: > Hi, > > Gerd Pokorra wrote: > > I suggest the little attached patch (diff -u) for the file > > "languages/perl6/src/parser/grammar.pg", so that the following code > > > > my $a = .2; > > > > will also be accepted from Rakudo. > > But does the language specification allow it? I don't think so, and > STD.pm (after which rakudo's parser is modeled) doesn't allow it. According to S02:420, a leading dot is allowed to introduce a Num: ... (The C<.123> form with a leading dot is still allowed however when a term is expected, and is equivalent to C<0.123> rather than C<$_.123>.) Moritz is correct, however, that STD.pm doesn't seem to allow this yet, and since Rakudo is trying to follow STD.pm as closely as we can, we may just wait to see what STD.pm does. Also, the patch seems to have a bug in it, as it replaces C< \d+[_\d+]* > with C< \d*d[_\d+]* >. I'm not sure what the extra 'd' in '\d*d' is supposed to represent, but I'm pretty sure it's wrong. And if we just use \d*[_\d+]* then we end up with the case that 'E+3' can be parsed as a valid . Thanks for the patch, though -- perhaps if we tweak it enough it'll get adopted into STD.pm (and then we can more comfortably add it to rakudo). Pm