;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for MICRO-COMPILATION-TOOLS version 3.4 ;;; Reason: ;;; Add variable COMPILER:*MICROCOMPILER-VERBOSE* which determines ;;; whether each step in the micro-compilation should be printed out. ;;; Defaults to NIL. ;;; Written 6-Aug-86 21:50:04 by dg (Dave Goodine) at site LMI Cambridge ;;; while running on Maurice Ravel from band 1 ;;; with System 110.232, Lambda-Diag 7.17, Experimental Local-File 68.7, FILE-Server 18.4, Unix-Interface 9.1, ZMail 65.14, Object Lisp 3.4, Tape 6.39, Site Data Editor 3.3, Tiger 24.0, KERMIT 31.3, Gateway 4.15, TCP-Kernel 39.7, TCP-User 62.7, TCP-Server 45.5, MEDIUM-RESOLUTION-COLOR 3.4, MICRO-COMPILATION-TOOLS 3.3, System Revision Level 3.137, Experimental Window-Maker 2.0, microcode 1563, SDU Boot Tape 3.12, SDU ROM 102, Alpha VII. ; From modified file LAD: RELEASE-3.MICRO-COMPILER; MA.LISP#95 at 6-Aug-86 21:51:19 #8R COMPILER#: #!:ZL (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "COMPILER"))) (PATCH-SOURCE-FILE "SYS: MICRO-COMPILER; MA  " (defvar *microcompiler-verbose* nil "If non-NIL, will cause info to be printed out when microcompiling.") )) ; From modified file LAD: RELEASE-3.MICRO-COMPILER; MA.LISP#95 at 6-Aug-86 21:51:24 #8R COMPILER#: #!:ZL (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "COMPILER"))) (PATCH-SOURCE-FILE "SYS: MICRO-COMPILER; MA  " (DEFUN MICRO-ASSEMBLE (MODE) ;this function called from MICRO-COMPILE in LISPM;MC (PROG (TEM FUNCTION-NAME OUTPUT) (setq default-cons-area working-storage-area) ;try to avoid lossage. (COND ((NULL *UCADR-STATE-LIST*) (GET-UCADR-STATE-LIST) (MA-INITIALIZE-VARIABLES))) L ;(ma-print-code) (when *microcompiler-verbose* (PRINT '(MA-HOOK-UP-STATES))) (MA-HOOK-UP-STATES) (when *microcompiler-verbose* (PRINT '(MA-HOOK-UP-OPERANDS))) (MA-HOOK-UP-OPERANDS) (COND (*MA-BRANCH-TENSION* (when *microcompiler-verbose* (PRINT '(MA-BRANCH-TENSION))) (COND ((MA-BRANCH-TENSION) (PRINC "Code improved, recycling") (GO L))))) (comment (COND (*MA-CHART-TOPOLOGY* (when *microcompiler-verbose* (PRINT '(MA-CHART-TOPOLOGY))) (MA-CHART-TOPOLOGY))) ) (comment (COND ((AND *MA-CHART-TOPOLOGY* *MA-COLAPSE-CUBBYHOLES* (SETQ TEM (MA-FIND-CUBBYHOLES-TO-COLAPSE))) (MA-COLAPSE-CUBBYHOLES TEM) (GO L))) ) (COND (*MA-OPTIMIZE* (when *microcompiler-verbose* (PRINT '(MA-OPTIMIZE))) (COND ((MA-OPTIMIZE) ;returns T if significant change (GO L))))) (when *microcompiler-verbose* (PRINT '(MA-CONVERT))) (MA-CONVERT) (SETQ FUNCTION-NAME (CADR (ASSQ 'FUNCTION-NAME *MA-PARAM-LIST*))) (SETQ OUTPUT (LIST *MA-PARAM-LIST* (MAKE-MCLAP))) (SELECTQ MODE (COMPILE-TO-CORE (MA-INSTALL-MCLAP FUNCTION-NAME (SI:COPY-OBJECT-TREE OUTPUT))) ;SOME STUFF IS PASSED ;FROM THE COMPILER AND COULD BE IN A TEMPORARY AREA. Note that the ; temporary-areas-only option to COPY-OBJECT-TREE will not do because permanent ;area stuff can point to the temporary area stuff. (QFASL (FASD-FORM `(MA-INSTALL-MCLAP ',FUNCTION-NAME ',OUTPUT))) (REL (QFASL-REL:DUMP-FORM `(MA-INSTALL-MCLAP ',FUNCTION-NAME ',OUTPUT))) (OTHERWISE (FERROR NIL "~%Unknown output mode ~s" MODE))) (RETURN FUNCTION-NAME))) ))