;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 126.119
;;; Reason:
;;;  Turn on switch that enables integration of system constant values
;;;  into compiled code.  
;;; Written 20-Oct-88 17:34:30 by smh at site Gigamos Cambridge
;;; while running on Alex from band 3
;;; with Experimental System 126.118, Experimental ZWEI 126.22, Experimental ZMail 74.10, Experimental Local-File 76.0, Experimental File-Server 25.0, Experimental Lambda-Diag 18.0, Experimental Unix-Interface 15.0, Experimental Tape 26.4, Microcode 1762, SDU Boot Tape 3.14, SDU ROM 102, Lambda/Falcon Development System.



; From modified file DJ: L.SYS; QCP1.LISP#742 at 20-Oct-88 17:37:51
#8R COMPILER#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "COMPILER")))
  (PATCH-SOURCE-FILE "SYS: SYS; QCP1  "


(defparameter *integrate-constants?* t		;changed to T - smh&keith 20oct88
  "If T, constants get substituted into compiled code.")

))

; From modified file DJ: L.SYS; QCP1.LISP#742 at 20-Oct-88 17:37:53
#8R COMPILER#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "COMPILER")))
  (PATCH-SOURCE-FILE "SYS: SYS; QCP1  "


(defun integrable-constant? (var)
  (and (or *integrate-constants?*
	   (and local-declarations
		(let ((decl (assq 'si:integrate-constants local-declarations)))
		  (or (null (rest decl))
		      (memq var (rest decl))))))
       ;;; ||| changed get to getdecl for cross compilation - smh&keith 20oct88
       (getdecl var 'si:system-constant)
       (boundp var)
       (let ((value (eval var)))
	 (or (symbolp value)
	     (numberp value)
	     ;;; ||| also eqlable - smh&keith 20oct88
	     (characterp value)))
       ))

))
