X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fparms.lisp;h=bbd4eaea5ddc10d85aca886af7b810e21344f2e9;hb=27b74ec6758f52b76e4f90cbf628f173a0cc6acb;hp=c39ffe526c802a32be48970af3595392c335aef6;hpb=c548f73e8dd676d6ec4576eba6ab661a5061bdfe;p=sbcl.git diff --git a/src/compiler/generic/parms.lisp b/src/compiler/generic/parms.lisp index c39ffe5..bbd4eae 100644 --- a/src/compiler/generic/parms.lisp +++ b/src/compiler/generic/parms.lisp @@ -12,10 +12,30 @@ (in-package "SB!VM") +(def!macro !configure-dynamic-space-end (default) + (with-open-file (f "output/dynamic-space-size.txt") + (let ((line (read-line f))) + (multiple-value-bind (number end) + (parse-integer line :junk-allowed t) + (if number + (let* ((ext (subseq line end)) + (mult (cond ((or (zerop (length ext)) + (member ext '("MB MIB") :test #'equalp)) + (expt 2 20)) + ((member ext '("GB" "GIB") :test #'equalp) + (expt 2 30)) + (t + (error "Invalid --dynamic-space-size=~A" line))))) + `(+ dynamic-space-start ,(* number mult))) + default))))) + (defparameter *c-callable-static-symbols* '(sub-gc + sb!kernel::post-gc sb!kernel::internal-error sb!kernel::control-stack-exhausted-error + sb!kernel::binding-stack-exhausted-error + sb!kernel::alien-stack-exhausted-error sb!kernel::heap-exhausted-error sb!kernel::undefined-alien-variable-error sb!kernel::undefined-alien-function-error @@ -24,7 +44,6 @@ sb!di::handle-breakpoint sb!di::handle-single-step-trap fdefinition-object - #!+sb-thread sb!thread::run-interruption #!+win32 sb!kernel::handle-win32-exception)) (defparameter *common-static-symbols* @@ -44,6 +63,8 @@ *current-catch-block* *current-unwind-protect-block* + #!+hpux *c-lra* + ;; stack pointers *binding-stack-start* *control-stack-start* @@ -55,19 +76,44 @@ sb!unix::*allow-with-interrupts* sb!unix::*interrupts-enabled* sb!unix::*interrupt-pending* + *in-without-gcing* *gc-inhibit* *gc-pending* #!-sb-thread *stepping* + ;; threading support + #!+sb-thread *stop-for-gc-pending* + #!+sb-thread *free-tls-index* + #!+sb-thread *tls-index-lock* + ;; Dispatch tables for generic array access - sb!impl::*data-vector-reffers* - sb!impl::*data-vector-setters* - sb!impl::*data-vector-reffers/check-bounds* - sb!impl::*data-vector-setters/check-bounds* + sb!impl::%%data-vector-reffers%% + sb!impl::%%data-vector-reffers/check-bounds%% + sb!impl::%%data-vector-setters%% + sb!impl::%%data-vector-setters/check-bounds%% + + ;; non-x86oid gencgc object pinning + #!+(and gencgc (not (or x86 x86-64))) + *pinned-objects* ;; hash table weaknesses :key :value :key-and-value :key-or-value)) + +;;; Number of entries in the thread local storage. Limits the number +;;; of symbols with thread local bindings. +(def!constant tls-size 4096) + +#!+gencgc +(progn + (def!constant +highest-normal-generation+ 5) + (def!constant +pseudo-static-generation+ 6)) + +(defenum () + trace-table-normal + trace-table-call-site + trace-table-fun-prologue + trace-table-fun-epilogue)