- Update to 0.9.9

PR:		ports/92398
Submitted by:	NIIMI Satoshi <sa2c@sa2c.net> (maintainer)
This commit is contained in:
Pav Lucistnik 2006-01-28 15:52:14 +00:00
parent 8ff1b31408
commit ab2ccf43a8
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=154650
6 changed files with 153 additions and 113 deletions

View File

@ -6,7 +6,7 @@
#
PORTNAME= sbcl
PORTVERSION= 0.9.8
PORTVERSION= 0.9.9
CATEGORIES= lang lisp
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= sbcl
@ -28,10 +28,9 @@ LISP_CMD= ""
BUILD_DEPENDS= lisp:${PORTSDIR}/lang/cmucl
LISP_CMD= "lisp -noinit -batch"
.else
BOOT_VERSION= ${PORTVERSION}
BOOT_VERSION= 0.9.8
.endif
USE_REINPLACE= yes
USE_BZIP2= yes
USE_GMAKE= yes

View File

@ -1,9 +1,9 @@
MD5 (sbcl-0.9.8-source.tar.bz2) = 4a8a3de71aff073b4e23e5bc2e432b27
SHA256 (sbcl-0.9.8-source.tar.bz2) = 08a02e2db4a20446282cd6475d17aaf2625a35080f5bac5e7833fe31186bb2d6
SIZE (sbcl-0.9.8-source.tar.bz2) = 2674853
MD5 (sbcl-0.9.8-html.tar.bz2) = 598bc9c1fe88b8ea0d97082fc528fba4
SHA256 (sbcl-0.9.8-html.tar.bz2) = 4edd847864f1ac0b1e9d039d0559d2d534540bd66d0c71d25b0bb8723c97502d
SIZE (sbcl-0.9.8-html.tar.bz2) = 119641
MD5 (sbcl-0.9.9-source.tar.bz2) = 4aafb2ce07bd7933f7edec29b404a595
SHA256 (sbcl-0.9.9-source.tar.bz2) = 117762d02aa4748964c814fb20b0481322fdec1948b748c9159b0942a675eb8c
SIZE (sbcl-0.9.9-source.tar.bz2) = 2695081
MD5 (sbcl-0.9.9-html.tar.bz2) = a884ab78a3e4f5ecc516fc7197fe2fd6
SHA256 (sbcl-0.9.9-html.tar.bz2) = 324c36660f37f9cbccab9c07d4f714f761b177350585d34c3d890c9f4557f0b6
SIZE (sbcl-0.9.9-html.tar.bz2) = 119734
MD5 (sbcl-0.9.8-i386-freebsd-binary.tar.bz2) = 8012db9ebc4d06b93e934ca94fb9f1fe
SHA256 (sbcl-0.9.8-i386-freebsd-binary.tar.bz2) = 87332cf3e51910eabe195cf70b32669083d1b49b419b191e0b901354401d1f45
SIZE (sbcl-0.9.8-i386-freebsd-binary.tar.bz2) = 7250813

View File

@ -1,17 +1,117 @@
Index: src/code/debug-int.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/debug-int.lisp,v
retrieving revision 1.97
diff -u -r1.97 debug-int.lisp
--- src/code/debug-int.lisp 14 Jul 2005 16:30:31 -0000 1.97
+++ src/code/debug-int.lisp 27 Aug 2005 01:36:06 -0000
@@ -572,6 +572,9 @@
;; FIXME: Where is this documented? Is it really true of every CPU
;; architecture? Is it even necessarily true in current SBCL?
(>= (sap-int ra) 4096)
+ ;; On FreeBSD, kernel area is not valid as return address.
+ ;; FIXME: How to obtain the address instead of magic number?
+ #!+freebsd (< (sap-int ra) #xC0000000)
retrieving revision 1.101
diff -u -r1.101 debug-int.lisp
--- src/code/debug-int.lisp 28 Sep 2005 13:42:24 -0000 1.101
+++ src/code/debug-int.lisp 26 Jan 2006 01:59:07 -0000
@@ -559,6 +559,9 @@
(defconstant sb!vm::nargs-offset #.sb!vm::ecx-offset)
+(sb!alien:define-alien-variable "user_space_start" sb!alien:unsigned-long)
+(sb!alien:define-alien-variable "user_space_end" sb!alien:unsigned-long)
+
;;; Check for a valid return address - it could be any valid C/Lisp
;;; address.
;;;
@@ -567,11 +570,7 @@
(defun ra-pointer-valid-p (ra)
(declare (type system-area-pointer ra))
(and
- ;; not the first page (which is unmapped)
- ;;
- ;; FIXME: Where is this documented? Is it really true of every CPU
- ;; architecture? Is it even necessarily true in current SBCL?
- (>= (sap-int ra) 4096)
+ (>= user-space-end (sap-int ra) user-space-start)
;; not a Lisp stack pointer
(not (control-stack-pointer-valid-p ra))))
Index: src/runtime/bsd-os.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/bsd-os.c,v
retrieving revision 1.31
diff -u -r1.31 bsd-os.c
--- src/runtime/bsd-os.c 22 Jan 2006 18:55:07 -0000 1.31
+++ src/runtime/bsd-os.c 26 Jan 2006 01:59:07 -0000
@@ -53,6 +53,8 @@
#ifdef __FreeBSD__
#include <sys/sysctl.h>
+#include <link.h>
+#include <dlfcn.h>
static void freebsd_init();
#endif /* __FreeBSD__ */
@@ -311,6 +313,25 @@
fast_bzero_pointer = fast_bzero_base;
}
#endif /* LISP_FEATURE_X86 */
+ /* extract lowermost address from linkmap */
+ {
+ Link_map *map;
+
+ if (dlinfo(RTLD_SELF, RTLD_DI_LINKMAP, &map) == 0
+ && map != NULL && map->l_addr != NULL)
+ user_space_start = (unsigned long)map->l_addr;
+ }
+
+ /* extract uppermost address from "kern.usrstack" mib */
+ {
+ size_t len;
+ unsigned long tmp;
+
+ len = sizeof(tmp);
+ if (sysctlbyname("kern.usrstack", &tmp, &len, NULL, 0) == 0
+ && tmp > user_space_start)
+ user_space_end = tmp;
+ }
}
#endif /* __FreeBSD__ */
Index: src/runtime/globals.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/globals.c,v
retrieving revision 1.18
diff -u -r1.18 globals.c
--- src/runtime/globals.c 14 Jul 2005 15:41:11 -0000 1.18
+++ src/runtime/globals.c 26 Jan 2006 01:59:07 -0000
@@ -16,6 +16,7 @@
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
+#include <limits.h>
#include "sbcl.h"
#include "runtime.h"
@@ -54,6 +55,14 @@
pthread_key_t specials=0;
#endif
+/* Valid user address space. */
+
+/* not the first page (which is unmapped)
+ * good default for most architectures. */
+unsigned long user_space_start = 4096;
+
+unsigned long user_space_end = ULONG_MAX;
+
void globals_init(void)
{
/* Space, stack, and free pointer vars are initialized by
Index: src/runtime/globals.h
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/globals.h,v
retrieving revision 1.25
diff -u -r1.25 globals.h
--- src/runtime/globals.h 14 Jul 2005 15:41:11 -0000 1.25
+++ src/runtime/globals.h 26 Jan 2006 01:59:07 -0000
@@ -99,4 +99,7 @@
#endif /* LANGUAGE_ASSEMBLY */
+extern unsigned long user_space_start;
+extern unsigned long user_space_end;
+
#endif /* _INCLUDED_GLOBALS_H_ */

View File

@ -1,10 +1,10 @@
Index: src/code/float-trap.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/float-trap.lisp,v
retrieving revision 1.18
diff -u -r1.18 float-trap.lisp
--- src/code/float-trap.lisp 14 Jul 2005 16:30:34 -0000 1.18
+++ src/code/float-trap.lisp 27 Sep 2005 22:36:42 -0000
retrieving revision 1.19
diff -u -r1.19 float-trap.lisp
--- src/code/float-trap.lisp 6 Oct 2005 19:43:00 -0000 1.19
+++ src/code/float-trap.lisp 26 Jan 2006 20:43:33 -0000
@@ -153,10 +153,28 @@
`(not (zerop (logand ,(dpb (float-trap-mask traps) float-traps-byte 0)
(floating-point-modes)))))
@ -38,12 +38,12 @@ diff -u -r1.18 float-trap.lisp
Index: src/code/target-signal.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/target-signal.lisp,v
retrieving revision 1.28
diff -u -r1.28 target-signal.lisp
--- src/code/target-signal.lisp 4 Sep 2005 20:14:49 -0000 1.28
+++ src/code/target-signal.lisp 27 Sep 2005 22:36:42 -0000
@@ -149,6 +149,10 @@
retrieving revision 1.33
diff -u -r1.33 target-signal.lisp
--- src/code/target-signal.lisp 17 Oct 2005 09:18:47 -0000 1.33
+++ src/code/target-signal.lisp 26 Jan 2006 20:43:33 -0000
@@ -164,6 +164,10 @@
;;;; etc.
+;;; extract si_code from siginfo_t
@ -56,20 +56,20 @@ diff -u -r1.28 target-signal.lisp
Index: src/runtime/interrupt.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/interrupt.c,v
retrieving revision 1.94
diff -u -r1.94 interrupt.c
--- src/runtime/interrupt.c 13 Sep 2005 12:28:41 -0000 1.94
+++ src/runtime/interrupt.c 27 Sep 2005 22:36:42 -0000
@@ -426,7 +426,7 @@
if (sigismember(&deferrable_sigset,signal))
retrieving revision 1.109
diff -u -r1.109 interrupt.c
--- src/runtime/interrupt.c 5 Jan 2006 14:13:14 -0000 1.109
+++ src/runtime/interrupt.c 26 Jan 2006 20:43:33 -0000
@@ -454,7 +454,7 @@
check_interrupts_enabled_or_lose(context);
#endif
-#ifdef LISP_FEATURE_LINUX
+#if defined(LISP_FEATURE_LINUX) || defined(__FreeBSD__)
/* Under Linux on some architectures, we appear to have to restore
the FPU control word from the context, as after the signal is
delivered we appear to have a null FPU control word. */
@@ -606,7 +606,7 @@
@@ -644,7 +644,7 @@
os_context_t *context = arch_os_get_context(&void_context);
struct thread *thread=arch_os_get_current_thread();
struct interrupt_data *data=thread->interrupt_data;
@ -78,7 +78,7 @@ diff -u -r1.94 interrupt.c
os_restore_fp_control(context);
#endif
if(maybe_defer_handler(interrupt_handle_now,data,signal,info,context))
@@ -623,7 +623,7 @@
@@ -661,7 +661,7 @@
{
os_context_t *context = (os_context_t*)void_context;
@ -87,7 +87,7 @@ diff -u -r1.94 interrupt.c
os_restore_fp_control(context);
#endif
check_blockables_blocked_or_lose();
@@ -641,7 +641,7 @@
@@ -679,7 +679,7 @@
os_context_t *context = arch_os_get_context(&void_context);
struct thread *thread=arch_os_get_current_thread();
struct interrupt_data *data=thread->interrupt_data;
@ -96,9 +96,9 @@ diff -u -r1.94 interrupt.c
os_restore_fp_control(context);
#endif
if(maybe_defer_handler(low_level_interrupt_handle_now,data,
@@ -1139,3 +1139,9 @@
@@ -1276,3 +1276,9 @@
SHOW("returning from interrupt_init()");
#endif
}
+
+int
@ -109,11 +109,11 @@ diff -u -r1.94 interrupt.c
Index: src/runtime/x86-arch.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/x86-arch.c,v
retrieving revision 1.32
diff -u -r1.32 x86-arch.c
--- src/runtime/x86-arch.c 27 Sep 2005 15:52:50 -0000 1.32
+++ src/runtime/x86-arch.c 27 Sep 2005 22:36:42 -0000
@@ -229,7 +229,7 @@
retrieving revision 1.36
diff -u -r1.36 x86-arch.c
--- src/runtime/x86-arch.c 3 Jan 2006 09:52:38 -0000 1.36
+++ src/runtime/x86-arch.c 26 Jan 2006 20:43:33 -0000
@@ -248,7 +248,7 @@
single-stepping (as far as I can tell) this is somewhat moot,
but it might be worth either moving this code up or deleting
the single-stepping code entirely. -- CSR, 2002-07-15 */
@ -128,7 +128,7 @@ RCS file: /cvsroot/sbcl/sbcl/src/runtime/x86-bsd-os.c,v
retrieving revision 1.7
diff -u -r1.7 x86-bsd-os.c
--- src/runtime/x86-bsd-os.c 14 Jul 2005 15:41:21 -0000 1.7
+++ src/runtime/x86-bsd-os.c 27 Sep 2005 22:36:42 -0000
+++ src/runtime/x86-bsd-os.c 26 Jan 2006 20:43:33 -0000
@@ -85,6 +85,52 @@
#endif /* __NetBSD__ */
@ -185,11 +185,11 @@ diff -u -r1.7 x86-bsd-os.c
Index: tools-for-build/grovel-headers.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/tools-for-build/grovel-headers.c,v
retrieving revision 1.10
diff -u -r1.10 grovel-headers.c
--- tools-for-build/grovel-headers.c 14 Jul 2005 20:24:19 -0000 1.10
+++ tools-for-build/grovel-headers.c 27 Sep 2005 22:36:42 -0000
@@ -223,5 +223,15 @@
retrieving revision 1.12
diff -u -r1.12 grovel-headers.c
--- tools-for-build/grovel-headers.c 16 Jan 2006 15:39:58 -0000 1.12
+++ tools-for-build/grovel-headers.c 26 Jan 2006 20:43:33 -0000
@@ -234,6 +234,16 @@
defsignal("sigxcpu", SIGXCPU);
defsignal("sigxfsz", SIGXFSZ);
#endif
@ -203,5 +203,6 @@ diff -u -r1.10 grovel-headers.c
+ defconstant("fpe-fltinv", FPE_FLTINV);
+ defconstant("fpe-fltsub", FPE_FLTSUB);
+#endif
#endif // _WIN32
return 0;
}

View File

@ -1,61 +0,0 @@
Index: src/runtime/bsd-os.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/bsd-os.c,v
retrieving revision 1.29
diff -u -r1.29 bsd-os.c
--- src/runtime/bsd-os.c 4 Dec 2005 22:25:07 -0000 1.29
+++ src/runtime/bsd-os.c 28 Dec 2005 01:24:17 -0000
@@ -204,6 +204,10 @@
SHOW("os_install_interrupt_handlers()/bsd-os/defined(GENCGC)");
undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT,
memory_fault_handler);
+#ifdef SIG_MEMORY_FAULT2
+ undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT2,
+ memory_fault_handler);
+#endif
SHOW("leaving os_install_interrupt_handlers()");
}
@@ -230,6 +234,10 @@
SHOW("os_install_interrupt_handlers()/bsd-os/!defined(GENCGC)");
undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT,
sigsegv_handler);
+#ifdef SIG_MEMORY_FAULT2
+ undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT2,
+ sigsegv_handler);
+#endif
}
#endif /* defined GENCGC */
Index: src/runtime/bsd-os.h
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/bsd-os.h,v
retrieving revision 1.14
diff -u -r1.14 bsd-os.h
--- src/runtime/bsd-os.h 17 Apr 2005 19:41:28 -0000 1.14
+++ src/runtime/bsd-os.h 28 Dec 2005 01:24:17 -0000
@@ -55,6 +55,7 @@
* so we need to implement single stepping in a more roundabout way. */
#define CANNOT_GET_TO_SINGLE_STEP_FLAG
#define SIG_MEMORY_FAULT SIGBUS
+#define SIG_MEMORY_FAULT2 SIGSEGV
#elif defined __OpenBSD__
Index: src/runtime/interrupt.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/interrupt.c,v
retrieving revision 1.106
diff -u -r1.106 interrupt.c
--- src/runtime/interrupt.c 4 Dec 2005 22:25:07 -0000 1.106
+++ src/runtime/interrupt.c 28 Dec 2005 01:24:17 -0000
@@ -1140,6 +1140,9 @@
(sigaction_nodefer_works ? SA_NODEFER : 0);
#ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK
if((signal==SIG_MEMORY_FAULT)
+#ifdef SIG_MEMORY_FAULT2
+ || (signal==SIG_MEMORY_FAULT2)
+#endif
#ifdef SIG_INTERRUPT_THREAD
|| (signal==SIG_INTERRUPT_THREAD)
#endif

View File

@ -32,6 +32,7 @@
%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Additional-Distributed-Documentation.html
%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Automatic-Recompilation-of-Stale-Fasls.html
%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Beyond-the-ANSI-Standard.html
%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Bivalent-Streams.html
%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Calling-Lisp-From-C.html
%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Class-sb_002dbsd_002dsockets_003ahost_002dent.html
%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Class-sb_002dbsd_002dsockets_003ainet_002dsocket.html