Re: [perl #36119] [PATCH] Reapply execute permissions on dynclasses for HP-UX
Nick Glencross (via RT) wrote: +if ($^O ne 'MSWin32') { I'd much more prefer one of: a) if $^O eq 'hpux' b) fix the copy to preserve perms Anyway, as hpux is still broken in several other places, I'll drop a note in PLATFORMS and not apply the patch now. leo
release 0.2.1 starting - please no more comitts at all
I'll start putting together the monthly release in a minute. Please refrain from svn ci in the next hours until further notice. Thanks, leo
variable register frames (was: Register Allocation and Continuations problem definition)
Matt Fowles wrote: [ thanks for your summary ] Another summary can be found here: http://xrl.us/gban ... Discussions about specific solutions should and religion should have a seperate thread. I'll put together some more WRT: 4) variable sized register frames During the discussion of continuations I've posted this idea here: http://xrl.us/gbai + never have unused registers + no need for a register allocator This is simplified. We'd need a register allocator for temporary variables. But it's true that all the register allocation troubles we now have with long-ranged variables would be gone as well as the speed problems with Evil Subs and the need for spilling. + could correspond directly to scratchpad - more complicated Slightly but not much. - no register reuse No register reuse of registers persistent around a call, which is exactly the solution for the continuation problem. It's the same thing with setjmp(3)/longjmp(3). In the presence of continuations (longjmp()s) you can't reuse a register. Temporary registerers are of course reused as now. - large architectural change We now have Parrot 0.2.1 - what's the problem? Abandon a solution because we have to change internals is not the best idea. - more custom allocation (can't pool register sets) I've already proposed a scheme to allocate the register frames from 64KB chunks. But there are still more arguments, why this solution is by far the best one. Please read the thread of my analysis of the fib benchmark: http://xrl.us/gbaj This clearly shows that we can't keep the fixed-sized register frame in the long run. All the object getter and setter methods would suffer as badly as the plain function call from fib(). You might also try to run Ackermann(3, 9) if you've plenty of time ;-) | Python is running the code on the stack. It's | touching only SP(0) and SP(1) mostly. | Register usage analysis of fib shows that it could run on Parrot with | just *one* persistent register per kind. leo
Re: Missing MMD default functions?
On Fri, Jun 03, 2005 at 02:55:52PM -0400, Dan Sugalski wrote: Dan was expecting sane defaults, that is when I do addition with two PMCs that haven't otherwise said they behave specially that the floating point values of the two PMCs are retrieved and added together. Is deriving from Float a hardship? (This is not a rhetorical question.) -- Chip Salzenberg [EMAIL PROTECTED]
Parrot 0.2.1 APW Released!
Parrot 0.2.1 APW Released! On behalf of the Parrot team I'm proud to announce another monthly release of Parrot and I'd like to thank all involved people as well as our sponsors for supporting us. The release name stands for Austrian Perl Workshop, which will take place on 9th and 10th of June in Vienna. It will have a french connection that is a live video stream to the French Perl Workshop happening at the same time. What is Parrot? Parrot is a virtual machine aimed at running Perl6 and other dynamic languages. Parrot 0.2.1 changes and news - better HLL support (short names for object attributes, and .HLL and n_operators pragmas) - string encoding and charset can now be set independently - experimental mmap IO layer for slurping files - distinct debug and trace flag settings - glob support in PGE - new character classification opcodes and interfaces After some pause you can grab it from http://www.cpan.org/authors/id/L/LT/LTOETSCH/parrot-0.2.1.tar.gz. As parrot is still in steady development we recommend that you just get the latest and best from SVN by following the directions at http://www.parrotcode.org/source.html Turn your web browser towards http://www.parrotcode.org/ for more information about Parrot, get involved, and: Have fun! leo
release 0.2.1 done
I hope everything works as expected. Have fun and thanks for all your contributions, leo
Re: Software Transactional Memory interaction with Garbage Collection
Sam Vilain wrote: Hi all, While I must start this post out by saying that I've never implemented either STM or a garbage collector, during a discussion on #parrot (is that channel logged?), a similarity between the two processes occurred to me. Not really. STM is a scheme to handle access to shared objects from multiple threads. GC is quite different. The only common thing seems to be that both have to consider safe points and synchronization for MT. leo
Re: Missing MMD default functions?
At 8:14 PM -0400 6/3/05, Chip Salzenberg wrote: On Fri, Jun 03, 2005 at 02:55:52PM -0400, Dan Sugalski wrote: Dan was expecting sane defaults, that is when I do addition with two PMCs that haven't otherwise said they behave specially that the floating point values of the two PMCs are retrieved and added together. Is deriving from Float a hardship? (This is not a rhetorical question.) Mildly, yes. But... I'm not going to argue any more. It isn't worth it. Do whatever you think is best, and if there's any followup you think I should care about it'd be best to cc me, since I'm not on the list any more. -- Dan --it's like this--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
Re: Parrot 0.2.1 APW Released!
Hi! On Sat, Jun 04, 2005 at 12:36:57PM +0200, Leopold Toetsch wrote: The release name stands for Austrian Perl Workshop, which will take place on 9th and 10th of June in Vienna. It will have a french connection that is a live video stream to the French Perl Workshop happening at the same time. Which prompts me for an last-minute plug: You're still welcome to join us in Vienna! We've got two days with a lot of interesting talks and Parrot/Pugs/Perl6 hacking (with, among others, Autrijus Tang and Chip Salzenberg), followed by some more days of Parrot/Pugs/Perl6 hacking at Leo's place. More info, schedule, etc here: http://conferences.yapceurope.org/apw2005/ Hope to see you in Vienna, Thomas Klausner -- #!/usr/bin/perl http://domm.zsi.at for(ref bless{},just'another'perl'hacker){s-:+-$-gprint$_.$/}
Building Parrot with MinGW, ActivePerl command.com
I actually have Linux installed on this machine, but for reasons which I'm not going to get into here I use Win98 for day-to-day computing. I therefore took it as a challenge to get Parrot to build with crufty ol' command.com. I used MinGW 3.1.0-1 and ActivePerl 5.8.6.811 to build Parrot. I configured Parrot with perl Configure.pl --cc=gcc --without-icu I ran into a number of issues while trying to get Parrot to compile. Problem 1 - If you try to redirect output to paths containing forward slashes, command.com will complain (and not create the file). Solution 1 - Configure the build system to use backslashes in Makefiles. This functionality already exists, but was not fully enabled. I also changed a few Perl scripts to use the 'slash' configuration parameter instead of hard-coded forward slashes, and to perform variable substitution before slash substitution. Problem 2 - Redirecting output of a batch file does not redirect output of the commands executed by it. The perldoc command supplied with ActivePerl is a batch file. Solution 2 - Use a command line switch to send perldoc's output to a file instead of redirection. Problem 3 - The value of $(MAKE) supplied by mingw32-make contains forward slashes. This doesn't sit well with command.com. Solution 3 - Override $(MAKE). Problem 4 - Single backslashes in C strings are a no-no. This manifests itself when filenames are inserted into the #line directives in generated C code. Solution 4 - Substitute double backslashes for single backslashes in #line directives. I include a patch I made for the above problems. Some of the changes are kind of kludgey, so I would appreciate comments and suggestions on how to improve them. I still haven't gotten compilation to finish, but it's a lot further along than when I started. Currently, it fails with a zillion undefined reference errors on the command g++ -s -g -shared C:/Users/Clement/src/parrot/parrot/src/extend.o -o python_group.dll lib-python_group.o pybuiltin.o pyclass.o pyobject.o pyboolean.o pycomplex.o pydict.o pyexception.o pyfloat.o pyfunc.o pyboundmeth.o pyboundcall.o pynci.o pystaticmeth.o pygen.o pyint.o pylist.o pylong.o pymodule.o pynone.o pytype.o pyslice.o pystring.o pytuple.o pyproxytype.o pyproxyclass.o pyiter.o C:/Users/Clement/src/parrot/parrot/src/extend.o(.text+0x306): In function `Parrot_PMC_get_cstring_intkey': C:/Users/Clement/src/parrot/parrot/src/extend.c:256: undefined reference to `string_to_cstring' C:/Users/Clement/src/parrot/parrot/src/extend.o(.text+0x363): In function `Parrot_PMC_get_cstring': C:/Users/Clement/src/parrot/parrot/src/extend.c:276: undefined reference to `string_to_cstring' C:/Users/Clement/src/parrot/parrot/src/extend.o(.text+0x3c6): In function `Parrot_PMC_get_cstringn': C:/Users/Clement/src/parrot/parrot/src/extend.c:299: undefined reference to `string_to_cstring' ... Index: build_tools/ops2c.pl === --- build_tools/ops2c.pl(revision 8268) +++ build_tools/ops2c.pl(working copy) @@ -411,7 +411,11 @@ my $line = 0; while (SOURCE) { $line++; } $line+=2; close(SOURCE); open(SOURCE, $source) || die Error appending to $source: $!\n; -print SOURCE qq{#line $line $source\n} unless $nolines_flag; +unless ($nolines_flag) { +my $source_escaped = $source; +$source_escaped =~ s|(\\)|$1$1|g; # escape backslashes +print SOURCE qq{#line $line $source_escaped\n}; +} # Index: lib/Parrot/Pmc2c.pm === --- lib/Parrot/Pmc2c.pm (revision 8268) +++ lib/Parrot/Pmc2c.pm (working copy) @@ -260,7 +260,11 @@ my ($self, $line, $file) = @_; return '' if $self-{opt}{nolines}; -return qq{#line $line $file\n} if defined $file; +if (defined $file) { +my $file_escaped = $file; +$file_escaped =~ s|(\\)|$1$1|g; # escape backslashes +return qq{#line $line $file_escaped\n}; +} return qq{#line $line\n}; } Index: lib/Parrot/Configure/Step.pm === --- lib/Parrot/Configure/Step.pm(revision 8268) +++ lib/Parrot/Configure/Step.pm(working copy) @@ -223,26 +223,27 @@ $_ = $2; } } +s{ + \$\{(\w+)\} +}{ + if(defined(my $val=Configure::Data-get($1))) { +#use Data::Dumper;warn Dumper(val for $1 is ,$val); +$val; + } + else { +warn value for '$1' in $source is undef; +''; + } +}egx; if ( $options{replace_slashes} ) { s{(/+)}{ - my $len = length $1; - my $slash = Configure::Data-get('slash'); - '/' x ($len/2) . ($len%2 ? $slash : ''); }eg; - } - s{ - \$\{(\w+)\} - }{ - if(defined(my $val=Configure::Data-get($1))) { - #use Data::Dumper;warn Dumper(val for $1 is ,$val); - $val; - } - else { - warn value for '$1' in
Re: Parrot 0.2.1 APW Released!
On Sat, 04 Jun 2005 12:36:57 +0200, Leopold Toetsch [EMAIL PROTECTED] wrote: Parrot 0.2.1 APW Released! On behalf of the Parrot team I'm proud to announce another monthly release of Parrot and I'd like to thank all involved people as well as our sponsors for supporting us. The release name stands for Austrian Perl Workshop, which will take place on 9th and 10th of June in Vienna. It will have a french connection that is a live video stream to the French Perl Workshop happening at the same time. Thanks, applied. What is Parrot? Parrot is a virtual machine aimed at running Perl6 and other dynamic languages. Parrot 0.2.1 changes and news - better HLL support (short names for object attributes, and .HLL and n_operators pragmas) - string encoding and charset can now be set independently - experimental mmap IO layer for slurping files - distinct debug and trace flag settings - glob support in PGE - new character classification opcodes and interfaces After some pause you can grab it from http://www.cpan.org/authors/id/L/LT/LTOETSCH/parrot-0.2.1.tar.gz. As parrot is still in steady development we recommend that you just get the latest and best from SVN by following the directions at http://www.parrotcode.org/source.html Turn your web browser towards http://www.parrotcode.org/ for more information about Parrot, get involved, and: Have fun! leo -- H.Merijn BrandAmsterdam Perl Mongers (http://amsterdam.pm.org/) using Perl 5.6.2, 5.8.0, 5.8.5, 5.9.2 on HP-UX 10.20, 11.00 11.11, AIX 4.3 5.2, SuSE 9.2 9.3, and Cygwin. http://www.cmve.net/~merijn Smoking perl: http://www.test-smoke.org,perl QA: http://qa.perl.org reports to: [EMAIL PROTECTED],perl-qa@perl.org