to Martin Atzmueller's review of it.
* The debugger now flushes standard output streams before it begins
its output ("debugger invoked" and so forth).
+?? The core version number and fasl file version number have both
+ been incremented, because of incompatible changes in the layout
+ of static symbols.
?? FINISH-OUTPUT now works better than it did before. (It used to
have trouble with characters which weren't followed by a linefeed.)
?? Remember to remove this from BUGS.
get confused after a Ctrl-C interrupt under ILISP, has been fixed.
?? added enough DEFTRANSFORMs to allow (SXHASH 'FOO) to be optimized
away by constant folding
-?? The system now defines its address space constants in one place
+* The system now defines its address space constants in one place
(in the Lisp sources), and propagates them automatically elsewhere
(through GENESIS and the sbcl.h file). Therefore, patching the
address map is less unnecessarily tedious and error-prone. The
Lisp names of address space constants have also been systematized.
-?? dollar-Header-dollar and other CVS magic tags have been removed
- from the sources, because they have never saved me trouble and
- they've been a nuisance working with patches and other
+?? CVS tags like dollar-Header-dollar have been removed from
+ the sources, because they have never saved me trouble and
+ they've been source of trouble working with patches and other
diff-related operations.
"SYMBOL-PACKAGE-SLOT" "SYMBOL-PLIST-SLOT"
"SYMBOL-RAW-FUNCTION-ADDR-SLOT" "SYMBOL-SETF-FUNCTION-SLOT"
"SYMBOL-SIZE" "SYMBOL-UNUSED-SLOT" "SYMBOL-VALUE-SLOT"
- "BINDING-STACK-START" "TARGET-BYTE-ORDER"
- "CONTROL-STACK-START" "CONTROL-STACK-END" "DYNAMIC-SPACE-START"
+ "BINDING-STACK-START" "BINDING-STACK-END"
+ "CONTROL-STACK-START" "CONTROL-STACK-END"
+ "DYNAMIC-SPACE-START" "DYNAMIC-SPACE-END"
+ "READ-ONLY-SPACE-START" "READ-ONLY-SPACE-END"
+ "TARGET-BYTE-ORDER"
"TARGET-FASL-CODE-FORMAT" "TARGET-FASL-FILE-TYPE"
"TARGET-HEAP-ADDRESS-SPACE" "*TARGET-MOST-NEGATIVE-FIXNUM*"
- "*TARGET-MOST-POSITIVE-FIXNUM*" "READ-ONLY-SPACE-START"
- "STATIC-SPACE-START" "TRACE-TABLE-CALL-SITE"
+ "*TARGET-MOST-POSITIVE-FIXNUM*"
+ "STATIC-SPACE-START" "STATIC-SPACE-END"
+ "TRACE-TABLE-CALL-SITE"
"TRACE-TABLE-FUNCTION-EPILOGUE" "TRACE-TABLE-FUNCTION-PROLOGUE"
"TRACE-TABLE-NORMAL" "TYPE-BITS" "TYPE-MASK" "UNBOUND-MARKER-TYPE"
"UNSIGNED-IMMEDIATE-SC-NUMBER"
sb!vm::*fp-constant-lg2*
sb!vm::*fp-constant-ln2*
sb!vm::*scavenge-read-only-space*
- sb!vm::*control-stacks*
sb!pcl::..slot-unbound..
sb!vm::*x86-cgc-active-p*
sb!vm::*static-blue-bag*))
(defun binding-stack-usage ()
(- (sb!sys:sap-int (sb!c::binding-stack-pointer-sap))
- (sb!vm:binding-stack-start)))
+ sb!vm:binding-stack-start))
\f
;;;; ROOM
;;; stomping on an address range that the dynamic libraries want to use.
;;; (They want to use this address range even if we try to reserve it
;;; with a call to validate() as the first operation in main().)
+
#!+linux
(progn
(defconstant read-only-space-start #x01000000)
+ (defconstant read-only-space-end #x037ff000)
(defconstant static-space-start #x05000000)
+ (defconstant static-space-end #x07fff000)
(defconstant dynamic-space-start #x09000000)
+ (defconstant dynamic-space-end #x29000000)
(defconstant control-stack-start #x50000000)
- (defconstant control-stack-end #x57fff000))
+ (defconstant control-stack-end #x57fff000)
+
+ (defconstant binding-stack-start #x60000000)
+ (defconstant binding-stack-end #x67fff000))
+
#!+bsd
(progn
(defconstant read-only-space-start #x10000000)
+ (defconstant read-only-space-end #x1ffff000)
(defconstant static-space-start
#!+freebsd #x30000000
#!+openbsd #x28000000)
+ (defconstant static-space-end #x37fff000)
+
+ (defconstant binding-stack-start #x38000000)
+ (defconstant binding-stack-end #x3ffff000)
(defconstant control-stack-start #x40000000)
- (defconstant control-stack-end #x07fff000)
+ (defconstant control-stack-end #x47fff000)
- (defconstant dynamic-space-start #x48000000))
+ (defconstant dynamic-space-start #x48000000)
+ (defconstant dynamic-space-end #x88000000))
;;; Given that NIL is the first thing allocated in static space, we
;;; know its value at compile time:
;; used by gencgc
sb!vm::*scavenge-read-only-space*
- ;; multi-process support
- sb!vm::*control-stacks*
-
;; The ..SLOT-UNBOUND.. symbol is static in order to optimise the
;; common slot unbound check.
sb!pcl::..slot-unbound..
/*
* $Header$
*/
-\f
-#if defined(__FreeBSD__) || defined(__OpenBSD__)
-#define READ_ONLY_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
-#if defined __FreeBSD__
-#define STATIC_SPACE_SIZE (0x07fff000) /* 128M - 1 page */
-#elif defined __OpenBSD__
-#define STATIC_SPACE_SIZE (0x0ffff000) /* 256M - 1 page */
-#else
-#error unsupported BSD variant
-#endif
-
-#define BINDING_STACK_START (0x38000000)
-#define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
-
-#define DYNAMIC_SPACE_SIZE (0x40000000) /* may be up to 2GB */
-#endif
-
-#ifdef __linux__
-#define READ_ONLY_SPACE_SIZE (0x02800000) /* 40MB */
-
-#define STATIC_SPACE_SIZE (0x02fff000) /* 48MB - 1 page */
-
-#define BINDING_STACK_START (0x60000000)
-#define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
-
-#define DYNAMIC_SPACE_SIZE (0x20000000) /* 512MB */
-#endif
-
-#define CONTROL_STACK_SIZE (CONTROL_STACK_END - CONTROL_STACK_START)
+#define BINDING_STACK_SIZE ( BINDING_STACK_END - BINDING_STACK_START)
+#define CONTROL_STACK_SIZE ( CONTROL_STACK_END - CONTROL_STACK_START)
+#define DYNAMIC_SPACE_SIZE ( DYNAMIC_SPACE_END - DYNAMIC_SPACE_START)
+#define READ_ONLY_SPACE_SIZE (READ_ONLY_SPACE_END - READ_ONLY_SPACE_START)
+#define STATIC_SPACE_SIZE ( STATIC_SPACE_END - STATIC_SPACE_START)
;;; versions, and a string a la "0.6.5.12" is used for versions which
;;; aren't released but correspond only to CVS tags or snapshots.
-"0.6.7.15"
+"0.6.7.16"