[Bese-devel] [Bug-Report] arnesi call/cc

Russ Tyndall russ at acceleration.net
Thu Dec 11 18:14:08 UTC 2008


I made a minor change to the call/cc code, to get it to correctly handle
multiple-values.

The case failing was:
(let ((arnesi::*trace-cc* T) (arnesi::*debug-evaluate/cc* T))
     (with-call/cc  (CALL/CC (LAMBDA (K) (VALUES 1 2 3)))))


To fix this I changed k-for-call/cc (apply.lisp:44), by correctly
passing other-values along.
The new version looks like:

;;;; APPLY and FUNCALL

(defk k-for-call/cc (k)
    (value other-values)
  (if *call/cc-returns*
      (kontinue k value other-values)
      (throw 'done (values-list (cons value other-values)))))

Not sure if anyone is around to commit this patch, but I thought I would
pass it along in case.


Hope this helps someone,

Russ
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: call-cc-patch.darcs
URL: <https://mailman.common-lisp.net/pipermail/bese-devel/attachments/20081211/5ba13f38/attachment.ksh>


More information about the bese-devel mailing list