From b19cfd5bbb5da4297ff34fe00b4a86f962146d8b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 30 Oct 2023 13:21:24 -0700 Subject: [PATCH] Revert "Merge pull request #1331 from Interlisp/Remake-CMLARITH-filemap" (#1376) This reverts commit e2d8c9e5adf235193db48d3b43fc4b7f5ba8e961, reversing changes made to 9054814ef7365feb0e61ed50519f888d45ed9388. --- sources/CMLARITH | 810 ++++++++++++++++++------------------- sources/CMLARITH.LCOM | 15 +- sources/CMLCHARACTER | 312 +++++++------- sources/CMLCHARACTER.DFASL | Bin 18673 -> 0 bytes sources/CMLCHARACTER.LCOM | Bin 0 -> 20600 bytes 5 files changed, 561 insertions(+), 576 deletions(-) delete mode 100644 sources/CMLCHARACTER.DFASL create mode 100644 sources/CMLCHARACTER.LCOM diff --git a/sources/CMLARITH b/sources/CMLARITH index 419cabf9..9e0d3a7a 100644 --- a/sources/CMLARITH +++ b/sources/CMLARITH @@ -1,15 +1,15 @@ -(DEFINE-FILE-INFO PACKAGE "LISP" READTABLE "XCL" BASE 10) +(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "LISP") +(IL:FILECREATED " 4-Jan-93 17:38:48" IL:|{DSK}lde>lispcore>sources>CMLARITH.;2| 102283 -(IL:FILECREATED "24-Sep-2023 15:37:27" IL:|{WMEDLEY}CMLARITH.;3| 100379 + IL:|previous| IL:|date:| "16-May-90 12:46:36" IL:|{DSK}lde>lispcore>sources>CMLARITH.;1| +) - :EDIT-BY IL:|rmk| - - :PREVIOUS-DATE "23-Sep-2023 23:15:39" IL:|{WMEDLEY}CMLARITH.;2|) +; Copyright (c) 1985, 1986, 1987, 1988, 1989, 1990, 1993 by Venue & Xerox Corporation. All rights reserved. (IL:PRETTYCOMPRINT IL:CMLARITHCOMS) -(IL:RPAQQ IL:CMLARITHCOMS +(IL:RPAQQ IL:CMLARITHCOMS ( (IL:* IL:|;;;| "Common Lisp Arithmetic ") @@ -64,14 +64,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 +79,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 +102,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 +143,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 +174,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 +182,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 +192,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 +220,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 +340,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 +385,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,31 +395,30 @@ (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) @@ -428,7 +427,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) @@ -468,11 +467,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) @@ -507,9 +506,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)) @@ -593,7 +592,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) @@ -633,30 +632,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))) @@ -666,7 +665,7 @@ (IL:* IL:|;;| "Might want to use a BLUE algorithm here") (SQRT (SETQ X (+ (* X X) - (* Y Y)))))) + (* Y Y)))))) @@ -680,7 +679,8 @@ -(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 +690,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 +712,10 @@ (> NUMBER 0)) (XCL:DEFOPTIMIZER ZEROP (NUMBER) - `(= 0 ,NUMBER)) + `(= 0 ,NUMBER)) (XCL:DEFOPTIMIZER PLUSP (NUMBER) - `(> ,NUMBER 0)) + `(> ,NUMBER 0)) @@ -728,7 +728,7 @@ (< NUMBER 0)) (XCL:DEFOPTIMIZER MINUSP (NUMBER) - `(< ,NUMBER 0)) + `(< ,NUMBER 0)) @@ -750,16 +750,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 +798,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 +815,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 +854,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 +879,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,56 +977,58 @@ ((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)) @@ -1043,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)) @@ -1253,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))) @@ -1264,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) @@ -1293,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 @@ -1399,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))) @@ -1467,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:|;;| @@ -1530,7 +1532,7 @@ (IF (EQ GCD 1) (* X Y) (* (IL:IQUOTIENT X GCD) - Y)))))) + Y)))))) (IL:DEFINEQ (GCD @@ -1583,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)) @@ -1667,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))))) @@ -1697,7 +1699,7 @@ (- 0.0 NUMBER) NUMBER)) (RATIO (IF (< (RATIO-NUMERATOR NUMBER) - 0) + 0) (%MAKE-RATIO (- 0 (RATIO-NUMERATOR NUMBER)) (RATIO-DENOMINATOR NUMBER)) NUMBER)) @@ -1709,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) @@ -1735,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)) @@ -1800,7 +1802,7 @@ (T RESULT))) (LET ((RESULT (XCL::STRUNCATE NUMBER DIVISOR))) (IF (= (REM NUMBER DIVISOR) - 0) + 0) RESULT (IF (< NUMBER 0) (IF (< DIVISOR 0) @@ -1824,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) @@ -1846,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)) @@ -1907,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) @@ -1943,16 +1945,18 @@ (%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) @@ -1965,7 +1969,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) @@ -1995,7 +1999,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)))))) @@ -2033,16 +2037,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)) @@ -2050,14 +2054,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 @@ -2104,10 +2108,12 @@ ) (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))) @@ -2130,24 +2136,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) @@ -2229,19 +2235,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) @@ -2260,10 +2266,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 @@ -2347,49 +2353,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)) @@ -2403,7 +2409,7 @@ (IF (AND (< SIZE 256) (< POSITION 256)) (+ (ASH SIZE 8) - POSITION) + POSITION) (CONS SIZE POSITION)))) (XCL:DEFINLINE BYTE-SIZE (BYTESPEC) @@ -2427,18 +2433,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))) @@ -2454,7 +2460,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) @@ -2482,53 +2488,58 @@ (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 @@ -2536,9 +2547,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 ) @@ -2547,48 +2558,11 @@ (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 (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: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:STOP diff --git a/sources/CMLARITH.LCOM b/sources/CMLARITH.LCOM index 438354d5..ec11e77b 100644 --- a/sources/CMLARITH.LCOM +++ b/sources/CMLARITH.LCOM @@ -1,10 +1,9 @@ -(DEFINE-FILE-INFO PACKAGE "LISP" READTABLE "XCL" BASE 10) - -(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|) +(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|) (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 ( @@ -1146,4 +1145,6 @@ 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 diff --git a/sources/CMLCHARACTER b/sources/CMLCHARACTER index a77448ff..cec844f8 100644 --- a/sources/CMLCHARACTER +++ b/sources/CMLCHARACTER @@ -1,46 +1,50 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) +(FILECREATED "28-Jun-99 21:54:32" {DSK}medley3.5>sources>CMLCHARACTER.;2 32559 -(FILECREATED "17-Oct-2023 13:16:14" {WMEDLEY}CMLCHARACTER.;3 31224 + changes to%: (OPTIMIZERS CL:CODE-CHAR) + (FUNCTIONS CL:CODE-CHAR) - :EDIT-BY rmk + previous date%: "18-Aug-95 14:45:44" {DSK}medley3.5>sources>CMLCHARACTER.;1) - :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) @@ -53,11 +57,11 @@ 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))) @@ -85,35 +89,36 @@ ) (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)) @@ -127,7 +132,7 @@ (DECLARE%: EVAL@COMPILE (ACCESSFNS CHARACTER [(CODE (\LOLOC (\DTEST DATUM 'CHARACTER] - (CREATE (\VAG2 \CHARHI CODE))) + (CREATE (\VAG2 \CHARHI CODE))) ) ) @@ -167,43 +172,43 @@ ) (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)) @@ -321,34 +326,36 @@ ) (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)) @@ -620,100 +627,105 @@ 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)) - -(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))) - -(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))) - -(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] + `[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))) + +(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))) + +(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)) + (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)))) @@ -760,23 +772,21 @@ (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 (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))))) + (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))))) STOP diff --git a/sources/CMLCHARACTER.DFASL b/sources/CMLCHARACTER.DFASL deleted file mode 100644 index bf166c7c5f782aaee325e26132505fd1e95c4621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18673 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 diff --git a/sources/CMLCHARACTER.LCOM b/sources/CMLCHARACTER.LCOM new file mode 100644 index 0000000000000000000000000000000000000000..ed86fbb823017f210bc6a09abd77ec4afa77f527 GIT binary patch literal 20600 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 Rc!v;wsB9X)ZNcvZ{vU%CDRuw= literal 0 HcmV?d00001