type-error when using sbcl compiled with sb-fasteval
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
Medium
|
Douglas Katzman |
Bug Description
Just downloaded and compiled SBCL 1.4.0 (under x86-64 Linux) with sb-fasteval enabled:
sh make.sh --with-sb-fasteval --without-sb-eval --fancy
While it got compiled and it compiles e.g. Maxima successfully, its actual use leads to type error:
((lambda () (declare (special *some-var*)) (setq *some-var* t)))
debugger invoked on a TYPE-ERROR in thread
#<THREAD "main thread" RUNNING {1001BF66A3}>:
The value
NIL
is not of type
SIMPLE-VECTOR
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-
0: [ABORT] Exit debugger, returning to top level.
(SB-INTERPRETER
0]
It does this error even when I put (defvar *some-var* nil) before this. The error is there if I do it with defining a named function (instead of using lambda) too. Notice that the error is triggered when the (lambda/named) function is called, not during its defining.
If I omit either the (declare (special *some-var*)) part or the setq-based assignment, the error disappears.
If I use SBCL compiled without sb-fasteval, it works, alike it works with other Lisps I've tested.
Changed in sbcl: | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in sbcl: | |
assignee: | nobody → Douglas Katzman (dougk) |
status: | Triaged → Fix Committed |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |