aboutsummaryrefslogtreecommitdiff
path: root/lang/sbcl
diff options
context:
space:
mode:
authorPav Lucistnik <pav@FreeBSD.org>2006-01-28 15:52:14 +0000
committerPav Lucistnik <pav@FreeBSD.org>2006-01-28 15:52:14 +0000
commitab2ccf43a81f28b57db046a4d4aedc032d4a9e75 (patch)
tree307403aa4ce69aa9c4b020bda324f4b7f7e0af8a /lang/sbcl
parent8ff1b31408d700500f570b694cfe5a7ffcf742dc (diff)
downloadports-ab2ccf43a81f28b57db046a4d4aedc032d4a9e75.tar.gz
ports-ab2ccf43a81f28b57db046a4d4aedc032d4a9e75.zip
Notes
Diffstat (limited to 'lang/sbcl')
-rw-r--r--lang/sbcl/Makefile5
-rw-r--r--lang/sbcl/distinfo12
-rw-r--r--lang/sbcl/files/patch-backtrace122
-rw-r--r--lang/sbcl/files/patch-floating-point65
-rw-r--r--lang/sbcl/files/patch-sigsegv61
-rw-r--r--lang/sbcl/pkg-plist1
6 files changed, 153 insertions, 113 deletions
diff --git a/lang/sbcl/Makefile b/lang/sbcl/Makefile
index 64780dc2fcfa..533a298a82c4 100644
--- a/lang/sbcl/Makefile
+++ b/lang/sbcl/Makefile
@@ -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
diff --git a/lang/sbcl/distinfo b/lang/sbcl/distinfo
index a7c0fc65b82c..a69c8f06bc84 100644
--- a/lang/sbcl/distinfo
+++ b/lang/sbcl/distinfo
@@ -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
diff --git a/lang/sbcl/files/patch-backtrace b/lang/sbcl/files/patch-backtrace
index 62a5d0e0a555..acd553e7b897 100644
--- a/lang/sbcl/files/patch-backtrace
+++ b/lang/sbcl/files/patch-backtrace
@@ -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_ */
diff --git a/lang/sbcl/files/patch-floating-point b/lang/sbcl/files/patch-floating-point
index 35e178797a76..43087e2efc1b 100644
--- a/lang/sbcl/files/patch-floating-point
+++ b/lang/sbcl/files/patch-floating-point
@@ -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;
}
diff --git a/lang/sbcl/files/patch-sigsegv b/lang/sbcl/files/patch-sigsegv
deleted file mode 100644
index 9e83e2f17c29..000000000000
--- a/lang/sbcl/files/patch-sigsegv
+++ /dev/null
@@ -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
diff --git a/lang/sbcl/pkg-plist b/lang/sbcl/pkg-plist
index 30c2ef4e45a7..f4754daa1eab 100644
--- a/lang/sbcl/pkg-plist
+++ b/lang/sbcl/pkg-plist
@@ -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