BUG in type simplification (SB-KERNEL::%TYPE-UNION)

Bug #883498 reported by Nikodemus Siivola
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Medium
Unassigned

Bug Description

Eric Marsden <email address hidden> via lists.sourceforge.net to sbcl-devel

Hi,

On Linux/AMD64:

,----
| * (lisp-implementation-version)
| "1.0.52.25-7d40722"
| * (lambda (x)
| (declare (type keyword x))
| (the (member -2 -191753/99253 :end1) x))
| INFO: Control stack guard page unprotected
| Control stack guard page temporarily disabled: proceed with caution
| debugger invoked on a SB-KERNEL::CONTROL-STACK-EXHAUSTED in thread:
| Control stack exhausted (no more space for function call frames).
| This is probably due to heavily nested or infinitely recursive function
| calls, or a tail call that SBCL cannot or has not optimized away.
| 0] backtrace
| 0: (SB-KERNEL::CONTROL-STACK-EXHAUSTED-ERROR)
| 1: ("foreign function: call_into_lisp")
| 2: ("foreign function: post_signal_tramp")
| 3: (SB-IMPL::GETHASH3 0 0 99253)
| 4: (SB-KERNEL:TWO-ARG-< 0 -191753/99253)
| 5: (SB-KERNEL::TYPE-CLASS-OR-LOSE NUMBER)
| 6: (SB-KERNEL::%MAKE-NUMERIC-TYPE
| :CLASS-INFO
| NIL
| :ENUMERABLE
| NIL
| :HASH-VALUE
| NIL
| :MIGHT-CONTAIN-OTHER-TYPES-P
| NIL
| :CLASS
| RATIONAL
| :FORMAT
| NIL
| :COMPLEXP
| :REAL
| :LOW
| -191753/99253
| :HIGH
| -191753/99253)
| 7: (SB-KERNEL::%TYPE-INTERSECTION2 #<error printing object>)
| 8: (SB-KERNEL:TYPE-INTERSECTION2 #<error printing object>)
| 9: (SB-KERNEL::SIMPLIFY-INTERSECTIONS #<error printing object>)
| 10: (SB-KERNEL::SIMPLIFY-INTERSECTIONS #<error printing object>)
| 11: (SB-KERNEL::%TYPE-INTERSECTION #<error printing object>)
| 12: (SB-KERNEL::%INTERSECTION-COMPLEX-SUBTYPEP-ARG1 #<error printing object>)
| 13: (SB-KERNEL:CSUBTYPEP #<error printing object>)
| 14: (SB-KERNEL::INTERSECTION-SIMPLE-UNION2-TYPE-METHOD
| #<SB-KERNEL:NUMERIC-TYPE (INTEGER -2 -2)>
| #<SB-KERNEL:INTERSECTION-TYPE
| (AND (SATISFIES KEYWORDP) (RATIONAL -191753/99253 -191753/99253))>)

Tags: types
Revision history for this message
Nikodemus Siivola (nikodemus) wrote :

Here's a pared down test-case:

(sb-kernel:specifier-type
  '(or (INTEGER -2 -2)
       (AND (SATISFIES FOO) (RATIONAL -191753/99253 -191753/99253))))

...somewhat peculiarly, it works for /some/ rational types.

Paul Khuong (pvk)
Changed in sbcl:
assignee: nobody → Paul Khuong (pvk)
status: Triaged → In Progress
Revision history for this message
Paul Khuong (pvk) wrote :

Fixed in a278470 Eliminate an infinite recursion in TYPE-UNION of INTERSECTION types .

Changed in sbcl:
status: In Progress → Fix Committed
Paul Khuong (pvk)
Changed in sbcl:
assignee: Paul Khuong (pvk) → nobody
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.