[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [VM] Tail recursion and multiple values
From: |
Andy Wingo |
Subject: |
Re: [VM] Tail recursion and multiple values |
Date: |
Mon, 02 Mar 2009 19:03:28 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
Heya,
On Mon 02 Mar 2009 00:48, address@hidden (Ludovic Courtès) writes:
>> 1) It is expected that you don't have tail recursion between
>> interpreted and VM code.
>>
>> 2) This particular problem manifests itself in that call-with-values
>> is VM code (when r5rs.scm is compiled).
>
> (The latter is what I meant to say in my message.)
>
> As for (1), I'm unsure. The issue is that as long as running code with
> the interpreter is the default, people may hit this kind of problem,
> which is, well, problematic. Now, I have no idea how this could be
> solved without resorting to dirty hacks such as the one you suggested.
Yeah. It is certainly a counterintuitive situation. The compiler
recognizes both call-with-values and @call-with-values, so we could just
not compile call-with-values; less nasty, but still nasty, and penalizes
the vm in the (apply call-with-values ...) case.
> As a side note, I think it makes sense to keep the interpreter as the
> default when evaluating `.scm' files
Sure, for now -- or we could do what python does, and automatically
create .go files as needed (and if possible). Then it would certainly
pay off over time, and the compilation time would probably be a wash
because in that case the .scm probably isn't even in the disk cache.
> the program is short-lived
This would be the normal case
> if the compiler performs smart optimizations,
Hahaahaha!
More seriously, I think that the bar for including optimizations in the
normal compilation path will be if they actually speed up the compiler
as well (since the compiler is self-compiled).
Cheers,
Andy
--
http://wingolog.org/
- Re: [VM] Tail recursion and multiple values, Andy Wingo, 2009/03/01
- Re: [VM] Tail recursion and multiple values, Ludovic Courtès, 2009/03/01
- Re: [VM] Tail recursion and multiple values,
Andy Wingo <=
- Re: [VM] Tail recursion and multiple values, Ludovic Courtès, 2009/03/02
- Re: [VM] Tail recursion and multiple values, Andy Wingo, 2009/03/02
- Re: [VM] Tail recursion and multiple values, Andreas Rottmann, 2009/03/02
- Re: [VM] Tail recursion and multiple values, Eduardo Cavazos, 2009/03/02
- Re: [VM] Tail recursion and multiple values, Ludovic Courtès, 2009/03/03
- Re: [VM] Tail recursion and multiple values, Clinton Ebadi, 2009/03/04