Re: Tail calls and continuations

2004-11-11 Thread Leopold Toetsch
William Coleda [EMAIL PROTECTED] wrote: Is it sufficient to provide a mechanism for the compiler writers to indicate that tail call should be used? For example, I have a few cases in tcl where I have something like: ($I0,$P0) = interpret($P1) .return($I0,$P0) Where I'd be happy to

Re: Should the op 'pin' create a C-string ?

2004-11-11 Thread Leopold Toetsch
Bernhard Schmalhofer [EMAIL PROTECTED] wrote: Hi, I am trying to pass a string, containing YAML, from Parrot to the shared library 'libsyck'. void syck_parser_str( SyckParser *, char *, long, SyckIoStrRead ); ( v_ptip ) ^^ SYMID syck_parse( SyckParser * );

Re: Tail calls and continuations

2004-11-11 Thread Leopold Toetsch
Jeff Clites [EMAIL PROTECTED] wrote: On Nov 10, 2004, at 3:08 PM, Leopold Toetsch wrote: But, in a tail-call-optimization case, we don't need to call new_register_frame() and copy_regs()--ex hypothesi, we can re-use the register frame already in-place. That's a big savings--that's the

Re: Should the op 'pin' create a C-string ?

2004-11-11 Thread Bernhard Schmalhofer
Dan Sugalski wrote: From strings.pod I gather that the op 'pin' is meant to make strings fit for passing strings to external libraries. Sort of. The point is to make the string not move. Generally for external libraries, but not universally. It shouldn't add the trailing null, because that

Re: anonimity

2004-11-11 Thread James Mastros
Larry Wall wrote: On Sat, Nov 06, 2004 at 10:37:39PM +0100, Juerd wrote: : Larry Wall skribis 2004-11-06 13:32 (-0800): : Easy, just one of : my $named := anonymous(); : my @named := anonymous(); : my %named := anonymous(); : my named := anonymous(); : my ::named :=

Re: Tail calls and continuations

2004-11-11 Thread Jeff Clites
On Nov 10, 2004, at 11:53 PM, Leopold Toetsch wrote: Jeff Clites [EMAIL PROTECTED] wrote: ...it sounds like we have an easy way to tell if a real continuation has a claim on the register frame, because creating such a real continuation can mark the frame, There is no such mark. If ctx-current_cont

Re: Should the op 'pin' create a C-string ?

2004-11-11 Thread Bernhard Schmalhofer
Leopold Toetsch wrote: This means that the string buffer has to stay around, until the parsing is done. This is what the t signature char is doing anyway - Oops or better, what it should to. While it's using string_to_cstring the created string isn't freed (unless the library would free it,

runtime/parrot/library/config.pbc

2004-11-11 Thread Nicholas Clark
What generates runtime/parrot/library/config.pbc ? It seems that make clean can remove it, and then any subsequent make fails: $ make all Compiling with: xx.c cc -DAPPLLIB_EXP=/usr/local/lib/perl5/5.6.1/BSDPAN -I/usr/local/include -g -Wall -Wstrict-prototypes -Wmissing-prototypes -Winline

Re: anonimity

2004-11-11 Thread Juerd
James Mastros skribis 2004-11-11 3:55 (+0100): It would seem, then, that the answer is there's some property of thingies that gives the name that error messages will use to refer to them. (I want to thank the man who made thingy the proper technical term, BTW.) So what's it called? Well

Re: Should the op 'pin' create a C-string ?

2004-11-11 Thread Leopold Toetsch
Bernhard Schmalhofer [EMAIL PROTECTED] wrote: Leopold Toetsch wrote: This is what the t signature char is doing anyway - Oops or better, what it should to. While it's using string_to_cstring the created string isn't freed (unless the library would free it, which is unlikely). Actually

Re: Tail calls and continuations

2004-11-11 Thread Leopold Toetsch
Jeff Clites [EMAIL PROTECTED] wrote: On Nov 10, 2004, at 11:53 PM, Leopold Toetsch wrote: [ refcounting continuations ] That's really not needed. If you return from the function and you call it next time, you've again a RetContinuation. If the continuation was created somewhere deeper in

#line directives from PMC file should now work

2004-11-11 Thread Nicholas Clark
I believe that I've now fixed all the bugs and made pmc2c2.pl emit accurate #line directives in the C source files it generates. This means that C errors in PMC files under development will be reported by the C compiler as being at the correct line in the source PMC file, rather than the

Re: Should the op 'pin' create a C-string ?

2004-11-11 Thread Dan Sugalski
At 11:15 AM +0100 11/11/04, Bernhard Schmalhofer wrote: Leopold Toetsch wrote: This means that the string buffer has to stay around, until the parsing is done. This is what the t signature char is doing anyway - Oops or better, what it should to. While it's using string_to_cstring the created

Re: runtime/parrot/library/config.pbc

2004-11-11 Thread Leopold Toetsch
Nicholas Clark wrote: What generates runtime/parrot/library/config.pbc ? It's an extension rule .imc.pbc. It seems that make clean can remove it, and then any subsequent make fails: No problem here, jsut tried it. Nicholas Clark leo

Re: Should the op 'pin' create a C-string ?

2004-11-11 Thread Leopold Toetsch
Dan Sugalski [EMAIL PROTECTED] wrote: ... You really want the 'b' type if it's a long-lived thing. That pulls the buffer pointer out of the string structure and passes it in, so it's suitable for mutable stuff. (That's what it's there for, actually) Using bufstart in string code is almost

Re: #line directives from PMC file should now work

2004-11-11 Thread Leopold Toetsch
Nicholas Clark [EMAIL PROTECTED] wrote: I believe that I've now fixed all the bugs and made pmc2c2.pl emit accurate #line directives in the C source files it generates. Great, thanks a lot. Builds pass with the --no-lines option in Makefile removed. Should this be removed from the template

Re: runtime/parrot/library/config.pbc

2004-11-11 Thread Nicholas Clark
On Thu, Nov 11, 2004 at 02:49:24PM +0100, Leopold Toetsch wrote: Nicholas Clark wrote: What generates runtime/parrot/library/config.pbc ? It's an extension rule .imc.pbc. It seems that make clean can remove it, and then any subsequent make fails: No problem here, jsut tried it. Aha.

Re: Should the op 'pin' create a C-string ?

2004-11-11 Thread Dan Sugalski
At 3:49 PM +0100 11/11/04, Leopold Toetsch wrote: Dan Sugalski [EMAIL PROTECTED] wrote: ... You really want the 'b' type if it's a long-lived thing. That pulls the buffer pointer out of the string structure and passes it in, so it's suitable for mutable stuff. (That's what it's there for,

Strings, charsets, and encodings, oh my!

2004-11-11 Thread Dan Sugalski
Or something like that. Anyway, I'm nailing down the last bits of functionality for the changes to the string system. There's still going to be a fair amount of cleanup (including the eradication of some globals) once this is in and merged, but I wanted to give folks a heads up, and a refresher

Re: Tail calls and continuations

2004-11-11 Thread Leopold Toetsch
Jeff Clites [EMAIL PROTECTED] wrote: I was thinking: Implementing tail calls seems easy; I thought that too. So I did it ;) $ time parrot -j fact.imc 1 # [1] maximum recursion depth exceeded $ time parrot -Oc -j fact.imc 1 2# [2] real0m0.635s $ time

Re: Strings, charsets, and encodings, oh my!

2004-11-11 Thread Larry Wall
All in all, looks really good, especially the fact that it defaults to a grapheme view rather than a codepoint view. I also like the escape valve for drilling down to bytes if you really need it, but it reminds me that we'll need something similar for drilling down to codepoints for those

Re: Tail calls and continuations

2004-11-11 Thread Dan Sugalski
At 1:24 AM -0800 11/11/04, Jeff Clites wrote: On Nov 10, 2004, at 11:53 PM, Leopold Toetsch wrote: Jeff Clites [EMAIL PROTECTED] wrote: This OTOH is meaning that we can do the check only at runtime. Thus the Ctailcall or Ctailcallmethod opcodes have to do plain calls if they detect such a

Re: Strings, charsets, and encodings, oh my!

2004-11-11 Thread Dan Sugalski
At 9:19 AM -0800 11/11/04, Larry Wall wrote: All in all, looks really good, especially the fact that it defaults to a grapheme view rather than a codepoint view. I also like the escape valve for drilling down to bytes if you really need it, but it reminds me that we'll need something similar for

Re: Tail calls and continuations

2004-11-11 Thread Michael Walter
On Thu, 11 Nov 2004 12:30:16 -0500, Dan Sugalski [EMAIL PROTECTED] wrote: Tail calls should be explicit, compile-time things. Otherwise we're going to run afoul of traceback requirements and suchlike things, and I think that's just not worth the risk and hassle. Besides, it's a lot easier in

Re: #line directives from PMC file should now work

2004-11-11 Thread Jeff Clites
On Nov 11, 2004, at 6:53 AM, Leopold Toetsch wrote: Nicholas Clark [EMAIL PROTECTED] wrote: Builds pass with the --no-lines option in Makefile removed. Should this be removed from the template Makefile so that all builds now use #line directives? Yep. Is there still that %ENV var around to turn

Re: Tail calls and continuations

2004-11-11 Thread Leopold Toetsch
Dan Sugalski [EMAIL PROTECTED] wrote: Tail calls should be explicit, compile-time things. Otherwise we're going to run afoul of traceback requirements and suchlike things, Yep. So is it implemented: * tailcall / tailcallmethod opcodes * the former is currently created by imcc with parrot -Oc

Re: Tail calls and continuations

2004-11-11 Thread Jeff Clites
On Nov 11, 2004, at 9:44 AM, Michael Walter wrote: On Thu, 11 Nov 2004 12:30:16 -0500, Dan Sugalski [EMAIL PROTECTED] wrote: Tail calls should be explicit, compile-time things. Otherwise we're going to run afoul of traceback requirements and suchlike things Nah, that's just the difference between

Re: Tail calls and continuations

2004-11-11 Thread Dan Sugalski
At 7:26 PM +0100 11/11/04, Leopold Toetsch wrote: Dan Sugalski [EMAIL PROTECTED] wrote: Tail calls should be explicit, compile-time things. Otherwise we're going to run afoul of traceback requirements and suchlike things, Yep. So is it implemented: * tailcall / tailcallmethod opcodes * the

Re: Tail calls and continuations

2004-11-11 Thread Dan Sugalski
At 11:16 AM -0800 11/11/04, Jeff Clites wrote: On Nov 11, 2004, at 9:44 AM, Michael Walter wrote: On Thu, 11 Nov 2004 12:30:16 -0500, Dan Sugalski [EMAIL PROTECTED] wrote: Tail calls should be explicit, compile-time things. Otherwise we're going to run afoul of traceback requirements and suchlike

Re: Tail calls and continuations

2004-11-11 Thread Jeff Clites
On Nov 11, 2004, at 11:24 AM, Dan Sugalski wrote: At 11:16 AM -0800 11/11/04, Jeff Clites wrote: On Nov 11, 2004, at 9:44 AM, Michael Walter wrote: On Thu, 11 Nov 2004 12:30:16 -0500, Dan Sugalski [EMAIL PROTECTED] wrote: Even further, it's necessary for some languages (Scheme)/paradigms (loop

Re: Tail calls and continuations

2004-11-11 Thread Dan Sugalski
At 11:54 AM -0800 11/11/04, Jeff Clites wrote: On Nov 11, 2004, at 11:24 AM, Dan Sugalski wrote: At 11:16 AM -0800 11/11/04, Jeff Clites wrote: On Nov 11, 2004, at 9:44 AM, Michael Walter wrote: On Thu, 11 Nov 2004 12:30:16 -0500, Dan Sugalski [EMAIL PROTECTED] wrote: Even further, it's necessary

Re: #line directives from PMC file should now work

2004-11-11 Thread Leopold Toetsch
Jeff Clites [EMAIL PROTECTED] wrote: I'd really like a way to turn them off easily (for the ops as well, actually). I find them to be counterproductive (for our stuff), since what gets shown in the debugger isn't stuff you can actually get gdb to evaluate. It depends. While hacking PMC files

Re: Tail calls and continuations

2004-11-11 Thread Leopold Toetsch
Dan Sugalski [EMAIL PROTECTED] wrote: At 11:54 AM -0800 11/11/04, Jeff Clites wrote: On Nov 11, 2004, at 11:24 AM, Dan Sugalski wrote: I only skimmed the earlier parts of this, but continuations shouldn't affect tail calls at all. You should read the thread then. Joy. That means continuations

Re: Tail calls and continuations

2004-11-11 Thread Leopold Toetsch
Dan Sugalski [EMAIL PROTECTED] wrote: At 7:26 PM +0100 11/11/04, Leopold Toetsch wrote: Patch is probably ready tomorrow. Cool. I think I'd like to skip having to specify the -Oc flag, though, and add explicit syntax to PIR. Do we really need it? Are there wicked cases, where we could

Re: Tail calls and continuations

2004-11-11 Thread Leopold Toetsch
Jeff Clites [EMAIL PROTECTED] wrote: On Nov 11, 2004, at 9:44 AM, Michael Walter wrote: On Thu, 11 Nov 2004 12:30:16 -0500, Dan Sugalski [EMAIL PROTECTED] wrote: Tail calls should be explicit, compile-time things. Nah, that's just the difference between running optimized and unoptimized.

Re: Tail calls and continuations

2004-11-11 Thread Dan Sugalski
At 10:13 PM +0100 11/11/04, Leopold Toetsch wrote: Dan Sugalski [EMAIL PROTECTED] wrote: At 7:26 PM +0100 11/11/04, Leopold Toetsch wrote: Patch is probably ready tomorrow. Cool. I think I'd like to skip having to specify the -Oc flag, though, and add explicit syntax to PIR. Do we really need

Re: Tail calls and continuations

2004-11-11 Thread Michael Walter
On Thu, 11 Nov 2004 21:59:06 +0100, Leopold Toetsch [EMAIL PROTECTED] wrote: Above is *without* tail calls. The next one was with tail calls, and it obviously did succeed, because tail calls do not contribute to any kind of stack depth. So there is for sure no limit. It's the same as an

Re: Tail calls and continuations

2004-11-11 Thread Dan Sugalski
At 10:26 PM +0100 11/11/04, Leopold Toetsch wrote: Dan Sugalski [EMAIL PROTECTED] wrote: At 11:54 AM -0800 11/11/04, Jeff Clites wrote: On Nov 11, 2004, at 11:24 AM, Dan Sugalski wrote: I only skimmed the earlier parts of this, but continuations shouldn't affect tail calls at all. You should

register allocation

2004-11-11 Thread Bill Coffman
Hello, I have addressed almost all the code issues from the last patch. That broke some things, which I had to fix, but they're fixed. A couple other improvements too. Here's the state of things: * I have the below failed tests. I haven't looked into these. Can someone tell me if the tests

Re: Tail calls and continuations

2004-11-11 Thread Jeff Clites
On Nov 11, 2004, at 12:59 PM, Leopold Toetsch wrote: Jeff Clites [EMAIL PROTECTED] wrote: I think that actually doesn't matter. Even in the case where we think we can't do a full tail call optimization (because of a continuation that's been taken), we can still actually remove the calling frame

Fwd: register allocation

2004-11-11 Thread Bill Coffman
Trying again... -- Forwarded message -- From: Bill Coffman [EMAIL PROTECTED] Date: Thu, 11 Nov 2004 14:05:29 -0800 Subject: register allocation To: Perl 6 Internals [EMAIL PROTECTED] Hello, I have addressed almost all the code issues from the last patch. That broke some

Re: #line directives from PMC file should now work

2004-11-11 Thread Jeff Clites
On Nov 11, 2004, at 11:12 AM, Leopold Toetsch wrote: Jeff Clites [EMAIL PROTECTED] wrote: I'd really like a way to turn them off easily (for the ops as well, actually). I find them to be counterproductive (for our stuff), since what gets shown in the debugger isn't stuff you can actually get gdb

Re: register allocation

2004-11-11 Thread Leopold Toetsch
Bill Coffman [EMAIL PROTECTED] wrote: Hello, I have addressed almost all the code issues from the last patch. * I have the below failed tests. Failed TestStat Wstat Total Fail Failed List of Failed ---

Re: Tail calls and continuations

2004-11-11 Thread Leopold Toetsch
Jeff Clites [EMAIL PROTECTED] wrote: On Nov 11, 2004, at 12:59 PM, Leopold Toetsch wrote: As Dan already has outlined a Continuation doesn't have any impact on tail calls (my argument WRT that was wrong) I'm confused then. What from the previous discussion in this thread was incorrect? We