[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Problems compiling PCL under VAX LISP 3.0...
- To: CommonLoops.PA@Xerox.COM
- Subject: Problems compiling PCL under VAX LISP 3.0...
- From: cdwilli@algol.cs.umbc.edu (Chris Willianson (Guest of Al))
- Date: Fri, 12 Jan 90 03:32:03 EST
- Redistributed: CommonLoops.PA
I'm installing PCL on a VAX under VAX Lisp 3.0, VMS 5.1, but I've
run into compilation problems. I'm passing a description of what I've
done so far. (I know there's hope for all my efforts. Any help out
there? I'd greatly appreciate it!)
1. I edited *pcl-directory* in defsys.lsp to reflect the directory
where I had the code residing.
2. I loaded defsys.lsp, then evaluated (pcl::compile-pcl). All went
well compiling and loading the following files (I received no
errors and no warnings):
pkg
walk
iterate
macros
low
3. The next file to be compiled was vaxl-low.lsp. It compiled, but I
received warnings about two functions that are no longer defined in
VAX LISP:
SYSTEM::FUNCTION-LAMBDA-VARS and
SYSTEM::SLISP-COMPILED-FUNCTION-P.
* * * *
I looked in vaxl-low for any function definition changes that
occurred from version 2 to 3. SYSTEM::*CRITICAL-SECTION-P*,
SYSTEM::%SP-INTERRUPT-DEQUEUER, SYSTEM::INTERRUPT-QUEUED-P, and
SYSTEM::%SP-B-STORE are still defined. SYSTEM::%SP-POINTER->FIXNUM,
SYSTEM::FUNCTION-LAMBDA-VARS, AND SYSTEM::SLISP-COMPILED-FUNCTION-P
no longer have function definitions. SYSTEM::FUNCTION-LAMBDA-VARS
seems to have been replaced by SYSTEM::FUNCTION-LAMBDA-LIST and
SYSTEM::SLISP-COMPILED-FUNCTION-P by SYSTEM::COMPILE-FUNCTION-P. I
can't figure out what would have replaced SYSTEM::%SP-POINTER->FIXNUM.
Can anyone else from the following evaluation?
Lisp> (apropos 'fixnum '(system))
Symbols in package SYSTEM containing the string "FIXNUM":
SYSTEM::%SP-FIXNUM->LONG
SYSTEM::%SP-FIXNUM->LONGWORD
SYSTEM::%SP-SINGLE->FIXNUM
SYSTEM::FIXNUMP, has a definition
SYSTEM::%SP-FIXNUM->CHARACTER
SYSTEM::%SP-CHARACTER->FIXNUM
SYSTEM::%SP-FIXNUM->SINGLE
SYSTEM::FIXNUMIZE, has a definition
SYSTEM::%SP-LONG->FIXNUM
SYSTEM::%SP-FIXNUM->DOUBLE
SYSTEM::DUMP-FIXNUM, has a definition
SYSTEM::*PRINT-FIXNUM-BUFFER*, has a value
SYSTEM::%SP-DOUBLE->FIXNUM
SYSTEM::%SP-POINTER->FIXNUM
MOST-NEGATIVE-FIXNUM, has a value
MOST-POSITIVE-FIXNUM, has a value
FIXNUM)
* * * *
4. Compilation continued with no errors or warnings for fin.lsp.
I received several warnings for def.lsp, but they seem unrelated to
the problem. Had to do with symbols bound but not used.
The compiler had trouble with the next file, boot.lsp, because of the
flet of "ignoredp" inside "make-parameter-references." I got the
following error message:
Error in MAKE-PARAMETER-REFERENCES
Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659
Error signalled by ERROR
Error message would have been:
"Invalid operation on lexical environment: #:G1541 #S(TYPE :NAME T :CODE 332
:BOXED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL
:LAMBDA-LIST NIL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL
:NAMED NIL :INITIAL-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL
:PRINT-FUNCTION NIL :SLOT-DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL
:TYPE-OF NIL :ELEMENT-TYPE NIL :ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P
T :TYPEP-SYMBOL SYSTEM::TRUE :CANON-ARRAY-ELEMENT-TYPE T :CANON-TYPE
:SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE30 NIL :SPARE31 NIL :SPARE32
NIL)"
Surrounding forms:
(FLET ((IGNOREDP # #))
(GATHERING (#)
(ITERATE #
#
#)))
(BLOCK MAKE-PARAMETER-REFERENCES (FLET (#) (GATHERING # #)))
Boot.lsp did compile, though, and loaded.
5. The next problems came in file "vector." Something wrong with
function LOOKUP-PV-N:
Error in LOOKUP-PV-N
Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659
Error signalled by ERROR
Error message would have been:
"Invalid operation on lexical environment: #:G1541 #S(TYPE :NAME T :CODE 332
:BOXED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL
:LAMBDA-LIST NIL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL
:NAMED NIL :INITIAL-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL
:PRINT-FUNCTION NIL :SLOT-DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL
:TYPE-OF NIL :ELEMENT-TYPE NIL :ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P
T :TYPEP-SYMBOL SYSTEM::TRUE :CANON-ARRAY-ELEMENT-TYPE T :CANON-TYPE
:SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE30 NIL :SPARE31 NIL :SPARE32
NIL)"NIL
Surrounding forms:
(LET* ((CACHE *PV-CACHE-N*)
(MASK *PV-CACHE-N-MASK*)
(OFFSET #))
(DOPLIST (WRAPPER INSTANCE) WRAPPERS-AND-INSTANCES (SETQ OFFSET #))
(SETQ OFFSET (%LOGAND MASK OFFSET))...)
(BLOCK LOOKUP-PV-N
(LET* (#
#
#)
(DOPLIST # WRAPPERS-AND-INSTANCES #)
(SETQ OFFSET #)...))
However, the compiler continued. For the rest of this session, I
received errors relating the the problem of compiling
"make-parameter-references." The first of these errors came after the
error above:
LOOKUP-PV-MISS compiled.
Error between functions
Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR
Error signalled by ERROR
Error message would have been:
"Undefined function called: MAKE-PARAMETER-REFERENCES
with args: (((CLASS STANDARD-CLASS) SLOTS PV) (CLASS SLOTS PV) NIL
LOOKUP-PV-MISS-1 (STANDARD-CLASS T T))
apparently called by:
#<Compiled Function EXPAND-DEFMETHOD-INTERNAL #x1B513F>"
INTERN-PV compiled...
This same error occurred a total of six times in compiling vector.lsp,
and it continued throughout the compilation, popping up in files
slots, init, defclass, and std-class. All these files loaded as a
binary version even with the errors, except for std-class. At this
point, I entered the debugger with the following error:
Loading binary of STD-CLASS...
Error in SYMBOL-FUNCTION:
Symbol has no global function definition: MAKE-INSTANCE
Control Stack Debugger
Apply #48: (SYMBOL-FUNCTION MAKE-INSTANCE)
Debug 1>
6. I knew I had to fix "make-parameter-references" before I could
continue, so I rewrote it on the unlikely chance that VAX Lisp 3.0 was
choking on the flet statement within. I rewrote the function, making
"ignoredp" a function in the top-level environment:
(defun ignoredp (symbol declarations) ; include "declarations" in
; parameter list
(dolist (decl (cdar declarations))
(when (and (eq (car decl) 'ignore)
(memq symbol (cdr decl)))
(return t))))
(defun make-parameter-references (specialized-lambda-list
required-parameters
declarations
generic-function-name
specializers)
(gathering ((references (collecting)))
(iterate ((s (list-elements specialized-lambda-list))
(p (list-elements required-parameters)))
(progn p)
(cond ((not (listp s)))
;; Call ignoredp with extra parameter.
((ignoredp (car s) declarations)
(warn "In defmethod ~S ~S, there is a~%~
redundant ignore declaration for the parameter ~S."
generic-function-name
specializers
(car s)))
(t
(gather (car s) references))))))
7. I saved boot.lsp with this change, deleted all binaries generated by
the compilation, and tried recompiling. I got rid of the errors
generated by "make-parameter-references," but I still ended up in the
debugger because of "lookup-pv-n." I also still had compilation
errors because of functions in vaxl-low.
In my next message I'll send a dribble of a session after taking these
steps.
Chris Williamson