From 8a8e6fa4dc79d01e740ca12a38c490c4ea3627ff Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Sat, 23 Sep 2023 23:30:25 -0700 Subject: [PATCH 1/3] CMLARAITH: Makefile new to get fns/functions in filemap --- sources/CMLARITH | 810 ++++++++++++++++++++++-------------------- sources/CMLARITH.LCOM | 36 +- 2 files changed, 440 insertions(+), 406 deletions(-) diff --git a/sources/CMLARITH b/sources/CMLARITH index 9e0d3a7a..86733ee2 100644 --- a/sources/CMLARITH +++ b/sources/CMLARITH @@ -1,15 +1,17 @@ -(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "LISP") -(IL:FILECREATED " 4-Jan-93 17:38:48" IL:|{DSK}lde>lispcore>sources>CMLARITH.;2| 102283 +(DEFINE-FILE-INFO PACKAGE "LISP" READTABLE "XCL" BASE 10) - IL:|previous| IL:|date:| "16-May-90 12:46:36" IL:|{DSK}lde>lispcore>sources>CMLARITH.;1| -) +(IL:FILECREATED "23-Sep-2023 23:15:39" IL:|{WMEDLEY}CMLARITH.;2| 100545 + + :EDIT-BY IL:|rmk| + + :PREVIOUS-DATE " 4-Jan-93 17:38:48" IL:|{WMEDLEY}CMLARITH.;1|) -; Copyright (c) 1985, 1986, 1987, 1988, 1989, 1990, 1993 by Venue & Xerox Corporation. All rights reserved. +; Copyright (c) 1985-1990, 1993 by Venue & Xerox Corporation. (IL:PRETTYCOMPRINT IL:CMLARITHCOMS) -(IL:RPAQQ IL:CMLARITHCOMS +(IL:RPAQQ IL:CMLARITHCOMS ( (IL:* IL:|;;;| "Common Lisp Arithmetic ") @@ -64,14 +66,14 @@ (IL:* IL:|;;| - "cl:floatp is defined in cmltypes (has an optimizer). il:floatp is defined on llbasic") + "cl:floatp is defined in cmltypes (has an optimizer). il:floatp is defined on llbasic") (IL:* IL:|;;| "cl:complexp is a defstruct predicate (compiles in line)") (IL:* IL:|;;| - "cl:numberp is defined in cmltypes (has an optimizer). il:numberp is defined on llbasic") + "cl:numberp is defined in cmltypes (has an optimizer). il:numberp is defined on llbasic") ) (IL:COMS @@ -79,7 +81,7 @@ (IL:* IL:|;;| - "cl:zerop is not shared with il:zerop, although they are equivalent. There is no il;plusp ") + "cl:zerop is not shared with il:zerop, although they are equivalent. There is no il;plusp ") (IL:COMS (IL:FUNCTIONS ZEROP PLUSP) (XCL:OPTIMIZERS ZEROP PLUSP)) @@ -102,24 +104,24 @@ (IL:* IL:\; "For the byte compiler") (IL:PROP IL:DMACRO %> %< %>= %<=) (IL:DECLARE\: IL:DONTEVAL@LOAD IL:DOCOPY (IL:P - (IL:* IL:|;;| - "Backward compatibility") + (IL:* IL:|;;| + "Backward compatibility") (IL:* IL:\; - " il:%= is listed as the punt function for the = opcode") + " il:%= is listed as the punt function for the = opcode") (IL:MOVD '%= 'IL:%=) (IL:* IL:\; - "Greaterp is the UFN for the greaterp opcode. Effectively redefines the opcode") + "Greaterp is the UFN for the greaterp opcode. Effectively redefines the opcode") (IL:MOVD '%> 'IL:GREATERP) (IL:* IL:\; - "Interlisp Greaterp and Lessp are defined in llarith") + "Interlisp Greaterp and Lessp are defined in llarith") (IL:MOVD '%< 'IL:LESSP)))) (IL:* IL:|;;| - "=, <, >, <=, and >= are shared with il:, but cl:/= is NOT shared (?!)") + "=, <, >, <=, and >= are shared with il:, but cl:/= is NOT shared (?!)") (IL:COMS (IL:DECLARE\: IL:DONTCOPY IL:DOEVAL@COMPILE (IL:FUNCTIONS %COMPARISON-MACRO)) @@ -143,14 +145,14 @@ (IL:* IL:\; "For the byte compiler") (IL:PROP IL:DMACRO %+ %- %*) (IL:DECLARE\: IL:DONTEVAL@LOAD IL:DOCOPY (IL:P - (IL:* IL:|;;| - "Backward compatibility") + (IL:* IL:|;;| + "Backward compatibility") (IL:MOVD '%/ 'IL:%/) (IL:* IL:|;;| - "Redefine UFNs for generic plus, difference, and times. Old UFN defined in llarith.") + "Redefine UFNs for generic plus, difference, and times. Old UFN defined in llarith.") (IL:MOVD '%+ 'IL:\\SLOWPLUS2) (IL:MOVD '%- @@ -174,7 +176,7 @@ (IL:* IL:|;;| - "So Interlisp quotient will do something reasonable with ratios") + "So Interlisp quotient will do something reasonable with ratios") (IL:* (IL:MOVD 'IL:NEW-QUOTIENT @@ -182,7 +184,7 @@ (IL:* IL:|;;| - "because QUOTIENT is already defined in LLARITH to do something useful with ratios. AR 8062.") + "because QUOTIENT is already defined in LLARITH to do something useful with ratios. AR 8062.") ))) (IL:* IL:|;;| "INCF and DECF implemented by CMLSETF.") @@ -192,7 +194,7 @@ (IL:COMS (IL:* IL:|;;| - "Optimizers for Interlisp functions, so that they compile open with the PavCompiler.") + "Optimizers for Interlisp functions, so that they compile open with the PavCompiler.") (IL:* IL:|;;| "optimizer of IL:minus") @@ -220,11 +222,11 @@ (IL:DECLARE\: IL:DONTCOPY IL:DOEVAL@COMPILE (IL:FILES IL:UNBOXEDOPS)) (IL:* IL:\; - "These should be exported from xcl") + "These should be exported from xcl") (IL:COMS (IL:FUNCTIONS XCL::STRUNCATE XCL::SFLOOR XCL::SCEILING XCL::SROUND) (XCL:OPTIMIZERS XCL::STRUNCATE XCL::SROUND)) (IL:* IL:\; - "Round is shared with il: (?!)") + "Round is shared with il: (?!)") (IL:COMS (IL:DECLARE\: IL:DONTCOPY IL:DOEVAL@COMPILE (IL:FUNCTIONS %INTEGER-COERCE-MACRO)) (IL:FUNCTIONS TRUNCATE FLOOR CEILING ROUND) @@ -340,9 +342,9 @@ (DEFSTRUCT (RATIO (:CONSTRUCTOR %MAKE-RATIO (NUMERATOR DENOMINATOR)) - (:PREDICATE %RATIO-P) - (:COPIER NIL) - (:PRINT-FUNCTION %RATIO-PRINT)) + (:PREDICATE %RATIO-P) + (:COPIER NIL) + (:PRINT-FUNCTION %RATIO-PRINT)) (NUMERATOR :READ-ONLY) (DENOMINATOR :READ-ONLY)) @@ -385,7 +387,7 @@ (COND ((NOT (IL:|fetch| (READTABLEP IL:COMMONNUMSYNTAX) IL:|of| *READTABLE*)) (IL:* IL:\; - "Can't print nice ratios to old read tables") + "Can't print nice ratios to old read tables") (IL:PRIN1 "|." STREAM) (IL:\\PRINDATUM (LIST '/ TOP BOTTOM) STREAM)) @@ -395,30 +397,31 @@ (IF *PRINT-RADIX* (SETQ PR (CONCATENATE 'STRING (STRING (CODE-CHAR (IL:|fetch| (READTABLEP IL:HASHMACROCHAR - ) - IL:|of| *READTABLE*))) + ) IL:|of| + *READTABLE*)) + ) (CASE *PRINT-BASE* (2 (IL:* IL:\; "Binary") "b") (8 "o") (16 "x") (T (IL:* IL:\; - "generalized radix prefix, even for decimal!") + "generalized radix prefix, even for decimal!") (CONCATENATE 'STRING (LET* ((X *PRINT-BASE*) (*PRINT-BASE* 10) (*PRINT-RADIX* NIL)) (PRINC-TO-STRING X)) "r")))))) (IL:.SPACECHECK. STREAM (+ 1 (IL:NCHARS TOP) - (IL:NCHARS BOTTOM) - (IF PR - (IL:NCHARS PR) - 0))) + (IL:NCHARS BOTTOM) + (IF PR + (IL:NCHARS PR) + 0))) (LET ((IL:\\THISFILELINELENGTH NIL) (*PRINT-RADIX* NIL)) (DECLARE (IL:SPECVARS IL:\\THISFILELINELENGTH)) (IL:* IL:\; - "Turn off linelength check just in case the NCHARS count is off because of radices") + "Turn off linelength check just in case the NCHARS count is off because of radices") (IF PR (IL:\\SOUT PR STREAM)) (IL:\\PRINDATUM TOP STREAM) (IL:\\SOUT "/" STREAM) @@ -427,7 +430,7 @@ (DEFUN %BUILD-RATIO (X Y) (IL:* IL:|;;| -"%BUILD-RATIO takes two integer arguments and builds the rational number which is their quotient. ") + "%BUILD-RATIO takes two integer arguments and builds the rational number which is their quotient. ") (LET ((REM (IL:IREMAINDER X Y))) (IF (EQ 0 REM) @@ -467,11 +470,11 @@ (LET ((GCD-D (%GCD DENOMINATOR-1 DENOMINATOR-2))) (IF (EQ GCD-D 1) (%MAKE-RATIO (+ (* NUMERATOR-1 DENOMINATOR-2) - (* NUMERATOR-2 DENOMINATOR-1)) + (* NUMERATOR-2 DENOMINATOR-1)) (* DENOMINATOR-1 DENOMINATOR-2)) (LET* ((D1/GCD-D (IL:IQUOTIENT DENOMINATOR-1 GCD-D)) (TOP (+ (* NUMERATOR-1 (IL:IQUOTIENT DENOMINATOR-2 GCD-D)) - (* NUMERATOR-2 D1/GCD-D))) + (* NUMERATOR-2 D1/GCD-D))) (GCD-TOP (%GCD TOP GCD-D)) (D2/GCD-TOP DENOMINATOR-2)) (UNLESS (EQ GCD-TOP 1) @@ -506,9 +509,9 @@ (DEFSTRUCT (COMPLEX (:CONSTRUCTOR %MAKE-COMPLEX (REALPART IMAGPART)) - (:PREDICATE COMPLEXP) - (:COPIER NIL) - (:PRINT-FUNCTION %COMPLEX-PRINT)) + (:PREDICATE COMPLEXP) + (:COPIER NIL) + (:PRINT-FUNCTION %COMPLEX-PRINT)) (REALPART :READ-ONLY) (IMAGPART :READ-ONLY)) @@ -592,7 +595,7 @@ (LET ((REALPART (COMPLEX-REALPART NUMBER)) (IMAGPART (COMPLEX-IMAGPART NUMBER))) (IL:.SPACECHECK. STREAM (+ 5 (IL:NCHARS REALPART) - (IL:NCHARS IMAGPART))) + (IL:NCHARS IMAGPART))) (IL:\\OUTCHAR STREAM (IL:FETCH (READTABLEP IL:HASHMACROCHAR) IL:OF *READTABLE*)) (IL:\\SOUT "C" STREAM) (IL:\\SOUT "(" STREAM) @@ -632,30 +635,30 @@ (COMPLEX (* REAL-1 REAL-2) (* IMAG-1 REAL-2))) (T (COMPLEX (- (* REAL-1 REAL-2) - (* IMAG-1 IMAG-2)) + (* IMAG-1 IMAG-2)) (+ (* IMAG-1 REAL-2) - (* REAL-1 IMAG-2)))))) + (* REAL-1 IMAG-2)))))) (DEFUN %COMPLEX-/ (REAL-1 IMAG-1 REAL-2 IMAG-2) (COND ((= 0 IMAG-1) (LET ((MODULUS (+ (* REAL-2 REAL-2) - (* IMAG-2 IMAG-2)))) + (* IMAG-2 IMAG-2)))) (COMPLEX (/ (* REAL-1 REAL-2) - MODULUS) + MODULUS) (/ (- (* REAL-1 IMAG-2)) - MODULUS)))) + MODULUS)))) ((= 0 IMAG-2) (COMPLEX (/ REAL-1 REAL-2) (/ IMAG-1 REAL-2))) (T (LET ((MODULUS (+ (* REAL-2 REAL-2) - (* IMAG-2 IMAG-2)))) + (* IMAG-2 IMAG-2)))) (COMPLEX (/ (+ (* REAL-1 REAL-2) - (* IMAG-1 IMAG-2)) - MODULUS) + (* IMAG-1 IMAG-2)) + MODULUS) (/ (- (* IMAG-1 REAL-2) - (* REAL-1 IMAG-2)) - MODULUS)))))) + (* REAL-1 IMAG-2)) + MODULUS)))))) (DEFUN %COMPLEX-ABS (Z) (LET ((X (FLOAT (COMPLEX-REALPART Z))) @@ -665,7 +668,7 @@ (IL:* IL:|;;| "Might want to use a BLUE algorithm here") (SQRT (SETQ X (+ (* X X) - (* Y Y)))))) + (* Y Y)))))) @@ -679,8 +682,7 @@ -(IL:* IL:|;;| "cl:floatp is defined in cmltypes (has an optimizer). il:floatp is defined on llbasic" -) +(IL:* IL:|;;| "cl:floatp is defined in cmltypes (has an optimizer). il:floatp is defined on llbasic") @@ -690,8 +692,8 @@ -(IL:* IL:|;;| -"cl:numberp is defined in cmltypes (has an optimizer). il:numberp is defined on llbasic") +(IL:* IL:|;;| "cl:numberp is defined in cmltypes (has an optimizer). il:numberp is defined on llbasic" +) @@ -712,10 +714,10 @@ (> NUMBER 0)) (XCL:DEFOPTIMIZER ZEROP (NUMBER) - `(= 0 ,NUMBER)) + `(= 0 ,NUMBER)) (XCL:DEFOPTIMIZER PLUSP (NUMBER) - `(> ,NUMBER 0)) + `(> ,NUMBER 0)) @@ -728,7 +730,7 @@ (< NUMBER 0)) (XCL:DEFOPTIMIZER MINUSP (NUMBER) - `(< ,NUMBER 0)) + `(< ,NUMBER 0)) @@ -750,16 +752,16 @@ (NOT (ZEROP (MOD INTEGER MODULUS))))) (XCL:DEFOPTIMIZER EVENP (INTEGER &OPTIONAL (MODULUS NIL MODULUS-P)) - (IF (NULL MODULUS-P) - `(EQ (LOGAND ,INTEGER 1) - 0) - 'COMPILER:PASS)) + (IF (NULL MODULUS-P) + `(EQ (LOGAND ,INTEGER 1) + 0) + 'COMPILER:PASS)) (XCL:DEFOPTIMIZER ODDP (INTEGER &OPTIONAL (MODULUS NIL MODULUS-P)) - (IF (NULL MODULUS-P) - `(EQ (LOGAND ,INTEGER 1) - 1) - 'COMPILER:PASS)) + (IF (NULL MODULUS-P) + `(EQ (LOGAND ,INTEGER 1) + 1) + 'COMPILER:PASS)) @@ -798,9 +800,9 @@ (OTHERWISE (%NOT-NUMBER-ERROR Y)))) (COMPLEX (TYPECASE Y (COMPLEX (AND (= (COMPLEX-REALPART X) - (COMPLEX-REALPART Y)) + (COMPLEX-REALPART Y)) (= (COMPLEX-IMAGPART X) - (COMPLEX-IMAGPART Y)))) + (COMPLEX-IMAGPART Y)))) (NUMBER (AND (= Y (COMPLEX-REALPART X)) (= 0 (COMPLEX-IMAGPART X)))) (OTHERWISE (%NOT-NUMBER-ERROR Y)))) @@ -815,33 +817,33 @@ (IL:* IL:|;;| "Compiles out to greaterp opcode") (IL:* IL:\; - "So we appear as > in a frame backtrace") + "So we appear as > in a frame backtrace") (IL:\\CALLME '>) (TYPECASE X (INTEGER (TYPECASE Y (INTEGER (IL:IGREATERP X Y)) (FLOAT (IL:FGREATERP X Y)) (RATIO (IL:IGREATERP (* (RATIO-DENOMINATOR Y) - X) + X) (RATIO-NUMERATOR Y))) (OTHERWISE (%NOT-NONCOMPLEX-NUMBER-ERROR Y)))) (FLOAT (TYPECASE Y ((OR INTEGER FLOAT) (IL:FGREATERP X Y)) (RATIO (IL:FGREATERP (* (RATIO-DENOMINATOR Y) - X) + X) (RATIO-NUMERATOR Y))) (OTHERWISE (%NOT-NONCOMPLEX-NUMBER-ERROR Y)))) (RATIO (TYPECASE Y (INTEGER (IL:IGREATERP (RATIO-NUMERATOR X) (* (RATIO-DENOMINATOR X) - Y))) + Y))) (FLOAT (IL:FGREATERP (RATIO-NUMERATOR X) (* (RATIO-DENOMINATOR X) - Y))) + Y))) (RATIO (IL:IGREATERP (* (RATIO-NUMERATOR X) - (RATIO-DENOMINATOR Y)) + (RATIO-DENOMINATOR Y)) (* (RATIO-NUMERATOR Y) - (RATIO-DENOMINATOR X)))) + (RATIO-DENOMINATOR X)))) (OTHERWISE (%NOT-NONCOMPLEX-NUMBER-ERROR Y)))) (OTHERWISE (%NOT-NONCOMPLEX-NUMBER-ERROR X)))) @@ -854,24 +856,24 @@ (DEFMACRO %<= (X Y) `(NOT (%> ,X ,Y))) -(IL:PUTPROPS %= IL:DOPVAL (2 =)) +(IL:PUTPROPS %= IL:DOPVAL (2 =)) -(IL:PUTPROPS %> IL:DOPVAL (2 IL:GREATERP)) +(IL:PUTPROPS %> IL:DOPVAL (2 IL:GREATERP)) -(IL:PUTPROPS %< IL:DOPVAL (2 IL:SWAP IL:GREATERP)) +(IL:PUTPROPS %< IL:DOPVAL (2 IL:SWAP IL:GREATERP)) (IL:* IL:\; "For the byte compiler") -(IL:PUTPROPS %> IL:DMACRO (= . IL:GREATERP)) +(IL:PUTPROPS %> IL:DMACRO (= . IL:GREATERP)) -(IL:PUTPROPS %< IL:DMACRO (= . IL:LESSP)) +(IL:PUTPROPS %< IL:DMACRO (= . IL:LESSP)) -(IL:PUTPROPS %>= IL:DMACRO (= . IL:GEQ)) +(IL:PUTPROPS %>= IL:DMACRO (= . IL:GEQ)) -(IL:PUTPROPS %<= IL:DMACRO (= . IL:LEQ)) +(IL:PUTPROPS %<= IL:DMACRO (= . IL:LEQ)) (IL:DECLARE\: IL:DONTEVAL@LOAD IL:DOCOPY @@ -879,17 +881,17 @@ (IL:* IL:\; - " il:%= is listed as the punt function for the = opcode") + " il:%= is listed as the punt function for the = opcode") (IL:MOVD '%= 'IL:%=) (IL:* IL:\; - "Greaterp is the UFN for the greaterp opcode. Effectively redefines the opcode") + "Greaterp is the UFN for the greaterp opcode. Effectively redefines the opcode") (IL:MOVD '%> 'IL:GREATERP) (IL:* IL:\; - "Interlisp Greaterp and Lessp are defined in llarith") + "Interlisp Greaterp and Lessp are defined in llarith") (IL:MOVD '%< 'IL:LESSP) ) @@ -977,58 +979,56 @@ ((NULL THIRD-NUMBER) `(,PREDICATE ,FIRST-NUMBER ,SECOND-NUMBER)) (T `((IL:OPENLAMBDA (SI::%$$COMPARISON-FIRST-NUMBER SI::%$$COMPARISON-MIDDLE-NUMBER) - (AND (,PREDICATE SI::%$$COMPARISON-FIRST-NUMBER SI::%$$COMPARISON-MIDDLE-NUMBER) - (,PREDICATE SI::%$$COMPARISON-MIDDLE-NUMBER ,THIRD-NUMBER))) + (AND (,PREDICATE SI::%$$COMPARISON-FIRST-NUMBER SI::%$$COMPARISON-MIDDLE-NUMBER) + (,PREDICATE SI::%$$COMPARISON-MIDDLE-NUMBER ,THIRD-NUMBER))) ,FIRST-NUMBER ,SECOND-NUMBER)))) (XCL:DEFOPTIMIZER = (FIRST-NUMBER &OPTIONAL (SECOND-NUMBER NIL SECOND-NUMBER-P) - &REST MORE-NUMBERS) - (COND - ((NULL SECOND-NUMBER-P) - 'COMPILER:PASS) - ((NULL MORE-NUMBERS) - `(%= ,FIRST-NUMBER ,SECOND-NUMBER)) - (T - (SETQ MORE-NUMBERS (CONS SECOND-NUMBER MORE-NUMBERS)) - `((IL:OPENLAMBDA - (SI::%$$=FIRST-NUMBER) - (AND ,@(LET ((RESULT NIL) - (RESULT-TAIL NIL)) - (DOLIST (NUMBER MORE-NUMBERS RESULT) - (%LIST-COLLECT RESULT RESULT-TAIL - (LIST `(%= SI::%$$=FIRST-NUMBER - ,NUMBER))))))) - ,FIRST-NUMBER)))) + &REST MORE-NUMBERS) + (COND + ((NULL SECOND-NUMBER-P) + 'COMPILER:PASS) + ((NULL MORE-NUMBERS) + `(%= ,FIRST-NUMBER ,SECOND-NUMBER)) + (T + (SETQ MORE-NUMBERS (CONS SECOND-NUMBER MORE-NUMBERS)) + `((IL:OPENLAMBDA (SI::%$$=FIRST-NUMBER) + (AND ,@(LET ((RESULT NIL) + (RESULT-TAIL NIL)) + (DOLIST (NUMBER MORE-NUMBERS RESULT) + (%LIST-COLLECT RESULT RESULT-TAIL + (LIST `(%= SI::%$$=FIRST-NUMBER ,NUMBER))))))) + ,FIRST-NUMBER)))) (XCL:DEFOPTIMIZER /= (FIRST-NUMBER &OPTIONAL (SECOND-NUMBER NIL SECOND-NUMBER-P) - &REST MORE-NUMBERS) - (COND - ((NULL SECOND-NUMBER-P) - 'COMPILER:PASS) - ((NULL MORE-NUMBERS) - `(%/= ,FIRST-NUMBER ,SECOND-NUMBER)) - (T 'COMPILER:PASS))) + &REST MORE-NUMBERS) + (COND + ((NULL SECOND-NUMBER-P) + 'COMPILER:PASS) + ((NULL MORE-NUMBERS) + `(%/= ,FIRST-NUMBER ,SECOND-NUMBER)) + (T 'COMPILER:PASS))) (XCL:DEFOPTIMIZER < (FIRST-NUMBER &OPTIONAL SECOND-NUMBER THIRD-NUMBER &REST MORE-NUMBERS) - (IF (NULL MORE-NUMBERS) - (%COMPARISON-OPTIMIZER '%< FIRST-NUMBER SECOND-NUMBER THIRD-NUMBER) - 'COMPILER:PASS)) + (IF (NULL MORE-NUMBERS) + (%COMPARISON-OPTIMIZER '%< FIRST-NUMBER SECOND-NUMBER THIRD-NUMBER) + 'COMPILER:PASS)) (XCL:DEFOPTIMIZER > (FIRST-NUMBER &OPTIONAL SECOND-NUMBER THIRD-NUMBER &REST MORE-NUMBERS) - (IF (NULL MORE-NUMBERS) - (%COMPARISON-OPTIMIZER '%> FIRST-NUMBER SECOND-NUMBER THIRD-NUMBER) - 'COMPILER:PASS)) + (IF (NULL MORE-NUMBERS) + (%COMPARISON-OPTIMIZER '%> FIRST-NUMBER SECOND-NUMBER THIRD-NUMBER) + 'COMPILER:PASS)) (XCL:DEFOPTIMIZER <= (FIRST-NUMBER &OPTIONAL SECOND-NUMBER THIRD-NUMBER &REST MORE-NUMBERS) - (IF (NULL MORE-NUMBERS) - (%COMPARISON-OPTIMIZER '%<= FIRST-NUMBER SECOND-NUMBER THIRD-NUMBER) - 'COMPILER:PASS)) + (IF (NULL MORE-NUMBERS) + (%COMPARISON-OPTIMIZER '%<= FIRST-NUMBER SECOND-NUMBER THIRD-NUMBER) + 'COMPILER:PASS)) (XCL:DEFOPTIMIZER >= (FIRST-NUMBER &OPTIONAL SECOND-NUMBER THIRD-NUMBER &REST MORE-NUMBERS) - (IF (NULL MORE-NUMBERS) - (%COMPARISON-OPTIMIZER '%>= FIRST-NUMBER SECOND-NUMBER THIRD-NUMBER) - 'COMPILER:PASS)) + (IF (NULL MORE-NUMBERS) + (%COMPARISON-OPTIMIZER '%>= FIRST-NUMBER SECOND-NUMBER THIRD-NUMBER) + 'COMPILER:PASS)) @@ -1045,30 +1045,30 @@ (XCL:DEFOPTIMIZER MIN (&OPTIONAL (X NIL X-P) - (Y NIL Y-P) - &REST OTHER-NUMBERS) - (IF (AND (NULL OTHER-NUMBERS) - X-P Y-P) - `((IL:OPENLAMBDA (SI::%$$MIN-X SI::%$$MIN-Y) - (IF (< SI::%$$MIN-X SI::%$$MIN-Y) - SI::%$$MIN-X - SI::%$$MIN-Y)) - ,X - ,Y) - 'COMPILER:PASS)) + (Y NIL Y-P) + &REST OTHER-NUMBERS) + (IF (AND (NULL OTHER-NUMBERS) + X-P Y-P) + `((IL:OPENLAMBDA (SI::%$$MIN-X SI::%$$MIN-Y) + (IF (< SI::%$$MIN-X SI::%$$MIN-Y) + SI::%$$MIN-X + SI::%$$MIN-Y)) + ,X + ,Y) + 'COMPILER:PASS)) (XCL:DEFOPTIMIZER MAX (&OPTIONAL (X NIL X-P) - (Y NIL Y-P) - &REST OTHER-NUMBERS) - (IF (AND (NULL OTHER-NUMBERS) - X-P Y-P) - `((IL:OPENLAMBDA (SI::%$$MAX-X SI::%$$MAX-Y) - (IF (> SI::%$$MAX-X SI::%$$MAX-Y) - SI::%$$MAX-X - SI::%$$MAX-Y)) - ,X - ,Y) - 'COMPILER:PASS)) + (Y NIL Y-P) + &REST OTHER-NUMBERS) + (IF (AND (NULL OTHER-NUMBERS) + X-P Y-P) + `((IL:OPENLAMBDA (SI::%$$MAX-X SI::%$$MAX-Y) + (IF (> SI::%$$MAX-X SI::%$$MAX-Y) + SI::%$$MAX-X + SI::%$$MAX-Y)) + ,X + ,Y) + 'COMPILER:PASS)) @@ -1255,7 +1255,7 @@ (FLOAT (TYPECASE Y ((OR INTEGER FLOAT) (IL:FQUOTIENT X Y)) (RATIO (IL:FQUOTIENT (* (RATIO-DENOMINATOR Y) - X) + X) (RATIO-NUMERATOR Y))) (COMPLEX (%COMPLEX-/ X 0.0 (COMPLEX-REALPART Y) (COMPLEX-IMAGPART Y))) @@ -1266,7 +1266,7 @@ 1 Y)) (FLOAT (IL:FQUOTIENT (RATIO-NUMERATOR X) (* (RATIO-DENOMINATOR X) - Y))) + Y))) (RATIO (%RATIO-TIMES (RATIO-NUMERATOR X) (RATIO-DENOMINATOR X) (RATIO-DENOMINATOR Y) @@ -1295,22 +1295,22 @@ ) -(IL:PUTPROPS %+ IL:DOPVAL (2 IL:PLUS2)) +(IL:PUTPROPS %+ IL:DOPVAL (2 IL:PLUS2)) -(IL:PUTPROPS %- IL:DOPVAL (2 IL:DIFFERENCE)) +(IL:PUTPROPS %- IL:DOPVAL (2 IL:DIFFERENCE)) -(IL:PUTPROPS %* IL:DOPVAL (2 IL:TIMES2)) +(IL:PUTPROPS %* IL:DOPVAL (2 IL:TIMES2)) (IL:* IL:\; "For the byte compiler") -(IL:PUTPROPS %+ IL:DMACRO (= . IL:PLUS)) +(IL:PUTPROPS %+ IL:DMACRO (= . IL:PLUS)) -(IL:PUTPROPS %- IL:DMACRO (= . IL:DIFFERENCE)) +(IL:PUTPROPS %- IL:DMACRO (= . IL:DIFFERENCE)) -(IL:PUTPROPS %* IL:DMACRO (= . IL:TIMES)) +(IL:PUTPROPS %* IL:DMACRO (= . IL:TIMES)) (IL:DECLARE\: IL:DONTEVAL@LOAD IL:DOCOPY @@ -1401,55 +1401,55 @@ (/ 1 NUMBER))) (XCL:DEFOPTIMIZER + (&REST NUMBERS) - (IF (NULL NUMBERS) - 0 - (LET ((FORM (CAR NUMBERS))) - (DOLIST (NUM (CDR NUMBERS) - FORM) - (SETQ FORM `(%+ ,FORM ,NUM)))))) + (IF (NULL NUMBERS) + 0 + (LET ((FORM (CAR NUMBERS))) + (DOLIST (NUM (CDR NUMBERS) + FORM) + (SETQ FORM `(%+ ,FORM ,NUM)))))) (XCL:DEFOPTIMIZER - (NUMBER &REST NUMBERS) - (IF (NULL NUMBERS) - `(%- 0 ,NUMBER) - (LET ((FORM NUMBER)) - (DOLIST (NUM NUMBERS FORM) - (SETQ FORM `(%- ,FORM ,NUM)))))) + (IF (NULL NUMBERS) + `(%- 0 ,NUMBER) + (LET ((FORM NUMBER)) + (DOLIST (NUM NUMBERS FORM) + (SETQ FORM `(%- ,FORM ,NUM)))))) (XCL:DEFOPTIMIZER * (&REST NUMBERS) - (IF (NULL NUMBERS) - 1 - (LET ((FORM (CAR NUMBERS))) - (DOLIST (NUM (CDR NUMBERS) - FORM) - (SETQ FORM `(%* ,FORM ,NUM)))))) + (IF (NULL NUMBERS) + 1 + (LET ((FORM (CAR NUMBERS))) + (DOLIST (NUM (CDR NUMBERS) + FORM) + (SETQ FORM `(%* ,FORM ,NUM)))))) (XCL:DEFOPTIMIZER / (NUMBER &REST NUMBERS) - (IF (NULL NUMBERS) - `(%RECIPROCOL ,NUMBER) - (LET ((FORM NUMBER)) - (DOLIST (NUM NUMBERS FORM) - (SETQ FORM `(%/ ,FORM ,NUM)))))) + (IF (NULL NUMBERS) + `(%RECIPROCOL ,NUMBER) + (LET ((FORM NUMBER)) + (DOLIST (NUM NUMBERS FORM) + (SETQ FORM `(%/ ,FORM ,NUM)))))) (XCL:DEFOPTIMIZER 1+ (NUMBER) - `(+ ,NUMBER 1)) + `(+ ,NUMBER 1)) (XCL:DEFOPTIMIZER 1- (NUMBER) - `(- ,NUMBER 1)) + `(- ,NUMBER 1)) (IL:* IL:\; "For the byte compiler") -(IL:PUTPROPS + IL:DMACRO (IL:ARGS (IL:|if| (IL:GREATERP (IL:LENGTH IL:ARGS) - 1) - IL:|then| `(IL:PLUS ,@IL:ARGS) - IL:|else| 'IL:IGNOREMACRO))) +(IL:PUTPROPS + IL:DMACRO (IL:ARGS (IL:|if| (IL:GREATERP (IL:LENGTH IL:ARGS) + 1) + IL:|then| `(IL:PLUS ,@IL:ARGS) + IL:|else| 'IL:IGNOREMACRO))) -(IL:PUTPROPS * IL:DMACRO (IL:ARGS (IL:|if| (IL:GREATERP (IL:LENGTH IL:ARGS) - 1) - IL:|then| `(IL:TIMES ,@IL:ARGS) - IL:|else| 'IL:IGNOREMACRO))) +(IL:PUTPROPS * IL:DMACRO (IL:ARGS (IL:|if| (IL:GREATERP (IL:LENGTH IL:ARGS) + 1) + IL:|then| `(IL:TIMES ,@IL:ARGS) + IL:|else| 'IL:IGNOREMACRO))) @@ -1469,8 +1469,8 @@ (IL:* IL:|;;| "So Interlisp quotient will do something reasonable with ratios") - (IL:* (IL:MOVD (QUOTE - IL:NEW-QUOTIENT) (QUOTE IL:QUOTIENT))) + (IL:* (IL:MOVD (QUOTE IL:NEW-QUOTIENT) + (QUOTE IL:QUOTIENT))) (IL:* IL:|;;| @@ -1532,7 +1532,7 @@ (IF (EQ GCD 1) (* X Y) (* (IL:IQUOTIENT X GCD) - Y)))))) + Y)))))) (IL:DEFINEQ (GCD @@ -1585,73 +1585,73 @@ (XCL:DEFOPTIMIZER IL:MINUS (IL:X) - `(- 0 ,IL:X)) + `(- 0 ,IL:X)) (XCL:DEFOPTIMIZER IL:PLUS (&REST NUMBERS) - (IF (NULL NUMBERS) - 0 - (LET ((FORM (CAR NUMBERS))) - (DOLIST (NUM (CDR NUMBERS) - FORM) - (SETQ FORM `(IL:PLUS2 ,FORM ,NUM)))))) + (IF (NULL NUMBERS) + 0 + (LET ((FORM (CAR NUMBERS))) + (DOLIST (NUM (CDR NUMBERS) + FORM) + (SETQ FORM `(IL:PLUS2 ,FORM ,NUM)))))) (XCL:DEFOPTIMIZER IL:IPLUS (&REST NUMBERS) - (IF (NULL NUMBERS) - 0 - (LET ((FORM (CAR NUMBERS))) - (COND - ((CDR NUMBERS) - (DOLIST (NUM (CDR NUMBERS) - FORM) - (SETQ FORM `(IL:IPLUS2 ,FORM ,NUM)))) - (T `(IL:IPLUS2 ,FORM 0)))))) + (IF (NULL NUMBERS) + 0 + (LET ((FORM (CAR NUMBERS))) + (COND + ((CDR NUMBERS) + (DOLIST (NUM (CDR NUMBERS) + FORM) + (SETQ FORM `(IL:IPLUS2 ,FORM ,NUM)))) + (T `(IL:IPLUS2 ,FORM 0)))))) (XCL:DEFOPTIMIZER IL:FPLUS (&REST NUMBERS) - (IF (NULL NUMBERS) - 0 - (LET ((FORM (CAR NUMBERS))) - (DOLIST (NUM (CDR NUMBERS) - FORM) - (SETQ FORM `(IL:FPLUS2 ,FORM ,NUM)))))) + (IF (NULL NUMBERS) + 0 + (LET ((FORM (CAR NUMBERS))) + (DOLIST (NUM (CDR NUMBERS) + FORM) + (SETQ FORM `(IL:FPLUS2 ,FORM ,NUM)))))) (XCL:DEFOPTIMIZER IL:TIMES (&REST NUMBERS) - (IF (NULL NUMBERS) - 0 - (LET ((FORM (CAR NUMBERS))) - (DOLIST (NUM (CDR NUMBERS) - FORM) - (SETQ FORM `(IL:TIMES2 ,FORM ,NUM)))))) + (IF (NULL NUMBERS) + 0 + (LET ((FORM (CAR NUMBERS))) + (DOLIST (NUM (CDR NUMBERS) + FORM) + (SETQ FORM `(IL:TIMES2 ,FORM ,NUM)))))) (XCL:DEFOPTIMIZER IL:ITIMES (&REST NUMBERS) - (IF (NULL NUMBERS) - 0 - (LET ((FORM (CAR NUMBERS))) - (DOLIST (NUM (CDR NUMBERS) - FORM) - (SETQ FORM `(IL:ITIMES2 ,FORM ,NUM)))))) + (IF (NULL NUMBERS) + 0 + (LET ((FORM (CAR NUMBERS))) + (DOLIST (NUM (CDR NUMBERS) + FORM) + (SETQ FORM `(IL:ITIMES2 ,FORM ,NUM)))))) (XCL:DEFOPTIMIZER IL:FTIMES (&REST NUMBERS) - (IF (NULL NUMBERS) - 1.0 - (LET ((FORM (CAR NUMBERS))) - (DOLIST (NUM (CDR NUMBERS) - FORM) - (SETQ FORM `(IL:FTIMES2 ,FORM ,NUM)))))) + (IF (NULL NUMBERS) + 1.0 + (LET ((FORM (CAR NUMBERS))) + (DOLIST (NUM (CDR NUMBERS) + FORM) + (SETQ FORM `(IL:FTIMES2 ,FORM ,NUM)))))) (XCL:DEFOPTIMIZER IL:RSH (IL:VALUE IL:SHIFT-AMOUNT) - `(IL:LSH ,IL:VALUE (IL:IMINUS ,IL:SHIFT-AMOUNT))) + `(IL:LSH ,IL:VALUE (IL:IMINUS ,IL:SHIFT-AMOUNT))) -(IL:PUTPROPS IL:PLUS2 IL:DOPVAL (2 IL:PLUS2)) +(IL:PUTPROPS IL:PLUS2 IL:DOPVAL (2 IL:PLUS2)) -(IL:PUTPROPS IL:IPLUS2 IL:DOPVAL (2 IL:IPLUS2)) +(IL:PUTPROPS IL:IPLUS2 IL:DOPVAL (2 IL:IPLUS2)) -(IL:PUTPROPS IL:FPLUS2 IL:DOPVAL (2 IL:FPLUS2)) +(IL:PUTPROPS IL:FPLUS2 IL:DOPVAL (2 IL:FPLUS2)) -(IL:PUTPROPS IL:TIMES2 IL:DOPVAL (2 IL:TIMES2)) +(IL:PUTPROPS IL:TIMES2 IL:DOPVAL (2 IL:TIMES2)) -(IL:PUTPROPS IL:ITIMES2 IL:DOPVAL (2 IL:ITIMES2)) +(IL:PUTPROPS IL:ITIMES2 IL:DOPVAL (2 IL:ITIMES2)) -(IL:PUTPROPS IL:FTIMES2 IL:DOPVAL (2 IL:FTIMES2)) +(IL:PUTPROPS IL:FTIMES2 IL:DOPVAL (2 IL:FTIMES2)) @@ -1669,19 +1669,19 @@ :NAME INTEGER :VALUE INTEGER :MESSAGE "a nonnegative integer")) (LET* ((ILENGTH (INTEGER-LENGTH INTEGER)) (LOW (ASH 1 (ASH (1- ILENGTH) - -1))) + -1))) (HIGH (+ LOW (ASH LOW (IF (ODDP ILENGTH) - -1 - 0))))) + -1 + 0))))) (DO ((MID (ASH (+ LOW HIGH) - -1) + -1) (ASH (+ LOW HIGH) - -1))) + -1))) ((<= (1- HIGH) - LOW) + LOW) LOW) (IF (<= (* MID MID) - INTEGER) + INTEGER) (SETQ LOW MID) (SETQ HIGH MID))))) @@ -1699,7 +1699,7 @@ (- 0.0 NUMBER) NUMBER)) (RATIO (IF (< (RATIO-NUMERATOR NUMBER) - 0) + 0) (%MAKE-RATIO (- 0 (RATIO-NUMERATOR NUMBER)) (RATIO-DENOMINATOR NUMBER)) NUMBER)) @@ -1711,9 +1711,9 @@ (IL:* IL:|;;| "Integer version of abs") `((IL:OPENLAMBDA (X) - (IF (< X 0) - (- 0 X) - X)) + (IF (< X 0) + (- 0 X) + X)) ,INTEGER)) (DEFUN SIGNUM (NUMBER) @@ -1737,12 +1737,12 @@ (IL:* IL:|;;| "Integer version of signum") `((IL:OPENLAMBDA (X) - (COND - ((EQ X 0) - 0) - ((PLUSP X) - 1) - (T -1))) + (COND + ((EQ X 0) + 0) + ((PLUSP X) + 1) + (T -1))) ,INTEGER)) @@ -1802,7 +1802,7 @@ (T RESULT))) (LET ((RESULT (XCL::STRUNCATE NUMBER DIVISOR))) (IF (= (REM NUMBER DIVISOR) - 0) + 0) RESULT (IF (< NUMBER 0) (IF (< DIVISOR 0) @@ -1826,7 +1826,7 @@ (T (1+ RESULT)))) (LET ((RESULT (XCL::STRUNCATE NUMBER DIVISOR))) (IF (= (REM NUMBER DIVISOR) - 0) + 0) RESULT (IF (< NUMBER 0) (IF (< DIVISOR 0) @@ -1848,14 +1848,14 @@ (IL:FIXR (/ NUMBER DIVISOR))))) (XCL:DEFOPTIMIZER XCL::STRUNCATE (NUMBER &OPTIONAL DIVISOR) - (IF (INTEGERP DIVISOR) - `(IL:IQUOTIENT ,NUMBER ,DIVISOR) - 'COMPILER:PASS)) + (IF (INTEGERP DIVISOR) + `(IL:IQUOTIENT ,NUMBER ,DIVISOR) + 'COMPILER:PASS)) (XCL:DEFOPTIMIZER XCL::SROUND (NUMBER &OPTIONAL (DIVISOR NIL DIVISOR-P)) - (IF (NULL DIVISOR-P) - `(IL:FIXR ,NUMBER) - 'COMPILER:PASS)) + (IF (NULL DIVISOR-P) + `(IL:FIXR ,NUMBER) + 'COMPILER:PASS)) @@ -1909,16 +1909,16 @@ 'COMPILER:PASS)) (XCL:DEFOPTIMIZER TRUNCATE (NUMBER &OPTIONAL DIVISOR XCL:&CONTEXT CONTEXT) - (%INTEGER-COERCE-OPTIMIZER 'XCL::STRUNCATE NUMBER DIVISOR CONTEXT)) + (%INTEGER-COERCE-OPTIMIZER 'XCL::STRUNCATE NUMBER DIVISOR CONTEXT)) (XCL:DEFOPTIMIZER FLOOR (NUMBER &OPTIONAL DIVISOR XCL:&CONTEXT CONTEXT) - (%INTEGER-COERCE-OPTIMIZER 'XCL::SFLOOR NUMBER DIVISOR CONTEXT)) + (%INTEGER-COERCE-OPTIMIZER 'XCL::SFLOOR NUMBER DIVISOR CONTEXT)) (XCL:DEFOPTIMIZER CEILING (NUMBER &OPTIONAL DIVISOR XCL:&CONTEXT CONTEXT) - (%INTEGER-COERCE-OPTIMIZER 'XCL::SCEILING NUMBER DIVISOR CONTEXT)) + (%INTEGER-COERCE-OPTIMIZER 'XCL::SCEILING NUMBER DIVISOR CONTEXT)) (XCL:DEFOPTIMIZER ROUND (NUMBER &OPTIONAL DIVISOR XCL:&CONTEXT CONTEXT) - (%INTEGER-COERCE-OPTIMIZER 'XCL::SROUND NUMBER DIVISOR CONTEXT)) + (%INTEGER-COERCE-OPTIMIZER 'XCL::SROUND NUMBER DIVISOR CONTEXT)) (DEFUN FTRUNCATE (NUMBER &OPTIONAL DIVISOR) @@ -1945,18 +1945,16 @@ (%INTEGER-COERCE-MACRO XCL::SROUND NUMBER DIVISOR T)) (XCL:DEFOPTIMIZER FTRUNCATE (NUMBER &OPTIONAL DIVISOR XCL:&CONTEXT CONTEXT) - (%INTEGER-COERCE-OPTIMIZER 'XCL::STRUNCATE NUMBER DIVISOR CONTEXT - T)) + (%INTEGER-COERCE-OPTIMIZER 'XCL::STRUNCATE NUMBER DIVISOR CONTEXT T)) (XCL:DEFOPTIMIZER FFLOOR (NUMBER &OPTIONAL DIVISOR XCL:&CONTEXT CONTEXT) - (%INTEGER-COERCE-OPTIMIZER 'XCL::SFLOOR NUMBER DIVISOR CONTEXT T)) + (%INTEGER-COERCE-OPTIMIZER 'XCL::SFLOOR NUMBER DIVISOR CONTEXT T)) (XCL:DEFOPTIMIZER FCEILING (NUMBER &OPTIONAL DIVISOR XCL:&CONTEXT CONTEXT) - (%INTEGER-COERCE-OPTIMIZER 'XCL::SCEILING NUMBER DIVISOR CONTEXT T - )) + (%INTEGER-COERCE-OPTIMIZER 'XCL::SCEILING NUMBER DIVISOR CONTEXT T)) (XCL:DEFOPTIMIZER FROUND (NUMBER &OPTIONAL DIVISOR XCL:&CONTEXT CONTEXT) - (%INTEGER-COERCE-OPTIMIZER 'XCL::SROUND NUMBER DIVISOR CONTEXT T)) + (%INTEGER-COERCE-OPTIMIZER 'XCL::SROUND NUMBER DIVISOR CONTEXT T)) (DEFUN MOD (NUMBER DIVISOR) @@ -1969,7 +1967,7 @@ REM) (DECLARE (TYPE FLOAT FX FY REM)) (SETQ REM (- FX (* (FLOAT (IL:UFIX (IL:FQUOTIENT FX FY))) - FY))) + FY))) (IF (IL:UFEQP REM 0.0) 0.0 (IF (IF (IL:UFGREATERP 0.0 FY) @@ -1999,7 +1997,7 @@ (FY (FLOAT DIVISOR))) (DECLARE (TYPE FLOAT FX FY)) (SETQ FX (- FX (* (FLOAT (IL:UFIX (IL:FQUOTIENT FX FY))) - FY))))) + FY))))) (T (- NUMBER (* DIVISOR (XCL::STRUNCATE NUMBER DIVISOR)))))) @@ -2037,16 +2035,16 @@ (SETQ FORM `(,BINARY-LOGICAL-FN ,FORM ,INTEGER))))))) (XCL:DEFOPTIMIZER LOGXOR (FIRST-INTEGER SECOND-INTEGER &REST MORE-INTEGERS) - (IF (AND COMPILER::*NEW-COMPILER-IS-EXPANDING* MORE-INTEGERS) - (%LOGICAL-OPTIMIZER 'LOGXOR 0 FIRST-INTEGER SECOND-INTEGER - MORE-INTEGERS) - 'COMPILER:PASS)) + (IF (AND COMPILER::*NEW-COMPILER-IS-EXPANDING* MORE-INTEGERS) + (%LOGICAL-OPTIMIZER 'LOGXOR 0 FIRST-INTEGER SECOND-INTEGER MORE-INTEGERS + ) + 'COMPILER:PASS)) (XCL:DEFOPTIMIZER LOGAND (FIRST-INTEGER SECOND-INTEGER &REST MORE-INTEGERS) - (IF (AND COMPILER::*NEW-COMPILER-IS-EXPANDING* MORE-INTEGERS) - (%LOGICAL-OPTIMIZER 'LOGAND -1 FIRST-INTEGER SECOND-INTEGER - MORE-INTEGERS) - 'COMPILER:PASS)) + (IF (AND COMPILER::*NEW-COMPILER-IS-EXPANDING* MORE-INTEGERS) + (%LOGICAL-OPTIMIZER 'LOGAND -1 FIRST-INTEGER SECOND-INTEGER + MORE-INTEGERS) + 'COMPILER:PASS)) (DEFUN %LOGIOR (X Y) (IL:LOGOR X Y)) @@ -2054,14 +2052,14 @@ (DEFMACRO %LOGEQV (X Y) `(LOGNOT (LOGXOR ,X ,Y))) -(IL:PUTPROPS %LOGIOR IL:DOPVAL (2 IL:LOGOR2)) +(IL:PUTPROPS %LOGIOR IL:DOPVAL (2 IL:LOGOR2)) (IL:* IL:\; "for the byte compiler") -(IL:PUTPROPS %LOGIOR IL:DMACRO (= . IL:LOGOR)) +(IL:PUTPROPS %LOGIOR IL:DMACRO (= . IL:LOGOR)) (IL:DEFINEQ (LOGIOR @@ -2108,12 +2106,10 @@ ) (XCL:DEFOPTIMIZER LOGIOR (FIRST-INTEGER SECOND-INTEGER &REST MORE-INTEGERS) - (%LOGICAL-OPTIMIZER '%LOGIOR 0 FIRST-INTEGER SECOND-INTEGER - MORE-INTEGERS)) + (%LOGICAL-OPTIMIZER '%LOGIOR 0 FIRST-INTEGER SECOND-INTEGER MORE-INTEGERS)) (XCL:DEFOPTIMIZER LOGEQV (FIRST-INTEGER SECOND-INTEGER &REST MORE-INTEGERS) - (%LOGICAL-OPTIMIZER '%LOGEQV -1 FIRST-INTEGER SECOND-INTEGER - MORE-INTEGERS)) + (%LOGICAL-OPTIMIZER '%LOGEQV -1 FIRST-INTEGER SECOND-INTEGER MORE-INTEGERS)) (DEFUN LOGNAND (INTEGER1 INTEGER2) (LOGNOT (LOGAND INTEGER1 INTEGER2))) @@ -2136,24 +2132,24 @@ (LOGIOR INTEGER1 (LOGNOT INTEGER2))) (XCL:DEFOPTIMIZER LOGNAND (INTEGER1 INTEGER2) - `(LOGNOT (LOGAND ,INTEGER1 ,INTEGER2))) + `(LOGNOT (LOGAND ,INTEGER1 ,INTEGER2))) (XCL:DEFOPTIMIZER LOGNOR (INTEGER1 INTEGER2) - `(LOGNOT (LOGIOR ,INTEGER1 ,INTEGER2))) + `(LOGNOT (LOGIOR ,INTEGER1 ,INTEGER2))) (XCL:DEFOPTIMIZER LOGANDC1 (INTEGER1 INTEGER2) - `(LOGAND (LOGNOT ,INTEGER1) - ,INTEGER2)) + `(LOGAND (LOGNOT ,INTEGER1) + ,INTEGER2)) (XCL:DEFOPTIMIZER LOGANDC2 (INTEGER1 INTEGER2) - `(LOGAND ,INTEGER1 (LOGNOT ,INTEGER2))) + `(LOGAND ,INTEGER1 (LOGNOT ,INTEGER2))) (XCL:DEFOPTIMIZER LOGORC1 (INTEGER1 INTEGER2) - `(LOGIOR (LOGNOT ,INTEGER1) - ,INTEGER2)) + `(LOGIOR (LOGNOT ,INTEGER1) + ,INTEGER2)) (XCL:DEFOPTIMIZER LOGORC2 (INTEGER1 INTEGER2) - `(LOGIOR ,INTEGER1 (LOGNOT ,INTEGER2))) + `(LOGIOR ,INTEGER1 (LOGNOT ,INTEGER2))) (DEFCONSTANT BOOLE-CLR 0) @@ -2235,19 +2231,19 @@ (EQ 1 (LOGAND 1 (ASH INTEGER (- INDEX))))) (XCL:DEFOPTIMIZER LOGTEST (INTEGER1 INTEGER2) - `(NOT (EQ 0 (LOGAND ,INTEGER1 ,INTEGER2)))) + `(NOT (EQ 0 (LOGAND ,INTEGER1 ,INTEGER2)))) (DEFUN ASH (INTEGER COUNT) (IL:LSH INTEGER COUNT)) -(IL:PUTPROPS ASH IL:DOPVAL (2 IL:LSH)) +(IL:PUTPROPS ASH IL:DOPVAL (2 IL:LSH)) (IL:* IL:\; "For the byte compiler") -(IL:PUTPROPS ASH IL:DMACRO (= . IL:LSH)) +(IL:PUTPROPS ASH IL:DMACRO (= . IL:LSH)) (DEFUN LOGCOUNT (INTEGER) @@ -2266,10 +2262,10 @@ (IL:* IL:|;;| "Returns number of 1 bits in nonnegative integer N. ") (LET ((CNT 0)) (IL:* IL:\; - "This loop uses a LOGAND trick to reduce the number of iterations. ") + "This loop uses a LOGAND trick to reduce the number of iterations. ") (LOOP (IF (EQ 0 POSITIVE-INTEGER) (RETURN CNT)) (IL:* IL:\; - "Change rightmost 1 bit of N to a 0 bit. ") + "Change rightmost 1 bit of N to a 0 bit. ") (SETQ CNT (1+ CNT)) (SETQ POSITIVE-INTEGER (LOGAND POSITIVE-INTEGER (1- POSITIVE-INTEGER)))))) (IL:DECLARE\: IL:DONTCOPY IL:DOEVAL@COMPILE @@ -2353,49 +2349,49 @@ (DEFUN %LRSH1 (X) (IL:LRSH X 1)) -(IL:PUTPROPS %LLSH8 IL:DOPVAL (1 IL:LLSH8)) +(IL:PUTPROPS %LLSH8 IL:DOPVAL (1 IL:LLSH8)) -(IL:PUTPROPS %LLSH1 IL:DOPVAL (1 IL:LLSH1)) +(IL:PUTPROPS %LLSH1 IL:DOPVAL (1 IL:LLSH1)) -(IL:PUTPROPS %LRSH8 IL:DOPVAL (1 IL:LRSH8)) +(IL:PUTPROPS %LRSH8 IL:DOPVAL (1 IL:LRSH8)) -(IL:PUTPROPS %LRSH1 IL:DOPVAL (1 IL:LRSH1)) +(IL:PUTPROPS %LRSH1 IL:DOPVAL (1 IL:LRSH1)) (XCL:DEFOPTIMIZER IL:LLSH (X N) - (IF COMPILER::*NEW-COMPILER-IS-EXPANDING* - (LET ((M (AND (CONSTANTP N) - (EVAL N)))) - (IF (TYPEP M '(INTEGER 0)) - (LET ((FORM X)) - (LOOP (IF (< M 8) - (RETURN NIL)) - (SETQ FORM `(%LLSH8 ,FORM)) - (DECF M 8)) - (LOOP (IF (<= M 0) - (RETURN NIL)) - (SETQ FORM `(%LLSH1 ,FORM)) - (DECF M 1)) - FORM) - 'COMPILER:PASS)) - 'COMPILER:PASS)) + (IF COMPILER::*NEW-COMPILER-IS-EXPANDING* + (LET ((M (AND (CONSTANTP N) + (EVAL N)))) + (IF (TYPEP M '(INTEGER 0)) + (LET ((FORM X)) + (LOOP (IF (< M 8) + (RETURN NIL)) + (SETQ FORM `(%LLSH8 ,FORM)) + (DECF M 8)) + (LOOP (IF (<= M 0) + (RETURN NIL)) + (SETQ FORM `(%LLSH1 ,FORM)) + (DECF M 1)) + FORM) + 'COMPILER:PASS)) + 'COMPILER:PASS)) (XCL:DEFOPTIMIZER IL:LRSH (X N) - (IF COMPILER::*NEW-COMPILER-IS-EXPANDING* - (LET ((M (AND (CONSTANTP N) - (EVAL N)))) - (IF (TYPEP M '(INTEGER 0)) - (LET ((FORM X)) - (LOOP (IF (< M 8) - (RETURN NIL)) - (SETQ FORM `(%LRSH8 ,FORM)) - (DECF M 8)) - (LOOP (IF (<= M 0) - (RETURN NIL)) - (SETQ FORM `(%LRSH1 ,FORM)) - (DECF M 1)) - FORM) - 'COMPILER:PASS)) - 'COMPILER:PASS)) + (IF COMPILER::*NEW-COMPILER-IS-EXPANDING* + (LET ((M (AND (CONSTANTP N) + (EVAL N)))) + (IF (TYPEP M '(INTEGER 0)) + (LET ((FORM X)) + (LOOP (IF (< M 8) + (RETURN NIL)) + (SETQ FORM `(%LRSH8 ,FORM)) + (DECF M 8)) + (LOOP (IF (<= M 0) + (RETURN NIL)) + (SETQ FORM `(%LRSH1 ,FORM)) + (DECF M 1)) + FORM) + 'COMPILER:PASS)) + 'COMPILER:PASS)) @@ -2409,7 +2405,7 @@ (IF (AND (< SIZE 256) (< POSITION 256)) (+ (ASH SIZE 8) - POSITION) + POSITION) (CONS SIZE POSITION)))) (XCL:DEFINLINE BYTE-SIZE (BYTESPEC) @@ -2433,18 +2429,18 @@ (IF (AND (TYPEP SIZE '(INTEGER 0 255)) (TYPEP POSITION '(INTEGER 0 255))) (+ (ASH SIZE 8) - POSITION) + POSITION) 'COMPILER:PASS)) -(IL:PUTPROPS BYTE IL:DMACRO (IL:ARGS (OPTIMIZE-BYTE (CAR IL:ARGS) - (CADR IL:ARGS)))) +(IL:PUTPROPS BYTE IL:DMACRO (IL:ARGS (OPTIMIZE-BYTE (CAR IL:ARGS) + (CADR IL:ARGS)))) (IL:DECLARE\: IL:DONTCOPY IL:DOEVAL@COMPILE (DEFMACRO %MAKE-BYTE-MASK-1 (SIZE POSITION) (IF (EQ POSITION 0) `(1- (ASH 1 ,SIZE)) `(ASH (1- (ASH 1 ,SIZE)) - ,POSITION))) + ,POSITION))) (DEFMACRO %MAKE-BYTE-MASK-0 (SIZE POSITION) `(LOGNOT (%MAKE-BYTE-MASK-1 ,SIZE ,POSITION))) @@ -2460,7 +2456,7 @@ (LET ((SIZE (BYTE-SIZE BYTESPEC)) (POSITION (BYTE-POSITION BYTESPEC))) (LOGIOR (ASH (LOGAND NEWBYTE (%MAKE-BYTE-MASK-1 SIZE 0)) - POSITION) + POSITION) (LOGAND INTEGER (%MAKE-BYTE-MASK-0 SIZE POSITION))))) (DEFUN MASK-FIELD (BYTESPEC INTEGER) @@ -2488,58 +2484,53 @@ (T NIL))) (XCL:DEFOPTIMIZER LDB (BYTESPEC INTEGER) - (LET ((CONSTANT-BYTE (%CONSTANT-BYTESPEC-P BYTESPEC))) - (IF CONSTANT-BYTE - (LET ((SIZE (BYTE-SIZE CONSTANT-BYTE)) - (POSITION (BYTE-POSITION CONSTANT-BYTE))) - (IF (ZEROP POSITION) - `(LOGAND ,INTEGER ,(%MAKE-BYTE-MASK-1 SIZE 0)) - `(LOGAND (ASH ,INTEGER ,(- POSITION)) - ,(%MAKE-BYTE-MASK-1 SIZE 0)))) - 'COMPILER:PASS))) + (LET ((CONSTANT-BYTE (%CONSTANT-BYTESPEC-P BYTESPEC))) + (IF CONSTANT-BYTE + (LET ((SIZE (BYTE-SIZE CONSTANT-BYTE)) + (POSITION (BYTE-POSITION CONSTANT-BYTE))) + (IF (ZEROP POSITION) + `(LOGAND ,INTEGER ,(%MAKE-BYTE-MASK-1 SIZE 0)) + `(LOGAND (ASH ,INTEGER ,(- POSITION)) + ,(%MAKE-BYTE-MASK-1 SIZE 0)))) + 'COMPILER:PASS))) (XCL:DEFOPTIMIZER DPB (NEWBYTE BYTESPEC INTEGER) - (LET ((CONSTANT-BYTE (%CONSTANT-BYTESPEC-P BYTESPEC))) - (IF CONSTANT-BYTE - (LET ((SIZE (BYTE-SIZE CONSTANT-BYTE)) - (POSITION (BYTE-POSITION CONSTANT-BYTE))) - (IF (ZEROP POSITION) - `(LOGIOR (LOGAND ,NEWBYTE ,(%MAKE-BYTE-MASK-1 - SIZE 0)) - (LOGAND ,INTEGER ,(%MAKE-BYTE-MASK-0 SIZE 0)) - ) - `(LOGIOR (ASH (LOGAND ,NEWBYTE - ,(%MAKE-BYTE-MASK-1 - SIZE 0)) - ,POSITION) - (LOGAND ,INTEGER ,(%MAKE-BYTE-MASK-0 SIZE - POSITION))))) - 'COMPILER:PASS))) + (LET ((CONSTANT-BYTE (%CONSTANT-BYTESPEC-P BYTESPEC))) + (IF CONSTANT-BYTE + (LET ((SIZE (BYTE-SIZE CONSTANT-BYTE)) + (POSITION (BYTE-POSITION CONSTANT-BYTE))) + (IF (ZEROP POSITION) + `(LOGIOR (LOGAND ,NEWBYTE ,(%MAKE-BYTE-MASK-1 SIZE 0)) + (LOGAND ,INTEGER ,(%MAKE-BYTE-MASK-0 SIZE 0))) + `(LOGIOR (ASH (LOGAND ,NEWBYTE ,(%MAKE-BYTE-MASK-1 SIZE 0)) + ,POSITION) + (LOGAND ,INTEGER ,(%MAKE-BYTE-MASK-0 SIZE POSITION)))) + ) + 'COMPILER:PASS))) (XCL:DEFOPTIMIZER MASK-FIELD (BYTESPEC INTEGER) - (LET ((CONSTANT-BYTE (%CONSTANT-BYTESPEC-P BYTESPEC))) - (IF CONSTANT-BYTE - (LET ((SIZE (BYTE-SIZE CONSTANT-BYTE)) - (POSITION (BYTE-POSITION CONSTANT-BYTE))) - `(LOGAND ,INTEGER ,(%MAKE-BYTE-MASK-1 SIZE - POSITION))) - 'COMPILER:PASS))) + (LET ((CONSTANT-BYTE (%CONSTANT-BYTESPEC-P BYTESPEC))) + (IF CONSTANT-BYTE + (LET ((SIZE (BYTE-SIZE CONSTANT-BYTE)) + (POSITION (BYTE-POSITION CONSTANT-BYTE))) + `(LOGAND ,INTEGER ,(%MAKE-BYTE-MASK-1 SIZE POSITION))) + 'COMPILER:PASS))) (XCL:DEFOPTIMIZER DEPOSIT-FIELD (NEWBYTE BYTESPEC INTEGER) - (LET ((CONSTANT-BYTE (%CONSTANT-BYTESPEC-P BYTESPEC))) - (IF CONSTANT-BYTE - (LET* ((SIZE (BYTE-SIZE CONSTANT-BYTE)) - (POSITION (BYTE-POSITION CONSTANT-BYTE)) - (MASK (%MAKE-BYTE-MASK-1 SIZE POSITION))) - `(LOGIOR (LOGAND ,NEWBYTE ,MASK) - (LOGAND ,INTEGER ,(LOGNOT MASK)))) - 'COMPILER:PASS))) + (LET ((CONSTANT-BYTE (%CONSTANT-BYTESPEC-P BYTESPEC))) + (IF CONSTANT-BYTE + (LET* ((SIZE (BYTE-SIZE CONSTANT-BYTE)) + (POSITION (BYTE-POSITION CONSTANT-BYTE)) + (MASK (%MAKE-BYTE-MASK-1 SIZE POSITION))) + `(LOGIOR (LOGAND ,NEWBYTE ,MASK) + (LOGAND ,INTEGER ,(LOGNOT MASK)))) + 'COMPILER:PASS))) (DEFUN LDB-TEST (BYTESPEC INTEGER) (NOT (EQ 0 (LDB BYTESPEC INTEGER)))) (XCL:DEFOPTIMIZER LDB-TEST (BYTESPEC INTEGER) - `(NOT (EQ 0 (LDB ,BYTESPEC ,INTEGER)))) + `(NOT (EQ 0 (LDB ,BYTESPEC ,INTEGER)))) (IL:DECLARE\: IL:DONTCOPY IL:DOEVAL@COMPILE (IL:DECLARE\: IL:DOEVAL@COMPILE IL:DONTCOPY @@ -2547,9 +2538,9 @@ ) ) -(IL:PUTPROPS IL:CMLARITH IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE "LISP")) +(IL:PUTPROPS IL:CMLARITH IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE "LISP")) -(IL:PUTPROPS IL:CMLARITH IL:FILETYPE COMPILE-FILE) +(IL:PUTPROPS IL:CMLARITH IL:FILETYPE COMPILE-FILE) (IL:DECLARE\: IL:DONTEVAL@LOAD IL:DOEVAL@COMPILE IL:DONTCOPY IL:COMPILERVARS (IL:ADDTOVAR IL:NLAMA ) @@ -2561,8 +2552,47 @@ (IL:PUTPROPS IL:CMLARITH IL:COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1988 1989 1990 1993) ) (IL:DECLARE\: IL:DONTCOPY - (IL:FILEMAP (NIL (39320 41192 (= 39333 . 39855) (/= 39857 . 40582) (< 40584 . 40733) (> 40735 . 40884) - (<= 40886 . 41037) (>= 41039 . 41190)) (57727 59881 (+ 57740 . 58248) (- 58250 . 58830) (* 58832 . -59340) (/ 59342 . 59879)) (64441 65951 (GCD 64454 . 65229) (LCM 65231 . 65949)) (83940 85510 (LOGIOR -83953 . 84729) (LOGEQV 84731 . 85508))))) + (IL:FILEMAP (NIL (17111 17229 (%NOT-NUMBER-ERROR 17111 . 17229)) (17231 17444 ( +%NOT-NONCOMPLEX-NUMBER-ERROR 17231 . 17444)) (17446 17566 (%NOT-INTEGER-ERROR 17446 . 17566)) (17568 +17690 (%NOT-RATIONAL-ERROR 17568 . 17690)) (17692 17808 (%NOT-FLOAT-ERROR 17692 . 17808)) (18334 18571 + (DENOMINATOR 18334 . 18571)) (18573 18809 (NUMERATOR 18573 . 18809)) (18902 21818 (%RATIO-PRINT 18902 + . 21818)) (21820 22424 (%BUILD-RATIO 21820 . 22424)) (22426 22885 (RATIONAL 22426 . 22885)) (22887 +23368 (RATIONALIZE 22887 . 23368)) (23370 24386 (%RATIO-PLUS 23370 . 24386)) (24388 25187 ( +%RATIO-TIMES 24388 . 25187)) (26169 27030 (COMPLEX 26169 . 27030)) (27032 27198 (REALPART 27032 . +27198)) (27200 27380 (IMAGPART 27200 . 27380)) (27382 27622 (CONJUGATE 27382 . 27622)) (27624 28101 ( +PHASE 27624 . 28101)) (28103 28670 (%COMPLEX-PRINT 28103 . 28670)) (28672 28996 (%COMPLEX-+ 28672 . +28996)) (28998 29330 (%COMPLEX-- 28998 . 29330)) (29332 29786 (%COMPLEX-* 29332 . 29786)) (29788 30654 + (%COMPLEX-/ 29788 . 30654)) (30656 30961 (%COMPLEX-ABS 30656 . 30961)) (31580 31626 (ZEROP 31580 . +31626)) (31628 31674 (PLUSP 31628 . 31674)) (31977 32024 (MINUSP 31977 . 32024)) (32352 32509 (EVENP +32352 . 32509)) (32511 32673 (ODDP 32511 . 32673)) (33247 35130 (%= 33247 . 35130)) (35132 35181 (%/= +35132 . 35181)) (35183 36942 (%> 35183 . 36942)) (36944 36980 (%< 36944 . 36980)) (36982 37031 (%>= +36982 . 37031)) (37033 37082 (%<= 37033 . 37082)) (38352 39211 (%COMPARISON-MACRO 38352 . 39211)) ( +39214 41086 (= 39227 . 39749) (/= 39751 . 40476) (< 40478 . 40627) (> 40629 . 40778) (<= 40780 . 40931 +) (>= 40933 . 41084)) (41088 41629 (%COMPARISON-OPTIMIZER 41088 . 41629)) (45755 48239 (%+ 45755 . +48239)) (48241 50782 (%- 48241 . 50782)) (50784 53230 (%* 50784 . 53230)) (53232 56469 (%/ 53232 . +56469)) (57279 59433 (+ 57292 . 57800) (- 57802 . 58382) (* 58384 . 58892) (/ 58894 . 59431)) (59435 +59478 (1+ 59435 . 59478)) (59480 59523 (1- 59480 . 59523)) (59525 59638 (%RECIPROCOL 59525 . 59638)) ( +62448 63497 (%GCD 62448 . 63497)) (63499 63869 (%LCM 63499 . 63869)) (63870 65380 (GCD 63883 . 64658) +(LCM 64660 . 65378)) (68708 69947 (ISQRT 68708 . 69947)) (70029 70583 (ABS 70029 . 70583)) (70585 +70763 (%ABS 70585 . 70763)) (70765 71259 (SIGNUM 70765 . 71259)) (71261 71489 (%SIGNUM 71261 . 71489)) + (71776 72741 (XCL::STRUNCATE 71776 . 72741)) (72743 73561 (XCL::SFLOOR 72743 . 73561)) (73563 74377 ( +XCL::SCEILING 73563 . 74377)) (74379 74732 (XCL::SROUND 74379 . 74732)) (75310 75848 ( +%INTEGER-COERCE-MACRO 75310 . 75848)) (75852 76100 (TRUNCATE 75852 . 76100)) (76102 76352 (FLOOR 76102 + . 76352)) (76354 76608 (CEILING 76354 . 76608)) (76610 76865 (ROUND 76610 . 76865)) (76867 77206 ( +%INTEGER-COERCE-OPTIMIZER 76867 . 77206)) (77903 78154 (FTRUNCATE 77903 . 78154)) (78156 78340 (FFLOOR + 78156 . 78340)) (78342 78599 (FCEILING 78342 . 78599)) (78601 78859 (FROUND 78601 . 78859)) (79572 +80517 (MOD 79572 . 80517)) (80519 81086 (REM 80519 . 81086)) (81495 81989 (%LOGICAL-OPTIMIZER 81495 . +81989)) (82708 82751 (%LOGIOR 82708 . 82751)) (82753 82809 (%LOGEQV 82753 . 82809)) (82966 84536 ( +LOGIOR 82979 . 83755) (LOGEQV 83757 . 84534)) (84911 84989 (LOGNAND 84911 . 84989)) (84991 85072 ( +LOGNOR 84991 . 85072)) (85074 85163 (LOGANDC1 85074 . 85163)) (85165 85244 (LOGANDC2 85165 . 85244)) ( +85246 85338 (LOGORC1 85246 . 85338)) (85340 85422 (LOGORC2 85340 . 85422)) (86712 87701 (BOOLE 86712 + . 87701)) (87768 87850 (LOGTEST 87768 . 87850)) (88071 88128 (ASH 88071 . 88128)) (88273 88742 ( +LOGCOUNT 88273 . 88742)) (88744 89405 (%LOGCOUNT 88744 . 89405)) (89548 89780 (%BIGNUM-LOGCOUNT 89548 + . 89780)) (89782 91478 (INTEGER-LENGTH 89782 . 91478)) (91540 91579 (%LLSH8 91540 . 91579)) (91581 +91620 (%LLSH1 91581 . 91620)) (91622 91661 (%LRSH8 91622 . 91661)) (91663 91702 (%LRSH1 91663 . 91702) +) (94077 94389 (BYTE 94077 . 94389)) (94815 95019 (OPTIMIZE-BYTE 94815 . 95019)) (95203 95378 ( +%MAKE-BYTE-MASK-1 95203 . 95378)) (95380 95481 (%MAKE-BYTE-MASK-0 95380 . 95481)) (95485 95709 (LDB +95485 . 95709)) (95711 96024 (DPB 95711 . 96024)) (96026 96222 (MASK-FIELD 96026 . 96222)) (96224 +96516 (DEPOSIT-FIELD 96224 . 96516)) (96518 96821 (%CONSTANT-BYTESPEC-P 96518 . 96821)) (99730 99812 ( +LDB-TEST 99730 . 99812))))) IL:STOP diff --git a/sources/CMLARITH.LCOM b/sources/CMLARITH.LCOM index ec11e77b..e26b23ae 100644 --- a/sources/CMLARITH.LCOM +++ b/sources/CMLARITH.LCOM @@ -1,9 +1,10 @@ -(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "LISP") -(IL:FILECREATED "13-Jun-2021 21:16:13" ("compiled on " -IL:|{DSK}kaplan>Local>medley3.5>git-medley>sources>CMLARITH.;1|) "13-Jun-2021 14:44:27" -"COMPILE-FILEd" IL:|in| "FULL 13-Jun-2021 ..." IL:|dated| "13-Jun-2021 14:44:40") -(IL:FILECREATED " 4-Jan-93 17:38:48" IL:|{DSK}lde>lispcore>sources>CMLARITH.;2| 102283 -IL:|previous| IL:|date:| "16-May-90 12:46:36" IL:|{DSK}lde>lispcore>sources>CMLARITH.;1|) +(DEFINE-FILE-INFO PACKAGE "LISP" READTABLE "XCL" BASE 10) + +(IL:FILECREATED "23-Sep-2023 23:16:18" ("compiled on " IL:|{WMEDLEY}CMLARITH.;2|) +"23-Sep-2023 23:13:47" "COMPILE-FILEd" IL:|in| "FULL 23-Sep-2023 ..." IL:|dated| +"23-Sep-2023 23:13:54") +(IL:FILECREATED "23-Sep-2023 23:15:39" IL:|{WMEDLEY}CMLARITH.;2| 100545 :EDIT-BY IL:|rmk| +:PREVIOUS-DATE " 4-Jan-93 17:38:48" IL:|{WMEDLEY}CMLARITH.;1|) (IL:RPAQQ IL:CMLARITHCOMS ((IL:* IL:|;;;| "Common Lisp Arithmetic ") (IL:COMS (IL:* IL:|;;| "Error utilities") (IL:FUNCTIONS %NOT-NUMBER-ERROR %NOT-NONCOMPLEX-NUMBER-ERROR %NOT-INTEGER-ERROR %NOT-RATIONAL-ERROR %NOT-FLOAT-ERROR)) (IL:COMS (IL:* IL:|;;;| "Section 2.1.2 Ratios. ") (IL:COMS ( @@ -688,9 +689,9 @@ NIL ( 10 (IL:OPENLAMBDA (X) (COND ((EQ X 0) 0) ((PLUSP X) 1) (T -1)))) (IL:SETF-MACRO-FUNCTION (QUOTE %SIGNUM) (QUOTE |expand-%SIGNUM|)) XCL::STRUNCATE :D8 -(IL:L (1 DIVISOR 0 NUMBER)) tA9@d@ d@@3 @@ Hd3 @A@AH@A - A (113 %NOT-NONCOMPLEX-NUMBER-ERROR 106 XCL::STRUNCATE 101 %/ 56 %NOT-NONCOMPLEX-NUMBER-ERROR 17 IL:\\FIXP.FROM.FLOATP) -(93 RATIO 75 IL:FLOATP 41 RATIO 33 RATIO 24 RATIO 9 IL:FLOATP) +(IL:L (1 DIVISOR 0 NUMBER)) }A9@d@ d@@3 @@ Hd3 @A@AI H@A + A (122 %NOT-NONCOMPLEX-NUMBER-ERROR 115 XCL::STRUNCATE 110 %/ 95 IL:UFIX 56 %NOT-NONCOMPLEX-NUMBER-ERROR 17 IL:\\FIXP.FROM.FLOATP) +(102 RATIO 75 IL:FLOATP 41 RATIO 33 RATIO 24 RATIO 9 IL:FLOATP) () XCL::SFLOOR :D8 (IL:L (1 DIVISOR 0 NUMBER)) GA@ H@Hj@Hk@A @@ -814,14 +815,17 @@ QUOTE FFLOOR) (QUOTE COMPILER:OPTIMIZER-LIST)))) (IL:PUTPROP (QUOTE FROUND) (QUOTE COMPILER:OPTIMIZER-LIST) (ADJOIN (QUOTE |optimize-FROUND|) (GET ( QUOTE FROUND) (QUOTE COMPILER:OPTIMIZER-LIST)))) MOD :D8 -(IL:L (1 DIVISOR 0 NUMBER)) l@AD@AhHdIIZddhhIHhHJIJ@A -jHjA@jj@HAH(82 REM) -(31 IL:FLOATP) -() +(IL:L (1 DIVISOR 0 NUMBER)) @Ak@AhHdI IZddo +3oI +HooH +JIJ@A +jHjA@jj@HAH(121 REM 99 IL:UFGREATERP 76 IL:UFGREATERP 60 IL:UFEQP 32 IL:UFIX) +(37 IL:FLOATP) +( 91 0.0 85 0.0 68 0.0 55 0.0) REM :D8 -(IL:L (1 DIVISOR 0 NUMBER)) D@d3 A3 @A@A"@AHdII@A@A -(63 XCL::STRUNCATE) -(43 IL:FLOATP) +(IL:L (1 DIVISOR 0 NUMBER)) J@d3 A3 @A@A(@AHdI I@A@A +(69 XCL::STRUNCATE 44 IL:UFIX) +(49 IL:FLOATP) () %LOGICAL-OPTIMIZER :D8 (IL:L (4 MORE-INTEGERS 3 SECOND-INTEGER 2 FIRST-INTEGER 1 IDENTITY 0 BINARY-LOGICAL-FN)) 1BACBD@BCh@BCh!DYH@HJhINIL From 1bed018db873c783c903a49bf1d9fcacfce95247 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Sun, 24 Sep 2023 16:41:52 -0700 Subject: [PATCH 2/3] CMLARITH: The compiled file was bad in the previous commit This has a FILESLOAD for lispusers/UNBOXEDOPS that somehow didn't get executed by the previous cleanup. (That may be a separate issue with the compiler interface, not clear that it always makes the right choices even when the FILETYPE property is set.) But this also begs the question, why is UNBOXEDOPS on lispusers? --- sources/CMLARITH | 94 +++++++++++++++++++++---------------------- sources/CMLARITH.LCOM | 35 +++++++--------- 2 files changed, 60 insertions(+), 69 deletions(-) diff --git a/sources/CMLARITH b/sources/CMLARITH index 86733ee2..419cabf9 100644 --- a/sources/CMLARITH +++ b/sources/CMLARITH @@ -1,14 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "LISP" READTABLE "XCL" BASE 10) -(IL:FILECREATED "23-Sep-2023 23:15:39" IL:|{WMEDLEY}CMLARITH.;2| 100545 +(IL:FILECREATED "24-Sep-2023 15:37:27" IL:|{WMEDLEY}CMLARITH.;3| 100379 :EDIT-BY IL:|rmk| - :PREVIOUS-DATE " 4-Jan-93 17:38:48" IL:|{WMEDLEY}CMLARITH.;1|) + :PREVIOUS-DATE "23-Sep-2023 23:15:39" IL:|{WMEDLEY}CMLARITH.;2|) -; Copyright (c) 1985-1990, 1993 by Venue & Xerox Corporation. - (IL:PRETTYCOMPRINT IL:CMLARITHCOMS) (IL:RPAQQ IL:CMLARITHCOMS @@ -2549,50 +2547,48 @@ (IL:ADDTOVAR IL:LAMA LOGEQV LOGIOR LCM GCD / * - + >= <= > < /= =) ) -(IL:PUTPROPS IL:CMLARITH IL:COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1988 1989 1990 1993) -) (IL:DECLARE\: IL:DONTCOPY - (IL:FILEMAP (NIL (17111 17229 (%NOT-NUMBER-ERROR 17111 . 17229)) (17231 17444 ( -%NOT-NONCOMPLEX-NUMBER-ERROR 17231 . 17444)) (17446 17566 (%NOT-INTEGER-ERROR 17446 . 17566)) (17568 -17690 (%NOT-RATIONAL-ERROR 17568 . 17690)) (17692 17808 (%NOT-FLOAT-ERROR 17692 . 17808)) (18334 18571 - (DENOMINATOR 18334 . 18571)) (18573 18809 (NUMERATOR 18573 . 18809)) (18902 21818 (%RATIO-PRINT 18902 - . 21818)) (21820 22424 (%BUILD-RATIO 21820 . 22424)) (22426 22885 (RATIONAL 22426 . 22885)) (22887 -23368 (RATIONALIZE 22887 . 23368)) (23370 24386 (%RATIO-PLUS 23370 . 24386)) (24388 25187 ( -%RATIO-TIMES 24388 . 25187)) (26169 27030 (COMPLEX 26169 . 27030)) (27032 27198 (REALPART 27032 . -27198)) (27200 27380 (IMAGPART 27200 . 27380)) (27382 27622 (CONJUGATE 27382 . 27622)) (27624 28101 ( -PHASE 27624 . 28101)) (28103 28670 (%COMPLEX-PRINT 28103 . 28670)) (28672 28996 (%COMPLEX-+ 28672 . -28996)) (28998 29330 (%COMPLEX-- 28998 . 29330)) (29332 29786 (%COMPLEX-* 29332 . 29786)) (29788 30654 - (%COMPLEX-/ 29788 . 30654)) (30656 30961 (%COMPLEX-ABS 30656 . 30961)) (31580 31626 (ZEROP 31580 . -31626)) (31628 31674 (PLUSP 31628 . 31674)) (31977 32024 (MINUSP 31977 . 32024)) (32352 32509 (EVENP -32352 . 32509)) (32511 32673 (ODDP 32511 . 32673)) (33247 35130 (%= 33247 . 35130)) (35132 35181 (%/= -35132 . 35181)) (35183 36942 (%> 35183 . 36942)) (36944 36980 (%< 36944 . 36980)) (36982 37031 (%>= -36982 . 37031)) (37033 37082 (%<= 37033 . 37082)) (38352 39211 (%COMPARISON-MACRO 38352 . 39211)) ( -39214 41086 (= 39227 . 39749) (/= 39751 . 40476) (< 40478 . 40627) (> 40629 . 40778) (<= 40780 . 40931 -) (>= 40933 . 41084)) (41088 41629 (%COMPARISON-OPTIMIZER 41088 . 41629)) (45755 48239 (%+ 45755 . -48239)) (48241 50782 (%- 48241 . 50782)) (50784 53230 (%* 50784 . 53230)) (53232 56469 (%/ 53232 . -56469)) (57279 59433 (+ 57292 . 57800) (- 57802 . 58382) (* 58384 . 58892) (/ 58894 . 59431)) (59435 -59478 (1+ 59435 . 59478)) (59480 59523 (1- 59480 . 59523)) (59525 59638 (%RECIPROCOL 59525 . 59638)) ( -62448 63497 (%GCD 62448 . 63497)) (63499 63869 (%LCM 63499 . 63869)) (63870 65380 (GCD 63883 . 64658) -(LCM 64660 . 65378)) (68708 69947 (ISQRT 68708 . 69947)) (70029 70583 (ABS 70029 . 70583)) (70585 -70763 (%ABS 70585 . 70763)) (70765 71259 (SIGNUM 70765 . 71259)) (71261 71489 (%SIGNUM 71261 . 71489)) - (71776 72741 (XCL::STRUNCATE 71776 . 72741)) (72743 73561 (XCL::SFLOOR 72743 . 73561)) (73563 74377 ( -XCL::SCEILING 73563 . 74377)) (74379 74732 (XCL::SROUND 74379 . 74732)) (75310 75848 ( -%INTEGER-COERCE-MACRO 75310 . 75848)) (75852 76100 (TRUNCATE 75852 . 76100)) (76102 76352 (FLOOR 76102 - . 76352)) (76354 76608 (CEILING 76354 . 76608)) (76610 76865 (ROUND 76610 . 76865)) (76867 77206 ( -%INTEGER-COERCE-OPTIMIZER 76867 . 77206)) (77903 78154 (FTRUNCATE 77903 . 78154)) (78156 78340 (FFLOOR - 78156 . 78340)) (78342 78599 (FCEILING 78342 . 78599)) (78601 78859 (FROUND 78601 . 78859)) (79572 -80517 (MOD 79572 . 80517)) (80519 81086 (REM 80519 . 81086)) (81495 81989 (%LOGICAL-OPTIMIZER 81495 . -81989)) (82708 82751 (%LOGIOR 82708 . 82751)) (82753 82809 (%LOGEQV 82753 . 82809)) (82966 84536 ( -LOGIOR 82979 . 83755) (LOGEQV 83757 . 84534)) (84911 84989 (LOGNAND 84911 . 84989)) (84991 85072 ( -LOGNOR 84991 . 85072)) (85074 85163 (LOGANDC1 85074 . 85163)) (85165 85244 (LOGANDC2 85165 . 85244)) ( -85246 85338 (LOGORC1 85246 . 85338)) (85340 85422 (LOGORC2 85340 . 85422)) (86712 87701 (BOOLE 86712 - . 87701)) (87768 87850 (LOGTEST 87768 . 87850)) (88071 88128 (ASH 88071 . 88128)) (88273 88742 ( -LOGCOUNT 88273 . 88742)) (88744 89405 (%LOGCOUNT 88744 . 89405)) (89548 89780 (%BIGNUM-LOGCOUNT 89548 - . 89780)) (89782 91478 (INTEGER-LENGTH 89782 . 91478)) (91540 91579 (%LLSH8 91540 . 91579)) (91581 -91620 (%LLSH1 91581 . 91620)) (91622 91661 (%LRSH8 91622 . 91661)) (91663 91702 (%LRSH1 91663 . 91702) -) (94077 94389 (BYTE 94077 . 94389)) (94815 95019 (OPTIMIZE-BYTE 94815 . 95019)) (95203 95378 ( -%MAKE-BYTE-MASK-1 95203 . 95378)) (95380 95481 (%MAKE-BYTE-MASK-0 95380 . 95481)) (95485 95709 (LDB -95485 . 95709)) (95711 96024 (DPB 95711 . 96024)) (96026 96222 (MASK-FIELD 96026 . 96222)) (96224 -96516 (DEPOSIT-FIELD 96224 . 96516)) (96518 96821 (%CONSTANT-BYTESPEC-P 96518 . 96821)) (99730 99812 ( -LDB-TEST 99730 . 99812))))) + (IL:FILEMAP (NIL (17050 17168 (%NOT-NUMBER-ERROR 17050 . 17168)) (17170 17383 ( +%NOT-NONCOMPLEX-NUMBER-ERROR 17170 . 17383)) (17385 17505 (%NOT-INTEGER-ERROR 17385 . 17505)) (17507 +17629 (%NOT-RATIONAL-ERROR 17507 . 17629)) (17631 17747 (%NOT-FLOAT-ERROR 17631 . 17747)) (18273 18510 + (DENOMINATOR 18273 . 18510)) (18512 18748 (NUMERATOR 18512 . 18748)) (18841 21757 (%RATIO-PRINT 18841 + . 21757)) (21759 22363 (%BUILD-RATIO 21759 . 22363)) (22365 22824 (RATIONAL 22365 . 22824)) (22826 +23307 (RATIONALIZE 22826 . 23307)) (23309 24325 (%RATIO-PLUS 23309 . 24325)) (24327 25126 ( +%RATIO-TIMES 24327 . 25126)) (26108 26969 (COMPLEX 26108 . 26969)) (26971 27137 (REALPART 26971 . +27137)) (27139 27319 (IMAGPART 27139 . 27319)) (27321 27561 (CONJUGATE 27321 . 27561)) (27563 28040 ( +PHASE 27563 . 28040)) (28042 28609 (%COMPLEX-PRINT 28042 . 28609)) (28611 28935 (%COMPLEX-+ 28611 . +28935)) (28937 29269 (%COMPLEX-- 28937 . 29269)) (29271 29725 (%COMPLEX-* 29271 . 29725)) (29727 30593 + (%COMPLEX-/ 29727 . 30593)) (30595 30900 (%COMPLEX-ABS 30595 . 30900)) (31519 31565 (ZEROP 31519 . +31565)) (31567 31613 (PLUSP 31567 . 31613)) (31916 31963 (MINUSP 31916 . 31963)) (32291 32448 (EVENP +32291 . 32448)) (32450 32612 (ODDP 32450 . 32612)) (33186 35069 (%= 33186 . 35069)) (35071 35120 (%/= +35071 . 35120)) (35122 36881 (%> 35122 . 36881)) (36883 36919 (%< 36883 . 36919)) (36921 36970 (%>= +36921 . 36970)) (36972 37021 (%<= 36972 . 37021)) (38291 39150 (%COMPARISON-MACRO 38291 . 39150)) ( +39153 41025 (= 39166 . 39688) (/= 39690 . 40415) (< 40417 . 40566) (> 40568 . 40717) (<= 40719 . 40870 +) (>= 40872 . 41023)) (41027 41568 (%COMPARISON-OPTIMIZER 41027 . 41568)) (45694 48178 (%+ 45694 . +48178)) (48180 50721 (%- 48180 . 50721)) (50723 53169 (%* 50723 . 53169)) (53171 56408 (%/ 53171 . +56408)) (57218 59372 (+ 57231 . 57739) (- 57741 . 58321) (* 58323 . 58831) (/ 58833 . 59370)) (59374 +59417 (1+ 59374 . 59417)) (59419 59462 (1- 59419 . 59462)) (59464 59577 (%RECIPROCOL 59464 . 59577)) ( +62387 63436 (%GCD 62387 . 63436)) (63438 63808 (%LCM 63438 . 63808)) (63809 65319 (GCD 63822 . 64597) +(LCM 64599 . 65317)) (68647 69886 (ISQRT 68647 . 69886)) (69968 70522 (ABS 69968 . 70522)) (70524 +70702 (%ABS 70524 . 70702)) (70704 71198 (SIGNUM 70704 . 71198)) (71200 71428 (%SIGNUM 71200 . 71428)) + (71715 72680 (XCL::STRUNCATE 71715 . 72680)) (72682 73500 (XCL::SFLOOR 72682 . 73500)) (73502 74316 ( +XCL::SCEILING 73502 . 74316)) (74318 74671 (XCL::SROUND 74318 . 74671)) (75249 75787 ( +%INTEGER-COERCE-MACRO 75249 . 75787)) (75791 76039 (TRUNCATE 75791 . 76039)) (76041 76291 (FLOOR 76041 + . 76291)) (76293 76547 (CEILING 76293 . 76547)) (76549 76804 (ROUND 76549 . 76804)) (76806 77145 ( +%INTEGER-COERCE-OPTIMIZER 76806 . 77145)) (77842 78093 (FTRUNCATE 77842 . 78093)) (78095 78279 (FFLOOR + 78095 . 78279)) (78281 78538 (FCEILING 78281 . 78538)) (78540 78798 (FROUND 78540 . 78798)) (79511 +80456 (MOD 79511 . 80456)) (80458 81025 (REM 80458 . 81025)) (81434 81928 (%LOGICAL-OPTIMIZER 81434 . +81928)) (82647 82690 (%LOGIOR 82647 . 82690)) (82692 82748 (%LOGEQV 82692 . 82748)) (82905 84475 ( +LOGIOR 82918 . 83694) (LOGEQV 83696 . 84473)) (84850 84928 (LOGNAND 84850 . 84928)) (84930 85011 ( +LOGNOR 84930 . 85011)) (85013 85102 (LOGANDC1 85013 . 85102)) (85104 85183 (LOGANDC2 85104 . 85183)) ( +85185 85277 (LOGORC1 85185 . 85277)) (85279 85361 (LOGORC2 85279 . 85361)) (86651 87640 (BOOLE 86651 + . 87640)) (87707 87789 (LOGTEST 87707 . 87789)) (88010 88067 (ASH 88010 . 88067)) (88212 88681 ( +LOGCOUNT 88212 . 88681)) (88683 89344 (%LOGCOUNT 88683 . 89344)) (89487 89719 (%BIGNUM-LOGCOUNT 89487 + . 89719)) (89721 91417 (INTEGER-LENGTH 89721 . 91417)) (91479 91518 (%LLSH8 91479 . 91518)) (91520 +91559 (%LLSH1 91520 . 91559)) (91561 91600 (%LRSH8 91561 . 91600)) (91602 91641 (%LRSH1 91602 . 91641) +) (94016 94328 (BYTE 94016 . 94328)) (94754 94958 (OPTIMIZE-BYTE 94754 . 94958)) (95142 95317 ( +%MAKE-BYTE-MASK-1 95142 . 95317)) (95319 95420 (%MAKE-BYTE-MASK-0 95319 . 95420)) (95424 95648 (LDB +95424 . 95648)) (95650 95963 (DPB 95650 . 95963)) (95965 96161 (MASK-FIELD 95965 . 96161)) (96163 +96455 (DEPOSIT-FIELD 96163 . 96455)) (96457 96760 (%CONSTANT-BYTESPEC-P 96457 . 96760)) (99669 99751 ( +LDB-TEST 99669 . 99751))))) IL:STOP diff --git a/sources/CMLARITH.LCOM b/sources/CMLARITH.LCOM index e26b23ae..438354d5 100644 --- a/sources/CMLARITH.LCOM +++ b/sources/CMLARITH.LCOM @@ -1,10 +1,10 @@ (DEFINE-FILE-INFO PACKAGE "LISP" READTABLE "XCL" BASE 10) -(IL:FILECREATED "23-Sep-2023 23:16:18" ("compiled on " IL:|{WMEDLEY}CMLARITH.;2|) -"23-Sep-2023 23:13:47" "COMPILE-FILEd" IL:|in| "FULL 23-Sep-2023 ..." IL:|dated| -"23-Sep-2023 23:13:54") -(IL:FILECREATED "23-Sep-2023 23:15:39" IL:|{WMEDLEY}CMLARITH.;2| 100545 :EDIT-BY IL:|rmk| -:PREVIOUS-DATE " 4-Jan-93 17:38:48" IL:|{WMEDLEY}CMLARITH.;1|) +(IL:FILECREATED "24-Sep-2023 15:37:41" ("compiled on " IL:|{WMEDLEY}CMLARITH.;3|) +"24-Sep-2023 15:27:49" "COMPILE-FILEd" IL:|in| "FULL 24-Sep-2023 ..." IL:|dated| +"24-Sep-2023 15:27:56") +(IL:FILECREATED "24-Sep-2023 15:37:27" IL:|{WMEDLEY}CMLARITH.;3| 100379 :EDIT-BY IL:|rmk| +:PREVIOUS-DATE "23-Sep-2023 23:15:39" IL:|{WMEDLEY}CMLARITH.;2|) (IL:RPAQQ IL:CMLARITHCOMS ((IL:* IL:|;;;| "Common Lisp Arithmetic ") (IL:COMS (IL:* IL:|;;| "Error utilities") (IL:FUNCTIONS %NOT-NUMBER-ERROR %NOT-NONCOMPLEX-NUMBER-ERROR %NOT-INTEGER-ERROR %NOT-RATIONAL-ERROR %NOT-FLOAT-ERROR)) (IL:COMS (IL:* IL:|;;;| "Section 2.1.2 Ratios. ") (IL:COMS ( @@ -689,9 +689,9 @@ NIL ( 10 (IL:OPENLAMBDA (X) (COND ((EQ X 0) 0) ((PLUSP X) 1) (T -1)))) (IL:SETF-MACRO-FUNCTION (QUOTE %SIGNUM) (QUOTE |expand-%SIGNUM|)) XCL::STRUNCATE :D8 -(IL:L (1 DIVISOR 0 NUMBER)) }A9@d@ d@@3 @@ Hd3 @A@AI H@A - A (122 %NOT-NONCOMPLEX-NUMBER-ERROR 115 XCL::STRUNCATE 110 %/ 95 IL:UFIX 56 %NOT-NONCOMPLEX-NUMBER-ERROR 17 IL:\\FIXP.FROM.FLOATP) -(102 RATIO 75 IL:FLOATP 41 RATIO 33 RATIO 24 RATIO 9 IL:FLOATP) +(IL:L (1 DIVISOR 0 NUMBER)) tA9@d@ d@@3 @@ Hd3 @A@AH@A + A (113 %NOT-NONCOMPLEX-NUMBER-ERROR 106 XCL::STRUNCATE 101 %/ 56 %NOT-NONCOMPLEX-NUMBER-ERROR 17 IL:\\FIXP.FROM.FLOATP) +(93 RATIO 75 IL:FLOATP 41 RATIO 33 RATIO 24 RATIO 9 IL:FLOATP) () XCL::SFLOOR :D8 (IL:L (1 DIVISOR 0 NUMBER)) GA@ H@Hj@Hk@A @@ -815,17 +815,14 @@ QUOTE FFLOOR) (QUOTE COMPILER:OPTIMIZER-LIST)))) (IL:PUTPROP (QUOTE FROUND) (QUOTE COMPILER:OPTIMIZER-LIST) (ADJOIN (QUOTE |optimize-FROUND|) (GET ( QUOTE FROUND) (QUOTE COMPILER:OPTIMIZER-LIST)))) MOD :D8 -(IL:L (1 DIVISOR 0 NUMBER)) @Ak@AhHdI IZddo -3oI -HooH -JIJ@A -jHjA@jj@HAH(121 REM 99 IL:UFGREATERP 76 IL:UFGREATERP 60 IL:UFEQP 32 IL:UFIX) -(37 IL:FLOATP) -( 91 0.0 85 0.0 68 0.0 55 0.0) +(IL:L (1 DIVISOR 0 NUMBER)) l@AD@AhHdIIZddhhIHhHJIJ@A +jHjA@jj@HAH(82 REM) +(31 IL:FLOATP) +() REM :D8 -(IL:L (1 DIVISOR 0 NUMBER)) J@d3 A3 @A@A(@AHdI I@A@A -(69 XCL::STRUNCATE 44 IL:UFIX) -(49 IL:FLOATP) +(IL:L (1 DIVISOR 0 NUMBER)) D@d3 A3 @A@A"@AHdII@A@A +(63 XCL::STRUNCATE) +(43 IL:FLOATP) () %LOGICAL-OPTIMIZER :D8 (IL:L (4 MORE-INTEGERS 3 SECOND-INTEGER 2 FIRST-INTEGER 1 IDENTITY 0 BINARY-LOGICAL-FN)) 1BACBD@BCh@BCh!DYH@HJhINIL @@ -1149,6 +1146,4 @@ NIL (QUOTE LDB-TEST) (QUOTE COMPILER:OPTIMIZER-LIST)))) (IL:PUTPROPS IL:CMLARITH IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE "LISP")) (IL:PUTPROPS IL:CMLARITH IL:FILETYPE COMPILE-FILE) -(IL:PUTPROPS IL:CMLARITH IL:COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1988 1989 1990 1993) -) NIL From df8c5a52f163f413eba966cd62699de497ebf819 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Tue, 17 Oct 2023 13:33:18 -0700 Subject: [PATCH 3/3] Also remade filemap for CMLCHARACTER (and changed from LCOM to DFASL) CLEANUP is confused about how to compile. This had FILETYPE = CL-COMPILE-TYPE, with an existing LCOM. It produced a new DFASL, but the LCOM was still hanging around. I'm deleting the LCOM here, pushing the new DFASL. --- sources/CMLCHARACTER | 304 ++++++++++++++++++------------------- sources/CMLCHARACTER.DFASL | Bin 0 -> 18673 bytes sources/CMLCHARACTER.LCOM | Bin 20600 -> 0 bytes 3 files changed, 147 insertions(+), 157 deletions(-) create mode 100644 sources/CMLCHARACTER.DFASL delete mode 100644 sources/CMLCHARACTER.LCOM diff --git a/sources/CMLCHARACTER b/sources/CMLCHARACTER index cec844f8..a77448ff 100644 --- a/sources/CMLCHARACTER +++ b/sources/CMLCHARACTER @@ -1,50 +1,46 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "28-Jun-99 21:54:32" {DSK}medley3.5>sources>CMLCHARACTER.;2 32559 - changes to%: (OPTIMIZERS CL:CODE-CHAR) - (FUNCTIONS CL:CODE-CHAR) +(FILECREATED "17-Oct-2023 13:16:14" {WMEDLEY}CMLCHARACTER.;3 31224 - previous date%: "18-Aug-95 14:45:44" {DSK}medley3.5>sources>CMLCHARACTER.;1) + :EDIT-BY rmk + :PREVIOUS-DATE "28-Jun-99 21:54:32" {WMEDLEY}CMLCHARACTER.;1) -(* ; " -Copyright (c) 1985, 1986, 1987, 1990, 1995, 1999 by Venue & Xerox Corporation. All rights reserved. -") (PRETTYCOMPRINT CMLCHARACTERCOMS) (RPAQQ CMLCHARACTERCOMS - [(COMS (* ; - "Interlisp CHARCODE; Some is here, the rest is in LLREAD.") + [(COMS (* ; + "Interlisp CHARCODE; Some is here, the rest is in LLREAD.") (FNS CHARCODE CHARCODE.UNDECODE) (PROP MACRO SELCHARQ ALPHACHARP DIGITCHARP UCASECODE) (OPTIMIZERS CHARCODE) (ALISTS (DWIMEQUIVLST SELCHARQ) (PRETTYEQUIVLST SELCHARQ))) - (COMS (* ; "Common Lisp CHARACTER type") + (COMS (* ; "Common Lisp CHARACTER type") (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS CHARACTER)) (VARIABLES \CHARHI) (VARIABLES CL:CHAR-BITS-LIMIT CL:CHAR-CODE-LIMIT CL:CHAR-CONTROL-BIT CL:CHAR-FONT-LIMIT CL:CHAR-HYPER-BIT CL:CHAR-META-BIT CL:CHAR-SUPER-BIT)) - (COMS (* ; "Basic character fns") + (COMS (* ; "Basic character fns") (FNS CL:CHAR-CODE CL:CHAR-INT CL:INT-CHAR) (FUNCTIONS CL:CODE-CHAR) (OPTIMIZERS CL:CHAR-CODE CL:CHAR-INT CL:CODE-CHAR CL:INT-CHAR)) - [COMS (* ; - "I/O; Some is here, the rest is in LLREAD.") + [COMS (* ; + "I/O; Some is here, the rest is in LLREAD.") (FNS CHARACTER.PRINT) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (SETTOPVAL (\TYPEGLOBALVARIABLE 'CHARACTER T) (NTYPX (CL:CODE-CHAR 0 0 0))) (DEFPRINT 'CHARACTER 'CHARACTER.PRINT] (COMS - (* ;; "Common lisp character functions") + (* ;; "Common lisp character functions") (FNS CL:CHAR-BIT CL:CHAR-BITS CL:CHAR-DOWNCASE CL:CHAR-FONT CL:CHAR-NAME CL:CHAR-UPCASE CL:CHARACTER CL:NAME-CHAR CL:SET-CHAR-BIT) (FUNCTIONS CL:DIGIT-CHAR CL:MAKE-CHAR) (OPTIMIZERS CL:CHAR-UPCASE CL:CHAR-DOWNCASE CL:MAKE-CHAR)) (COMS - (* ;; "Predicates") + (* ;; "Predicates") (FNS CL:ALPHA-CHAR-P CL:ALPHANUMERICP CL:BOTH-CASE-P CL:CHARACTERP CL:GRAPHIC-CHAR-P CL:LOWER-CASE-P CL:STANDARD-CHAR-P CL:STRING-CHAR-P CL:UPPER-CASE-P) @@ -57,11 +53,11 @@ Copyright (c) 1985, 1986, 1987, 1990, 1995, 1999 by Venue & Xerox Corporation. CL:CHAR> CL:CHAR>= CL:CHARACTERP CL:LOWER-CASE-P CL:STRING-CHAR-P CL:UPPER-CASE-P)) (COMS - (* ;; "Internals") + (* ;; "Internals") (FUNCTIONS %%CHAR-DOWNCASE-CODE %%CHAR-UPCASE-CODE %%CODE-CHAR)) (COMS - (* ;; "Compiler options") + (* ;; "Compiler options") (PROP FILETYPE CMLCHARACTER) (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (LOCALVARS . T))) @@ -89,36 +85,35 @@ Copyright (c) 1985, 1986, 1987, 1990, 1995, 1999 by Venue & Xerox Corporation. ) (PUTPROPS SELCHARQ MACRO [F (CONS 'SELECTQ (CONS (CAR F) - (MAPLIST (CDR F) - (FUNCTION (LAMBDA (I) - (COND - ((CDR I) - (CONS - (CHARCODE.DECODE - (CAAR I)) - (CDAR I))) - (T (CAR I]) + (MAPLIST (CDR F) + (FUNCTION (LAMBDA (I) + (COND + ((CDR I) + (CONS (CHARCODE.DECODE + (CAAR I)) + (CDAR I))) + (T (CAR I]) (PUTPROPS ALPHACHARP MACRO ((CHAR) - ([LAMBDA (UCHAR) - (DECLARE (LOCALVARS UCHAR)) - (AND (IGEQ UCHAR (CHARCODE A)) - (ILEQ UCHAR (CHARCODE Z] - (LOGAND CHAR 95)))) + ([LAMBDA (UCHAR) + (DECLARE (LOCALVARS UCHAR)) + (AND (IGEQ UCHAR (CHARCODE A)) + (ILEQ UCHAR (CHARCODE Z] + (LOGAND CHAR 95)))) (PUTPROPS DIGITCHARP MACRO [LAMBDA (CHAR) - (AND (IGEQ CHAR (CHARCODE 0)) - (ILEQ CHAR (CHARCODE 9]) + (AND (IGEQ CHAR (CHARCODE 0)) + (ILEQ CHAR (CHARCODE 9]) (PUTPROPS UCASECODE MACRO (OPENLAMBDA (CHAR) - (COND - ((AND (IGEQ CHAR (CHARCODE a)) - (ILEQ CHAR (CHARCODE z))) - (LOGAND CHAR 95)) - (T CHAR)))) + (COND + ((AND (IGEQ CHAR (CHARCODE a)) + (ILEQ CHAR (CHARCODE z))) + (LOGAND CHAR 95)) + (T CHAR)))) (DEFOPTIMIZER CHARCODE (C) - (KWOTE (CHARCODE.DECODE C T))) + (KWOTE (CHARCODE.DECODE C T))) (ADDTOVAR DWIMEQUIVLST (SELCHARQ . SELECTQ)) @@ -132,7 +127,7 @@ Copyright (c) 1985, 1986, 1987, 1990, 1995, 1999 by Venue & Xerox Corporation. (DECLARE%: EVAL@COMPILE (ACCESSFNS CHARACTER [(CODE (\LOLOC (\DTEST DATUM 'CHARACTER] - (CREATE (\VAG2 \CHARHI CODE))) + (CREATE (\VAG2 \CHARHI CODE))) ) ) @@ -172,43 +167,43 @@ Copyright (c) 1985, 1986, 1987, 1990, 1995, 1999 by Venue & Xerox Corporation. ) (CL:DEFUN CL:CODE-CHAR (CODE &OPTIONAL (BITS 0) - (FONT 0)) + (FONT 0)) (CL:IF (AND (EQ BITS 0) (EQ FONT 0) - (* ;; "This checks for smallposp") + (* ;; "This checks for smallposp") (EQ (\HILOC CODE) \SmallPosHi)) (%%CODE-CHAR CODE))) (DEFOPTIMIZER CL:CHAR-CODE (CHAR) - [LET [(CONSTANT-CHAR (AND (CL:CONSTANTP CHAR) - (CL:EVAL CHAR] - (CL:IF (CL:CHARACTERP CONSTANT-CHAR) - (\LOLOC CONSTANT-CHAR) - `(\LOLOC (\DTEST ,CHAR 'CHARACTER)))]) + [LET [(CONSTANT-CHAR (AND (CL:CONSTANTP CHAR) + (CL:EVAL CHAR] + (CL:IF (CL:CHARACTERP CONSTANT-CHAR) + (\LOLOC CONSTANT-CHAR) + `(\LOLOC (\DTEST ,CHAR 'CHARACTER)))]) (DEFOPTIMIZER CL:CHAR-INT (CHAR) - `(CL:CHAR-CODE ,CHAR)) + `(CL:CHAR-CODE ,CHAR)) (DEFOPTIMIZER CL:CODE-CHAR (CODE &OPTIONAL (BITS 0) - (FONT 0)) - (CL:IF (AND (EQ BITS 0) - (EQ FONT 0)) - [LET [(CONSTANT-CODE (AND (CL:CONSTANTP CODE) - (CL:EVAL CODE] - (CL:IF (EQ (\HILOC CONSTANT-CODE) - \SmallPosHi) - (%%CODE-CHAR CONSTANT-CODE) - `(LET ((%%CODE ,CODE)) - (AND (EQ (\HILOC %%CODE) - ,\SmallPosHi) - (%%CODE-CHAR %%CODE))))] - 'COMPILER:PASS)) + (FONT 0)) + (CL:IF (AND (EQ BITS 0) + (EQ FONT 0)) + [LET [(CONSTANT-CODE (AND (CL:CONSTANTP CODE) + (CL:EVAL CODE] + (CL:IF (EQ (\HILOC CONSTANT-CODE) + \SmallPosHi) + (%%CODE-CHAR CONSTANT-CODE) + `(LET ((%%CODE ,CODE)) + (AND (EQ (\HILOC %%CODE) + ,\SmallPosHi) + (%%CODE-CHAR %%CODE))))] + 'COMPILER:PASS)) (DEFOPTIMIZER CL:INT-CHAR (INTEGER) - `(CL:CODE-CHAR ,INTEGER)) + `(CL:CODE-CHAR ,INTEGER)) @@ -326,36 +321,34 @@ Copyright (c) 1985, 1986, 1987, 1990, 1995, 1999 by Venue & Xerox Corporation. ) (CL:DEFUN CL:DIGIT-CHAR (WEIGHT &OPTIONAL (RADIX 10) - (FONT 0)) + (FONT 0)) [AND (EQ FONT 0) (< -1 WEIGHT RADIX 37) (CL:IF (< WEIGHT 10) (%%CODE-CHAR (+ (CONSTANT (CL:CHAR-CODE #\0)) - WEIGHT)) + WEIGHT)) (%%CODE-CHAR (+ (CONSTANT (CL:CHAR-CODE #\A)) - (- WEIGHT 10))))]) + (- WEIGHT 10))))]) (CL:DEFUN CL:MAKE-CHAR (CHAR &OPTIONAL (BITS 0) - (FONT 0)) + (FONT 0)) (CL:IF (AND (EQL BITS 0) (EQL FONT 0)) CHAR)) (DEFOPTIMIZER CL:CHAR-UPCASE (CHAR) - `[%%CODE-CHAR (%%CHAR-UPCASE-CODE (CL:CHAR-CODE - ,CHAR]) + `[%%CODE-CHAR (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR]) (DEFOPTIMIZER CL:CHAR-DOWNCASE (CHAR) - `[%%CODE-CHAR (%%CHAR-DOWNCASE-CODE (CL:CHAR-CODE - ,CHAR]) + `[%%CODE-CHAR (%%CHAR-DOWNCASE-CODE (CL:CHAR-CODE ,CHAR]) (DEFOPTIMIZER CL:MAKE-CHAR (CHAR &OPTIONAL BITS FONT) - (CL:IF (AND (OR (NULL BITS) - (EQL BITS 0)) - (OR (NULL FONT) - (EQL FONT 0))) - CHAR - 'COMPILER:PASS)) + (CL:IF (AND (OR (NULL BITS) + (EQL BITS 0)) + (OR (NULL FONT) + (EQL FONT 0))) + CHAR + 'COMPILER:PASS)) @@ -627,105 +620,100 @@ Copyright (c) 1985, 1986, 1987, 1990, 1995, 1999 by Venue & Xerox Corporation. VAL))) (DEFOPTIMIZER CL:CHAR-EQUAL (CHAR &REST MORE-CHARS) - (CL:IF (EQL 1 (CL:LENGTH MORE-CHARS)) - `[EQ (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR)) - (%%CHAR-UPCASE-CODE (CL:CHAR-CODE - ,(CAR MORE-CHARS] - 'COMPILER:PASS)) + (CL:IF (EQL 1 (CL:LENGTH MORE-CHARS)) + `[EQ (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR)) + (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,(CAR MORE-CHARS] + 'COMPILER:PASS)) (DEFOPTIMIZER CL:CHAR-GREATERP (CHAR &REST MORE-CHARS) - `(> (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR)) - ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA - (FORM) - `(%%CHAR-UPCASE-CODE - (CL:CHAR-CODE ,FORM] - MORE-CHARS))) + `(> (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR)) + ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA + (FORM) + `(%%CHAR-UPCASE-CODE (CL:CHAR-CODE + ,FORM] + MORE-CHARS))) (DEFOPTIMIZER CL:CHAR-LESSP (CHAR &REST MORE-CHARS) - `(< (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR)) - ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA - (FORM) - `(%%CHAR-UPCASE-CODE - (CL:CHAR-CODE ,FORM] - MORE-CHARS))) + `(< (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR)) + ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA (FORM) + `(%%CHAR-UPCASE-CODE + (CL:CHAR-CODE ,FORM] + MORE-CHARS))) (DEFOPTIMIZER CL:CHAR-NOT-EQUAL (CHAR &REST MORE-CHARS) - (CL:IF (EQL 1 (CL:LENGTH MORE-CHARS)) - `[NOT (EQ (%%CHAR-UPCASE-CODE (CL:CHAR-CODE - ,CHAR)) - (%%CHAR-UPCASE-CODE (CL:CHAR-CODE - ,(CAR MORE-CHARS] - 'COMPILER:PASS)) + (CL:IF (EQL 1 (CL:LENGTH MORE-CHARS)) + `[NOT (EQ (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR)) + (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,(CAR MORE-CHARS] + 'COMPILER:PASS)) (DEFOPTIMIZER CL:CHAR-NOT-GREATERP (CHAR &REST MORE-CHARS) - `(<= (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR)) - ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA - (FORM) - `(%%CHAR-UPCASE-CODE - (CL:CHAR-CODE ,FORM] - MORE-CHARS))) + `(<= (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR)) + ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA + (FORM) + `(%%CHAR-UPCASE-CODE + (CL:CHAR-CODE ,FORM] + MORE-CHARS))) (DEFOPTIMIZER CL:CHAR-NOT-LESSP (CHAR &REST MORE-CHARS) - `(>= (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR)) - ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA - (FORM) - `(%%CHAR-UPCASE-CODE - (CL:CHAR-CODE ,FORM] - MORE-CHARS))) + `(>= (%%CHAR-UPCASE-CODE (CL:CHAR-CODE ,CHAR)) + ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA + (FORM) + `(%%CHAR-UPCASE-CODE (CL:CHAR-CODE + ,FORM] + MORE-CHARS))) (DEFOPTIMIZER CL:CHAR/= (CHAR &REST MORE-CHARS) - (CL:IF (CDR MORE-CHARS) - 'COMPILER:PASS - `(NEQ ,CHAR ,(CAR MORE-CHARS)))) + (CL:IF (CDR MORE-CHARS) + 'COMPILER:PASS + `(NEQ ,CHAR ,(CAR MORE-CHARS)))) (DEFOPTIMIZER CL:CHAR< (CHAR &REST MORE-CHARS) - `(< (CL:CHAR-CODE ,CHAR) - ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA (FORM) - `(CL:CHAR-CODE ,FORM] - MORE-CHARS))) + `(< (CL:CHAR-CODE ,CHAR) + ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA (FORM) + `(CL:CHAR-CODE ,FORM] + MORE-CHARS))) (DEFOPTIMIZER CL:CHAR<= (CHAR &REST MORE-CHARS) - `(<= (CL:CHAR-CODE ,CHAR) - ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA (FORM) - `(CL:CHAR-CODE ,FORM] - MORE-CHARS))) + `(<= (CL:CHAR-CODE ,CHAR) + ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA (FORM) + `(CL:CHAR-CODE ,FORM] + MORE-CHARS))) (DEFOPTIMIZER CL:CHAR= (CHAR &REST MORE-CHARS) - (CL:IF (CDR MORE-CHARS) - [LET - ((CH (GENSYM))) + (CL:IF (CDR MORE-CHARS) + [LET ((CH (GENSYM))) `(LET ((,CH ,CHAR)) (AND ,@(for X in MORE-CHARS collect `(EQ ,CH ,X] - `(EQ ,CHAR ,(CAR MORE-CHARS)))) + `(EQ ,CHAR ,(CAR MORE-CHARS)))) (DEFOPTIMIZER CL:CHAR> (CHAR &REST MORE-CHARS) - `(> (CL:CHAR-CODE ,CHAR) - ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA (FORM) - `(CL:CHAR-CODE ,FORM] - MORE-CHARS))) + `(> (CL:CHAR-CODE ,CHAR) + ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA (FORM) + `(CL:CHAR-CODE ,FORM] + MORE-CHARS))) (DEFOPTIMIZER CL:CHAR>= (CHAR &REST MORE-CHARS) - `(>= (CL:CHAR-CODE ,CHAR) - ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA (FORM) - `(CL:CHAR-CODE ,FORM] - MORE-CHARS))) + `(>= (CL:CHAR-CODE ,CHAR) + ,@(CL:MAPCAR [FUNCTION (CL:LAMBDA (FORM) + `(CL:CHAR-CODE ,FORM] + MORE-CHARS))) (DEFOPTIMIZER CL:CHARACTERP (OBJECT) - `(TYPENAMEP ,OBJECT 'CHARACTER)) + `(TYPENAMEP ,OBJECT 'CHARACTER)) (DEFOPTIMIZER CL:LOWER-CASE-P (CHAR) - `(<= (CONSTANT (CL:CHAR-CODE #\a)) - (CL:CHAR-CODE ,CHAR) - (CONSTANT (CL:CHAR-CODE #\z)))) + `(<= (CONSTANT (CL:CHAR-CODE #\a)) + (CL:CHAR-CODE ,CHAR) + (CONSTANT (CL:CHAR-CODE #\z)))) (DEFOPTIMIZER CL:STRING-CHAR-P (CHAR) - `(\DTEST ,CHAR 'CHARACTER)) + `(\DTEST ,CHAR 'CHARACTER)) (DEFOPTIMIZER CL:UPPER-CASE-P (CHAR) - `(<= (CONSTANT (CL:CHAR-CODE #\A)) - (CL:CHAR-CODE ,CHAR) - (CONSTANT (CL:CHAR-CODE #\Z)))) + `(<= (CONSTANT (CL:CHAR-CODE #\A)) + (CL:CHAR-CODE ,CHAR) + (CONSTANT (CL:CHAR-CODE #\Z)))) @@ -772,21 +760,23 @@ Copyright (c) 1985, 1986, 1987, 1990, 1995, 1999 by Venue & Xerox Corporation. (ADDTOVAR NLAML CHARCODE) (ADDTOVAR LAMA CL:CHAR>= CL:CHAR> CL:CHAR= CL:CHAR<= CL:CHAR< CL:CHAR/= CL:CHAR-NOT-LESSP - CL:CHAR-NOT-GREATERP CL:CHAR-NOT-EQUAL CL:CHAR-LESSP CL:CHAR-GREATERP - CL:CHAR-EQUAL) + CL:CHAR-NOT-GREATERP CL:CHAR-NOT-EQUAL CL:CHAR-LESSP CL:CHAR-GREATERP + CL:CHAR-EQUAL) ) -(PUTPROPS CMLCHARACTER COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1990 1995 1999)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4041 4323 (CHARCODE 4051 . 4110) (CHARCODE.UNDECODE 4112 . 4321)) (6868 7233 ( -CL:CHAR-CODE 6878 . 7026) (CL:CHAR-INT 7028 . 7090) (CL:INT-CHAR 7092 . 7231)) (9139 10193 ( -CHARACTER.PRINT 9149 . 10191)) (10406 13937 (CL:CHAR-BIT 10416 . 10569) (CL:CHAR-BITS 10571 . 10728) ( -CL:CHAR-DOWNCASE 10730 . 10916) (CL:CHAR-FONT 10918 . 11075) (CL:CHAR-NAME 11077 . 12860) ( -CL:CHAR-UPCASE 12862 . 13044) (CL:CHARACTER 13046 . 13534) (CL:NAME-CHAR 13536 . 13776) (CL:SET-CHAR-BIT - 13778 . 13935)) (15381 18563 (CL:ALPHA-CHAR-P 15391 . 15927) (CL:ALPHANUMERICP 15929 . 16123) ( -CL:BOTH-CASE-P 16125 . 16232) (CL:CHARACTERP 16234 . 16378) (CL:GRAPHIC-CHAR-P 16380 . 17513) ( -CL:LOWER-CASE-P 17515 . 17668) (CL:STANDARD-CHAR-P 17670 . 18336) (CL:STRING-CHAR-P 18338 . 18406) ( -CL:UPPER-CASE-P 18408 . 18561)) (18564 24388 (CL:CHAR-EQUAL 18574 . 18968) (CL:CHAR-GREATERP 18970 . -19477) (CL:CHAR-LESSP 19479 . 19983) (CL:CHAR-NOT-EQUAL 19985 . 20585) (CL:CHAR-NOT-GREATERP 20587 . -21099) (CL:CHAR-NOT-LESSP 21101 . 21610) (CL:CHAR/= 21612 . 22192) (CL:CHAR< 22194 . 22644) (CL:CHAR<= - 22646 . 23098) (CL:CHAR= 23100 . 23480) (CL:CHAR> 23482 . 23932) (CL:CHAR>= 23934 . 24386))))) + (FILEMAP (NIL (3835 4117 (CHARCODE 3845 . 3904) (CHARCODE.UNDECODE 3906 . 4115)) (6423 6788 ( +CL:CHAR-CODE 6433 . 6581) (CL:CHAR-INT 6583 . 6645) (CL:INT-CHAR 6647 . 6786)) (6790 7091 (CL:CODE-CHAR + 6790 . 7091)) (8610 9664 (CHARACTER.PRINT 8620 . 9662)) (9877 13408 (CL:CHAR-BIT 9887 . 10040) ( +CL:CHAR-BITS 10042 . 10199) (CL:CHAR-DOWNCASE 10201 . 10387) (CL:CHAR-FONT 10389 . 10546) (CL:CHAR-NAME + 10548 . 12331) (CL:CHAR-UPCASE 12333 . 12515) (CL:CHARACTER 12517 . 13005) (CL:NAME-CHAR 13007 . +13247) (CL:SET-CHAR-BIT 13249 . 13406)) (13410 13803 (CL:DIGIT-CHAR 13410 . 13803)) (13805 13969 ( +CL:MAKE-CHAR 13805 . 13969)) (14648 17830 (CL:ALPHA-CHAR-P 14658 . 15194) (CL:ALPHANUMERICP 15196 . +15390) (CL:BOTH-CASE-P 15392 . 15499) (CL:CHARACTERP 15501 . 15645) (CL:GRAPHIC-CHAR-P 15647 . 16780) +(CL:LOWER-CASE-P 16782 . 16935) (CL:STANDARD-CHAR-P 16937 . 17603) (CL:STRING-CHAR-P 17605 . 17673) ( +CL:UPPER-CASE-P 17675 . 17828)) (17831 23655 (CL:CHAR-EQUAL 17841 . 18235) (CL:CHAR-GREATERP 18237 . +18744) (CL:CHAR-LESSP 18746 . 19250) (CL:CHAR-NOT-EQUAL 19252 . 19852) (CL:CHAR-NOT-GREATERP 19854 . +20366) (CL:CHAR-NOT-LESSP 20368 . 20877) (CL:CHAR/= 20879 . 21459) (CL:CHAR< 21461 . 21911) (CL:CHAR<= + 21913 . 22365) (CL:CHAR= 22367 . 22747) (CL:CHAR> 22749 . 23199) (CL:CHAR>= 23201 . 23653)) (23657 +24547 (CL:DIGIT-CHAR-P 23657 . 24547)) (29909 30254 (%%CHAR-DOWNCASE-CODE 29909 . 30254)) (30256 30599 + (%%CHAR-UPCASE-CODE 30256 . 30599)) (30601 30660 (%%CODE-CHAR 30601 . 30660))))) STOP diff --git a/sources/CMLCHARACTER.DFASL b/sources/CMLCHARACTER.DFASL new file mode 100644 index 0000000000000000000000000000000000000000..bf166c7c5f782aaee325e26132505fd1e95c4621 GIT binary patch literal 18673 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 literal 0 HcmV?d00001 diff --git a/sources/CMLCHARACTER.LCOM b/sources/CMLCHARACTER.LCOM deleted file mode 100644 index ed86fbb823017f210bc6a09abd77ec4afa77f527..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20600 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 Rc!v;wsB9X)ZNcvZ{vU%CDRuw=