X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fparms.lisp;h=b49671fbbce5e138a0df21633b6b5ab0c18300be;hb=ef0891e470ff35840def7a5717ede18a58266e76;hp=d590aebe4806750448bd5b768228ab4733b51e81;hpb=46c787a2d562c47d895d33b43de60f0bf6245762;p=sbcl.git diff --git a/src/compiler/generic/parms.lisp b/src/compiler/generic/parms.lisp index d590aeb..b49671f 100644 --- a/src/compiler/generic/parms.lisp +++ b/src/compiler/generic/parms.lisp @@ -12,6 +12,27 @@ (in-package "SB!VM") +(def!macro !configure-dynamic-space-end (&optional 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))) + (or default + `(+ dynamic-space-start + (ecase n-word-bits + (32 (expt 2 29)) + (64 (expt 2 30)))))))))) + (defparameter *c-callable-static-symbols* '(sub-gc sb!kernel::post-gc @@ -27,7 +48,8 @@ sb!di::handle-breakpoint sb!di::handle-single-step-trap fdefinition-object - #!+win32 sb!kernel::handle-win32-exception)) + #!+win32 sb!kernel::handle-win32-exception + #!+sb-thruption sb!thread::run-interruption)) (defparameter *common-static-symbols* '(t @@ -59,11 +81,15 @@ sb!unix::*allow-with-interrupts* sb!unix::*interrupts-enabled* sb!unix::*interrupt-pending* + #!+sb-thruption sb!unix::*thruption-pending* + #!+sb-thruption sb!impl::*restart-clusters* *in-without-gcing* *gc-inhibit* *gc-pending* #!-sb-thread *stepping* + #!+sb-safepoint sb!impl::*gc-safe* + #!+sb-safepoint sb!impl::*in-safepoint* ;; threading support #!+sb-thread *stop-for-gc-pending* @@ -71,10 +97,10 @@ #!+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)))