mirror of
https://github.com/PDP-10/its.git
synced 2026-01-21 18:16:07 +00:00
839 lines
30 KiB
Common Lisp
Executable File
839 lines
30 KiB
Common Lisp
Executable File
;;; INITIA -*-LISP-*-
|
||
;;; **************************************************************
|
||
;;; ***** MACLISP ***** (Initialization for COMPLR) *************
|
||
;;; **************************************************************
|
||
;;; ** (C) Copyright 1981 Massachusetts Institute of Technology **
|
||
;;; ****** This is a Read-Only file! (All writes reserved) *******
|
||
;;; **************************************************************
|
||
|
||
|
||
(SETQ INITIAVERNO '#.(let* ((file (caddr (truename infile)))
|
||
(x (readlist (exploden file))))
|
||
(setq |verno| (cond ((fixp x) file) ('/120)))))
|
||
|
||
(EVAL-WHEN (COMPILE)
|
||
(AND (OR (NOT (GET 'COMPDECLARE 'MACRO))
|
||
(NOT (GET 'OUTFS 'MACRO)))
|
||
(LOAD `(,(cond ((status feature ITS) '(DSK COMLAP))
|
||
('(LISP)))
|
||
CDMACS
|
||
FASL)))
|
||
)
|
||
|
||
|
||
|
||
(EVAL-WHEN (COMPILE) (COMPDECLARE) (FASLDECLARE) (GENPREFIX |/|in|) )
|
||
|
||
|
||
(EVAL-WHEN (EVAL) (SETQ CAR 'T))
|
||
|
||
|
||
(AND (NOT (STATUS FEATURE SAIL))
|
||
(MAPC '(LAMBDA (X)
|
||
(LET (((TYPE FUN . L) X) (PROP))
|
||
(SETQ PROP (GET FUN TYPE))
|
||
(MAPC '(LAMBDA (X) (AND (NOT (GET X TYPE))
|
||
(PUTPROP X PROP TYPE)))
|
||
L)))
|
||
'((FSUBR UREAD EREAD) (LSUBR OPEN EOPEN) (SUBR LOAD ELOAD))))
|
||
|
||
|
||
|
||
|
||
|
||
(COMMENT INITIALIZING FUNCTIONS)
|
||
|
||
(DEFUN INITIALIZE FEXPR (L)
|
||
(SSTATUS FEATURE COMPLR)
|
||
(SSTATUS FEATURE NCOMPLR)
|
||
(SETQ OPSYS (STATUS FILESYSTEM-TYPE)) ;I REALLY INTENDED THIS TO BE
|
||
(setq LINEMODEP (or (eq opsys 'DEC10) ; "FILESYSTEM-TYPE", BUT ...
|
||
(and (eq opsys 'DEC20)
|
||
(eq (status OPSYSTEM-TYPE) 'TOPS-20))))
|
||
(AND (EQ OPSYS 'DEC10)
|
||
(EQ (STATUS OPSYSTEM-TYPE) 'SAIL)
|
||
(SETQ OPSYS 'SAIL))
|
||
(SETQ MAKLAP-DEFAULTF-STYLE 'MIDAS)
|
||
(SETQ OBARRAY (SETQ SOBARRAY (GET 'OBARRAY 'ARRAY)))
|
||
(SETQ READTABLE (SETQ SREADTABLE (GET 'READTABLE 'ARRAY)))
|
||
(SETQ SWITCHTABLE ;Setup before INTERNing
|
||
(APPEND '(
|
||
(/$ FLOSW () ) (/+ FIXSW () ) (/~ QUIT-ON-ERROR () )
|
||
(/2 HUNK2-TO-CONS ()) (/7 USE-STRT7 ())
|
||
(A ASSEMBLE () ) (C CLOSED () )
|
||
(D DISOWNED () ) (E EXPR-HASH () )
|
||
(F FASL #.(AND (MEMQ COMPILER-STATE '(MAKLAP DECLARE)) T))
|
||
(G GAG-ERRBREAKS () ) (H EXPAND-OUT-MACROS T)
|
||
(I INITIALIZE () )
|
||
(K NOLAP #.(AND (MEMQ COMPILER-STATE '(MAKLAP DECLARE)) T))
|
||
(M MACROS () ) (O ARRAYOPEN T)
|
||
(R RUNTIME-LIMITP () ) (S SPECIALS () )
|
||
(T TTYNOTES #.(AND (NOT (MEMQ COMPILER-STATE
|
||
'(MAKLAP DECLARE))) T))
|
||
(W MUZZLED () ) (X MAPEX () )
|
||
(Y YESWARNTTY #.(AND (NOT (MEMQ COMPILER-STATE
|
||
'(MAKLAP DECLARE))) T) )
|
||
(Z SYMBOLS () )
|
||
)
|
||
()))
|
||
(PUSH (COND (#%(SAILP)
|
||
(SETQ MAKLAP-DEFAULTF-STYLE () )
|
||
'(U UNFASLCOMMENTS () ))
|
||
( '(U UNFASLCOMMENTS T)))
|
||
SWITCHTABLE)
|
||
(DO I 65. (1+ I) (> I 90.)
|
||
(AND (NOT (ASSQ (ASCII I) SWITCHTABLE))
|
||
(PUSH (LIST (ASCII I)
|
||
(IMPLODE (APPEND '(S W I T C H /-) (LIST (ASCII I))))
|
||
() )
|
||
SWITCHTABLE)))
|
||
(COND ((STATUS FEATURE NO-EXTRA-OBARRAY)
|
||
(SETQ CREADTABLE READTABLE COBARRAY OBARRAY))
|
||
('T (SETQ CREADTABLE (ARRAY
|
||
()
|
||
READTABLE
|
||
(COND ((AND (BOUNDP 'IREADTABLE)
|
||
(EQ (TYPEP IREADTABLE) 'ARRAY)
|
||
(EQ (CAR (ARRAYDIMS IREADTABLE))
|
||
'READTABLE))
|
||
IREADTABLE)
|
||
('T))))
|
||
;;Glaag, patch up for the /#-MACRO-DATALIST thing!
|
||
#%(let ((y (get 'SHARPM 'VERSION)))
|
||
(cond ((null y) (+internal-lossage 'SHARPM 'INITIALIZE () ))
|
||
((alphalessp y "82"))
|
||
(T (push #%(let ((x (assoc READTABLE /#-MACRO-DATALIST)))
|
||
(cons CREADTABLE (cdr x)))
|
||
/#-MACRO-DATALIST))))
|
||
(SETQ COBARRAY (ARRAY
|
||
()
|
||
OBARRAY
|
||
(COND ((AND (BOUNDP 'IOBARRAY)
|
||
(EQ (TYPEP IOBARRAY) 'ARRAY)
|
||
(EQ (CAR (ARRAYDIMS IOBARRAY))
|
||
'OBARRAY))
|
||
IOBARRAY)
|
||
((GET 'OBARRAY 'ARRAY)))))
|
||
(LET ((OBARRAY COBARRAY) (READTABLE CREADTABLE))
|
||
(MAPC '(LAMBDA (X)
|
||
(COND ((NOT (EQ X (INTERN X)))
|
||
(REMOB X)
|
||
(INTERN X))))
|
||
(STATUS FEATURES))
|
||
(MAPC '(LAMBDA (X) (INTERN (CADR X))) SWITCHTABLE)
|
||
(MAPC 'INTERN SAIL-MORE-SYSFUNS)
|
||
; (AND #%(SAILP) (SETSYNTAX '/" 'MACRO '%%%STRING%%%) )
|
||
)))
|
||
(SETSYNTAX '/~ 'MACRO 'MACR-AMP-FUN)
|
||
; (AND #%(SAILP) (SETSYNTAX '/" 'MACRO '%%%STRING%%%))
|
||
#%(LET ((PROP (LSUB '(MACRO SPECIAL ARGS *EXPR *FEXPR *LEXPR
|
||
NUMVAR NUMFUN *ARRAY OHOME SKIP-WARNING)
|
||
L))
|
||
(Z () )
|
||
(TMP () ) )
|
||
(MAPATOMS '(LAMBDA (Y)
|
||
(SETQ TMP (ASSQ Y CCLOAD:INITIAL-PROPS))
|
||
(LREMPROP Y (LSUB PROP (CDR TMP))) ;Remove compilation
|
||
(COND ((SETQ DATA (GET Y 'FUNTYP-INFO)) ;properties.
|
||
(COND ((ARGS Y))
|
||
((GET Y (CAR DATA)) (ARGS Y (CDR DATA)))
|
||
((CDR DATA) (PUTPROP Y (CDR DATA) 'ARGS))))
|
||
((AND (NOT (SYSP Y)) (NULL TMP)) (ARGS Y () )))
|
||
(AND (BOUNDP Y) ;SPECIALize the
|
||
(NOT (MEMQ Y '(T NIL))) ;system varialbes
|
||
(SETQ DATA Y)
|
||
(MEMQ 'VALUE (STATUS SYSTEM DATA))
|
||
(PUSH Y Z))))
|
||
(APPLY 'SPECIAL Z)
|
||
;; (STATUS SYSTEM) doesn't win on following
|
||
(AND (BOUNDP '+INTERNAL-INTERRUPT-BOUND-VARIABLES)
|
||
(APPLY 'SPECIAL +INTERNAL-INTERRUPT-BOUND-VARIABLES))
|
||
(SPECIAL +INTERNAL-WITHOUT-INTERRUPTS)
|
||
(FASLINIT))
|
||
(PUTPROP '%HUNK1 '(() . 1) 'ARGS)
|
||
(PUTPROP '%HUNK2 '(() . 2) 'ARGS)
|
||
(PUTPROP '%HUNK3 '(() . 3) 'ARGS)
|
||
(PUTPROP '%HUNK4 '(() . 4) 'ARGS)
|
||
(SETQ PRINLEVEL (SETQ PRINLENGTH (SETQ *RSET () )))
|
||
(SETQ BASE 8. IBASE 8. *NOPOINT 'T RUNTIME-LIMIT 600.0E6)
|
||
(SETQ MACRO-EXPANSION-USE () )
|
||
(SETQ COMPILATION-FLAGCONVERSION-TABLE
|
||
'((EXPR . SUBR) (FEXPR . FSUBR) (LEXPR . LSUBR)))
|
||
(SETQ SPECVARS () GENPREFIX '(/| G) GFYC 0 P1GFY ()
|
||
CLOSED () FIXSW () FLOSW () MACROLIST ()
|
||
GAG-ERRBREAKS () RNL () CFVFL ()
|
||
UNDFUNS () P1LLCEK () LAPLL () ROSENCEK ()
|
||
FASLPUSH () RECOMPL () CMSGFILES () LAP-INSIGNIF 'T
|
||
EOC-EVAL () COMPILER-STATE 'TOPLEVEL CHOMPHOOK ()
|
||
USERATOMS-HOOKS '(EXTSTR-USERATOMS-HOOK) USERATOMS-INTERN ()
|
||
TOPFN () ONMLS () READ () MSDEV 'DSK MSDIR ()
|
||
CL () CLEANUPSPL 0 FILESCLOSEP () IMOSAR ()
|
||
EOF-COMPILE-QUEUE () USER-STRING-MARK-IN-FASL T )
|
||
#%(SETUP-CATCH-PDL-COUNTS)
|
||
(MAPC '(LAMBDA (X) (SET (CADR X) (CADDR X))) SWITCHTABLE)
|
||
(MAPC '(LAMBDA (X) (SET X (COPYSYMBOL X () )))
|
||
'(PROGN GOFOO NULFU COMP CARCDR ARGLOC SQUID MAKUNBOUND IDENTITY
|
||
USERATOMS-INTERN-FROB))
|
||
(PUTPROP SQUID '(LAMBDA (GL) (LIST 'QUOTE GL)) 'MACRO)
|
||
(SETQ QSM (LIST (LIST 'QUOTE (LIST SQUID MAKUNBOUND))))
|
||
(SETQ STSL (LIST (DELQ 'TERPR (STATUS STATUS))
|
||
(DELQ 'TERPR (STATUS SSTATUS))))
|
||
(SETQ ARGLOC (LIST ARGLOC) CLPROGN (LIST PROGN))
|
||
(SETQ CAAGL (LIST (LIST (CONS MAKUNBOUND ARGLOC) 1)
|
||
(LIST (CONS MAKUNBOUND ARGLOC) 2)))
|
||
(SETQ MAPSB (NCONC (MAPCAR 'LIST '(VL EXIT EXITN PVR STSL))
|
||
(LIST (CONS 'GOFOO GOFOO))))
|
||
(SETQ COMAL (SUBST '() 'NIL '((NIL . NIL) (FIXNUM . FIXNUM) (FLONUM . FLONUM) (T))) )
|
||
(RPLACD (CAR COMAL) (CAR COMAL)) ;Sets up infinite
|
||
(RPLACD (CADR COMAL) (CADR COMAL)) ; type lists for COMARITH
|
||
(RPLACD (CADDR COMAL) (CADDR COMAL))
|
||
|
||
(FIXNUM BASE IBASE BPORG BPEND TTY) ;Some known declarations
|
||
(FIXNUM (LENGTH) (RANDOM) (EXAMINE FIXNUM) (LISTEN) (RUNTIME)
|
||
(GETCHARN NOTYPE FIXNUM) (FLATSIZE) (FLATC) (IFIX)
|
||
(^ FIXNUM FIXNUM) (\\ FIXNUM FIXNUM) (LSH) (ROT) (ASH)
|
||
(SXHASH) (TYIPEEK) (TYI) (HAULONG) (HUNKSIZE)
|
||
(+INTERNAL-CHAR-N () FIXNUM)
|
||
(+INTERNAL-STRING-WORD-N () FIXNUM)
|
||
(LDB FIXNUM FIXNUM) (DPB FIXNUM FIXNUM)
|
||
(*LDB FIXNUM FIXNUM) (*DPB FIXNUM FIXNUM)
|
||
(LOAD-BYTE FIXNUM FIXNUM FIXNUM)
|
||
(DEPOSIT-BYTE FIXNUM FIXNUM FIXNUM FIXNUM)
|
||
(*LOAD-BYTE FIXNUM FIXNUM FIXNUM)
|
||
(*DEPOSIT-BYTE FIXNUM FIXNUM FIXNUM FIXNUM) )
|
||
(FIXNUM (IN) (LINEL) (PAGEL) (CHARPOS) (LINENUM) (PAGENUM) (LENGTHF))
|
||
(PUTPROP 'BOOLE (CONS (CADR COMAL) (CONS 'FIXNUM (CADR COMAL))) 'NUMFUN)
|
||
(PUTPROP IDENTITY 'T 'NUMBERP)
|
||
(PUTPROP 'FIXNUM-IDENTITY `(,IDENTITY FIXNUM) 'ARITHP)
|
||
(PUTPROP 'FLONUM-IDENTITY `(,IDENTITY FLONUM) 'ARITHP)
|
||
(FLONUM (SIN) (COS) (SQRT) (LOG) (EXP) (ATAN) (TIME)
|
||
(^$ FLONUM FIXNUM) (FSC) (FLOAT))
|
||
(NOTYPE (GETCHAR NOTYPE FIXNUM) (CXR FIXNUM) (DEPOSIT FIXNUM))
|
||
(ARRAY* (NOTYPE OBARRAY 1 READTABLE 1))
|
||
(PUTPROP PROGN 'T '*LEXPR)
|
||
(COND (#%(SAILP)
|
||
(MAPC '(LAMBDA (X) (PUTPROP X 'T 'SKIP-WARNING))
|
||
'(PUSH POP LET))
|
||
(SSTATUS TTYINT 200. (STATUS TTYINT 194.))
|
||
(SSTATUS TTYINT 467. 'S-C)
|
||
(MAPC #'(LAMBDA (X)
|
||
(OR (GET X 'MACRO)
|
||
(PUTPROP X
|
||
(INTERN (PNAMECONC X '| | 'MACRO))
|
||
'MACRO)))
|
||
'(LET! MACRODEF MATCH-MACRO TRANS TRANSDEF))))
|
||
(SSTATUS TTYINT '/ 'INT-^^-FUN)
|
||
(SSTATUS TTYINT '/ 'INT-^^-FUN)
|
||
(SSTATUS TTYINT '/ 'DEBUG-BREAK)
|
||
(SETQ OBARRAY #.(COND ((MEMQ COMPILER-STATE '(MAKLAP DECLARE)) 'COBARRAY)
|
||
('SOBARRAY)))
|
||
(SETQ READTABLE #.(COND ((MEMQ COMPILER-STATE '(MAKLAP DECLARE)) 'CREADTABLE)
|
||
('SREADTABLE)))
|
||
(setq error-break-environment (cons cobarray creadtable))
|
||
(GCTWA))
|
||
|
||
|
||
|
||
|
||
(DEFUN DEBUG-BREAK N N
|
||
(NOINTERRUPT () )
|
||
(MSOUT-BRK ARGS SOBARRAY SREADTABLE 'SOBARRAY-ENVIRONMENT))
|
||
|
||
;;; Function for ~ macro char
|
||
(DEFUN MACR-AMP-FUN ()
|
||
((LAMBDA (OBARRAY READTABLE)
|
||
(COND ((= (TYIPEEK) #.(INVERSE-ASCII '/~))
|
||
(TYI)
|
||
(SETQ OBARRAY SOBARRAY READTABLE SREADTABLE)))
|
||
(READ))
|
||
COBARRAY CREADTABLE))
|
||
|
||
;;; Function for control-^ interrupt
|
||
(DEFUN INT-^^-FUN N
|
||
(SETQ SAVED-ERRLIST ERRLIST ERRLIST () N (ARG 2))
|
||
(SSTATUS TOPLEVEL '(INT-^^-TOPLE))
|
||
(DO () ((OR (= (LISTEN) 0) (= (TYI) N))))
|
||
(^G))
|
||
|
||
|
||
(DEFUN INT-^^-TOPLE () ;Starts up MAKLAP from ^^
|
||
#%(ERL-SET)
|
||
(SSTATUS TOPLEVEL () )
|
||
(setq LINEMODEP (or (eq opsys 'DEC10)
|
||
(and (eq opsys 'DEC20)
|
||
(eq (status OPSYSTEM-TYPE) 'TOPS-20))))
|
||
(COMPLRVERNO)
|
||
(NOINTERRUPT () )
|
||
(cond ((not LINEMODEP) (maklap))
|
||
((unwind-protect (prog2 (sstatus LINMO T) (MAKLAP))
|
||
(sstatus LINMO ())))))
|
||
|
||
(DEFUN DB FEXPR (L) ;Setup for debugging
|
||
L
|
||
(SETQ SAVED-ERRLIST ERRLIST ERRLIST () )
|
||
(SSTATUS TOPLEVEL '(DB-TOPLE))
|
||
(^G))
|
||
|
||
(DEFUN DB-TOPLE ()
|
||
(SSTATUS UUOLI)
|
||
#%(ERL-SET)
|
||
(*RSET (NOUUO 'T))
|
||
(SETQ OBARRAY SOBARRAY READTABLE SREADTABLE)
|
||
(SETQ ^W (SETQ ^R () ))
|
||
(setq LINEMODEP ())
|
||
(sstatus LINMO ())
|
||
(SETQ ERRSET (FUNCTION (LAMBDA (X) X (BREAK ERRSET))))
|
||
(PROG (L)
|
||
A (COND ((NOT (GET 'BS 'FSUBR))
|
||
(COND (#%(ITSP) (SETQ L '((DSK LIBLSP) BS FASL)))
|
||
((PROBEF (SETQ L '((DSK) BS FASL))))
|
||
('T (TERPRI)
|
||
(PRINC '|Please load BS FASL!|)
|
||
(BREAK LOAD)
|
||
(GO A)))
|
||
(ELOAD L))))
|
||
(SSTATUS TOPLEVEL () ))
|
||
|
||
|
||
(DEFUN S-C (() ()) (CDUMP '|SAVE COMPLR|))
|
||
|
||
|
||
|
||
|
||
;This function never returns, but is a way to start up the toplevel complr
|
||
(DEFUN CDUMP N
|
||
(SETQ ERRLIST () SAVED-ERRLIST '((COMPLRVERNO)))
|
||
(SSTATUS TOPLEVEL '(COMPLR-TOPLE))
|
||
(SETQ CDUMP (LISTIFY N))
|
||
(OR (GET 'COMPLR 'VERSION)
|
||
(PUTPROP 'COMPLR COMPLRVERNO 'VERSION))
|
||
(*THROW () ())
|
||
;;(COMMENT Hopefully, this goes to a TOPLEVEL user of COMPLR-TOPLE)
|
||
)
|
||
|
||
(DEFUN COMPLR-TOPLE () ;Initial TOPLEVEL loop
|
||
(SETQ OBARRAY COBARRAY READTABLE CREADTABLE)
|
||
(SSTATUS TOPLEVEL () )
|
||
(SETQ - () + () )
|
||
#%(ERL-SET)
|
||
(SSTATUS NOFEATURE NOLDMSG)
|
||
(GCTWA 1)
|
||
(GC)
|
||
(APPLY (COND ((STATUS FEATURE SHARABLE)
|
||
(AND (NULL (CDR CDUMP)) (PUSH () CDUMP))
|
||
'PURE-SUSPEND)
|
||
('SUSPEND))
|
||
CDUMP)
|
||
(COMPLR-TOPLE-AFTER-SUSPEND))
|
||
|
||
(DEFUN COMPLR-TOPLE-AFTER-SUSPEND ()
|
||
;; This function is an entry-point which some systems
|
||
;; depend on. e.g. the macsyma-source-compiler. -gjc
|
||
(SSTATUS GCTIM 0)
|
||
(setq LINEMODEP (or (eq opsys 'DEC10)
|
||
(and (eq opsys 'DEC20)
|
||
(eq (status OPSYSTEM-TYPE) 'TOPS-20))))
|
||
#%(LET ((UID (STATUS USERID))
|
||
(USN (COND ((STATUS STATUS HOMED) (STATUS HOMED)) ((STATUS UDIR))))
|
||
(MSGFILES '(T))
|
||
(COMPILER-STATE 'DECLARE)
|
||
FIX-FILE FILE OFILE DEFAULTF-DEVICE)
|
||
(SETQ DEFAULTF-DEVICE (CASEQ OPSYS
|
||
(ITS '(DSK LSPDMP))
|
||
(DEC20 '(PS MACLISP))
|
||
(SAIL '(DSK (MAC LSP)))
|
||
(T '(LISP)))
|
||
DEFAULTF `(,defaultf-device * ,(caseq opsys
|
||
(ITS '>)
|
||
(SAIL '|___|)
|
||
(T 'LSP)))
|
||
FIX-FILE `(,defaultf-device CLFIX ,(get 'COMPLR 'VERSION)))
|
||
(SETQ DEFAULTF-DEVICE
|
||
`((,(car defaultf-device) ,(status UDIR)) ,.(cdr defaultf))
|
||
)
|
||
(COND ((STATUS FEATURE SHARABLE)
|
||
(ANNOUNCE-&-LOAD-INIT-FILE 'COMPLR () FIX-FILE))
|
||
('T (COMPLRVERNO)
|
||
(TERPRI)
|
||
(COND ((SETQ FIX-FILE (PROBEF FIX-FILE))
|
||
(TERPRI)
|
||
(PRINC '|Loading fix-up file |)
|
||
(PRIN1 (NAMESTRING FIX-FILE))
|
||
(COND ((ATOM (ERRSET (LOAD FIX-FILE)))
|
||
(PRINC '| *** Errors in Fix File ***|)
|
||
(BREAK FIX)))))
|
||
(SETQ OFILE `((,(cond (#%(dec20p) 'PS) ('DSK)) ,usn)
|
||
,.(cond (#%(itsp) `(,uid COMPLR))
|
||
('T `(COMPLR INI))))
|
||
FILE (PROBEF OFILE)
|
||
DEFAULTF DEFAULTF-DEVICE)
|
||
(COND ((COND (FILE)
|
||
(#%(ITSP)
|
||
(RPLACA (CDR OFILE) '*)
|
||
(AND (SETQ FILE (CAR (ERRSET (EOPEN OFILE '(NODEFAULT))
|
||
() )))
|
||
(SETQ FILE (TRUENAME FILE)))
|
||
FILE))
|
||
(TERPRI) (TERPRI)
|
||
(PRINC '|Loading "|)
|
||
(PRINC (NAMESTRING FILE))
|
||
(PRINC '|", COMPLR initialization file for |)
|
||
(PRINC (COND ((OR (EQ (CADR OFILE) '*) (NOT #%(ITSP))) USN)
|
||
(UID)))
|
||
(TERPRI)
|
||
(AND (ATOM (ERRSET (ELOAD FILE) 'T))
|
||
(PRINC '| *** Errors during loading *** BEWARE!| TYO)))) ))
|
||
(COND ((SETQ DATA (STATUS JCL))
|
||
(LET (WINP (JCL-LINE DATA) RUNP)
|
||
(SETQ WINP (ERRSET
|
||
(PROG (M L LL)
|
||
(SETQ L DATA)
|
||
A (AND (< (SETQ M (GETCHARN (CAR L) 1)) 27.)
|
||
;Flush control chars
|
||
(NOT (= M 17.)) ;[except ^Q] from
|
||
(SETQ L (CDR L)) ;front of JCL list
|
||
(GO A))
|
||
(SETQ LL () )
|
||
B (SETQ M (GETCHARN (CAR L) 1))
|
||
(PUSH (COND ((AND (< M 123.) (> M 96.))
|
||
(- M 32.)) ;Uppercaseify
|
||
(M)) ; rest of line
|
||
LL)
|
||
(AND (SETQ L (CDR L)) (GO B))
|
||
C (AND (< (CAR LL) 27.) ;Flush control
|
||
(SETQ LL (CDR LL)) ; chars from
|
||
(GO C)) ; end of line
|
||
(SETQ LL (NREVERSE LL))
|
||
(cond ((not (eq (status OPSYSTEM-TYPE) 'ITS))
|
||
(cond ((and (= (car ll) #/R)
|
||
(cdr ll)
|
||
(= (cadr ll) #/U)
|
||
(cddr ll)
|
||
(= (caddr ll) #/N)
|
||
(cdddr ll)
|
||
(= (cadddr ll) #\SPACE))
|
||
(setq ll (nthcdr 4 ll)
|
||
runp 'T)))
|
||
(prog (x n)
|
||
(declare (fixnum n))
|
||
(setq n (if runp #/; #\SPACE))
|
||
;Flush subsystem name -- e.g. COMPLR
|
||
A (and (null ll) (return () ))
|
||
(pop ll x)
|
||
(if (not (= x n)) (go A))
|
||
;Flush leading spaces
|
||
B (cond ((null ll))
|
||
((= (car ll) #\SPACE)
|
||
(pop ll)
|
||
(go B))))))
|
||
(cond ((not LINEMODEP) (APPLY 'MAKLAP ll))
|
||
((unwind-protect
|
||
(prog2 (sstatus linmo T)
|
||
(APPLY 'MAKLAP ll))
|
||
(sstatus linmo () )))))
|
||
'T ))
|
||
(COND ((ATOM WINP)
|
||
(COND (WINP (PRINC '| *** Errors from JCL command *** /<2F>;JCL = /"|)
|
||
(PRINC (MAKNAM JCL-LINE))
|
||
(PRINC '/"/<2F> )
|
||
(BREAK JCL))
|
||
('T (PRINC '| *** Errors (probably I/O) in COMPLR Toplevel|)
|
||
(do ((l '((INFILE . INPUT) (IMOSAR . FASL)) (cdr l))
|
||
(x))
|
||
((null l))
|
||
(setq x (symeval (caar l)))
|
||
(and (filep x)
|
||
(memq 'FILEPOS (cdr (status FILEM x)))
|
||
(princ `(,(filepos x) = CURRENT ,(cdar l) FILEPOS))))
|
||
(BREAK COMPLR-TOPLE))) ))
|
||
(INT-^^-TOPLE)))
|
||
('T (cond ((not LINEMODEP) (maklap))
|
||
((unwind-protect (prog2 (sstatus linmo T) (MAKLAP))
|
||
(sstatus linmo ()))))))) )
|
||
|
||
|
||
|
||
|
||
|
||
;;; NOTE: THE LIST OF GLOBALSYMS SHOULD CORRESPOND TO
|
||
;;; THE LIST OF SYMBOLS AT LOCATION LSYMS IN LISP.
|
||
|
||
|
||
(DEFUN FASLINIT ()
|
||
(GETMIDASOP ())
|
||
(LET ((OBARRAY OBARRAY) (FL)
|
||
(PROPS '(SYM ATOMINDEX ARGSINFO ENTRY GLOBALSYM))
|
||
(ACS '(FOO A B C AR1 AR2A T TT D R F FOO P FLP FXP SP)))
|
||
(MAPATOMS '(LAMBDA (X) (LREMPROP X PROPS)))
|
||
(SETQ LDFNM (FASLAPSETUP/| () )) ;Sets up GLOBALSYMS
|
||
(COND ((AND (BOUNDP 'COBARRAY)
|
||
(EQ (TYPEP COBARRAY) 'ARRAY)
|
||
(SETQ FL (ARRAYDIMS COBARRAY))
|
||
(EQ (CAR FL) 'OBARRAY)
|
||
(NOT (AND (BOUNDP 'SOBARRAY) (EQ SOBARRAY COBARRAY))))
|
||
(SETQ FL '(% @ BLOCK ASCII SIXBIT SQUOZE CALL NCALL JCALL NJCALL
|
||
ENTRY DEFSYM BLOCK SYMBOLS BEGIN DDTSYM
|
||
THIS IS THE UNFASL FOR LISP FILE COMPILED BY COMPILER))
|
||
(MAPATOMS '(LAMBDA (X) (AND (GETL X '(SYM GLOBALSYM)) (PUSH X FL))))
|
||
;;;AFTER THE FASLAPSETUP/|, ONLY SYMS SHOULD BE GLOBALSYMS. IN ORDER:
|
||
;*SET *MAP PRINTA SPECBIND UNBIND IOGBND *LCALL *UDT ARGLOC
|
||
;INUM ST FXNV1 PDLNMK PDLNKJ FIX1A FIX1 FLOAT1 IFIX IFLOAT
|
||
;FXCONS FLCONS ERSETUP ERUNDO GOBRK CARCDR *STORE NPUSH PA3
|
||
;MAKUNBOUND FLTSKP FXNV2 FXNV3 FXNV4 FIX2 FLOAT2 AREGET
|
||
;UINITA UTIN INTREL INHIBIT NOQUIT CHECKI 0PUSH 0*0PUSH
|
||
;NILPROPS VBIND %CXR %RPX
|
||
(SETQ OBARRAY COBARRAY)
|
||
(MAPC 'INTERN FL) ;Cross-interns GLOBALSYMS
|
||
(MAPC 'INTERN (APPEND PROPS ACS))) ;Plus a few other words
|
||
(T (SETQ COBARRAY OBARRAY CREADTABLE READTABLE)))
|
||
(SETQ SQUIDP ()) ;Lists and set up GLOBALSYMS
|
||
(DO ((I 0 (1+ I)) (L ACS (CDR L))) ;Now define SYMS for LISP acs
|
||
((NULL L))
|
||
(AND (NOT (EQ (CAR L) 'FOO)) (PUTPROP (CAR L) I 'SYM)))
|
||
(ARRAY LCA T 16.) (ARRAY NUMBERTABLE T 127.)
|
||
(ARRAY BTAR FIXNUM 9.) (ARRAY BXAR FIXNUM 9.) (ARRAY BSAR T 9.)
|
||
(DO I 0 (1+ I) (= I 16.) (STORE (LCA I) (CONS I '((() -1)))))
|
||
(SETQ IMOSAR () IMOUSR ())
|
||
(SSTATUS FEATURE FASLAP)
|
||
(GCTWA)))
|
||
|
||
|
||
|
||
(COMMENT FILL INITIAL ARRAYS)
|
||
|
||
|
||
|
||
(ARRAY AC-ADDRS T #.(+ (NUMVALAC) (NUMNACS) 1))
|
||
(ARRAY PDL-ADDRS T 3 #.(+ 1 (NPDL-ADDRS)))
|
||
(ARRAY STGET T #.(+ (NUMVALAC) (NUMNACS)))
|
||
(ARRAY BOLA T #.(+ (NACS) (NUMNACS) 1) 7)
|
||
(ARRAY CBA T 16.)
|
||
(ARRAY A1S1A T #.(NUMNACS) 4)
|
||
(ARRAY PVIA T 3 (1+ (MAX #.(MAX-NPUSH) #.(MAX-0PUSH) #.(MAX-0*0PUSH))))
|
||
|
||
|
||
(PROGN (DO CNT #.(+ (NUMVALAC) (NUMNACS)) (1- CNT) (< CNT 1) ;Sets AC-ADDRS
|
||
(STORE (AC-ADDRS CNT) CNT))
|
||
(DO CNT #.(NPDL-ADDRS) (1- CNT) (< CNT 1) ;Sets PDL-ADDRS
|
||
(STORE (PDL-ADDRS 0 CNT) (- CNT #.(NPDL-ADDRS)))
|
||
(STORE (PDL-ADDRS 1 CNT) (- (+ CNT #.(FXP0)) #.(NPDL-ADDRS)))
|
||
(STORE (PDL-ADDRS 2 CNT) (- (+ CNT #.(FLP0)) #.(NPDL-ADDRS))))
|
||
;;; (STGET n) is for accessing segment table into register n
|
||
(DO CNT #.(+ (NUMVALAC) (NUMNACS) -1) (1- CNT) (< CNT 1)
|
||
(STORE (STGET CNT) (SUBST CNT 'N '(0 ST N))))
|
||
|
||
(DO ((HLAC #.(+ (NACS) (NUMNACS)) (1- HLAC))
|
||
(ATPL `((TDZA N N)
|
||
(MOVEI N ,(if (eq *:truth 'T) ''T '*:truth))
|
||
(SKIPE 0 N)
|
||
(MOVNI #.(NUMVALAC) N)
|
||
(MOVEI N '() )
|
||
(SKIPN 0 N))))
|
||
((< HLAC 1))
|
||
(DO ((CNT 1 (1+ CNT)) (ATPL1 ATPL (CDR ATPL1)))
|
||
((NULL ATPL1))
|
||
(STORE (BOLA HLAC CNT) (SUBST HLAC 'N (CAR ATPL1)))))
|
||
(FILLARRAY 'CBA '((SETZ) (AND) (ANDCA) (SETA) ;Sets CBA
|
||
(ANDCM) (SETM) (XOR) (IOR) (ANDCB)
|
||
(EQV) (SETCM) (ORCA) (SETCA)
|
||
(ORCM) (ORCB) (SETO)))
|
||
(DO CNT #.(- (NUMNACS) 1) (1- CNT) (< CNT 0) ;Sets A1S1A
|
||
(DO ((HLAC 0 (1+ HLAC)) (L '((ADDI 1)
|
||
(SUBI 1)
|
||
(FADRI 66304.) ;66304. = 201400[8]
|
||
(FSBRI 66304.))
|
||
(CDR L)))
|
||
((NULL L))
|
||
(STORE (A1S1A CNT HLAC) (LIST (CAAR L)
|
||
(+ CNT #.(NUMVALAC))
|
||
(CADAR L)))))
|
||
|
||
;;; Makes up array of JSPs to places that push the appropriate number
|
||
;;; of pdl-variable initialization values, onto the appropriate stack.
|
||
;;; (PVIA 0 n) ==> (JSP T (NPUSH -n)) pushes ()s onto REGPDL
|
||
;;; (PVIA 1 n) ==> (JSP T (0PUSH -n)) pushes 0s onto FXPDL
|
||
;;; (PVIA 2 n) ==> (JSP T (0*0PUSH -n)) pushes 0.0s onto FLPDL
|
||
(STORE (PVIA 0 0) #.(MAX-NPUSH))
|
||
(STORE (PVIA 1 0) #.(MAX-0PUSH))
|
||
(STORE (PVIA 2 0) #.(MAX-0*0PUSH))
|
||
(STORE (PVIA 0 1) '(PUSH P (% 0 0 '())))
|
||
(STORE (PVIA 1 1) '(PUSH FXP (% 0)))
|
||
(STORE (PVIA 2 1) '(PUSH FLP (% 0.0)))
|
||
(STORE (PVIA 0 2) 'NPUSH)
|
||
(STORE (PVIA 1 2) '0PUSH)
|
||
(STORE (PVIA 2 2) '0*0PUSH)
|
||
(DO CNT 0 (1+ CNT) (> CNT 2)
|
||
(DO HLAC (PVIA CNT 0) (1- HLAC) (< HLAC 3)
|
||
(STORE (PVIA CNT HLAC) (LIST 'JSP 'T (LIST (PVIA CNT 2) (- HLAC))))))
|
||
|
||
(COND (*PURE
|
||
(MAPC '(LAMBDA (GL)
|
||
(SETQ GL (GET GL 'ARRAY))
|
||
(DO CNT (1- (CADR (ARRAYDIMS GL))) (1- CNT) (< CNT 0)
|
||
(STORE (ARRAYCALL T GL CNT)
|
||
(PURCOPY (ARRAYCALL T GL CNT)))))
|
||
'(AC-ADDRS STGET CBA))
|
||
(MAPC '(LAMBDA (GL)
|
||
(SETQ GL (GET GL 'ARRAY))
|
||
(DO CNT (1- (CADR (ARRAYDIMS GL))) (1- CNT) (< CNT 0)
|
||
(DO HLAC (1- (CADDR (ARRAYDIMS GL)))
|
||
(1- HLAC)
|
||
(< HLAC 0)
|
||
(STORE (ARRAYCALL T GL CNT HLAC)
|
||
(PURCOPY (ARRAYCALL T GL CNT HLAC))))))
|
||
'(PDL-ADDRS BOLA A1S1A PVIA))))
|
||
)
|
||
|
||
|
||
|
||
(COMMENT PUT PROPERTIES ON VARIOUS SYMBOLS)
|
||
|
||
(PROGN (DEFPROP RPLACD (HRRM . HRRM) INST)
|
||
(DEFPROP RPLACA (HRLM . HRLM) INST)
|
||
(DEFPROP RPLACD (HLLZS . HLLZS) INSTN)
|
||
(DEFPROP RPLACA (HRRZS . HRRZS) INSTN)
|
||
(DEFPROP SETPLIST (HRRM . HRRM) INST)
|
||
(DEFPROP SETPLIST (HLLZS . HLLZS) INSTN)
|
||
(DEFPROP A (HLRZ . HLRZ) INST)
|
||
(DEFPROP D (HRRZ . HRRZ) INST)
|
||
(MAPC '(LAMBDA (INST INSTN) (PUTPROP INST INSTN 'IMMED))
|
||
'(MOVE CAMN CAME
|
||
ADD SUB IMUL IDIV CAMLE CAMG CAML CAMGE MOVN
|
||
AND ORCB SETCM XOR EQV IOR ANDCB ANDCA ANDCM ORCM ORCA)
|
||
'(MOVEI CAIN CAIE
|
||
ADDI SUBI IMULI IDIVI CAILE CAIG CAIL CAIGE MOVNI
|
||
ANDI ORCBI SETCMI XORI EQVI IORI ANDCBI ANDCAI ANDCMI ORCMI ORCAI))
|
||
|
||
|
||
(MAPC '(LAMBDA (INST INSTN) (PUTPROP INST INSTN 'JSP))
|
||
'(CONS XCONS NCONS %HUNK1 %HUNK2 %HUNK3 %HUNK4)
|
||
'(
|
||
(((JSP T %CONS) .
|
||
(JSP T %C2NS))
|
||
. ((JSP T %PDLC) .
|
||
(JSP T %C2NS)))
|
||
(((JSP T %XCONS) .
|
||
(JSP T %PDLXC))
|
||
. PUNT )
|
||
(((JSP T %NCONS)) .
|
||
((JSP T %PDLNC)))
|
||
((JSP T %HUNK1))
|
||
((JSP T %HUNK2))
|
||
((JSP T %HUNK3))
|
||
((JSP T %HUNK4))
|
||
))
|
||
(MAPC '(LAMBDA (INST INSTN) (PUTPROP INST INSTN 'COMMU) (PUTPROP INSTN INST 'COMMU))
|
||
'(CONS *GREAT *PLUS *TIMES EQUAL CAMG CAMGE JUMPGE JUMPL)
|
||
'(XCONS *LESS *PLUS *TIMES EQUAL CAML CAMLE JUMPLE JUMPG))
|
||
(MAPC '(LAMBDA (INST INSTN) (PUTPROP INST INSTN 'CONV) (PUTPROP INSTN INST 'CONV))
|
||
'(JUMP JUMPL JUMPE JUMPLE TRNN TLNN SOJE CAMG CAML
|
||
CAMN CAIG CAIL CAIE SKIPE SKIPG SKIPL)
|
||
'(JUMPA JUMPGE JUMPN JUMPG TRNE TLNE SOJN CAMLE CAMGE
|
||
CAME CAILE CAIGE CAIN SKIPN SKIPLE SKIPGE))
|
||
;A status option with no STATUS property means no evaluation of its
|
||
; entries. "(x . y)" means "x" is for sstatus and "y" for status;
|
||
; x and y are "A" to mean evaluate all but option name, and "B" to
|
||
; mean evaluate all but option name and next thing.
|
||
(MAPC '(LAMBDA (Z Y) (MAPC '(LAMBDA (X) (PUTPROP X Z 'STATUS)) Y))
|
||
|
||
'((A . A) (() . A) (A . () ) (B . B))
|
||
'((TTY TTYRE TTYTY TTYCO TTYSC TTYIN LINMO PDLMA INTER
|
||
GCMIN GCSIZ GCMAX)
|
||
(DIVOV FTVSI + TOPLE UUOLI ABBRE GCTIM GCWHO WHO1 WHO2 WHO3
|
||
EVALH BREAK MAR CLI FLUSH PUNT RANDO /_ LOSEF)
|
||
(SYSTE SPCSI PURSI PDLSI PDLRO FILEM TTYSI OSPEE HSNAM)
|
||
(MACRO SYNTA CHTRA)))
|
||
|
||
|
||
|
||
|
||
(MAPC '(LAMBDA (INST INSTN) (PUTPROP INST INSTN 'MINUS))
|
||
'(MOVEI ADDI SUBI)
|
||
'(MOVNI SUBI ADDI))
|
||
|
||
(MAPC '(LAMBDA (INST INSTN) (PUTPROP INST INSTN 'BOTH))
|
||
'(ADD SUB IMUL IDIV FADR FSBR FDVR FMPR)
|
||
'(ADDB SUBB IMULB IDIVB FADRB FSBRB FDVRB FMPRB))
|
||
|
||
(MAPC '(LAMBDA (INST INSTN) (PUTPROP INST INSTN 'FLOATI))
|
||
'(FADR FSBR FMPR FDVR MOVE)
|
||
'(FADRI FSBRI FMPRI FDVRI MOVSI))
|
||
|
||
((LAMBDA (Y)
|
||
(MAPC '(LAMBDA (X)
|
||
(COND ((GET (CAR X) 'AUTOLOAD)
|
||
(COND ((NULL (CDDR X)))
|
||
((EQUAL (SETQ Y (ARGS (CAR X))) (CDDR X)))
|
||
(T (AND Y (ERROR '|ARGS data doesn't match|
|
||
X
|
||
'FAIL-ACT))
|
||
(ARGS (CAR X) (CDDR X))))
|
||
(AND (CDR X) (PUTPROP (CAR X) (CDR X) 'FUNTYP-INFO)))))
|
||
'((ALLFILES SUBR () . 1)
|
||
(CGOL FSUBR) (CGOLREAD LSUBR) (CREATE-JOB LSUBR 3 . 5)
|
||
(FORMAT LSUBR 2 . 510.) (INF-EDIT MACRO) (LEDIT FSUBR)
|
||
(LAP FSUBR) (LAP-A-LIST SUBR () . 1)
|
||
(DUMPARRAYS SUBR () . 2) (LOADARRAYS SUBR () . 1)
|
||
(DIRECTORY LSUBR 1 . 2) (MAPALLFILES SUBR () . 2)
|
||
(MAPDIRECTORY LSUBR 2 . 3)
|
||
(SORT SUBR () . 2) (SORTCAR SUBR () . 2)
|
||
(GRIND FSUBR) (GRIND0 FSUBR) (GRINDEF FSUBR)
|
||
(SPRINTER SUBR () . 1) (TRACE FSUBR)
|
||
(LOOP MACRO) (DEFINE-LOOP-PATH MACRO)
|
||
(DEFINE-LOOP-SEQUENCE-PATH MACRO)
|
||
(DEFVST MACRO) (SETVST MACRO) (STRUCT-TYPEP SUBR () . 1)
|
||
(STRINGP SUBR () . 1)
|
||
(*:FIXNUM-TO-CHARACTER SUBR () . 1)
|
||
(*:CHARACTER-TO-FIXNUM SUBR () . 1)
|
||
(MAKE-STRING LSUBR 1 . 2) (STRING-PNPUT SUBR () . 2)
|
||
(REPLACE LSUBR 2 . 5) (SUBSEQ LSUBR 1 . 3)
|
||
(TO-LIST LSUBR 1 . 3) (TO-VECTOR LSUBR 1 . 3)
|
||
(TO-STRING LSUBR 1 . 3) (TO-BITS LSUBR 1 . 3)
|
||
(SETSYNTAX-SHARP-MACRO LSUBR 3 . 4)
|
||
(PTR-TYPEP SUBR () . 1) (EXTENDP SUBR () . 1)
|
||
(SI:MAKE-EXTEND SUBR () . 2) (SI:EXTEND LSUBR 1 . 510.)
|
||
(SI:XREF SUBR () . 2) (SI:XSET SUBR () . 3)
|
||
(SI:DEFCLASS*-1 LSUBR 3 . 4)
|
||
(ADD-METHOD SUBR () . 3) (FIND-METHOD SUBR () . 2)
|
||
(WHICH-OPERATIONS SUBR () . 1) (DESCRIBE LSUBR 1 . 2)
|
||
(SEND-AS LSUBR 3 . 510.) (LEXPR-SEND LSUBR 2 . 510.)
|
||
(LEXPR-SEND-AS LSUBR 3 . 510.)
|
||
(Y-OR-N-P LSUBR) (YES-OR-NO-P LSUBR)
|
||
(CERROR LSUBR 4 . 510.) (FERROR LSUBR 2 . 510.))))
|
||
() )
|
||
|
||
(DEFPROP %CATCHALL (FSUBR) FUNTYP-INFO)
|
||
(DEFPROP %PASS-THRU (FSUBR) FUNTYP-INFO)
|
||
|
||
|
||
(MAPC '(LAMBDA (X) (PUTPROP X 'NOTNUMP 'NOTNUMP)) ;Has no side-effects
|
||
'(
|
||
%HUNK1 %HUNK2 %HUNK3 %HUNK4 *APPEND ALPHALESSP
|
||
APPEND ARRAYDIMS ASSOC ASSQ ATOM BAKLIST
|
||
BIGP BOUNDP CONS COPYSYMBOL ERRFRAME
|
||
EVALFRAME EXPLODE EXPLODEC EXPLODEN
|
||
FILEP FIXP FLOATP GETCHAR GETL HUNK
|
||
HUNKP LAST LISTARRAY LISTIFY MAKNAM
|
||
MEMBER MEMQ NCONS NTHCDR NULL NUMBERP
|
||
PLIST PNGET REVERSE SAMEPNAMEP SIGNP
|
||
SUBLIS SUBST SYMBOLP SYSP TYPEP XCONS
|
||
))
|
||
(MAPC '(LAMBDA (X) (PUTPROP X 'EFFS 'NOTNUMP)) ;Has side-effects
|
||
'(
|
||
*ARRAY *DELETE *DELQ *NCONC *READCH *REARRAY
|
||
ALARMCLOCK ASCII CURSORPOS DELETE DELQ DUMPARRAYS
|
||
FILLARRAY GENSYM IMPLODE INTERN LOADARRAYS NCONC NRECONC
|
||
NREVERSE READCH REMOB REMPROP SASSOC SASSOC SASSQ SETPLIST
|
||
SETSYNTAX SORT SORTCAR SUSPEND TERPRI VALRET
|
||
))
|
||
(MAPC '(LAMBDA (X) (PUTPROP X 'T 'NOTNUMP)) ;Has side-effects, and returns T
|
||
'(TYO /+TYO *TYO DEPOSIT PRIN1 PRINC PRINT *PRIN1 *PRINC *PRINT))
|
||
|
||
|
||
;;; In general, function-names with ACS properties have no side-effects, except
|
||
;;; for those explicity mentioned under the NOTNUMP property above. Thus
|
||
;;; (NOT (GET x 'ACS)) is a general test for potentially-random side-effects.
|
||
|
||
(MAPC '(LAMBDA (DATA)
|
||
(MAPC '(LAMBDA (X) (AND (SYSP X) (PUTPROP X (CADAR DATA) (CAAR DATA))))
|
||
(CDR DATA)))
|
||
'(
|
||
|
||
;; ((ACS 1) IN OUT LINEL PAGEL CHARPOS LINENUM PAGENUM
|
||
;; CLEAR-INPUT CLEAR-OUTPUT FORCE-OUTPUT NAMELIST
|
||
;; TRUENAME PROBEF DELETEF DEFAULTF)
|
||
((ACS 1) FASLP)
|
||
((ACS 2) MERGEF)
|
||
;; ((ACS 3) NAMESTRING SHORTNAMESTRING)
|
||
;; ((ACS 4) RUBOUT RENAMEF ENDPAGEFN EOFFN DELETEF FILEPOS
|
||
;; LENGTHF CNAMEF)
|
||
((ACS 4) FILEP)
|
||
;; ((ACS 5) OPEN CLOSE)
|
||
;Missing are INCLUDE and LOAD, because they may cause
|
||
; totally unforseen side-effects
|
||
|
||
((ACS 1) LENGTH ADD1 SUB1 MINUS ABS FLOAT FIX
|
||
SIN COS SQRT LOG EXP ZEROP PLUSP MINUSP ODDP
|
||
1+ 1- 1+/$ 1-/$)
|
||
((ACS 1) LAST SLEEP RANDOM NOINTERRUPT EXAMINE
|
||
ARG MUNKAM ERRFRAME)
|
||
|
||
((ACS 2) PLUS TIMES EXPT DIFFERENCE QUOTIENT MAX MIN
|
||
GREATERP LESSP ATAN
|
||
*PLUS *TIMES *GREAT *QUO *DIF *LESS /\/\ /^ /^$
|
||
HAULONG HAIPART GCD BOOLE REMAINDER)
|
||
((ACS 2) GET REMPROP MEMQ RECLAIM EQUAL DEPOSIT
|
||
CONS NCONS XCONS SUBLIS NCONC *NCONC *DELQ
|
||
DELQ ASSQ ALARMCLOCK SETARG SETPLIST MAKNUM
|
||
SAMEPNAMEP ALPHALESSP GETCHARN LISTIFY
|
||
NTH NTHCDR)
|
||
|
||
((ACS 3) GENSYM FLATSIZE FLATC PNGET EVALFRAME PURIFY
|
||
LISTARRAY FILLARRAY DUMPARRAYS ARRAYDIMS
|
||
PRINT PRIN1 PRINC *PRINT *PRIN1 *PRINC
|
||
SYSP COPYSYMBOL SXHASH MAKNAM GETL
|
||
REVERSE NREVERSE NRECONC GETL PUTPROP ARGS)
|
||
|
||
((ACS 4) ASSOC SASSOC SASSQ CRUNIT)
|
||
|
||
((ACS 4) %HUNK1 %HUNK2 %HUNK3 %HUNK4)
|
||
|
||
((ACS 5) SUBST *DELETE DELETE MEMBER *APPEND APPEND
|
||
*ARRAY *REARRAY LOADARRAYS
|
||
BAKTRACE BAKLIST ERRPRINT
|
||
ALLOC *FUNCTION SUSPEND SETSYNTAX
|
||
EXPLODEC EXPLODE EXPLODEN
|
||
PNPUT INTERN IMPLODE REMOB ASCII READCH *READCH
|
||
*TERPRI TERPRI *TYO TYO /+TYO *TYI TYI TYIPEEK
|
||
CURSORPOS
|
||
GETMIDASOP GETDDTSYM PUTDDTSYM
|
||
;; UREAD UWRITE UKILL UFILE UPROBE UCLOSE UAPPEND
|
||
)))
|
||
|
||
;EVAL, *EVAL, READ, *READ and MAP series aren't here, since
|
||
; they permint random evaluations [hence random side effects]
|
||
;PAGEBPORG isn't here since it setqs BPORG, and may cause a GC.
|
||
|
||
|
||
|
||
(MAPC '(LAMBDA (INST) (PUTPROP INST 'T 'P1BOOL1ABLE))
|
||
'(AND OR NULL NOT EQ = > < COND MEMQ SIGNP))
|
||
|
||
(MAPC '(LAMBDA (INST) (PUTPROP INST 'NUMBERP 'P1BOOL1ABLE))
|
||
'(EQUAL GREATERP LESSP ODDP *GREAT *LESS ZEROP PLUSP MINUSP))
|
||
|
||
(MAPC '(LAMBDA (INST INSTN)
|
||
(PUTPROP INST
|
||
(CONS (CONS 'TLNN INSTN) (CONS 'TLNE INSTN))
|
||
'P1BOOL1ABLE)
|
||
(or (get inst 'NOTNUMP)
|
||
(putprop inst 'NOTNUMP 'NOTNUMP)))
|
||
'(ATOM NUMBERP FIXP FLOATP BIGP HUNKP SYMBOLP FIXNUMP SI:ARRAY-HEADERP)
|
||
;(175300 161000 120000 40000 20000 20 10000 100000 4000)
|
||
'(64192. 57856. 40960. 16384. 8192. 16. 4096. 32768. 2048.))
|
||
|
||
(MAPC '(LAMBDA (INST) (PUTPROP INST 'T 'CONTAGIOUS))
|
||
'(PLUS TIMES DIFFERENCE QUOTIENT *PLUS *TIMES *DIF *QUO))
|
||
|
||
(MAPC '(LAMBDA (INST) (PUTPROP INST 'T 'NUMBERP))
|
||
'(PLUS TIMES DIFFERENCE QUOTIENT *PLUS *TIMES *DIF *QUO
|
||
ABS MINUS FIX FLOAT IFIX ADD1 SUB1 REMAINDER HAULONG))
|
||
|
||
(MAPC '(LAMBDA (INST) (PUTPROP INST 'NOTYPE 'NUMBERP))
|
||
'(GREATERP LESSP *GREAT *LESS EQ EQUAL ODDP ZEROP PLUSP MINUSP))
|
||
|
||
(MAPC '(LAMBDA (X) (PUTPROP (CAR X) (CDR X) 'ARITHP))
|
||
'( (/+ PLUS FIXNUM) (+$ PLUS FLONUM)
|
||
(/- DIFFERENCE FIXNUM) (-$ DIFFERENCE FLONUM)
|
||
(/* TIMES FIXNUM) (*$ TIMES FLONUM)
|
||
(/1+ ADD1 FIXNUM) (1+$ ADD1 FLONUM)
|
||
(/1- SUB1 FIXNUM) (1-$ SUB1 FLONUM)
|
||
(// QUOTIENT FIXNUM) (//$ QUOTIENT FLONUM)
|
||
(/> GREATERP () ) (/< LESSP () )
|
||
(/\ REMAINDER FIXNUM) (/= EQUAL () )
|
||
;; (FIXNUM-IDENTITY IDENTITY FIXNUM) ;SET UP BY INITIALIZE
|
||
;; (FLONUM-IDENTITY IDENTITY FLONUM) ;SET UP BY INITIALIZE
|
||
))
|
||
)
|
||
|