On Thu 03 Jun 2010 22:36, No Itisnt <[email protected]> writes:
>> Not a known bug, no. Can you make a test case?
>
> Yes, attached. It appears to happen when (rnrs control) is used. This
> is with the latest master commit.
Thanks!
> It's not urgent, but Lua does mandate tail call optimization.
I think the basic thing would be the equivalent of:
(lambda args ... (return (foo bar ...)) ...)
=>
(lambda args
(let ((unique-tag (make-prompt-tag)))
(% unique-tag
(...
(abort-to-prompt unique-tag (lambda () (foo bar ...)))
...)
(lambda (unused-cont thunk) (thunk)))))
And from there the compiler would be resposible for removing the prompt,
if possible.
But, I could be totally misled here and there's some much more simple
solution.
> On a related note, what would be the best way to benchmark a compiler
> optimization? I see "benchmark-guile"; is there a way to easily run it
> with an optimization enabled and disabled? And maybe get some fancy
> charts and graphs, too?
Just running benchmark-guile before and after, I'm afraid... Once
they're in master, there's http://ossau.homelinux.net/~neil/.
Cheers,
Andy
--
http://wingolog.org/