At 15:39 Uhr -0600 14.01.2006, Bradley Lucier wrote:
On Jan 14, 2006, at 3:15 PM, Christian wrote:
(parameterize ((generate-proper-tail-calls true?))
..
Doesn't
(proper-tail-calls-set! #f)
do what you want? Do this before loading interpreted code you don't want to use tail calls.
Sure, that's what the above code is using underneath; Marc has changed the proper-tail-calls-set! function to be a generate-proper-tail-calls parameter.
What I want is change the tco property without having to reload code from a file. And if it would be acting on the function (the lambda) itself instead of on the binding, it would also change that reference which has been taken by another part of the running system. (Am I still explaining myself complicated? Imagine: (define (fun a b) .....) (define (make-g f) (lambda (x) (f x))) (define g (make-g fun)) Now reload fun with tco disabled (or apply my function-proper-tail-calls-set! operation). It will not change the workings of the version of fun trapped in g. But you might actually want that.)
Ah by the way: I've forgotten one thing on my debugging "wishlist":
- being able to set break points into a running program. (And an emacs interface for it.)
BTW if given the ability to read the souce code with location information from an interpreted function, one could also compile that function into the running system, like you can with common lisp systems (I may then add the functionality for that to chjmodule).
Christian.