[comp.lang.clos] Problem - compiling PCL on Mips running Lucid 4.0beta

alee@CS.UTAH.EDU (Arthur Lee) (04/12/91)

Help!!

I tried to compile PCL (rev4) on Lucid version 4.0 running on a
MIPS processor. I followed the instruction in "defsys.lisp" very
closely. When it tried to load "braid.mbin" while doing (pcl::compile-pcl),
it ran into the following problem:

	Loading binary of BRAID...
	>>Trap: Interrupt: illegal instruction

	0:
	:C  0: Try loading #P"/u2/alee/pcl/mayday/zbin/braid.mbin" again
	:A  1: Abort to Lisp Top Level

	->

I tried several things like trying to load it again, compiling it again,
but with no success.

I am including a simplified version of the log of what went on below.
Did anyone out there try this and make it work? Any help would be greatly
appreciated.

Thanks,

-Art Lee
 Dept. of Computer Science
 University of Utah
 Salt Lake City, Utah 84112
 alee@cs.utah.edu

---------------------------cut here----------------------------------------
;;; Lucid Common Lisp/MIPS
;;; Development Environment Version 4.0 Beta 2, 9 July 1990
;;; Copyright (C) 1985, 1986, 1987, 1988, 1989, 1990 by Lucid, Inc.
;;; All Rights Reserved
;;;
;;; This software product contains confidential and trade secret information
;;; belonging to Lucid, Inc.  It may not be copied for any reason other than
;;; for archival and backup purposes.
;;;
;;; Lucid Common Lisp is a trademark of Lucid, Inc.
;;; MIPS is a trademark of MIPS Computer Systems, Inc.
;;;
;;; This is a preliminary version to be used for testing purposes only.

;;; Loading source file "/u2/alee/lisp-init.lisp"

> (in-package 'user)
#<Package "USER" 10018946>

> (proclaim '(optimize (speed 0) (safety 3) (compilation-speed 3)))
T

;;; I first tried with the following optimize parameters before I tried
;;; the above. It gave me the same problem.
;;; (proclaim '(optimize (speed 3) (safety 0) (compilation-speed 0)))

> (setq *load-if-source-only* :load-source)
:LOAD-SOURCE

> (setq *load-if-source-newer* :load-binary)
:LOAD-BINARY

> (lcl:change-memory-management :growth-limit 1500)
T

> (lcl:change-memory-management :growth-rate 45)
T

> (setq *load-binary-pathname-types* (list "dbin"))
("dbin")

> (cd "/cdrs2/software-dist/mips/lucid/4.0beta2/patches")
#P"/import/roma/cdrs2/software-dist/mips/lucid/4.0beta2/patches/"

> (load "bug-5482")
;;; Loading binary file "bug-5482.dbin"
;;; Warning: Redefining function COLLECT-COMMON-SYMBOLS whose source-file was not recorded
#P"/import/roma/cdrs2/software-dist/mips/lucid/4.0beta2/patches/bug-5482.dbin"

> (load "bug-5648")
;;; Loading binary file "bug-5648.dbin"
;;; Warning: Redefining function EPHEMERAL-GC whose source-file was not recorded
#P"/import/roma/cdrs2/software-dist/mips/lucid/4.0beta2/patches/bug-5648.dbin"

> (setq *load-binary-pathname-types* (list "mbin"))
("mbin")

> (cd "/u2/alee/pcl/mayday/")
#P"/import/roma/u2/alee/pcl/mayday/"

> (load "defsys.lisp")
;;; Loading source file "defsys.lisp"
#P"/import/roma/u2/alee/pcl/mayday/defsys.lisp"

> *load-binary-pathname-types*
("mbin")

> pcl::*pathname-extensions*
("lisp" . "mbin")

> (pcl::compile-pcl)
Compiling PKG...
;;; You are using the compiler in development mode (compilation-speed = 3)
;;; Generation of full safety checking code is enabled (safety = 3)
;;; Generation of inline code is disabled (speed = 0)
;;; Reading source file "/u2/alee/pcl/mayday/pkg.lisp"
;;; Writing binary file "/u2/alee/pcl/mayday/zbin/pkg.mbin"
Loading binary of PKG...
Compiling WALK...
Loading binary of WALK...
Compiling ITERATE...
Loading binary of ITERATE...
Compiling MACROS...
Loading binary of MACROS...
Compiling LOW...
Loading binary of LOW...
Compiling LUCID-LOW...
Loading binary of LUCID-LOW...
Compiling FIN...
Loading binary of FIN...
Compiling DEFCLASS...
Loading binary of DEFCLASS...
Compiling DEFS...
Loading binary of DEFS...
Compiling FNGEN...
Loading binary of FNGEN...
Compiling LAP...
Loading binary of LAP...
Compiling PLAP...
Loading binary of PLAP...
Compiling CACHE...
Loading binary of CACHE...
Compiling DLAP...
Loading binary of DLAP...
Compiling BOOT...
Loading binary of BOOT...
Compiling VECTOR...
Loading binary of VECTOR...
Compiling SLOTS...
Loading binary of SLOTS...
Compiling INIT...
Loading binary of INIT...
Compiling STD-CLASS...
Loading binary of STD-CLASS...
Compiling CPL...
Loading binary of CPL...
Compiling BRAID...
;;; Reading source file "/u2/alee/pcl/mayday/braid.lisp"
;;; Writing binary file "/u2/alee/pcl/mayday/zbin/braid.mbin"
Loading binary of BRAID...
>>Trap: Interrupt: illegal instruction

0:
:C  0: Try loading #P"/u2/alee/pcl/mayday/zbin/braid.mbin" again
:A  1: Abort to Lisp Top Level

-> :b
0 <-
 BOOTSTRAP-META-BRAID <-
 unnamed function <-
 LUCID-COMMON-LISP:FASLOAD <-
 (:INTERNAL LOAD LUCID::LOAD-BINARY-FILE) <-
 LOAD <-
 LOAD-BINARY <-
 LOAD-MODULE <-
 OPERATE-ON-SYSTEM <-
 COMPILE-PCL <-
 EVAL <-
 SYSTEM:ENTER-TOP-LEVEL
-> :n
BOOTSTRAP-META-BRAID:
-> :v
BOOTSTRAP-META-BRAID:
   Local 0: 12
   Local 1: #<#<std-instance> 2023633766>
   Local 2: #<Simple-Vector T 12 104F383E>
   Local 3: #<#<std-instance> 2023634366>
   Local 4: #<Simple-Vector T 12 104F393E>
   Local 5: #<#<std-instance> 2023634766>
   Local 6: #<#<std-instance> 2023635076>
   Local 7: #<Simple-Vector T 12 104F3A86>
   Local 8: #<Simple-Vector T 12 104F3B3E>
   Local 9: (EARLY-CLASS-DEFINITION EQL-SPECIALIZER #P"/import/roma/u2/alee/pcl/mayday/defs.lisp" STANDARD-CLASS (SPECIALIZER) ((:NAME OBJECT :READERS (EQL-SPECIALIZER-OBJECT) :WRITERS NIL :INITARGS (:OBJECT))) NIL)
   Local 10: ((EARLY-CLASS-DEFINITION EQL-SPECIALIZER #P"/import/roma/u2/alee/pcl/mayday/defs.lisp" STANDARD-CLASS (SPECIALIZER) ((:NAME OBJECT :READERS (EQL-SPECIALIZER-OBJECT) :WRITERS NIL :INITARGS (:OBJECT))) NIL) (EARLY-CLASS-DEFINITION STANDARD-EFFECTIVE-SLOT-DEFINITION #P"/import/roma/u2/alee/pcl/mayday/defs.lisp" STANDARD-CLASS (STANDARD-SLOT-DEFINITION EFFECTIVE-SLOT-DEFINITION) NIL NIL) (EARLY-CLASS-DEFINITION STANDARD-DIRECT-SLOT-DEFINITION #P"/import/roma/u2/alee/pcl/mayday/defs.lisp" STANDARD-





CLASS (STANDARD-SLOT-DEFINITION DIRECT-SLOT-DEFINITION) NIL NIL) (EARLY-CLASS-DEFINITION STANDARD-SLOT-DEFINITION #P"/import/roma/u2/alee/pcl/mayday/defs.lisp" STANDARD-CLASS (SLOT-DEFINITION) ((:INITFUNCTION #<Compiled-Function FALSE 100CB826> :NAME NAME :READERS (SLOTD-NAME) :WRITERS ((SETF SLOTD-NAME)) :INITARGS NIL :INITFORM NIL) (:INITFUNCTION #<Compiled-Function (:INTERNAL LUCID::%TOPLEVEL-THUNK 1) 1031129E> :NAME INITFORM :READERS (SLOTD-INITFORM) :WRITERS ((SETF SLO!
TD-INITFORM)) :INITARGS NIL :INIT
   Local 11: EQL-SPECIALIZER
   Local 12: STANDARD-CLASS
   Local 13: #<#<std-instance> 2023635776>
   Local 14: #<Simple-Vector T 12 104F3C0E>
   Local 15: :INITIAL-ELEMENT
   Local 16: 68060403
-> :n
unnamed function:
-> :n
LUCID-COMMON-LISP:FASLOAD:
   Required arg 0 (FILENAME): #P"/u2/alee/pcl/mayday/zbin/braid.mbin"
   Keyword arg 1 (VERBOSE): NIL
   Keyword arg 2 (PRINT): NIL
   Keyword arg 3 (IF-DOES-NOT-EXIST): :ERROR
   Keyword arg 4 (DEFAULT-PATHNAME): ".mbin"
   Keyword arg 5 (CODE-AREA): #<Area "Readonly-Non-Pointer-Area" 10018356>
   Keyword arg 6 (PROCEDURE-AREA): #<Area "Readonly-Pointer-Area" 1001832E>
   Keyword arg 7 (PROCEDURE-CONTENTS-POINTER-AREA): #<Area "Readonly-Pointer-Area" 1001832E>
   Keyword arg 8 (PROCEDURE-CONTENTS-NON-POINTER-AREA): #<Area "Readonly-Non-Pointer-Area" 10018356>
   Keyword arg 9 (SYMBOL-NAME-AREA): #<Area "Readonly-Non-Pointer-Area" 10018356>
   Keyword arg 10 (OTHER-AREA): #<Area "Ephemeral Level 0" 101B79EE>
-> :v
LUCID-COMMON-LISP:FASLOAD:
   Required arg 0 (FILENAME): #P"/u2/alee/pcl/mayday/zbin/braid.mbin"
   Keyword arg 1 (VERBOSE): NIL
   Keyword arg 2 (PRINT): NIL
   Keyword arg 3 (IF-DOES-NOT-EXIST): :ERROR
   Keyword arg 4 (DEFAULT-PATHNAME): ".mbin"
   Keyword arg 5 (CODE-AREA): #<Area "Readonly-Non-Pointer-Area" 10018356>
   Keyword arg 6 (PROCEDURE-AREA): #<Area "Readonly-Pointer-Area" 1001832E>
   Keyword arg 7 (PROCEDURE-CONTENTS-POINTER-AREA): #<Area "Readonly-Pointer-Area" 1001832E>
   Keyword arg 8 (PROCEDURE-CONTENTS-NON-POINTER-AREA): #<Area "Readonly-Non-Pointer-Area" 10018356>
   Keyword arg 9 (SYMBOL-NAME-AREA): #<Area "Readonly-Non-Pointer-Area" 10018356>
   Keyword arg 10 (OTHER-AREA): #<Area "Ephemeral Level 0" 101B79EE>
   Local 11: #<Package "USER" 10018946>
   Local 12: #P"/u2/alee/pcl/mayday/zbin/braid.mbin"
   Special binding for variables: (*PACKAGE*)
   Local 13: #<Stream OSI-BUFFERED-STREAM "/u2/alee/pcl/mayday/zbin/braid.mbin" 104EFB26>
   Local 14: T
   Unwind-protect
   Multiple-value-prog1
   Local 15: #P"/import/roma/u2/alee/pcl/mayday/zbin/braid.mbin"
   Special binding for variables: (LUCID-COMMON-LISP:*SOURCE-PATHNAME* LUCID-COMMON-LISP:*LOAD-PATHNAME* LUCID::*FASLOAD-STREAM*)

;;;
;;; This might be useful
;;;

-> (lisp-implementation-version)
"Lucid Common Lisp, Development Environment Version 4.0 Beta 2, 9 July 1990"
-> pcl::*pcl-system-date*
"5/1/90  May Day PCL (REV 4)"
->

---------end of log---------------

jln@leland.Stanford.EDU (Jared Nedzel) (04/13/91)

In article <9104121655.AA13430@cs.utah.edu> alee@CS.UTAH.EDU (Arthur Lee) writes:

>Help!!

I'll try.

>I tried to compile PCL (rev4) on Lucid version 4.0 running on a
>MIPS processor. I followed the instruction in "defsys.lisp" very
>closely. When it tried to load "braid.mbin" while doing (pcl::compile-pcl),
>it ran into the following problem:

Lucid V. 4.0 has native CLOS. Rather than try to get PCL to work with it,
call up Lucid and see if they have release tape of V. 4.0 for your machine.
I'm using V. 4.0 on a Sun and CLOS comes with it.  Believe me, it's much
easier than trying to get PCL to compile.




-- 
---------------------------------------------------------------------
Jared L. Nedzel  nedzel@cive.stanford.edu   jln@portia.stanford.edu

jonl%kuwait@LUCID.COM (Jon L White) (04/13/91)

re: I tried to compile PCL (rev4) on Lucid version 4.0 running on a
    MIPS processor.  . . .
    . . .
    ;;; Lucid Common Lisp/MIPS
    ;;; Development Environment Version 4.0 Beta 2, 9 July 1990
    ;;; Copyright (C) 1985, 1986, 1987, 1988, 1989, 1990 by Lucid, Inc.
    ;;; All Rights Reserved

A lot of water has gone under the development dam since last July 9.
I'm fairly certain that the trouble you had after compiling braid.lisp
is due to an inscrutable bug in the "Production Quality Compiler" in
the handling of complex nested LABELS expressions [PCL has been very
good at finding these sorts of things. For years!]

There are three posible solutions:

  (1) Use CLOS instead; I know it works in that MIPS "beta" version
      [although it has it's own history of E&S-specific patches
      since last July too.]  In fact, that CLOS has a lot of PCL
      backwards-compatibility features, and some helpful documentation
      on how to convert from PCL circa the 1988-1989 timeframe.  The
      metaobject level in MayDay is a bit different, but it shouldn't
      be an insurmountable problem.  Ask Lucid for the more recent
      version of the "wizards" documentation, which contains the PCL-
      compatibility stuff and "metaobject" stuff.

  (2) Use the "Development" compiler for braid.lisp only.  That means
      you have to figure out how PCL's defsys works, and bugger it a
      bit to get it to stop just before braid, then compile that one,
      then, then continue with the rest in PQC mode.  This *might*
      work; then again, it might not.  You might ask Craig Steury
      about whether or not they ever got MayDay to work in this image.

  (3) Encourage E&S to get an updated final MIPS image; I feel quite
      confident that this compiler bug has been fixed, since it would
      have also shown up in the release of  the DECStation product last
      fall [compiling PCL is one of the acceptance criteria for that lisp.]



-- JonL --

jonl%kuwait@LUCID.COM (Jon L White) (04/13/91)

Another thought just occured to me -- Possibly the PARC MayDay sources
might never have been updated for the Lucid MIPS platforms.  Please look
in your copy of the file file "fin.lisp", near the comment:

;;; Egad! Binary patching!
;;; See comment following definition of MAKE-TRAMPOLINE -- this is just
;;;  the "hand-optimized" machine instructions to make it work.

in the end part of the following defvar, and see if there is a line like:

		#+MIPS
		'(#x8FD4 #x1E #x2785 #x2EEF #xA0 #x8 #x14 #xF000)

If not, then just add this "line" before the part which looks like:

		#-(or MC68000 SPARC BSP I386 VAX PA MIPS)
		'(0 0 0 0)))



-- JonL --

jonl%kuwait@LUCID.COM (Jon L White) (04/16/91)

re: Should every occurrence of LCL3.0 in PCL be changed to
    (or LCL3.0 LCL4.0) in May Day PCL?

No.  I'm cc'ing the broader list now just in case anyone else is uncertain
about the meaning of Lucid's *FEATURES* entries.

:LCL3.0  is not a release-specific marker, but implies the existence
of a set of capabilites and featuers that were introduced first during
the 3.0 release timeframe.  Similarly, the appearance of :LCL4.0 does
NOT imply the retraction of any :LCL3.0 features.


However, one item is worth looking in to.  The  #+LCL3.0  version of
(defmacro without-interrupts (&body body) ...)  was an attempt to
work around a performance gap in the 3.0 release.  But subsequent
releases have reduced the overhead cost of WITH-INTERRUPTS-DEFERRED
to that of a single UNWIND-PROTECT; so the workaround kludge needn't
be relevant anymore (and I don't even think it was used in PCL, but
just in case . . . )


-- JonL --