#370: Failure to use ABCL as SBCL compilation host -------------------------+----------------------- Reporter: mevenson | Owner: Type: defect | Status: new Priority: major | Milestone: 1.4.0 Component: interpreter | Version: 1.4.0-dev Keywords: sbcl | -------------------------+----------------------- loke noticed that ABCL is no longer able to host a compilation of SBCL.
This failure occurs on both 1.4.0-dev and 1.3.1, so the problem has been present for a while.
From http://pastebin.com/KUCzCNd5:
{{{
; Wrote /root/sbcl-1.2.3/obj/from-host/src/compiler/policies.abcl-tmp (0.307 seconds) ; Compiling /root/sbcl-1.2.3/src/compiler/macros.lisp ... ; (IN-PACKAGE "SB!C") ; (DECLAIM (SPECIAL *COMPILER-ERROR-CONTEXT*)) ; (DEFMACRO DEF-IR1-TRANSLATOR ...) ; (DEFMACRO SOURCE-TRANSFORM-LAMBDA ...) ; (DEFMACRO DEFINE-SOURCE-TRANSFORM ...) ; (DEFTYPE ATTRIBUTES ...) ; (DEFUN COMPUTE-ATTRIBUTE-MASK ...) ; (DEF!MACRO !DEF-BOOLEAN-ATTRIBUTE ...) ; (DEFUN GUTS-OF-!DEF-BOOLEAN-ATTRIBUTE-SETTER ...) ; (DEFMACRO !DEF-BOOLEAN-ATTRIBUTE-SETTER ...) ; (DEFMACRO ATTRIBUTES-UNION ...) ; (DEFMACRO ATTRIBUTES-INTERSECTION ...) ; (DECLAIM (FTYPE # ...)) ; (DECLAIM (INLINE ATTRIBUTES=)) ; (DEFUN ATTRIBUTES= ...) ; (DEFUN PARSE-DEFTRANSFORM ...) ; (DEFMACRO DEFTRANSFORM ...) ; (DEFMACRO DEFKNOWN ...) ; (DEFMACRO DEFOPTIMIZER ...) #<THREAD "interpreter" {5B9A5111}>: Debugger invoked on condition of type UNDEFINED-FUNCTION The function SB!IMPL::DECL-EXPR is undefined. Restarts: 0: CONTINUE Try again. 1: USE-VALUE Specify a function to call instead. 2: RETURN-VALUE Return one or more values from the call to SB!IMPL ::DECL-EXPR. 3: TOP-LEVEL Return to top level. [1] SB!C(11): ; Compilation unit finished ; The following functions were used but not defined: ; SB!INT:PARSE-LAMBDA-LIST }}}
-- Ticket URL: http://abcl.org/trac/ticket/370 armedbear http://abcl.org armedbear
#370: Failure to use ABCL as SBCL compilation host --------------------------+----------------------- Reporter: mevenson | Owner: Type: defect | Status: new Priority: major | Milestone: 1.4.0 Component: interpreter | Version: 1.4.0-dev Resolution: | Keywords: sbcl --------------------------+-----------------------
Comment (by mevenson):
One can get this point in a naked REPL via executing the following form on the source tree: {{{ (load "~/src/sbcl-1.2.3/make-host-1.lisp") }}}
{{{SB!IMPL::DECL-EXPR}}} is not being used as a function in the compilation, so something is mucked up in the {{{DEFOPTIMIZER}}} macro transformation.
{{{DECL-EXPR}}} is used in {{{src/code/early-extensions.lisp}}} in the definition of {{{SB!IMPL::BINDING*}}} in a manner that looks like a function invocation. Why is this not the case?
{{{ (let ((continue (acond ((cdr bindings) (recurse it rest- decls)) (t (append decls forms))))) `((multiple-value-bind ,names ,value-form ,@(decl-expr binding-decls ignores) ,@(ecase flag ((nil) continue) ((:exit-if-null) `((when ,(first names) ,@continue)))))))))) }}}
-- Ticket URL: http://abcl.org/trac/ticket/370#comment:1 armedbear http://abcl.org armedbear
#370: Failure to use ABCL as SBCL compilation host --------------------------+----------------------- Reporter: mevenson | Owner: Type: defect | Status: new Priority: major | Milestone: 1.4.0 Component: interpreter | Version: 1.4.0-dev Resolution: | Keywords: sbcl --------------------------+-----------------------
Comment (by mevenson):
Replying to [comment:1 mevenson]:
{{{DECL-EXPR}}} is used in {{{src/code/early-extensions.lisp}}} in the
definition of {{{SB!IMPL::BINDING*}}} in a manner that looks like a function invocation. Why is this not the case?
Because the ,@ operator is not correctly splicing as a list.
-- Ticket URL: http://abcl.org/trac/ticket/370#comment:2 armedbear http://abcl.org armedbear
#370: Failure to use ABCL as SBCL compilation host --------------------------+----------------------- Reporter: mevenson | Owner: Type: defect | Status: new Priority: major | Milestone: 1.4.0 Component: interpreter | Version: 1.4.0-dev Resolution: | Keywords: sbcl --------------------------+-----------------------
Comment (by mevenson):
The cause of the problems may not necessarily be a problem introduced in ABCL.
See http://christophe.rhodes.io/notes/blog/posts/2014/still_working_on_reproducible_builds/ for Christophe's exposition on problems within SBCL.
-- Ticket URL: http://abcl.org/trac/ticket/370#comment:3 armedbear http://abcl.org armedbear
#370: Failure to use ABCL as SBCL compilation host ------------------------------+----------------------- Reporter: mevenson | Owner: Type: defect | Status: new Priority: major | Milestone: 1.4.0 Component: interpreter | Version: 1.4.0-dev Resolution: | Keywords: sbcl Parent Tickets: | ------------------------------+-----------------------
Comment (by dkatzman2002):
ABCL can build SBCL now, and you can probably close this, though ticket 351 is still open and genuinely a bug.
-- Ticket URL: http://abcl.org/trac/ticket/370#comment:4 armedbear http://abcl.org armedbear
armedbear-ticket@common-lisp.net