Re: [RFC] imcc calling conventions

2003-02-25 Thread Jerome Vouillon
On Tue, Feb 25, 2003 at 08:47:55AM +0100, Leopold Toetsch wrote: Um... no. tail call optimization implies being able to replace *any* tail call, not just a recursive one with a simple goto. Consider the following calling sequence: b(arg) - Push Continuation A onto the continuation chain

Re: [RFC] imcc calling conventions

2003-02-25 Thread Jerome Vouillon
On Mon, Feb 24, 2003 at 05:29:26PM +, Piers Cawley wrote: [Tail-call optimization] Under caller saves, this is easy to do. Under callee saves, b's second call to c() cannot simply return to Continuation A but must unwind the call stack via b to make sure that the right things are restored.

Re: Configure.pl --cgoto=0 doesn't work

2003-02-25 Thread Juergen Boemmels
Juergen Boemmels [EMAIL PROTECTED] writes: we can use imcc rather than assemble.pl as the default assembler for the regression tests? imcc is a lot (20 times) faster. make test IMCC=1 Leo had introduced this several days ago, shortly after the macro-support for imcc went in. Arggh,

Re: Using imcc as JIT optimizer

2003-02-25 Thread Leopold Toetsch
Leopold Toetsch wrote: - do register allocation for JIT in imcc - use the first N registers as MAPped processor registers I have committed the next bunch of changes and an updated jit.pod. - it should now be platform independent, *but* other platforms have to define what they consider as

Re: A couple easy questions...

2003-02-25 Thread Leon Brocard
David sent the following bits through the ether: how can I test to determine the datatype of the object in P1? You'd be wanting typeof. The following prints out PerlString, for example: new P0, .PerlArray set P0[1], cat set P0[2], 123 set P0[3], 456.789

Re: [RFC] imcc calling conventions

2003-02-25 Thread Piers Cawley
Leopold Toetsch [EMAIL PROTECTED] writes: Piers Cawley wrote: Steve Fink [EMAIL PROTECTED] writes: ... I didn't follow about how that interferes with tail-call optimization. (To me, tail call optimization == replace recursive call with a goto to the end of the function preamble) Um... no.

Re: A couple easy questions...

2003-02-25 Thread Leopold Toetsch
David wrote: How do you determine the datatype of a PMC? For example, if I create the following array: From docs/core_ops.pod (built from core.ops): =item Btypeof(out STR, in PMC) =item Btypeof(out INT, in PMC) Return the type of PMC in $2. The String result is the class name, the int

This week's Perl 6 Summary

2003-02-25 Thread Piers Cawley
The Perl 6 summary for the week ending 20030223 Another week, another Perl 6 Summary, in which you'll find gratuitous mentions of Leon Brocard, awed descriptions of what Leopold Tötsch got up to and maybe even a summary of what's been happening in Perl 6 design and development.

Re: Using imcc as JIT optimizer

2003-02-25 Thread Angel Faus
Saturday 22 February 2003 16:28, Leopold Toetsch wrote: Gopal V wrote: If memory serves me right, Leopold Toetsch wrote: Ok .. well I sort of understood that the first N registers will be the ones MAPped ?. So I thought re-ordering/sorting was the operation performed. Yep. Register

Re: Using imcc as JIT optimizer

2003-02-25 Thread Jason Gloudon
On Tue, Feb 25, 2003 at 07:18:11PM +0100, Angel Faus wrote: I believe it would be smarter if we instructed IMCC to generate code that only uses N parrot registers (where N is the number of machine register available). This way we avoid the risk of having to copy twice the data. It's not

Re: Using imcc as JIT optimizer

2003-02-25 Thread Leopold Toetsch
Angel Faus wrote: Saturday 22 February 2003 16:28, Leopold Toetsch wrote: With your approach there are three levels of parrot registers: - The first N registers, which in JIT will be mapped to physical registers. - The others 32 - N parrot registers, which will be in memory. - The spilled

Re: Using imcc as JIT optimizer

2003-02-25 Thread Phil Hassey
On Tuesday 25 February 2003 08:51, Leopold Toetsch wrote: Angel Faus wrote: Saturday 22 February 2003 16:28, Leopold Toetsch wrote: With your approach there are three levels of parrot registers: - The first N registers, which in JIT will be mapped to physical registers. - The

Re: A couple easy questions...

2003-02-25 Thread David
Leopold Toetsch wrote: From docs/core_ops.pod (built from core.ops): Thanks. I better upgrade my version, I'm not seeing it in 0.0.9. -- David Cuny

Re: A couple easy questions...

2003-02-25 Thread David
Leon Brocard wrote: You'd be wanting typeof. Thanks. ps i fixed your code Thanks again. :-) Anyone know about a Parrot Windows binary? -- David Cuny

Re: [RFC] imcc calling conventions

2003-02-25 Thread Piers Cawley
Jerome Vouillon [EMAIL PROTECTED] writes: On Tue, Feb 25, 2003 at 08:47:55AM +0100, Leopold Toetsch wrote: Um... no. tail call optimization implies being able to replace *any* tail call, not just a recursive one with a simple goto. Consider the following calling sequence: b(arg) -

0.1.0

2003-02-25 Thread Leon Brocard
David sent the following bits through the ether: Thanks. I better upgrade my version, I'm not seeing it in 0.0.9. It's been a while since 0.0.9 (errr, 20th Dec). A lot has changed since then. Maybe it's time for a 0.1.0 release. What are we waiting for? And why do we have so many version

Re: 0.1.0

2003-02-25 Thread Jerome Quelin
Leon Brocard wrote: It's been a while since 0.0.9 (errr, 20th Dec). A lot has changed since then. Maybe it's time for a 0.1.0 release. What are we waiting for? Dan said: either exceptions or objects. Once we have one, we'll go to 0.1.0, and when the second will be implemented (order does not

Re: 0.1.0

2003-02-25 Thread Simon Glover
On Tue, 25 Feb 2003, Jerome Quelin wrote: I want to include concurrent-funge support. I'm not even going to ask :-) Simon

Re: Using imcc as JIT optimizer

2003-02-25 Thread Leopold Toetsch
Phil Hassey wrote: Not knowing much about virtual machine design... Here's a question -- Why do we have a set number of registers? Particularily since JITed code ends up setting the register constraints again, I'm not sure why parrot should set up register limit constraints first. Couldn't

Re: 0.1.0

2003-02-25 Thread Dan Sugalski
At 4:52 PM + 2/25/03, Leon Brocard wrote: David sent the following bits through the ether: Thanks. I better upgrade my version, I'm not seeing it in 0.0.9. It's been a while since 0.0.9 (errr, 20th Dec). A lot has changed since then. Maybe it's time for a 0.1.0 release. What are we waiting

Re: 0.1.0

2003-02-25 Thread Leon Brocard
Dan Sugalski sent the following bits through the ether: While I'll call C many things (not all of them repeatable) I'm not sure toy is one of them. Nor Forth, Fortran, APL, COBOL, Lisp, or Basic... :) Granted, but those aren't the languages we're interested in. Parrot is for dynamic

Re: invoke

2003-02-25 Thread Leopold Toetsch
Steve Fink wrote: On Feb-23, Leopold Toetsch wrote: I think I kind of have a grasp on what's going on, now. So I've attached two possible patches. I'm currently on the imcc stuff and could have a more detailed look at both patches after. But I think, both have the same effect on generated

Re: Using imcc as JIT optimizer

2003-02-25 Thread Angel Faus
I explained very badly. The issue is not spilling (at the parrot level) The problem is: if you only pick the highest priority parrot registers and put them in real registers you are losing oportunities where copying the date once will save you from copying it many times. You are, in some

Re: Using imcc as JIT optimizer

2003-02-25 Thread Nicholas Clark
On Wed, Feb 26, 2003 at 02:21:32AM +0100, Angel Faus wrote: [snip lots of good stuff] All this is obviously machine dependent: the code generated should only run in the machine it was compiled for. So we should always keep the original imc code in case we copy the pbc file to another

Re: 0.1.0

2003-02-25 Thread Piers Cawley
Jerome Quelin [EMAIL PROTECTED] writes: And even toy languages may benefit from objects (yes, I really need objects in order to implement -98 version of Befunge, especially since I want to include concurrent-funge support). Well, I could use my own hand-crafted objects as a list of whatever,

Re: [RFC] imcc calling conventions

2003-02-25 Thread Benjamin Goldberg
Piers Cawley wrote: [snip] Um... no. tail call optimization implies being able to replace *any* tail call, not just a recursive one with a simple goto. [snip] In perl5, doing a tail call optimization can be done with just a simple goto... well, 'goto subname', anyway. (Well, first you'd assign

Re: Using imcc as JIT optimizer

2003-02-25 Thread Leopold Toetsch
Nicholas Clark wrote: On Wed, Feb 26, 2003 at 02:21:32AM +0100, Angel Faus wrote: [snip lots of good stuff] All this is obviously machine dependent: the code generated should only run in the machine it was compiled for. So we should always keep the original imc code in case we copy the pbc

Re: [RFC] imcc calling conventions

2003-02-25 Thread Piers Cawley
Benjamin Goldberg [EMAIL PROTECTED] writes: Piers Cawley wrote: [snip] Um... no. tail call optimization implies being able to replace *any* tail call, not just a recursive one with a simple goto. [snip] In perl5, doing a tail call optimization can be done with just a simple goto... well,