This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMU Common Lisp".
The branch, dynamic-stack-alloc has been updated via 73d642c3e9cb6cc27f1e57ef1dcd5b5bf79e8624 (commit) via cc34b6ac2b51d593b3828a47be2805e3ccf19b52 (commit) via 0495d941be1add43433892aaa4b6ecbb3ff13a6d (commit) via 36ab199b205b982866b177ea7ddbe636b69803a4 (commit) via 581895eac2841a04285a40cfae9b25fbdc1ff0fe (commit) from 8b8a38b2bad5a856dea915309be4f3697e2f0312 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 73d642c3e9cb6cc27f1e57ef1dcd5b5bf79e8624 Author: Raymond Toy toy.raymond@gmail.com Date: Tue Oct 4 22:07:33 2011 -0700
Use git describe as part of the version. Include the dirty flag too.
diff --git a/tools/load-world.sh b/tools/load-world.sh index 672a357..d381769 100755 --- a/tools/load-world.sh +++ b/tools/load-world.sh @@ -11,8 +11,9 @@ usage()
SKIP_PCL= NO_PCL_FEATURE= -# Default version is the date. -VERSION="CVS Head `date '+%Y-%m-%d %H:%M:%S'`" +# Default version is the date and the git hash +GIT_HASH="`(cd src; git describe --dirty 2>/dev/null)`" +VERSION="`date '+%Y-%m-%d %H:%M:%S'`"
while getopts "p" arg do @@ -57,6 +58,6 @@ $TARGET/lisp/lisp -core $TARGET/lisp/kernel.core <<EOF $NO_PCL_FEATURE
(load "target:tools/worldload") -$2 +$VERSION $GIT_HASH
EOF
commit cc34b6ac2b51d593b3828a47be2805e3ccf19b52 Author: Raymond Toy toy.raymond@gmail.com Date: Tue Oct 4 21:57:36 2011 -0700
Mmap the binding stack where space is available.
Darwin-os.c: Linux-os.c: gencgc.c: save.c: o Use binding_stack instead of BINDING_STACK_START
validate.c: o Dynamically allocate the binding stack if BINDING_STACK_START is not defined.
x86-validate.c: o Don't define BINDING_STACK_START for Darwin and Linux.
diff --git a/lisp/Darwin-os.c b/lisp/Darwin-os.c index db59d3d..cbaf65c 100644 --- a/lisp/Darwin-os.c +++ b/lisp/Darwin-os.c @@ -451,7 +451,7 @@ valid_addr(os_vm_address_t addr) || in_range_p(addr, DYNAMIC_1_SPACE_START, dynamic_space_size) #endif || in_range_p(addr, control_stack, control_stack_size) - || in_range_p(addr, BINDING_STACK_START, binding_stack_size)) + || in_range_p(addr, binding_stack, binding_stack_size)) return TRUE; return FALSE; } diff --git a/lisp/Linux-os.c b/lisp/Linux-os.c index 3217476..ea50ef8 100644 --- a/lisp/Linux-os.c +++ b/lisp/Linux-os.c @@ -378,7 +378,7 @@ valid_addr(os_vm_address_t addr) || in_range_p(addr, DYNAMIC_0_SPACE_START, dynamic_space_size) || in_range_p(addr, DYNAMIC_1_SPACE_START, dynamic_space_size) || in_range_p(addr, control_stack, control_stack_size) - || in_range_p(addr, BINDING_STACK_START, binding_stack_size)) + || in_range_p(addr, binding_stack, binding_stack_size)) return TRUE; return FALSE; } @@ -452,7 +452,7 @@ sigsegv_handler(HANDLER_ARGS) if (addr != NULL && context->sc_regs[reg_ALLOC] & (1 << 63)) { context->sc_regs[reg_ALLOC] -= (1 << 63); interrupt_handle_pending(context); - } else if (addr > CONTROL_STACK_TOP && addr < BINDING_STACK_START) { + } else if (addr > CONTROL_STACK_TOP && addr < binding_stack) { fprintf(stderr, "Possible stack overflow at 0x%08lX!\n", addr); /* try to fix control frame pointer */ while (!(control_stack <= *current_control_frame_pointer && diff --git a/lisp/gencgc.c b/lisp/gencgc.c index 7b6b008..c21385e 100644 --- a/lisp/gencgc.c +++ b/lisp/gencgc.c @@ -2011,9 +2011,9 @@ control_stack_space_p(lispobj obj) static inline boolean binding_stack_space_p(lispobj obj) { - lispobj end = BINDING_STACK_START + binding_stack_size; + lispobj end = (char*) binding_stack + binding_stack_size;
- return (obj >= BINDING_STACK_START) && (obj < end); + return (obj >= binding_stack) && (obj < end); }
static inline boolean @@ -7116,11 +7116,11 @@ verify_gc(void) int static_space_size = (lispobj *) SymbolValue(STATIC_SPACE_FREE_POINTER) - (lispobj *) static_space; int binding_stack_size = (lispobj *) get_binding_stack_pointer() - - (lispobj *) BINDING_STACK_START; + - (lispobj *) binding_stack;
verify_space((lispobj *) READ_ONLY_SPACE_START, read_only_space_size); verify_space((lispobj *) static_space, static_space_size); - verify_space((lispobj *) BINDING_STACK_START, binding_stack_size); + verify_space((lispobj *) binding_stack, binding_stack_size); verify_space((lispobj *) (void *) &scavenger_hooks, 1); }
diff --git a/lisp/save.c b/lisp/save.c index f6fb4bd..bebeded 100644 --- a/lisp/save.c +++ b/lisp/save.c @@ -138,7 +138,7 @@ save(char *filename, lispobj init_function, int sse2_mode) } printf("[Undoing binding stack... "); fflush(stdout); - unbind_to_here((lispobj *) BINDING_STACK_START); + unbind_to_here((lispobj *) binding_stack); SetSymbolValue(CURRENT_CATCH_BLOCK, 0); SetSymbolValue(CURRENT_UNWIND_PROTECT_BLOCK, 0); SetSymbolValue(EVAL_STACK_TOP, 0); @@ -277,7 +277,7 @@ save_executable(char *filename, lispobj init_function)
printf("[Undoing binding stack... "); fflush(stdout); - unbind_to_here((lispobj *)BINDING_STACK_START); + unbind_to_here((lispobj *) binding_stack); SetSymbolValue(CURRENT_CATCH_BLOCK, 0); SetSymbolValue(CURRENT_UNWIND_PROTECT_BLOCK, 0); SetSymbolValue(EVAL_STACK_TOP, 0); diff --git a/lisp/validate.c b/lisp/validate.c index 3025ffc..bfaa6ac 100644 --- a/lisp/validate.c +++ b/lisp/validate.c @@ -115,8 +115,14 @@ validate(void) #endif
/* Binding Stack */ +#if defined(BINDING_STACK_START) binding_stack = (lispobj *) BINDING_STACK_START; ensure_space(binding_stack, binding_stack_size); +#else + binding_stack = (lispobj *) os_allocate(binding_stack_size); + +#endif + #ifdef sparc make_holes(); #endif diff --git a/lisp/x86-validate.h b/lisp/x86-validate.h index a2c9414..a751154 100644 --- a/lisp/x86-validate.h +++ b/lisp/x86-validate.h @@ -128,7 +128,9 @@ #define STATIC_SPACE_START (SpaceStart_TargetStatic) #define STATIC_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
+#if !defined(DARWIN) #define BINDING_STACK_START (0x38000000) +#endif #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
#if !defined(DARWIN) @@ -181,7 +183,9 @@ #define STATIC_SPACE_START (SpaceStart_TargetStatic) #define STATIC_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
+#if 0 #define BINDING_STACK_START (0x20000000) +#endif #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
#if 0
commit 0495d941be1add43433892aaa4b6ecbb3ff13a6d Author: Raymond Toy toy.raymond@gmail.com Date: Tue Oct 4 21:53:04 2011 -0700
Regenerated.
diff --git a/i18n/locale/cmucl.pot b/i18n/locale/cmucl.pot index 08392c7..abe9a3b 100644 --- a/i18n/locale/cmucl.pot +++ b/i18n/locale/cmucl.pot @@ -4772,6 +4772,10 @@ msgid "" msgstr ""
#: src/code/float-trap.lisp +msgid "SIGFPE with no exceptions currently enabled?" +msgstr "" + +#: src/code/float-trap.lisp msgid "" "Execute BODY with the floating point exceptions listed in TRAPS\n" " masked (disabled). TRAPS should be a list of possible exceptions\n"
commit 36ab199b205b982866b177ea7ddbe636b69803a4 Author: Raymond Toy toy.raymond@gmail.com Date: Tue Oct 4 21:52:16 2011 -0700
Use describe for the version instead of the tree hash.
diff --git a/tools/build.sh b/tools/build.sh index 85e4041..74374dd 100755 --- a/tools/build.sh +++ b/tools/build.sh @@ -43,7 +43,7 @@ version=20b SRCDIR=src TOOLDIR=$SRCDIR/tools VERSION="`date '+%Y-%m-%d %H:%M:%S'`" -GIT_HASH="`(cd src; git log -1 --pretty=format:%t 2>/dev/null)`" +GIT_HASH="`(cd src; git describe --dirty 2>/dev/null)`" # Add the tree hash to the version VERSION="$VERSION $GIT_HASH" BASE=build
commit 581895eac2841a04285a40cfae9b25fbdc1ff0fe Author: Raymond Toy toy.raymond@gmail.com Date: Mon Oct 3 21:22:21 2011 -0700
Allocate the linkage table area before allocating the stacks. Otherwise, we might accidentally allocate the linkage table on top of the stacks which would create a mess.
diff --git a/lisp/validate.c b/lisp/validate.c index f5fd135..3025ffc 100644 --- a/lisp/validate.c +++ b/lisp/validate.c @@ -94,6 +94,10 @@ validate(void) */ #endif
+#ifdef LINKAGE_TABLE + ensure_space((lispobj *) FOREIGN_LINKAGE_SPACE_START, + FOREIGN_LINKAGE_SPACE_SIZE); +#endif /* Control Stack */
#if defined(CONTROL_STACK_START) @@ -113,10 +117,6 @@ validate(void) /* Binding Stack */ binding_stack = (lispobj *) BINDING_STACK_START; ensure_space(binding_stack, binding_stack_size); -#ifdef LINKAGE_TABLE - ensure_space((lispobj *) FOREIGN_LINKAGE_SPACE_START, - FOREIGN_LINKAGE_SPACE_SIZE); -#endif #ifdef sparc make_holes(); #endif
-----------------------------------------------------------------------
Summary of changes: i18n/locale/cmucl.pot | 4 ++++ lisp/Darwin-os.c | 2 +- lisp/Linux-os.c | 4 ++-- lisp/gencgc.c | 8 ++++---- lisp/save.c | 4 ++-- lisp/validate.c | 12 +++++++++--- lisp/x86-validate.h | 4 ++++ tools/build.sh | 2 +- tools/load-world.sh | 7 ++++--- 9 files changed, 31 insertions(+), 16 deletions(-)
hooks/post-receive