LMFL#!C(:HOST "SYS" :BACKUP-DATE 2760032838. :SYSTEM-TYPE :LOGICAL :VERSION 1. :TYPE "LISP" :NAME "HP-LOW" :DIRECTORY ("REL3-PUBLIC" "PUBLIC" "PCL") :SOURCE-PATTERN "( :DIRECTORY (\"REL3-PUBLIC\") :NAME :WILD :TYPE :WILD :VERSION :NEWEST)" :CHARACTERS T :NOT-BACKED-UP T :CREATION-DATE 2756388149. :AUTHOR "REL3" :LENGTH-IN-BYTES 2991. :LENGTH-IN-BLOCKS 3. :BYTE-SIZE 8.)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ;;; -*- Mode:LISP; Package:(PCL LISP 1000); Base:10; Syntax:Common-lisp -*-;;;;;; *************************************************************************;;; Copyright (c) 1985 Xerox Corporation.  All rights reserved.;;;;;; Use and copying of this software and preparation of derivative works;;; based upon this software are permitted.  Any distribution of this;;; software or derivative works must comply with all applicable United;;; States export control laws.;;; ;;; This software is made available AS IS, and Xerox Corporation makes no;;; warranty about the software, its performance or its conformity to any;;; specification.;;; ;;; Any person obtaining a copy of this software is requested to send their;;; name and post office or electronic mail address to:;;;   CommonLoops Coordinator;;;   Xerox Artifical Intelligence Systems;;;   2400 Hanover St.;;;   Palo Alto, CA 94303;;; (or send Arpanet mail to CommonLoops-Coordinator.pa@Xerox.arpa);;;;;; Suggestions, comments and requests for improvements are also welcome.;;; *************************************************************************;;; ;;; This is the HP Common Lisp version of the file low.;;;;;; (in-package 'pcl)  ;;   ;;;;;; Load Time Eval  ;;;;;;;; #, is woefully inadequate.  You can't use it inside of a macro and have;;; the expansion of part of the macro be evaluated at load-time its kind of;;; a joke.  load-time-eval is used to provide an interface to implementation;;; dependent implementation of load time evaluation.;;;;;; A compiled call to load-time-eval:;;;   should evaluated the form at load time,;;;   but if it is being compiled-to-core evaluate it at compile time;;; Interpreted calls to load-time-eval:;;;   should just evaluate form at run-time.;;; ;;; The portable implementation just evaluates it every time, and PCL knows;;; this.  PCL is careful to only use load-time-eval in places where (except;;; for performance penalty) it is OK to evaluate the form every time.;;; ;;(defmacro load-time-eval (form);;  `(progn ,form));;(defmacro load-time-eval (form);;   `(impl::loadtime ,form))(defmacro load-time-eval (form)  `(eval-when (load eval) ,form))  (defmacro implementation-dependent-class-of (x)  (or (and (null x)           (class-named 'null))      (and (stringp x)           (class-named 'string))      (and (characterp x)           (class-named 'character))))  ;;   ;;;;;; Cache No's  ;;  ;;; Grab the top 29 bits;;;(defmacro symbol-cache-no (symbol mask); `(logand (prim:@inf ,symbol) ,mask)                       ;33% hit rate  `(logand (ash (prim:@inf ,symbol) -5) ,mask)              ;83% hit rate; `(the extn::index (logand (prim::@>> ,symbol 4) ,mask))   ;75% hit rate  )(defmacro object-cache-no (symbol mask)  `(logand (prim:@inf ,symbol) ,mask))  ;;   ;;;;;; printing-random-thing-internal  ;;(defun printing-random-thing-internal (thing stream)  (format stream "~O" (prim:@inf thing)))h 7)      ,value)     `(format stream      "~% ~A~VT  ~S"      ,na