too many define-alien-routines causes an error "value 256 is not of type (unsigned-byte 8)"

Bug #2114943 reported by Brooke Tilley
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
New
Undecided
Unassigned

Bug Description

This is causing an annoying issue for me where recompiling some bindings I'm working on too many times in SLY breaks the whole thing and I have to restart the entire SLY session. And I imagine at some point as the bindings grow they won't compile at all.

Version: SBCL 2.5.5

Error message:

```
; in: DEFINE-ALIEN-ROUTINE ("Foo84" FOO84)
; (DEFINE-ALIEN-ROUTINE ("Foo84" FOO84) (BOOLEAN) (BAR (* BAZ) :IN))
; --> BLOCK WITH-ALIEN SYMBOL-MACROLET SYMBOL-MACROLET SYMBOL-MACROLET VALUES
; ==>
; 1
;
; caught WARNING:
; The value
; 256
; is not of type
; (UNSIGNED-BYTE 8)
;
; compilation unit finished
; caught 1 WARNING condition
```

Minimal reproducible case:

```
(sb-alien:define-alien-type baz (sb-alien:struct nil))

(sb-alien:define-alien-routine ("Foo0" foo0) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo1" foo1) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo2" foo2) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo3" foo3) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo4" foo4) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo5" foo5) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo6" foo6) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo7" foo7) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo8" foo8) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo9" foo9) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo10" foo10) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo11" foo11) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo12" foo12) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo13" foo13) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo14" foo14) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo15" foo15) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo16" foo16) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo17" foo17) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo18" foo18) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo19" foo19) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo20" foo20) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo21" foo21) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo22" foo22) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo23" foo23) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo24" foo24) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo25" foo25) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo26" foo26) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo27" foo27) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo28" foo28) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo29" foo29) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo30" foo30) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo31" foo31) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo32" foo32) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo33" foo33) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo34" foo34) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo35" foo35) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo36" foo36) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo37" foo37) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo38" foo38) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo39" foo39) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo40" foo40) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo41" foo41) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo42" foo42) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo43" foo43) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo44" foo44) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo45" foo45) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo46" foo46) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo47" foo47) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo48" foo48) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo49" foo49) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo50" foo50) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo51" foo51) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo52" foo52) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo53" foo53) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo54" foo54) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo55" foo55) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo56" foo56) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo57" foo57) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo58" foo58) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo59" foo59) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo60" foo60) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo61" foo61) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo62" foo62) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo63" foo63) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo64" foo64) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo65" foo65) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo66" foo66) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo67" foo67) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo68" foo68) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo69" foo69) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo70" foo70) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo71" foo71) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo72" foo72) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo73" foo73) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo74" foo74) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo75" foo75) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo76" foo76) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo77" foo77) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo78" foo78) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo79" foo79) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo80" foo80) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo81" foo81) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo82" foo82) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo83" foo83) (sb-alien:boolean)
  (bar (* baz) :in))
(sb-alien:define-alien-routine ("Foo84" foo84) (sb-alien:boolean)
  (bar (* baz) :in))
```

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.