Slow vararg subroutines in Parrot, jit bug found as well.

2003-12-27 Thread Joe Wilson
I implemented the same variable argument function varargs_adder in both Perl 5 (addit.pl) and Parrot (f4.pasm). The variable arguments can be strings, integers or floats (I wanted to excercise dynamic variable behavior). I called the function 50 times in a loop to benchmark it. The results

Very large runtime overhead for prototyped functions

2003-12-27 Thread Joe Wilson
Using a recursive version of the fibonacci function (with the integer 32 as an argument) to test function call overhead I get these timings for various languages and configurations: perl 5.6.1fib.pl 10.93 seconds python 2.2.2 fib.py6.76 seconds parrotf.pasm2.74

Re: Slow vararg subroutines in Parrot, jit bug found as well.

2003-12-27 Thread Joe Wilson
Dan Sugalski: 2) Parrot's Array and SArray values all accept mixed-type data, which perl's arrays do *not* do, and as such have some extra speed hits that perl arrays don't. What do you mean? Perl's arrays do indeed accept mixed data types (see example below). $ cat addit2.pl

Re: Very large runtime overhead for prototyped functions

2003-12-27 Thread Joe Wilson
--- Luke Palmer [EMAIL PROTECTED] wrote: The overhead you're seeing comes from many things. First, using prototyped (or unprototyped) functions from in imcc follows the parrot calling conventions. That is, it uses continuation-passing instead of bsr, sets a few int registers on the run, and

Re: Slow vararg subroutines in Parrot, jit bug found as well.

2003-12-27 Thread Joe Wilson
--- Luke Palmer [EMAIL PROTECTED] wrote: Joe Wilson writes: Dan Sugalski: 2) Parrot's Array and SArray values all accept mixed-type data, which perl's arrays do *not* do, and as such have some extra speed hits that perl arrays don't. What do you mean? Perl's arrays do indeed

Re: Slow vararg subroutines in Parrot, jit bug found as well.

2003-12-27 Thread Joe Wilson
I used the default ./configure options (no idea what they were). But more to the point - no one explained why the Parrot JIT ran the code 3 times slower and arrived at the wrong result. --- Nicholas Clark [EMAIL PROTECTED] wrote: On Sat, Dec 27, 2003 at 06:17:34PM -0500, Dan Sugalski wrote:

Re: Very large runtime overhead for prototyped functions

2003-12-27 Thread Joe Wilson
That's okay - I've also considered and discarded Parrot. ;-) Good luck with Parrot guys. I will check out either Mono or Lua's VM for my purposes. Thanks. --- Dan Sugalski [EMAIL PROTECTED] wrote: At 2:34 PM -0800 12/27/03, Joe Wilson wrote: I get consistantly much better timings when

Re: Fwd: Python running fast on .NET

2003-12-24 Thread Joe Wilson
with only a better runloop. This is still very good. But for better timings Parrot would have to use type inference analysis to avoid the overhead of PMCs in favor of builtin types wherever possible. --- Dan Sugalski [EMAIL PROTECTED] wrote: At 10:28 PM -0800 12/23/03, Joe Wilson wrote

Re: Fwd: Python running fast on .NET

2003-12-23 Thread Joe Wilson
In order to get the 20x speed gain you seek I assume that Parrot would have to perform some sort of variable type inference to distinguish, for example, when a scalar is really just an integer and use an integer register. Otherwise, the PMCs in Parrot would perform much the same as the Python

Re: Fwd: Python running fast on .NET

2003-12-22 Thread Joe Wilson
Grotty bits? Can you be more specific? What Python features or idioms do you believe Parrot will run faster than the CLR? --- Dan Sugalski [EMAIL PROTECTED] wrote: Yeah, but alas Miguel's mis-informed. A reasonable reimplementation of core python (without all the grotty bits that arguably

Fwd: Python running fast on .NET

2003-12-21 Thread Joe Wilson
Perhaps some of you may be interested in this entry from Miguel de Icaza's web log: Python running fast on .NET http://primates.ximian.com/~miguel/archive/2003/Dec-09.html Wasn't there supposed to be a Python/Parrot challenge this month? If so, who won and where are the results?

Re: Calling conventions

2003-11-16 Thread Joe Wilson
Dan Sugalski wrote: 1) The changes I proposed are going in. We get arg counts for I/S/N registers if they're used. What purpose do these individual I/S/N arg counts serve exactly? To simply check how many arguments are passed to a function you would need to get the sum of the number of

Re: Calling conventions

2003-11-16 Thread Joe Wilson
My unanswered question below was legitimate, but if you insist... Perhaps another register can hold the number of problems with this calling convention. rim shot Dan Sugalski wrote: 1) The changes I proposed are going in. We get arg counts for I/S/N registers if they're used. What

Re: Calling conventions. Again

2003-11-12 Thread Joe Wilson
I agree with Leo. What good are param counts for the different return types anyway? How can you tell the difference between a function returning (int, int, string, PMC, string, float, string, PMC) and a function returning (string, int, int, PMC, string, float, PMC, string)? Both will have the

perl6-internals/parrot mailing list no longer archived?

2003-06-10 Thread Joe Wilson
http://archive.develooper.com/[EMAIL PROTECTED]/dateindex.html May 26 appears to be the last entry. __ Do you Yahoo!? Yahoo! Calendar - Free online calendar with sync to Outlook(TM). http://calendar.yahoo.com

Re: how to build imcc?

2003-02-13 Thread Joe Wilson
--- Steve Fink [EMAIL PROTECTED] wrote: On Wed, Feb 12, 2003 at 08:42:59AM -0800, Joe Wilson wrote: I can build the latest CVS parrot, but how do you build imcc? There does not seem to be a Makefile in parrot/languages/imcc even after running 'perl Configure.pl make'. I'm guessing

Re: how to build imcc?

2003-02-13 Thread Joe Wilson
The languages/imcc/Makefile is generated when the system calls below are commented out. Thanks. By the way, I had no luck with the alternate quote syntax suggested by someone else. --- Juergen Boemmels [EMAIL PROTECTED] wrote: But after looking a little more closer I found this:

how to build imcc?

2003-02-12 Thread Joe Wilson
I can build the latest CVS parrot, but how do you build imcc? There does not seem to be a Makefile in parrot/languages/imcc even after running 'perl Configure.pl make'. I'm guessing that parrot/languages/imcc/Makefile is generated since it appears in parrot/languages/imcc/.cvsignore What am I

Re: Subroutines...

2002-04-29 Thread Joe Wilson
I'd have to agree with Andrew. With only 32 registers of each type in Parrot (the last time I checked) using most of them for function arguments would cause much needless register copying within each function. Surely 8 registers of each type would be more than sufficient for function

Re: Subroutines...

2002-04-29 Thread Joe Wilson
OO code is full of subs which a) are called very often and b) look like this: sub code { my $self = shift; return $self-{CODE}; } sub body { my $self = shift; if (_) { $self-{BODY} = shift; }

Re: Mutable vs immutable strings

2002-04-24 Thread Joe Wilson
I vote for mutable strings. Anything but immutable strings please! Java sucks as a string manipulation engine because of their immutable String class. The best GC and JIT in the world can't save it. High performance Java parsers generally write their own mutable string class for this very