[armedbear-ticket] [armedbear] #85: CL-JSON throws an error under ABCL where SBCL doesn't.
![](https://secure.gravatar.com/avatar/bfc2df4941985c6757bb9cc05a33e95f.jpg?s=120&d=mm&r=g)
#85: CL-JSON throws an error under ABCL where SBCL doesn't. ------------------------+--------------------------------------------------- Reporter: ehuelsmann | Owner: somebody Type: defect | Status: new Priority: major | Milestone: Component: other | Version: Keywords: | ------------------------+--------------------------------------------------- The code is: (require 'asdf) (asdf:operate 'asdf:load-op :cl-json) (json:decode-json-from-string "{\"foo\": [10,20,50], \"bar\": true}") The error message is: The value 50 is not of type CONS. I'm using Yason as a work-around, but thought that you guys might want to know, maybe this points to a deeper issue. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/85> armedbear <http://common-lisp.net/project/armedbear> armedbear
![](https://secure.gravatar.com/avatar/bfc2df4941985c6757bb9cc05a33e95f.jpg?s=120&d=mm&r=g)
#85: CL-JSON throws an error under ABCL where SBCL doesn't. -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: somebody Type: defect | Status: new Priority: major | Milestone: Component: other | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Comment(by mevenson): Indeed it does point to something quite mysterious. After a couple hours of fiddling around, it seems that PROGV forms in nested function calls are somehow "leaking" the binding out to improper references. I wasn't able to distill a test case outside of CL-JSON, but the following simpler form causes the same type of error: {{{ (decode-json-from-string "{\"foo\": [1]}") }}} -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/85#comment:1> armedbear <http://common-lisp.net/project/armedbear> armedbear
![](https://secure.gravatar.com/avatar/bfc2df4941985c6757bb9cc05a33e95f.jpg?s=120&d=mm&r=g)
#85: CL-JSON throws an error under ABCL where SBCL doesn't. -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: new Priority: major | Milestone: Component: compiler | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Changes (by mevenson): * owner: somebody => ehuelsmann * component: other => compiler Comment: A bug in the compiler, as EVAL-ing "decoder.lisp" does not show this bug. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/85#comment:2> armedbear <http://common-lisp.net/project/armedbear> armedbear
![](https://secure.gravatar.com/avatar/bfc2df4941985c6757bb9cc05a33e95f.jpg?s=120&d=mm&r=g)
#85: CL-JSON throws an error under ABCL where SBCL doesn't. -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: mevenson Type: defect | Status: assigned Priority: major | Milestone: Component: compiler | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Changes (by mevenson): * owner: ehuelsmann => mevenson * status: new => assigned Comment: Reproduction of the bug away from CL-JSON: {{{ (defvar *a* "initial") (defun foo () (progv '(*a*) '((symbol-value '*a*)) (setf *a* "foo") (return-from foo))) (defun bar () (format t "before: ~A~%" *a*) (foo) (format t "after: ~A~%" *a*)) }}} Compiling and executing BAR shows {{{ CL-USER> (bar) before: initial after: foo NIL }}} Which shows that the special binding hasn't been reset. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/85#comment:3> armedbear <http://common-lisp.net/project/armedbear> armedbear
![](https://secure.gravatar.com/avatar/bfc2df4941985c6757bb9cc05a33e95f.jpg?s=120&d=mm&r=g)
#85: CL-JSON throws an error under ABCL where SBCL doesn't. -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: mevenson Type: defect | Status: closed Priority: major | Milestone: 0.19 Component: compiler | Version: Resolution: fixed | Keywords: -------------------------+-------------------------------------------------- Changes (by ehuelsmann): * status: assigned => closed * resolution: => fixed * milestone: => 0.19 Comment: Fixed in r12526. Setting to 0.19 milestone as I propose backporting. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/85#comment:4> armedbear <http://common-lisp.net/project/armedbear> armedbear
participants (1)
-
armedbear