Opened 6 years ago

Closed 6 years ago

#124 closed defect (fixed)

Failure to be an SBCL build host

Reported by: ehuelsmann Owned by: mevenson
Priority: major Milestone: 0.27
Component: other Version: 0.27
Keywords: sbcl-buildhost Cc: mevenson
Parent Tickets:

Description

When building SBCL with ABCL, I'm getting the error

#<XP:XP-STRUCTURE ...> isn't of type STREAM

Failing to continue the SBCL build.

The issue here is that our pretty printer structure - which wraps a stream - isn't itself a stream. Somehow, the pretty printer stream wrapper is passed into ABCL internals expecting a STREAM, though.

Subtickets

Change History (13)

comment:1 Changed 6 years ago by ehuelsmann

  • Summary changed from Failure to be an SBCL build host to Failure to be an SBCL build host (XP-STRUCTURE not a STREAM)

comment:2 follow-up: Changed 6 years ago by mevenson

r13529 (post abcl-0.26.2) seems to hang after building sbcl-1.0.50/src/compiler/node.lisp much earlier than the XP structure problem.

comment:3 Changed 6 years ago by mevenson

  • Cc mevenson added

comment:4 in reply to: ↑ 2 ; follow-ups: Changed 6 years ago by mevenson

Replying to mevenson:

r13529 (post abcl-0.26.2) seems to hang after building sbcl-1.0.50/src/compiler/node.lisp much earlier than the XP structure problem.

The hang stems from the writing of large constants to separate files within the fasl introduced in r13514.

comment:5 in reply to: ↑ 4 Changed 6 years ago by mevenson

Replying to mevenson:

To reproduce:

1) Download sbcl-1.0.50-source.tar.bz.

2) Unpack into ~/src/sbcl-1.0.50-source.tar.bz

3) cmd$ cd ~/src/sbcl-1.0.50 && sh make.sh --xc-host="$HOME/work/abcl/abcl --noinit"

comment:6 in reply to: ↑ 4 Changed 6 years ago by mevenson

Replying to mevenson:

The hang stems from the writing of large constants to separate files within the fasl introduced in r13514.

Not really a "hang" but a really inefficient algorithm in the presence of a file containing a large number of compilands. Addressed in r13531.

comment:7 follow-up: Changed 6 years ago by mevenson

Further on, another compiler regression occurs in the compilation of src/compiler/globaldb.lisp which comes from SYSTEM::PROCESS-TOPLEVEL-MOP.ENSURE-METHOD failing as follows:

The value NIL is not of class org.armedbear.lisp.FaslClassLoader
   [Condition of type ERROR]

Restarts:
 0: [RETRY] Retry SLIME REPL evaluation request.
 1: [*ABORT] Return to SLIME's top level.
 2: [ABORT] Abort thread.

Backtrace:
  0: (#<FUNCTION {470EDB99}> #<ERROR {35227383}> #<FUNCTION {470EDB99}>)
  1: (APPLY #<FUNCTION {470EDB99}> (#<ERROR {35227383}> #<FUNCTION {470EDB99}>))
  2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<ERROR {35227383}> #<FUNCTION {470EDB99}>)
  3: (INVOKE-DEBUGGER #<ERROR {35227383}>)
  4: org.armedbear.lisp.Lisp.error(Lisp.java:374)
  5: org.armedbear.lisp.LispObject.javaInstance(LispObject.java:133)
  6: org.armedbear.lisp.FaslClassLoader$pf_get_fasl_function.execute(FaslClassLoader.java:169)
  7: org.armedbear.lisp.LispThread.execute(LispThread.java:666)
  8: org.armedbear.lisp.Lisp.evalCall(Lisp.java:548)
  9: org.armedbear.lisp.Lisp.eval(Lisp.java:506)
 10: org.armedbear.lisp.Lisp.evalCall(Lisp.java:608)
 11: org.armedbear.lisp.Lisp.eval(Lisp.java:506)
 12: org.armedbear.lisp.Primitives$pf__eval.execute(Primitives.java:345)
 13: (SYSTEM::GET-FASL-FUNCTION NIL 12)
 14: (SYSTEM::%EVAL (MOP::ENSURE-METHOD 'PRINT-OBJECT :LAMBDA-LIST '(SYSTEM::INSTANCE STREAM) :QUALIFIERS 'NIL ...))
 15: (EVAL (MOP::ENSURE-METHOD 'PRINT-OBJECT :LAMBDA-LIST '(SYSTEM::INSTANCE STREAM) :QUALIFIERS 'NIL ...))
 16: (SYSTEM::PROCESS-TOPLEVEL-MOP.ENSURE-METHOD (MOP::ENSURE-METHOD 'PRINT-OBJECT :LAMBDA-LIST '(SYSTEM::INSTANCE STREAM) :QUALIFIERS 'NIL ...) #<FILE-STREAM {20733E41}> (:COMPILE-TOPLEVEL))
 17: (SYSTEM::PROCESS-TOPLEVEL-FORM (MOP::ENSURE-METHOD 'PRINT-OBJECT :LAMBDA-LIST '(SYSTEM::INSTANCE STREAM) :QUALIFIERS 'NIL ...) #<FILE-STREAM {20733E41}> (:COMPILE-TOPLEVEL))
 18: (SYSTEM::PROCESS-PROGN ((MOP::ENSURE-METHOD 'PRINT-OBJECT :LAMBDA-LIST '(SYSTEM::INSTANCE STREAM) :QUALIFIERS 'NIL ...)) #<FILE-STREAM {20733E41}> (:COMPILE-TOPLEVEL))
 19: (SYSTEM::PROCESS-TOPLEVEL-PROGN (PROGN (MOP::ENSURE-METHOD 'PRINT-OBJECT :LAMBDA-LIST '(SYSTEM::INSTANCE STREAM) :QUALIFIERS 'NIL ...)) #<FILE-STREAM {20733E41}> (:COMPILE-TOPLEVEL))
 20: (SYSTEM::PROCESS-TOPLEVEL-FORM (PROGN (MOP::ENSURE-METHOD 'PRINT-OBJECT :LAMBDA-LIST '(SYSTEM::INSTANCE STREAM) :QUALIFIERS 'NIL ...)) #<FILE-STREAM {20733E41}> (:COMPILE-TOPLEVEL))
 21: (SYSTEM::PROCESS-TOPLEVEL-DEFMETHOD/DEFGENERIC (DEFMETHOD PRINT-OBJECT ((SYSTEM::INSTANCE SB!C::CLASS-INFO) STREAM) (FUNCALL #'(LAMBDA # #) SYSTEM::INSTANCE STREAM)) #<FILE-STREAM {20733E41}> (:COMPIL..
 22: (SYSTEM::PROCESS-TOPLEVEL-FORM (DEFMETHOD PRINT-OBJECT ((SYSTEM::INSTANCE SB!C::CLASS-INFO) STREAM) (FUNCALL #'(LAMBDA # #) SYSTEM::INSTANCE STREAM)) #<FILE-STREAM {20733E41}> (:COMPILE-TOPLEVEL))
 23: (SYSTEM::PROCESS-PROGN ((EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) (SYSTEM:COMPILER-DEFSTRUCT 'SB!C::CLASS-INFO :CONC-NAME '#:CLASS-INFO- :DEFAULT-CONSTRUCTOR 'NIL ...)) (DECLAIM (INLINE S..
 24: (SYSTEM::PROCESS-TOPLEVEL-PROGN (PROGN (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) (SYSTEM:COMPILER-DEFSTRUCT 'SB!C::CLASS-INFO :CONC-NAME '#:CLASS-INFO- :DEFAULT-CONSTRUCTOR 'NIL ...)) (DE..
 25: (SYSTEM::PROCESS-TOPLEVEL-FORM (PROGN (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) (SYSTEM:COMPILER-DEFSTRUCT 'SB!C::CLASS-INFO :CONC-NAME '#:CLASS-INFO- :DEFAULT-CONSTRUCTOR 'NIL ...)) (DEC..
 26: (SYSTEM::PROCESS-TOPLEVEL-FORM (DEFSTRUCT (SB!C::CLASS-INFO (:CONSTRUCTOR SB!C::MAKE-CLASS-INFO #) (:PRINT-OBJECT #) (:COPIER NIL)) (SB!C::NAME NIL :TYPE KEYWORD :READ-ONLY T) (SB!C::TYPES NIL :TYPE L..
 27: (SYSTEM::PROCESS-PROGN ((DEFSTRUCT (SB!C::CLASS-INFO # # #) (SB!C::NAME NIL :TYPE KEYWORD :READ-ONLY T) (SB!C::TYPES NIL :TYPE LIST)) (DEFVAR SB!C::*INFO-TYPES*) (DECLAIM (TYPE SIMPLE-VECTOR SB!C::*IN..
 28: (SYSTEM::PROCESS-TOPLEVEL-EVAL-WHEN (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) (DEFSTRUCT (SB!C::CLASS-INFO # # #) (SB!C::NAME NIL :TYPE KEYWORD :READ-ONLY T) (SB!C::TYPES NIL :TYPE LIST))..
 29: (SYSTEM::PROCESS-TOPLEVEL-FORM (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) (DEFSTRUCT (SB!C::CLASS-INFO # # #) (SB!C::NAME NIL :TYPE KEYWORD :READ-ONLY T) (SB!C::TYPES NIL :TYPE LIST)) (DEF..
 30: (#<FUNCTION {1BC0E7B8}>)
 31: (JRUN-EXCEPTION-PROTECTED #<FUNCTION {1BC0E7B8}>)
 32: (#<FUNCTION {15ACEF44}>)
 33: (JVM::%WITH-COMPILATION-UNIT #<FUNCTION {C90647A}>)
 34: (COMPILE-FILE "src/compiler/globaldb.lisp" :OUTPUT-FILE #P"/export/home/evenson/src/sbcl-1.0.50/obj/from-host/src/compiler/globaldb.abcl-tmp")

comment:8 in reply to: ↑ 7 Changed 6 years ago by mevenson

Replying to mevenson:

Further on, another compiler regression occurs in the compilation of src/compiler/globaldb.lisp which comes from SYSTEM::PROCESS-TOPLEVEL-MOP.ENSURE-METHOD

Fixed this problem in r13532.

comment:9 Changed 6 years ago by mevenson

The cause of the XP error has been isolated into a test case separate from building SBCL and recorded in ticket #165.

comment:10 Changed 6 years ago by mevenson

  • Owner changed from nobody to mevenson
  • Status changed from new to assigned
  • Summary changed from Failure to be an SBCL build host (XP-STRUCTURE not a STREAM) to Failure to be an SBCL build host

The patch attached to ticket #165 gets the build quite a bit further, past the XP error.

But then the build hangs on compiling src/code/unix.lisp in (DEFUN UNIX-SELECT) under x64-solaris-5.11.oi148. But that's a bit of an obscure architecture failing on a UNIX specific portion so this is inconclusive. Need to test on other architectures.

comment:11 Changed 6 years ago by mevenson

  • Component changed from libraries to other
  • Keywords sbcl-buildhost added
  • Milestone set to 0.27
  • Version set to 0.27

comment:12 Changed 6 years ago by mevenson

With fixing #165, ABCL works as a buildhost for SBCL on OSX again.

Problems remain with x64-solaris-5.11.oi148

comment:13 Changed 6 years ago by mevenson

  • Resolution set to fixed
  • Status changed from assigned to closed

The problem with x64-solaris-5.11.oi148 lies somewhere in the toolchain, as sbcl building itself gets "stuck" here.

Closing.

Note: See TracTickets for help on using tickets.