NIL is not of type SB-C::NODE

Bug #1729471 reported by Douglas Katzman on 2017-11-02
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
High
Unassigned

Bug Description

First bad commit is

commit c033af47c4dc567f1070c317412f074e55009465 (HEAD, refs/bisect/bad)
Author: Stas Boukarev <email address hidden>
Date: Sun Oct 22 05:47:21 2017 +0300

    PROPAGATE-LET-ARGS after TRANSFORM-CALL.

I pasted a repro into a different bug based on misreading the "is not a ..."
Please see https://bugs.launchpad.net/sbcl/+bug/1728074/comments/6 for that failure case.

Douglas Katzman (dougk) on 2017-11-02
Changed in sbcl:
importance: Undecided → High
assignee: nobody → Stas Boukarev (stassats)
Stas Boukarev (stassats) on 2017-11-02
Changed in sbcl:
assignee: Stas Boukarev (stassats) → nobody
Stas Boukarev (stassats) wrote :

In 8589e14e9e96187ee2523c53aef0d0f5647f7ae9

Changed in sbcl:
status: New → Fix Committed
Douglas Katzman (dougk) wrote :

different example as of commit 42ab54187 (which is after that one):

(declaim (inline to-boolean))
(defun to-boolean (x) (/= x 0))

(declaim (inline newfoo))
(defun newfoo (storage key converter)
  (labels ((value (entry) (funcall converter (ash entry -17)))
           (insert (start key value)
             (loop for link from 0 below 8
                   for index = start then (next index)
                   for entry = (aref storage index)
                   when (= key (logand entry #xff))
                   do (return-from insert (and value (value entry))))
             value)
           (probe (index)
             (let ((entry (aref storage index)))
               (when (= key (logand #xff entry))
                 (return-from newfoo (value entry))))))
    (declare (inline value))
    (probe 0)
    (multiple-value-bind (new value) (make-new-frob)
      (declare (ignore new))
      (insert (logand (sxhash key) 15) key value))))

(defun %access-cache (storage key)
  (newfoo storage key #'to-boolean))

Changed in sbcl:
status: Fix Committed → New

Needs to check functional-kind for :zombie, not just :deleted.

On Sat, Nov 4, 2017 at 1:20 AM Douglas Katzman <email address hidden> wrote:

> different example as of commit 42ab54187 (which is after that one):
>
> (declaim (inline to-boolean))
> (defun to-boolean (x) (/= x 0))
>
> (declaim (inline newfoo))
> (defun newfoo (storage key converter)
> (labels ((value (entry) (funcall converter (ash entry -17)))
> (insert (start key value)
> (loop for link from 0 below 8
> for index = start then (next index)
> for entry = (aref storage index)
> when (= key (logand entry #xff))
> do (return-from insert (and value (value entry))))
> value)
> (probe (index)
> (let ((entry (aref storage index)))
> (when (= key (logand #xff entry))
> (return-from newfoo (value entry))))))
> (declare (inline value))
> (probe 0)
> (multiple-value-bind (new value) (make-new-frob)
> (declare (ignore new))
> (insert (logand (sxhash key) 15) key value))))
>
> (defun %access-cache (storage key)
> (newfoo storage key #'to-boolean))
>
> ** Changed in: sbcl
> Status: Fix Committed => New
>
> --
> You received this bug notification because you are a member of SBCL
> hackers, which is subscribed to SBCL.
> https://bugs.launchpad.net/bugs/1729471
>
> Title:
> NIL is not of type SB-C::NODE
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/sbcl/+bug/1729471/+subscriptions
>

Stas Boukarev (stassats) wrote :

In 86c668657b150fbdc96a097f26025c0f46344000

Changed in sbcl:
status: New → Fix Committed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers