NIL is not of type SB-C::NODE

Bug #1729471 reported by Douglas Katzman
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
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)
Changed in sbcl:
importance: Undecided → High
assignee: nobody → Stas Boukarev (stassats)
Stas Boukarev (stassats)
Changed in sbcl:
assignee: Stas Boukarev (stassats) → nobody
Revision history for this message
Stas Boukarev (stassats) wrote :

In 8589e14e9e96187ee2523c53aef0d0f5647f7ae9

Changed in sbcl:
status: New → Fix Committed
Revision history for this message
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
Revision history for this message
Stas Boukarev (stassats) wrote : Re: [Bug 1729471] Re: NIL is not of type SB-C::NODE

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
>

Revision history for this message
Stas Boukarev (stassats) wrote :

In 86c668657b150fbdc96a097f26025c0f46344000

Changed in sbcl:
status: New → 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.