[movitz-devel] Re: bug report

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Wed Aug 18 19:51:48 UTC 2004


"Alessio Stalla" <axcd at libero.it> writes:

> 1) the way setq is implemented in muerte, it always assigns values to
> special variables, so that e.g.
>
>        (let ((x 5)) (setq x 6))

Right, lexical variables in eval was probably added much later than
setq/setf, and I've never really written so extensive forms at the
REPL that this issue ever came up. I'll fix it right away.

> 2) This is probably harder to notice: under certain conditions, labels
> and flet do not properly capture bindings: I was trying to
> movitz-compile this defun
>
> (defun my-test-labels (x)
>   (labels ((p () (print x))
>            (q (y) (list x y)))
>         (p)))
>
> but it gave me this error:
>
> The slot MOVITZ::REFERENCE-SLOT is unbound in the object
> #<MOVITZ::BORROWED-BINDING name: X {4913F8FD}>

This is touching some of the hairier corners of the compiler, so don't
be too surprised to find compiler bugs when using labels etc. I'll
look into this too, shortly.

Thanks for the bug-reports.

-- 
Frode Vatvedt Fjeld





More information about the movitz-devel mailing list