type-error when using sbcl compiled with sb-fasteval

Bug #1722715 reported by Martin Saturka
6
This bug affects 1 person
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-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

(SB-INTERPRETER:FIND-LEXICAL-VAR #<SB-INTERPRETER::VAR-ENV {1001BFF783}> *SOME-VAR*)
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.

Stas Boukarev (stassats)
Changed in sbcl:
status: New → Triaged
importance: Undecided → Medium
Douglas Katzman (dougk)
Changed in sbcl:
assignee: nobody → Douglas Katzman (dougk)
status: Triaged → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.