[parenscript-devel] A simpler way to do multiple value return? (Was: PS test failures in 7be9b45)
Vladimir Sedach
vsedach at gmail.com
Sat Sep 15 18:21:37 UTC 2012
Hi Dan,
> I sketched an argument why extra instrumentation isn't needed in these
> two cases. If that argument is wrong (which it may well be) then we
> should be able to give examples where the pure global-variable (GV)
> design fails in the absence of such implementation. That is:
>
> (1) An example where an uninstrumented throw causes the GV
> implementation to be wrong; and
I thought that something like the following could be developed into a
counterexample:
(progn
(defun foo (x)
(try
(if (= 0 x)
(values 1 2 3)
(bar))
(:catch (e) 27)))
(defun bar ()
(foo 0)
(throw 13))
(multiple-value-bind (a b c) (foo 1)
(list a b c)))
But because of implicit returns, I don't see how.
I guess the implementation is safe in that respect.
Vladimir
More information about the parenscript-devel
mailing list