0.9.7.33:
authorChristophe Rhodes <csr21@cam.ac.uk>
Mon, 19 Dec 2005 10:49:33 +0000 (10:49 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Mon, 19 Dec 2005 10:49:33 +0000 (10:49 +0000)
Merge patch (Daisuke Homma sbcl-devel 2005-12-19) for stack
exhaustion on x86/SunOS.

NEWS
src/runtime/x86-sunos-os.c
version.lisp-expr

diff --git a/NEWS b/NEWS
index 45c747a..8f25905 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,8 @@ changes in sbcl-0.9.8 relative to sbcl-0.9.7:
     the change in the 0.9.7 release).  (SETF CLASS-NAME) is specified
     by ANSI as a generic function, and for consistency (SETF
     GENERIC-FUNCTION-NAME) is treated likewise.
+  * fixed bug #233.b: make constraint propagation notice when a variable
+    value is changed after it is referenced but before it is used
   * fixed bug #296: no more arbitrary behaviour from filenames with
     odd characters as --load arguments.  (reported by Adam Warner)
   * fixed bug #390: :CHARACTER-SET pathname components now work as
@@ -18,12 +20,12 @@ changes in sbcl-0.9.8 relative to sbcl-0.9.7:
   * bug fix: the SB-SIMPLE-STREAMS contrib passes external-format
     arguments to the internal stream functions.  (thanks to David
     Lichteblau)
+  * bug fix: stack exhaustion is now handled on the x86/SunOS
+    platform.  (thanks to Daisuke Homma)
+  * bug fix: more accurate ROOM results on GENCGC platforms
   * optimization: improved type inference for arithmetic-for
     index variables in LOOP
   * optimization: faster floating-point SQRT on x86-64
-  * bug fix: more accurate ROOM results on GENCGC platforms
-  * fixed bug #233.b: make constraint propagation notice when a variable
-    value is changed after it is referenced but before it is used
   * fixed some bugs revealed by Paul Dietz' test suite:
     ** DOCUMENTATION returns NIL instead of "" for method combinations
        that don't have a docstring
index 834f964..fd11cf5 100644 (file)
@@ -43,12 +43,13 @@ int arch_os_thread_cleanup(struct thread *thread) {
 os_context_register_t   *
 os_context_register_addr(os_context_t *context, int offset)
 {
+    /* Solaris x86 holds %esp value in UESP */
     switch(offset) {
     case reg_EAX: return &context->uc_mcontext.gregs[11];
     case reg_ECX: return &context->uc_mcontext.gregs[10];
     case reg_EDX: return &context->uc_mcontext.gregs[9];
     case reg_EBX: return &context->uc_mcontext.gregs[8];
-    case reg_ESP: return &context->uc_mcontext.gregs[7];
+    case reg_ESP: return &context->uc_mcontext.gregs[17]; /* REG_UESP */
     case reg_EBP: return &context->uc_mcontext.gregs[6];
     case reg_ESI: return &context->uc_mcontext.gregs[5];
     case reg_EDI: return &context->uc_mcontext.gregs[4];
index 33c3e56..8e15fc7 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.7.32"
+"0.9.7.33"