gcl.git - GNU Common Lisp

index : gcl.git
GNU Common Lisp
summary refs log tree commit diff
path: root/gcl/pcl/precom1.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'gcl/pcl/precom1.lisp')
-rw-r--r--gcl/pcl/precom1.lisp 51
1 files changed, 51 insertions, 0 deletions
diff --git a/gcl/pcl/precom1.lisp b/gcl/pcl/precom1.lisp
new file mode 100644
index 000000000..0c550d95d
--- /dev/null
+++ b/gcl/pcl/precom1.lisp
@@ -0,0 +1,51 @@
+;;;-*-Mode:LISP; Package:(PCL LISP 1000); Base:10; Syntax:Common-lisp -*-
+;;;
+;;; *************************************************************************
+;;; Copyright (c) 1985, 1986, 1987, 1988, 1989, 1990 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 PARC
+;;; 3333 Coyote Hill Rd.
+;;; Palo Alto, CA 94304
+;;; (or send Arpanet mail to CommonLoops-Coordinator.pa@Xerox.arpa)
+;;;
+;;; Suggestions, comments and requests for improvements are also welcome.
+;;; *************************************************************************
+;;;
+
+(in-package :pcl)
+
+;;;
+;;; pre-allocate generic function caches. The hope is that this will put
+;;; them nicely together in memory, and that that may be a win. Of course
+;;; the first gc copy will probably blow that out, this really wants to be
+;;; wrapped in something that declares the area static.
+;;;
+;;; This preallocation only creates about 25% more caches than PCL itself
+;;; uses need. Some ports may want to preallocate some more of these.
+;;;
+(eval-when (load)
+ (flet ((allocate (n size)
+ (mapcar #'free-cache-vector
+ (mapcar #'get-cache-vector
+ (make-list n :initial-element size)))))
+ (allocate 128 4)
+ (allocate 64 8)
+ (allocate 64 9)
+ (allocate 32 16)
+ (allocate 16 17)
+ (allocate 16 32)
+ (allocate 1 64)))
+
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月04日 15:02:48 +0000

AltStyle によって変換されたページ (->オリジナル) /