type-error when using sbcl compiled with sb-fasteval

Bug #1722715 reported by Martin Saturka on 2017-10-11
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
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) on 2017-10-11
Changed in sbcl:
status: New → Triaged
importance: Undecided → Medium
Douglas Katzman (dougk) on 2017-10-11
Changed in sbcl:
assignee: nobody → Douglas Katzman (dougk)
status: Triaged → Fix Committed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers