Sun Jul 12 11:42:34 CEST 2009

evaluator-break during instantiation

Apparently evaluator-break doesn't work when instantiating a module.

Of course you can't!  I'm confusing two things here.  The evaluator
isn't yet defined so you can't send it anything..

What i want is to be able to break instantiation.

To: plt-scheme@list.cs.brown.edu


Say you have a module which takes a while to instantiate using         
"make-module-evaluator" from scheme/sandbox.  How would you
make it possible to interrupt the instantiation?  Obviously
"kill-evaluator" or "break-evaluator" won't work yet since there is no
value to apply them to, and other attempts to kill it seem to fail:

(define e #f)
(define t 
   (lambda ()
     (set! e
            '(module foo scheme/base (let x () (x))))))))

# (kill-thread t)
kill-thread: the current custodian does not solely manage the specified thread: #<thread>

This seems to leave the instantiation still running in the
background (judging from "top").

# (break-thread t) 

However, hitting ctrl-c when evaluating the following does seem to
stop the instantiation.

# (make-module-evaluator '(module foo scheme/base (let x () (x))))

This is in v4.2.0.5 [3m] from svn 15326 2009-06-29 09:50:11
Any ideas?