ports/107223: [maintainer update] lang/sbcl: update to 1.0

NIIMI Satoshi sa2c at sa2c.net
Tue Dec 26 23:50:17 UTC 2006


>Number:         107223
>Category:       ports
>Synopsis:       [maintainer update] lang/sbcl: update to 1.0
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Dec 26 23:50:16 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     NIIMI Satoshi
>Release:        FreeBSD 6.2-RC2 i386
>Organization:
>Environment:
System: FreeBSD berkeley.l.sa2c.net 6.2-RC2 FreeBSD 6.2-RC2 #2: Tue Dec 26 12:11:45 JST 2006 root at berkeley.l.sa2c.net:/usr/obj/usr/src/sys/GENERIC i386


	
>Description:
Update lang/sbcl to 1.0.1.
	
>How-To-Repeat:
	
>Fix:
Please note to run before commit:
cvs remove -f files/patch-freebsd-amd64 files/patch-futex files/patch-src_runtime_thread.c
	

--- sbcl-101.diff begins here ---
--- Makefile	Sat Dec 09 09:31:29 2006 +0000
+++ Makefile	Wed Dec 27 08:05:08 2006 +0900
@@ -6,15 +6,11 @@
 #
 
 PORTNAME=	sbcl
-PORTVERSION=	1.0
-PORTREVISION=	1
+PORTVERSION=	1.0.1
 CATEGORIES=	lang lisp
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
 MASTER_SITE_SUBDIR=	sbcl
 DISTFILES=	${DISTNAME}-source${EXTRACT_SUFX}
-.if !defined(NOPORTDOCS)
-DISTFILES+=	${DISTNAME}-documentation-html${EXTRACT_SUFX}
-.endif
 
 MAINTAINER=	sa2c at sa2c.net
 COMMENT=	A Common Lisp development system derived from the CMU CL system
@@ -38,9 +34,9 @@ INFODIR=	${PREFIX}/${INFO_PATH}
 .if defined(WITH_SBCL)
 LISP_CMD=	""
 .else
-BOOT_VERSION=	0.9.16
+BOOT_VERSION=	${PORTVERSION}
 BOOT_ARCH=	x86
-BOOT_OS=	${OPSYS:L}
+BOOT_OS=	freebsd4
 BOOT_DISTNAME=	${PORTNAME}-${BOOT_VERSION}-${BOOT_ARCH}-${BOOT_OS}
 DISTFILES+=	${BOOT_DISTNAME}-binary${EXTRACT_SUFX}
 LISP_CMD=	"${WRKDIR}/${BOOT_DISTNAME}/src/runtime/sbcl --core ${WRKDIR}/${BOOT_DISTNAME}/output/sbcl.core --disable-debugger --userinit /dev/null --sysinit /dev/null"
@@ -82,9 +78,7 @@ do-install:
 	(cd ${WRKSRC} && ${SETENV} INSTALL_ROOT=${PREFIX} \
 		MAN_DIR=${PREFIX}/man DOC_DIR=${DOCSDIR} \
 		INFO_DIR=${INFODIR}  ${SH} install.sh)
-.if defined(NOPORTDOCS)
 	@${RMDIR} ${DOCSDIR}/html
-.endif
 
 test:	build
 	(cd ${WRKSRC}/tests && ${SH} run-tests.sh)
--- distinfo	Sat Dec 09 09:31:29 2006 +0000
+++ distinfo	Wed Dec 27 08:04:42 2006 +0900
@@ -1,9 +1,6 @@ MD5 (sbcl-1.0-source.tar.bz2) = 52e07dcc
-MD5 (sbcl-1.0-source.tar.bz2) = 52e07dcc8eef0dc45ecdc35e46d4999f
-SHA256 (sbcl-1.0-source.tar.bz2) = 5d33383963ef8ae3ff1be7871aeb0df196923ab5b78513aa666214b52c2f5cfb
-SIZE (sbcl-1.0-source.tar.bz2) = 2891666
-MD5 (sbcl-1.0-documentation-html.tar.bz2) = 38fcc1059516be98c76ee7b53241b386
-SHA256 (sbcl-1.0-documentation-html.tar.bz2) = 3cd3f61c129a442a78d70f50c32df94d3b29f385771ba52510c6a783f13fc167
-SIZE (sbcl-1.0-documentation-html.tar.bz2) = 126295
-MD5 (sbcl-0.9.16-x86-freebsd-binary.tar.bz2) = 339df1c8d5aff512c1fa4362954443a5
-SHA256 (sbcl-0.9.16-x86-freebsd-binary.tar.bz2) = 61cd97c58615370606c9f01ca2049d71b9a05a3c84f2b299fe16ddba38e7e19c
-SIZE (sbcl-0.9.16-x86-freebsd-binary.tar.bz2) = 7454913
+MD5 (sbcl-1.0.1-source.tar.bz2) = fe02f498620bce61a8688d4557a405b0
+SHA256 (sbcl-1.0.1-source.tar.bz2) = 91ca14366b1363d3fa745a91a93005eaca74235d9225936d80b1d34116e76e5a
+SIZE (sbcl-1.0.1-source.tar.bz2) = 2902375
+MD5 (sbcl-1.0.1-x86-freebsd4-binary.tar.bz2) = b1582532c4106c313413c15bd87d2866
+SHA256 (sbcl-1.0.1-x86-freebsd4-binary.tar.bz2) = 05c7bdfc1779b9d93b4921912d2d981a181b6bbbd921d38779bca4cb334214e6
+SIZE (sbcl-1.0.1-x86-freebsd4-binary.tar.bz2) = 7682276
--- files/patch-freebsd-amd64	Sat Dec 09 09:31:29 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,657 +0,0 @@
---- make-config.sh	Thu Nov 30 02:36:43 2006 +0000
-+++ make-config.sh	Thu Nov 30 11:42:35 2006 +0900
-@@ -102,6 +102,7 @@ case `uname -m` in
-     *86) guessed_sbcl_arch=x86 ;;
-     i86pc) guessed_sbcl_arch=x86 ;;
-     *x86_64) guessed_sbcl_arch=x86-64 ;;
-+    amd64) guessed_sbcl_arch=x86-64 ;;
-     [Aa]lpha) guessed_sbcl_arch=alpha ;;
-     sparc*) guessed_sbcl_arch=sparc ;;
-     sun*) guessed_sbcl_arch=sparc ;;
---- src/runtime/GNUmakefile	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/GNUmakefile	Thu Nov 30 13:26:27 2006 +0900
-@@ -58,7 +58,7 @@ targets: $(TARGET) sbcl.nm
- 	$(CC) ${LINKFLAGS} -o $@ $^ $(LIBS)
- 
- sbcl.nm: $(TARGET)
--	$(NM) $(TARGET) | $(GREP) -v " F \| U " > ,$@
-+	$(NM) $(TARGET) | $(GREP) -v " [FUw] " > ,$@
- 	mv -f ,$@ $@
- 
- sbcl.h: $(wildcard genesis/*.h)
---- src/runtime/breakpoint.h	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/breakpoint.h	Thu Nov 30 18:16:38 2006 +0900
-@@ -22,5 +22,7 @@ extern void handle_breakpoint(int signal
-                               os_context_t *context);
- extern void *handle_fun_end_breakpoint(int signal, siginfo_t *info,
-                                        os_context_t *context);
-+extern void handle_single_step_trap (os_context_t *context, int kind,
-+                                     int register_offset);
- 
- #endif
---- src/runtime/bsd-os.c	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/bsd-os.c	Thu Nov 30 18:38:30 2006 +0900
-@@ -41,6 +41,9 @@
- #include <signal.h>
- /* #include <sys/sysinfo.h> */
- #include "validate.h"
-+#if defined LISP_FEATURE_GENCGC
-+#include "gencgc-internal.h"
-+#endif
- 
- os_vm_size_t os_vm_page_size;
- 
-@@ -55,7 +58,6 @@ static void netbsd_init();
- 
- #ifdef __FreeBSD__
- #include <sys/sysctl.h>
--#include <osreldate.h>
- 
- static void freebsd_init();
- #endif /* __FreeBSD__ */
-@@ -71,23 +73,6 @@ os_init(char *argv[], char *envp[])
- #ifdef __FreeBSD__
-     freebsd_init();
- #endif /* __FreeBSD__ */
--}
--
--int *os_context_pc_addr(os_context_t *context)
--{
--#if defined __FreeBSD__
--    return CONTEXT_ADDR_FROM_STEM(eip);
--#elif defined __OpenBSD__
--    return CONTEXT_ADDR_FROM_STEM(pc);
--#elif defined __NetBSD__
--    return CONTEXT_ADDR_FROM_STEM(EIP);
--#elif defined(LISP_FEATURE_DARWIN) && defined(LISP_FEATURE_X86)
--    return CONTEXT_ADDR_FROM_STEM(eip);
--#elif defined LISP_FEATURE_DARWIN
--    return &context->uc_mcontext->ss.srr0;
--#else
--#error unsupported BSD variant
--#endif
- }
- 
- sigset_t *
-@@ -172,9 +157,11 @@ is_valid_lisp_addr(os_vm_address_t addr)
-        in_range_p(addr, DYNAMIC_SPACE_START  , dynamic_space_size))
-         return 1;
-     for_each_thread(th) {
--        if((th->control_stack_start <= addr) && (addr < th->control_stack_end))
-+        if(((os_vm_address_t)th->control_stack_start <= addr) &&
-+           (addr < (os_vm_address_t)th->control_stack_end))
-             return 1;
--        if(in_range_p(addr, th->binding_stack_start, BINDING_STACK_SIZE))
-+        if(in_range_p(addr, (lispobj)th->binding_stack_start,
-+                      BINDING_STACK_SIZE))
-             return 1;
-     }
-     return 0;
-@@ -191,10 +178,20 @@ is_valid_lisp_addr(os_vm_address_t addr)
-  * page fault on this OS.
-  */
- static void
--memory_fault_handler(int signal, siginfo_t *siginfo, void *void_context)
-+memory_fault_handler(int signal, siginfo_t *siginfo, void *void_context
-+#if defined(LISP_FEATURE_FREEBSD) && defined(LISP_FEATURE_X86_64)
-+/* FreeBSD/amd64 stores fault address only in undocumented 4th arg. */
-+                     ,void *fault_addr
-+#endif
-+    )
- {
-     os_context_t *context = arch_os_get_context(&void_context);
-+#if defined(LISP_FEATURE_FREEBSD) && defined(LISP_FEATURE_X86_64)
-+    /* KLUDGE: Store fault address into si_addr for compatibilities. */
-+    siginfo->si_addr = fault_addr;
-+#else
-     void *fault_addr = arch_get_bad_addr(signal, siginfo, context);
-+#endif
- 
- #if defined(LISP_FEATURE_RESTORE_TLS_SEGMENT_REGISTER_FROM_CONTEXT)
-     FSHOW_SIGNAL((stderr, "/ TLS: restoring fs: %p in memory_fault_handler\n",
-@@ -202,7 +199,7 @@ memory_fault_handler(int signal, siginfo
-     os_restore_tls_segment_register(context);
- #endif
- 
--    FSHOW((stderr, "Memory fault at: %p, PC: %x\n", fault_addr, *os_context_pc_addr(context)));
-+    FSHOW((stderr, "Memory fault at: %p, PC: %p\n", fault_addr, *os_context_pc_addr(context)));
- 
-     if (!gencgc_handle_wp_violation(fault_addr))
-         if(!handle_guard_page_triggered(context,fault_addr)) {
-@@ -225,9 +222,15 @@ os_install_interrupt_handlers(void)
- {
-     SHOW("os_install_interrupt_handlers()/bsd-os/defined(GENCGC)");
-     undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT,
-+#ifdef LISP_FEATURE_FREEBSD
-+                                                 (__siginfohandler_t *)
-+#endif
-                                                  memory_fault_handler);
- #ifdef SIG_MEMORY_FAULT2
-     undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT2,
-+#ifdef LISP_FEATURE_FREEBSD
-+                                                 (__siginfohandler_t *)
-+#endif
-                                                  memory_fault_handler);
- #endif
- 
-@@ -363,6 +366,8 @@ static void freebsd_init()
- #define KERN_PROC_PATHNAME 12
- #endif
- 
-+extern int getosreldate(void);
-+
- char *
- os_get_runtime_executable_path()
- {
---- src/runtime/bsd-os.h	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/bsd-os.h	Thu Nov 30 12:46:02 2006 +0900
-@@ -31,7 +31,6 @@ typedef vm_size_t os_vm_size_t;
- #endif
- typedef off_t os_vm_offset_t;
- typedef int os_vm_prot_t;
--typedef int os_context_register_t;
- 
- #if defined __OpenBSD__
- /* name defined for compatibility between OpenBSD 3.1 sigaltstack(2) and
---- src/runtime/coreparse.c	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/coreparse.c	Thu Nov 30 18:19:58 2006 +0900
-@@ -107,7 +107,7 @@ lose:
- }
- 
- static void
--process_directory(int fd, u32 *ptr, int count, os_vm_offset_t file_offset)
-+process_directory(int fd, lispobj *ptr, int count, os_vm_offset_t file_offset)
- {
-     struct ndir_entry *entry;
- 
---- src/runtime/interrupt.c	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/interrupt.c	Thu Nov 30 18:21:43 2006 +0900
-@@ -584,7 +584,6 @@ run_deferred_handler(struct interrupt_da
-      * pending handler before calling it. Trust the handler to finish
-      * with the siginfo before enabling interrupts. */
-     void (*pending_handler) (int, siginfo_t*, void*)=data->pending_handler;
--    os_context_t *context = arch_os_get_context(&v_context);
- 
-     data->pending_handler=0;
-     (*pending_handler)(data->pending_signal,&(data->pending_info), v_context);
---- src/runtime/parse.c	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/parse.c	Thu Nov 30 18:22:24 2006 +0900
-@@ -12,6 +12,7 @@
-  */
- 
- #include <stdio.h>
-+#include <stdlib.h>
- #include <ctype.h>
- #include <signal.h>
- 
---- src/runtime/print.c	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/print.c	Thu Nov 30 18:22:44 2006 +0900
-@@ -19,6 +19,7 @@
-  */
- 
- #include <stdio.h>
-+#include <string.h>
- 
- #include "sbcl.h"
- #include "print.h"
---- src/runtime/x86-64-arch.c	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/x86-64-arch.c	Thu Nov 30 19:03:02 2006 +0900
-@@ -50,7 +50,7 @@ arch_get_bad_addr(int sig, siginfo_t *co
-  * want to get to, and on OS, which determines how we get to it.)
-  */
- 
--int *
-+os_context_register_t *
- context_eflags_addr(os_context_t *context)
- {
- #if defined __linux__
-@@ -61,7 +61,7 @@ context_eflags_addr(os_context_t *contex
-      * instead. */
-     return &context->uc_mcontext.gregs[17];
- #elif defined __FreeBSD__
--    return &context->uc_mcontext.mc_eflags;
-+    return &context->uc_mcontext.mc_rflags;
- #elif defined __OpenBSD__
-     return &context->sc_eflags;
- #else
-@@ -106,7 +106,7 @@ void arch_skip_instruction(os_context_t 
-             break;
- 
-         default:
--            fprintf(stderr,"[arch_skip_inst invalid code %d\n]\n",code);
-+            fprintf(stderr,"[arch_skip_inst invalid code %ld\n]\n",code);
-             break;
-         }
- 
-@@ -166,6 +166,11 @@ arch_remove_breakpoint(void *pc, unsigne
- /* When single stepping, single_stepping holds the original instruction
-  * PC location. */
- unsigned int *single_stepping = NULL;
-+#ifdef CANNOT_GET_TO_SINGLE_STEP_FLAG
-+unsigned int  single_step_save1;
-+unsigned int  single_step_save2;
-+unsigned int  single_step_save3;
-+#endif
- 
- void
- arch_do_displaced_inst(os_context_t *context, unsigned int orig_inst)
-@@ -176,9 +181,24 @@ arch_do_displaced_inst(os_context_t *con
-     *((char *)pc) = orig_inst & 0xff;
-     *((char *)pc + 1) = (orig_inst & 0xff00) >> 8;
- 
-+#ifdef CANNOT_GET_TO_SINGLE_STEP_FLAG
-+    /* Install helper instructions for the single step:
-+     * pushf; or [esp],0x100; popf. */
-+    single_step_save1 = *(pc-3);
-+    single_step_save2 = *(pc-2);
-+    single_step_save3 = *(pc-1);
-+    *(pc-3) = 0x9c909090;
-+    *(pc-2) = 0x00240c81;
-+    *(pc-1) = 0x9d000001;
-+#else
-     *context_eflags_addr(context) |= 0x100;
-+#endif
- 
-     single_stepping = pc;
-+
-+#ifdef CANNOT_GET_TO_SINGLE_STEP_FLAG
-+    *os_context_pc_addr(context) = (os_context_register_t)((char *)pc - 9);
-+#endif
- }
- 
- 
-@@ -191,10 +211,17 @@ sigtrap_handler(int signal, siginfo_t *i
- 
-     if (single_stepping && (signal==SIGTRAP))
-     {
-+#ifdef CANNOT_GET_TO_SINGLE_STEP_FLAG
-+        /* Un-install single step helper instructions. */
-+        *(single_stepping-3) = single_step_save1;
-+        *(single_stepping-2) = single_step_save2;
-+        *(single_stepping-1) = single_step_save3;
-+#else
-         *context_eflags_addr(context) ^= 0x100;
--
-+#endif
-         /* Re-install the breakpoint if possible. */
--        if (*os_context_pc_addr(context) == (int)single_stepping + 1) {
-+        if ((char *)*os_context_pc_addr(context) ==
-+            (char *)single_stepping + 1) {
-             fprintf(stderr, "warning: couldn't reinstall breakpoint\n");
-         } else {
-             *((char *)single_stepping) = BREAKPOINT_INST;       /* x86 INT3 */
-@@ -216,7 +243,7 @@ sigtrap_handler(int signal, siginfo_t *i
-        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 */
--#ifdef LISP_FEATURE_LINUX
-+#if defined(LISP_FEATURE_LINUX) || defined(RESTORE_FP_CONTROL_FROM_CONTEXT)
-     os_restore_fp_control(context);
- #endif
- 
---- src/runtime/x86-bsd-os.c	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/x86-bsd-os.c	Thu Nov 30 12:28:00 2006 +0900
-@@ -100,6 +100,22 @@ os_context_sp_addr(os_context_t *context
- 
- #endif  /* __NetBSD__ */
- 
-+int *os_context_pc_addr(os_context_t *context)
-+{
-+#if defined __FreeBSD__
-+    return CONTEXT_ADDR_FROM_STEM(eip);
-+#elif defined __OpenBSD__
-+    return CONTEXT_ADDR_FROM_STEM(pc);
-+#elif defined __NetBSD__
-+    return CONTEXT_ADDR_FROM_STEM(EIP);
-+#elif defined(LISP_FEATURE_DARWIN) && defined(LISP_FEATURE_X86)
-+    return CONTEXT_ADDR_FROM_STEM(eip);
-+#elif defined LISP_FEATURE_DARWIN
-+    return &context->uc_mcontext->ss.srr0;
-+#else
-+#error unsupported BSD variant
-+#endif
-+}
- 
- /* FIXME: If this can be a no-op on BSD/x86, then it
-  * deserves a more precise name.
---- src/runtime/x86-bsd-os.h	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/x86-bsd-os.h	Thu Nov 30 12:43:00 2006 +0900
-@@ -5,6 +5,8 @@
- #include <machine/segments.h>
- #include <machine/cpufunc.h>
- #endif
-+
-+typedef int os_context_register_t;
- 
- static inline os_context_t *arch_os_get_context(void **void_context) {
-     return (os_context_t *) *void_context;
---- tests/foreign-stack-alignment.impure.lisp	Thu Nov 30 02:36:43 2006 +0000
-+++ tests/foreign-stack-alignment.impure.lisp	Thu Nov 30 16:41:00 2006 +0900
-@@ -43,7 +43,7 @@
- ;;;; number.
- 
- (run "cc"
--     #+(and linux (or x86-64 ppc)) "-fPIC"
-+     #+(and (or linux freebsd) (or x86-64 ppc)) "-fPIC"
-      "stack-alignment-offset.c" "-o" "stack-alignment-offset")
- 
- (defparameter *good-offset*
-@@ -53,7 +53,7 @@
- ;;;; Build the tool again, this time as a shared object, and load it
- 
- (run "cc" "stack-alignment-offset.c"
--     #+(and linux (or x86-64 ppc)) "-fPIC"
-+     #+(and (or linux freebsd) (or x86-64 ppc)) "-fPIC"
-      #+darwin "-bundle" #-darwin "-shared"
-      "-o" "stack-alignment-offset.so")
- 
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ src/runtime/Config.x86-64-bsd	Thu Nov 30 17:01:43 2006 +0900
-@@ -0,0 +1,25 @@
-+# -*- makefile -*- for the C-level run-time support for SBCL
-+# configuration stuff shared between various *BSD OSes
-+
-+# This software is part of the SBCL system. See the README file for
-+# more information.
-+#
-+# This software is derived from the CMU CL system, which was
-+# written at Carnegie Mellon University and released into the
-+# public domain. The software is in the public domain and is
-+# provided with absolutely no warranty. See the COPYING and CREDITS
-+# files for more information.
-+
-+ASSEM_SRC = x86-64-assem.S
-+ARCH_SRC = x86-64-arch.c
-+
-+OS_SRC = bsd-os.c x86-64-bsd-os.c
-+OS_LIBS = # -ldl
-+
-+CFLAGS += -fno-omit-frame-pointer
-+
-+GC_SRC = gencgc.c
-+
-+# Nothing to do for after-grovel-headers.
-+.PHONY: after-grovel-headers
-+after-grovel-headers:
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ src/runtime/Config.x86-64-freebsd	Thu Nov 30 11:47:03 2006 +0900
-@@ -0,0 +1,26 @@
-+# -*- makefile -*- for the C-level run-time support for SBCL
-+
-+# This software is part of the SBCL system. See the README file for
-+# more information.
-+#
-+# This software is derived from the CMU CL system, which was
-+# written at Carnegie Mellon University and released into the
-+# public domain. The software is in the public domain and is
-+# provided with absolutely no warranty. See the COPYING and CREDITS
-+# files for more information.
-+
-+include Config.x86-64-bsd
-+
-+ASSEM_SRC += ldso-stubs.S
-+
-+# Until sbcl-0.6.7.3, we used "LINKFLAGS+=-static" here, which
-+# worked fine for most things, but LOAD-FOREIGN & friends require
-+# dlopen() etc., which in turn depend on dynamic linking of the
-+# runtime.
-+LINKFLAGS += -dynamic -export-dynamic
-+
-+# use libthr (1:1 threading).  libpthread (m:n threading) does not work.
-+ifdef LISP_FEATURE_SB_THREAD
-+  #OS_LIBS += -lpthread
-+  OS_LIBS += -lthr
-+endif
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ src/runtime/x86-64-bsd-os.c	Thu Nov 30 16:02:37 2006 +0900
-@@ -0,0 +1,115 @@
-+#include <signal.h>
-+#include "sbcl.h"
-+#include "runtime.h"
-+#include "thread.h"
-+#include "lispregs.h"
-+
-+#if defined(LISP_FEATURE_FREEBSD)
-+#include <machine/fpu.h>
-+#endif
-+
-+/* KLUDGE: There is strong family resemblance in the signal context
-+ * stuff in FreeBSD and OpenBSD, but in detail they're different in
-+ * almost every line of code. It would be nice to find some way to
-+ * factor out the commonality better; failing that, it might be best
-+ * just to split this generic-BSD code into one variant for each BSD.
-+ *
-+ * KLUDGE II: this split has begun with the addition of the Darwin BSD
-+ * flavour, with the cross-architecture complications that this
-+ * entails; unfortunately, currently the situation is worse, not
-+ * better, than in the above paragraph. */
-+
-+#if defined(LISP_FEATURE_FREEBSD)
-+os_context_register_t *
-+os_context_register_addr(os_context_t *context, int offset)
-+{
-+    switch(offset) {
-+    case reg_RAX:
-+        return CONTEXT_ADDR_FROM_STEM(rax);
-+    case reg_RCX:
-+        return CONTEXT_ADDR_FROM_STEM(rcx);
-+    case reg_RDX:
-+        return CONTEXT_ADDR_FROM_STEM(rdx);
-+    case reg_RBX:
-+        return CONTEXT_ADDR_FROM_STEM(rbx);
-+    case reg_RSP:
-+        return CONTEXT_ADDR_FROM_STEM(rsp);
-+    case reg_RBP:
-+        return CONTEXT_ADDR_FROM_STEM(rbp);
-+    case reg_RSI:
-+        return CONTEXT_ADDR_FROM_STEM(rsi);
-+    case reg_RDI:
-+        return CONTEXT_ADDR_FROM_STEM(rdi);
-+    case reg_R8:
-+        return CONTEXT_ADDR_FROM_STEM(r8);
-+    case reg_R9:
-+        return CONTEXT_ADDR_FROM_STEM(r9);
-+    case reg_R10:
-+        return CONTEXT_ADDR_FROM_STEM(r10);
-+    case reg_R11:
-+        return CONTEXT_ADDR_FROM_STEM(r11);
-+    case reg_R12:
-+        return CONTEXT_ADDR_FROM_STEM(r12);
-+    case reg_R13:
-+        return CONTEXT_ADDR_FROM_STEM(r13);
-+    case reg_R14:
-+        return CONTEXT_ADDR_FROM_STEM(r14);
-+    case reg_R15:
-+        return CONTEXT_ADDR_FROM_STEM(r15);
-+    default:
-+        return 0;
-+    }
-+}
-+
-+os_context_register_t *
-+os_context_sp_addr(os_context_t *context)
-+{
-+    return CONTEXT_ADDR_FROM_STEM(rsp);
-+}
-+
-+os_context_register_t *
-+os_context_pc_addr(os_context_t *context)
-+{
-+    return CONTEXT_ADDR_FROM_STEM(rip);
-+}
-+
-+#endif
-+
-+void
-+os_flush_icache(os_vm_address_t address, os_vm_size_t length)
-+{
-+}
-+
-+int arch_os_thread_init(struct thread *thread) {
-+    stack_t sigstack;
-+#ifdef LISP_FEATURE_SB_THREAD
-+    pthread_setspecific(specials,thread);
-+#endif
-+#ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK
-+    /* Signal handlers are run on the control stack, so if it is exhausted
-+     * we had better use an alternate stack for whatever signal tells us
-+     * we've exhausted it */
-+    sigstack.ss_sp=((void *) thread)+dynamic_values_bytes;
-+    sigstack.ss_flags=0;
-+    sigstack.ss_size = 32*SIGSTKSZ;
-+    sigaltstack(&sigstack,0);
-+#endif
-+    return 1;                  /* success */
-+}
-+
-+int arch_os_thread_cleanup(struct thread *thread) {
-+    return 1;                  /* success */
-+}
-+
-+#if defined(LISP_FEATURE_FREEBSD)
-+void
-+os_restore_fp_control(os_context_t *context)
-+{
-+    struct envxmm *ex = (struct envxmm*)(&context->uc_mcontext.mc_fpstate);
-+    /* reset exception flags and restore control flags on SSE2 FPU */
-+    unsigned int temp = (ex->en_mxcsr) & ~0x3F;
-+    asm ("ldmxcsr %0" : : "m" (temp));
-+    /* same for x87 FPU. */
-+    asm ("fldcw %0" : : "m" (ex->en_cw));
-+}
-+#endif
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ src/runtime/x86-64-bsd-os.h	Thu Nov 30 12:45:17 2006 +0900
-@@ -0,0 +1,34 @@
-+#ifndef _X86_64_BSD_OS_H
-+#define _X86_64_BSD_OS_H
-+
-+#ifdef LISP_FEATURE_FREEBSD
-+#include <machine/segments.h>
-+#include <machine/cpufunc.h>
-+#endif
-+
-+typedef register_t os_context_register_t;
-+
-+static inline os_context_t *arch_os_get_context(void **void_context) {
-+    return (os_context_t *) *void_context;
-+}
-+
-+/* The different BSD variants have diverged in exactly where they
-+ * store signal context information, but at least they tend to use the
-+ * same stems to name the structure fields, so by using this macro we
-+ * can share a fair amount of code between different variants. */
-+#if defined __FreeBSD__
-+#define CONTEXT_ADDR_FROM_STEM(stem) &context->uc_mcontext.mc_ ## stem
-+#elif defined(__OpenBSD__)
-+#define CONTEXT_ADDR_FROM_STEM(stem) &context->sc_ ## stem
-+#elif defined __NetBSD__
-+#define CONTEXT_ADDR_FROM_STEM(stem) &((context)->uc_mcontext.__gregs[_REG_ ## stem])
-+#else
-+#error unsupported BSD variant
-+#endif
-+
-+#if defined LISP_FEATURE_FREEBSD
-+#define RESTORE_FP_CONTROL_FROM_CONTEXT
-+void os_restore_fp_control(os_context_t *context);
-+#endif
-+
-+#endif /* _X86_64_BSD_OS_H */
---- src/runtime/x86-64-arch.c	Thu Nov 30 19:20:11 2006 +0900
-+++ src/runtime/x86-64-arch.c	Sun Dec 03 02:26:51 2006 +0900
-@@ -308,6 +308,56 @@ sigill_handler(int signal, siginfo_t *si
-     lose("fake_foreign_function_call fell through");
- }
- 
-+#ifdef X86_64_SIGFPE_FIXUP
-+#define MXCSR_IE (0x01)         /* Invalid Operation */
-+#define MXCSR_DE (0x02)         /* Denormal */
-+#define MXCSR_ZE (0x04)         /* Devide-by-Zero */
-+#define MXCSR_OE (0x08)         /* Overflow */
-+#define MXCSR_UE (0x10)         /* Underflow */
-+#define MXCSR_PE (0x20)         /* Precision */
-+
-+static inline int
-+mxcsr_to_code(unsigned int mxcsr)
-+{
-+    /* Extract unmasked exception bits. */
-+    mxcsr &= ~(mxcsr >> 7) & 0x3F;
-+
-+    /* This order is defined at "Intel 64 and IA-32 Architectures
-+     * Software Developerfs Manual" Volume 1: "Basic Architecture",
-+     * 4.9.2 "Floating-Point Exception Priority". */
-+    if (mxcsr & MXCSR_IE)
-+        return FPE_FLTINV;
-+    else if (mxcsr & MXCSR_ZE)
-+        return FPE_FLTDIV;
-+    else if (mxcsr & MXCSR_DE)
-+        return FPE_FLTUND;
-+    else if (mxcsr & MXCSR_OE)
-+        return FPE_FLTOVF;
-+    else if (mxcsr & MXCSR_UE)
-+        return FPE_FLTUND;
-+    else if (mxcsr & MXCSR_PE)
-+        return FPE_FLTRES;
-+
-+    return 0;
-+}
-+
-+static void
-+sigfpe_handler(int signal, siginfo_t *siginfo, void *void_context)
-+{
-+    os_context_t *context = arch_os_get_context(&void_context);
-+    unsigned int *mxcsr = arch_os_context_mxcsr_addr(context);
-+
-+    if (siginfo->si_code == 0) { /* XMM exception */
-+        siginfo->si_code = mxcsr_to_code(*mxcsr);
-+
-+        /* Clear sticky exception flag. */
-+        *mxcsr &= ~0x3F;
-+    }
-+
-+    interrupt_handle_now(signal, siginfo, context);
-+}
-+#endif
-+
- void
- arch_install_interrupt_handlers()
- {
-@@ -325,6 +375,9 @@ arch_install_interrupt_handlers()
-      * why.. -- WHN 2001-06-07 */
-     undoably_install_low_level_interrupt_handler(SIGILL , sigill_handler);
-     undoably_install_low_level_interrupt_handler(SIGTRAP, sigtrap_handler);
-+#ifdef X86_64_SIGFPE_FIXUP
-+    undoably_install_low_level_interrupt_handler(SIGFPE, sigfpe_handler);
-+#endif
- 
-     SHOW("returning from arch_install_interrupt_handlers()");
- }
---- src/runtime/x86-64-bsd-os.h	Thu Nov 30 19:20:11 2006 +0900
-+++ src/runtime/x86-64-bsd-os.h	Sun Dec 03 02:26:51 2006 +0900
-@@ -2,8 +2,7 @@
- #define _X86_64_BSD_OS_H
- 
- #ifdef LISP_FEATURE_FREEBSD
--#include <machine/segments.h>
--#include <machine/cpufunc.h>
-+#include <machine/fpu.h>
- #endif
- 
- typedef register_t os_context_register_t;
-@@ -29,6 +28,16 @@ static inline os_context_t *arch_os_get_
- #if defined LISP_FEATURE_FREEBSD
- #define RESTORE_FP_CONTROL_FROM_CONTEXT
- void os_restore_fp_control(os_context_t *context);
-+
-+/* FreeBSD does not setup si_code on XMM exception. */
-+#define X86_64_SIGFPE_FIXUP
-+
-+static inline unsigned int *
-+arch_os_context_mxcsr_addr(os_context_t *context)
-+{
-+    struct envxmm *ex = (struct envxmm *)(&context->uc_mcontext.mc_fpstate);
-+    return &ex->en_mxcsr;
-+}
- #endif
- 
- #endif /* _X86_64_BSD_OS_H */
--- files/patch-futex	Sat Dec 09 09:31:29 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,370 +0,0 @@
---- make-config.sh	Thu Nov 30 02:36:43 2006 +0000
-+++ make-config.sh	Sat Dec 09 13:57:31 2006 +0900
-@@ -191,8 +191,9 @@ case "$sbcl_os" in
-             freebsd)
-                 printf ' :elf' >> $ltf
-                 printf ' :freebsd' >> $ltf
-+                printf ' :sb-pthread-futex' >> $ltf
-                 if [ $sbcl_arch = "x86" ]; then
--                    printf ' :sb-lutex :restore-tls-segment-register-from-tls' >> $ltf
-+                    printf ' :restore-tls-segment-register-from-tls' >> $ltf
-                 fi
-                 link_or_copy Config.$sbcl_arch-freebsd Config
-                 ;;
---- src/runtime/GNUmakefile	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/GNUmakefile	Sat Dec 09 13:58:56 2006 +0900
-@@ -40,7 +40,8 @@ include Config
- 
- COMMON_SRC = alloc.c backtrace.c breakpoint.c coreparse.c \
- 	dynbind.c gc-common.c globals.c interr.c interrupt.c largefile.c \
--	monitor.c os-common.c parse.c print.c purify.c pthread-lutex.c \
-+	monitor.c os-common.c parse.c print.c purify.c \
-+	pthread-futex.c pthread-lutex.c \
- 	regnames.c run-program.c runtime.c save.c search.c \
- 	thread.c time.c util.c validate.c vars.c wrap.c	
- 
---- src/runtime/linux-os.c	Thu Nov 30 02:36:43 2006 +0000
-+++ src/runtime/linux-os.c	Sat Dec 09 13:56:27 2006 +0900
-@@ -62,7 +62,7 @@ int personality (unsigned long);
- 
- size_t os_vm_page_size;
- 
--#if defined(LISP_FEATURE_SB_THREAD) && !defined(LISP_FEATURE_SB_LUTEX)
-+#if defined(LISP_FEATURE_SB_THREAD) && !defined(LISP_FEATURE_SB_LUTEX) && !defined(LISP_FEATURE_SB_PTHREAD_FUTEX)
- #include <sys/syscall.h>
- #include <unistd.h>
- #include <errno.h>
-@@ -145,7 +145,7 @@ os_init(char *argv[], char *envp[])
- {
-     /* Conduct various version checks: do we have enough mmap(), is
-      * this a sparc running 2.2, can we do threads? */
--#if defined(LISP_FEATURE_SB_THREAD) && !defined(LISP_FEATURE_SB_LUTEX)
-+#if defined(LISP_FEATURE_SB_THREAD) && !defined(LISP_FEATURE_SB_LUTEX) && !defined(LISP_FEATURE_SB_PTHREAD_FUTEX)
-     int *futex=0;
- #endif
-     struct utsname name;
-@@ -171,7 +171,7 @@ os_init(char *argv[], char *envp[])
- #endif
-     }
- #ifdef LISP_FEATURE_SB_THREAD
--#if !defined(LISP_FEATURE_SB_LUTEX)
-+#if !defined(LISP_FEATURE_SB_LUTEX) && !defined(LISP_FEATURE_SB_PTHREAD_FUTEX)
-     futex_wait(futex,-1);
-     if(errno==ENOSYS) {
-        lose("This version of SBCL is compiled with threading support, but your kernel\n"
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ src/runtime/pthread-futex.c	Sat Dec 09 13:56:27 2006 +0900
-@@ -0,0 +1,313 @@
-+/* An approximation of Linux futexes implemented using pthread mutexes
-+ * and pthread condition variables.
-+ */
-+
-+/*
-+ * This software is part of the SBCL system. See the README file for
-+ * more information.
-+ *
-+ * The software is in the public domain and is provided with
-+ * absolutely no warranty. See the COPYING and CREDITS files for more
-+ * information.
-+ */
-+
-+#include "sbcl.h"
-+
-+#if defined(LISP_FEATURE_SB_THREAD) && defined(LISP_FEATURE_SB_PTHREAD_FUTEX)
-+
-+#include <errno.h>
-+#include <pthread.h>
-+#include <stdlib.h>
-+
-+#include "runtime.h"
-+#include "arch.h"
-+#include "target-arch-os.h"
-+#include "os.h"
-+
-+#define FUTEX_WAIT_NSEC (10000000) /* 10 msec */
-+
-+#if 1
-+# define futex_assert(ex)                                              \
-+do {                                                                   \
-+    if (!(ex)) futex_abort();                                          \
-+} while (0)
-+# define futex_assert_verbose(ex, fmt, ...)                            \
-+do {                                                                   \
-+    if (!(ex)) {                                                       \
-+        fprintf(stderr, fmt, ## __VA_ARGS__);                          \
-+        futex_abort();                                                 \
-+    }                                                                  \
-+} while (0)
-+#else
-+# define futex_assert(ex)
-+# define futex_assert_verbose(ex, fmt, ...)
-+#endif
-+
-+#define futex_abort()                                                  \
-+  lose("Futex assertion failure, file \"%s\", line %d\n", __FILE__, __LINE__)
-+
-+struct futex {
-+    struct futex *prev;
-+    struct futex *next;
-+    int *lock_word;
-+    pthread_mutex_t mutex;
-+    pthread_cond_t cond;
-+    int count;
-+};
-+
-+static pthread_mutex_t futex_lock = PTHREAD_MUTEX_INITIALIZER;
-+
-+static struct futex *futex_head = NULL;
-+static struct futex *futex_free_head = NULL;
-+
-+static struct futex *
-+futex_add(struct futex *head, struct futex *futex)
-+{
-+    futex->prev = NULL;
-+    futex->next = head;
-+    if (head != NULL)
-+        head->prev = futex;
-+    head = futex;
-+
-+    return head;
-+}
-+
-+static struct futex *
-+futex_delete(struct futex *head, struct futex *futex)
-+{
-+    if (head == futex)
-+        head = futex->next;
-+    if (futex->prev != NULL)
-+        futex->prev->next = futex->next;
-+    if (futex->next != NULL)
-+        futex->next->prev = futex->prev;
-+
-+    return head;
-+}
-+
-+static struct futex *
-+futex_find(struct futex *head, int *lock_word)
-+{
-+    struct futex *futex;
-+
-+    for (futex = head; futex != NULL; futex = futex->next) {
-+        if (futex->lock_word == lock_word)
-+            break;
-+    }
-+
-+    return futex;
-+}
-+
-+static struct futex *
-+futex_get(int *lock_word)
-+{
-+    int ret;
-+    struct futex *futex;
-+
-+    ret = pthread_mutex_lock(&futex_lock);
-+    futex_assert(ret == 0);
-+
-+    futex = futex_find(futex_head, lock_word);
-+
-+    if (futex != NULL)
-+        futex->count++;
-+
-+    ret = pthread_mutex_unlock(&futex_lock);
-+    futex_assert(ret == 0);
-+
-+    if (futex != NULL) {
-+        ret = pthread_mutex_lock(&futex->mutex);
-+        futex_assert(ret == 0);
-+    }
-+
-+    return futex;
-+}
-+
-+static struct futex *
-+futex_allocate(int *lock_word)
-+{
-+    int ret;
-+    struct futex *futex;
-+
-+    ret = pthread_mutex_lock(&futex_lock);
-+    futex_assert(ret == 0);
-+
-+    futex = futex_free_head;
-+
-+    if (futex != NULL)
-+        futex_free_head = futex_delete(futex_free_head, futex);
-+
-+    ret = pthread_mutex_unlock(&futex_lock);
-+    futex_assert(ret == 0);
-+
-+    if (futex == NULL) {
-+        futex = malloc(sizeof(struct futex));
-+        futex_assert(futex != NULL);
-+
-+        ret = pthread_mutex_init(&futex->mutex, NULL);
-+        futex_assert(ret == 0);
-+
-+        ret = pthread_cond_init(&futex->cond, NULL);
-+        futex_assert(ret == 0);
-+    }
-+
-+    futex->lock_word = lock_word;
-+    futex->count = 1;
-+
-+    /* Lock mutex before register to avoid race conditions. */
-+    ret = pthread_mutex_lock(&futex->mutex);
-+    futex_assert(ret == 0);
-+
-+    ret = pthread_mutex_lock(&futex_lock);
-+    futex_assert(ret == 0);
-+
-+    futex_head = futex_add(futex_head, futex);
-+
-+    ret = pthread_mutex_unlock(&futex_lock);
-+    futex_assert(ret == 0);
-+
-+    return futex;
-+}
-+
-+static void
-+futex_cleanup(void *p)
-+{
-+    struct futex *futex = (struct futex *)p;
-+    int ret, count;
-+ 
-+    ret = pthread_mutex_lock(&futex_lock);
-+    futex_assert(ret == 0);
-+
-+    count = --futex->count;
-+    if (count <= 0) {
-+        futex_head = futex_delete(futex_head, futex);
-+        futex_free_head = futex_add(futex_free_head, futex);
-+    }
-+
-+    ret = pthread_mutex_unlock(&futex_lock);
-+    futex_assert(ret == 0);
-+
-+    ret = pthread_mutex_unlock(&futex->mutex);
-+    futex_assert(ret == 0);
-+}
-+
-+static int
-+futex_relative_to_abs(struct timespec *tp, int relative)
-+{
-+    int ret;
-+    struct timeval tv;
-+
-+    ret = gettimeofday(&tv, NULL);
-+    if (ret != 0)
-+        return ret;
-+    tp->tv_sec = tv.tv_sec + (tv.tv_usec * 1000 + relative) / 1000000000;
-+    tp->tv_nsec = (tv.tv_usec * 1000 + relative) % 1000000000;
-+    return 0;
-+}
-+
-+int
-+futex_wait(int *lock_word, int oldval)
-+{
-+    int ret, result;
-+    struct futex *futex;
-+    sigset_t oldset, newset;
-+
-+    sigemptyset(&newset);
-+    sigaddset_deferrable(&newset);
-+
-+again:
-+    pthread_sigmask(SIG_BLOCK, &newset, &oldset);
-+
-+    futex = futex_get(lock_word);
-+
-+    if (futex == NULL)
-+        futex = futex_allocate(lock_word);
-+
-+    pthread_cleanup_push(futex_cleanup, futex);
-+
-+    /* Compare lock_word after the lock is aquired to avoid race
-+     * conditions. */
-+    if (*(volatile int *)lock_word != oldval) {
-+        result = EWOULDBLOCK;
-+        goto done;
-+    }
-+
-+    /* It's not possible to unwind frames across pthread_cond_wait(3). */
-+    for (;;) {
-+        int i;
-+        sigset_t pendset;
-+        struct timespec abstime;
-+
-+        ret = futex_relative_to_abs(&abstime, FUTEX_WAIT_NSEC);
-+        futex_assert(ret == 0);
-+
-+        result = pthread_cond_timedwait(&futex->cond, &futex->mutex,
-+                                        &abstime);
-+        futex_assert(result == 0 || result == ETIMEDOUT);
-+
-+        if (result != ETIMEDOUT)
-+            break;
-+
-+        /* futex system call of Linux returns with EINTR errno when
-+         * it's interrupted by signals.  Check pending signals here to
-+         * emulate this behaviour. */
-+        sigpending(&pendset);
-+        for (i = 1; i < NSIG; i++) {
-+            if (sigismember(&pendset, i) && sigismember(&newset, i)) {
-+                result = EINTR;
-+                goto done;
-+            }
-+        }
-+    }
-+done:
-+    ; /* Null statement is required between label and pthread_cleanup_pop. */
-+    pthread_cleanup_pop(1);
-+    pthread_sigmask(SIG_SETMASK, &oldset, NULL);
-+
-+    /* futex_wake() in linux-os.c loops when futex system call returns
-+     * EINTR.  */
-+    if (result == EINTR) {
-+        sched_yield();
-+        goto again;
-+    }
-+
-+    return result;
-+}
-+
-+int
-+futex_wake(int *lock_word, int n)
-+{
-+    int ret;
-+    struct futex *futex;
-+    sigset_t newset, oldset;
-+
-+    sigemptyset(&newset);
-+    sigaddset_deferrable(&newset);
-+
-+    pthread_sigmask(SIG_BLOCK, &newset, &oldset);
-+
-+    futex = futex_get(lock_word);
-+
-+    if (futex != NULL) {
-+        pthread_cleanup_push(futex_cleanup, futex);
-+
-+        /* The lisp-side code passes N=2**29-1 for a broadcast. */
-+        if (n >= ((1 << 29) - 1)) {
-+            /* CONDITION-BROADCAST */
-+            ret = pthread_cond_broadcast(&futex->cond);
-+            futex_assert(ret == 0);
-+        } else {
-+            while (n-- > 0) {
-+                ret = pthread_cond_signal(&futex->cond);
-+                futex_assert(ret == 0);
-+            }
-+        }
-+
-+        pthread_cleanup_pop(1);
-+    }
-+
-+    pthread_sigmask(SIG_SETMASK, &oldset, NULL);
-+
-+    return 0;
-+}
-+#endif
--- files/patch-src_runtime_thread.c	Sat Dec 09 09:31:29 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
---- src/runtime/thread.c	Thu Nov 23 15:11:26 2006 +0000
-+++ src/runtime/thread.c	Fri Nov 24 01:54:54 2006 +0900
-@@ -350,6 +350,10 @@ create_thread_struct(lispobj initial_fun
-     int i;
- #endif
- 
-+#ifdef CREATE_CLEANUP_THREAD
-+    /* Give a chance for cleanup threads to run. */
-+    sched_yield();
-+#endif
-     /* may as well allocate all the spaces at once: it saves us from
-      * having to decide what to do if only some of the allocations
-      * succeed */
--- pkg-plist	Sat Dec 09 09:31:29 2006 +0000
+++ pkg-plist	Wed Dec 27 05:52:05 2006 +0900
@@ -3,347 +3,6 @@
 %%DOCSDIR%%/CREDITS
 %%DOCSDIR%%/NEWS
 %%DOCSDIR%%/SUPPORT
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/A-more-involved-example.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Common-attributes-of-components.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Compilation-error-and-warning-handling.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Components.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Concept-Index.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Creating-new-component-types.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Creating-new-operations.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Defining-systems-with-defsystem.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Error-handling.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Function-and-Class-Index.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Getting-the-latest-version.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Inspiration.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Operations.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Pre_002ddefined-subclasses-of-component.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Predefined-operations-of-asdf.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/TODO-list.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/The-defsystem-form.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/The-defsystem-grammar.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/The-object-model-of-asdf.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Using-asdf-to-load-systems.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/Variable-Index.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/index.html
-%%PORTDOCS%%%%DOCSDIR%%/html/asdf/missing-bits-in-implementation.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/ANSI-Conformance.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Accessing-Foreign-Values.html
-%%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
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Class-sb_002dbsd_002dsockets_003alocal_002dsocket.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Class-sb_002dbsd_002dsockets_003asocket.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Class-sb_002dgray_003afundamental_002dstream.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Coercing-Foreign-Values.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Colophon.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Command-Line-Options.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Common-Lisp-Books.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Compiler-Errors.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Compiler-Policy.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Compiler.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Compiler_002donly-Implementation.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Concept-Index.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Condition-sb_002dext_003acode_002ddeletion_002dnote.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Condition-sb_002dext_003acompiler_002dnote.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Condition-sb_002dext_003apackage_002dlock_002dviolation.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Condition-sb_002dext_003apackage_002dlocked_002derror.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Condition-sb_002dext_003asymbol_002dpackage_002dlocked_002derror.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Condition-sb_002dthread_003ainterrupt_002dthread_002derror.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Contributed-Modules.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Controlling-Verbosity.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Customization-Hooks-for-Users.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Debug-Tail-Recursion.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Debugger-Banner.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Debugger-Command-Loop.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Debugger-Entry.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Debugger-Invokation.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Debugger-Policy-Control.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Debugger.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Declarations-as-Assertions.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Declarations.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Defining-Constants.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Defining-Foreign-Types.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Deterministic-Profiler.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Development-Tools.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Diagnostic-Messages.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Diagnostic-Severity.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Dynamic_002dextent-allocation.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Editor-Integration.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Efficiency-Hacks.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Efficiency.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/End-of-File.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Entry-Point-Details.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Errors-During-Macroexpansion.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Exit-on-Errors.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Exiting-Commands.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Extensible-Streams.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Extensions.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/External-Foreign-Variables.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Foreign-Data-Structure-Examples.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Foreign-Dynamic-Allocation.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Foreign-Function-Calls.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Foreign-Function-Interface.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Foreign-Type-Specifiers.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Foreign-Types-and-Lisp-Types.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Foreign-Types.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Foreign-Variables.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-Index.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-Names.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-Tracing.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-common_002dlisp_003aed.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-common_002dlisp_003arequire.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dalien_003aload_002dshared_002dobject.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003aget_002dhost_002dby_002daddress.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003aget_002dhost_002dby_002dname.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003aget_002dprotocol_002dby_002dname.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003amake_002dinet_002daddress.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003aname_002dservice_002derror.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003asocket_002derror.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003asockopt_002dbroadcast.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003asockopt_002dbsd_002dcompatible.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003asockopt_002ddebug.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003asockopt_002ddont_002droute.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003asockopt_002dkeep_002dalive.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003asockopt_002doob_002dinline.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003asockopt_002dpass_002dcredentials.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003asockopt_002dreuse_002daddress.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dbsd_002dsockets_003asockopt_002dtcp_002dnodelay.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aadd_002dimplementation_002dpackage.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003acancel_002dfinalization.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003afinalize.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003alist_002dall_002dtimers.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003alock_002dpackage.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003amake_002dtimer.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003amake_002dweak_002dpointer.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003anative_002dnamestring.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003anative_002dpathname.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003apackage_002dimplemented_002dby_002dlist.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003apackage_002dimplements_002dlist.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003apackage_002dlocked_002dp.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aparse_002dnative_002dnamestring.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aposix_002dgetenv.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aprocess_002dalive_002dp.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aprocess_002dclose.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aprocess_002dcore_002ddumped.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aprocess_002derror.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aprocess_002dexit_002dcode.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aprocess_002dinput.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aprocess_002dkill.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aprocess_002doutput.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aprocess_002dp.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aprocess_002dstatus.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aprocess_002dwait.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003apurify.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aquit.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aremove_002dimplementation_002dpackage.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003arun_002dprogram.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003asave_002dlisp_002dand_002ddie.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aschedule_002dtimer.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003atimer_002dname.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003atimer_002dscheduled_002dp.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aunlock_002dpackage.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aunschedule_002dtimer.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dext_003aweak_002dpointer_002dvalue.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dmd5_003amd5sum_002dfile.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dmd5_003amd5sum_002dsequence.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dmd5_003amd5sum_002dstream.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dmd5_003amd5sum_002dstring.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dprofile_003areport.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dprofile_003areset.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002drotate_002dbyte_003arotate_002dbyte.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dsprof_003areport.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dsprof_003areset.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dsprof_003astart_002dprofiling.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dsprof_003astop_002dprofiling.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003acondition_002dbroadcast.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003acondition_002dnotify.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003acondition_002dwait.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003aget_002dmutex.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003ainterrupt_002dthread.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003ainterrupt_002dthread_002derror_002dthread.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003alist_002dall_002dthreads.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003amake_002dmutex.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003amake_002dthread.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003amake_002dwaitqueue.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003amutex_002dname.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003amutex_002dvalue.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003arelease_002dmutex.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003aterminate_002dthread.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003athread_002dalive_002dp.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Function-sb_002dthread_003awaitqueue_002dname.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Garbage-Collection.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/General-Sockets.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003ahost_002dent_002daddress.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003anon_002dblocking_002dmode.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003asocket_002daccept.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003asocket_002dbind.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003asocket_002dclose.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003asocket_002dconnect.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003asocket_002dlisten.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003asocket_002dmake_002dstream.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003asocket_002dname.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003asocket_002dopen_002dp.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003asocket_002dpeername.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003asocket_002dreceive.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dbsd_002dsockets_003asocket_002dsend.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dadvance_002dto_002dcolumn.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dclear_002dinput.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dclear_002doutput.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dfinish_002doutput.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dforce_002doutput.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dfresh_002dline.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dline_002dcolumn.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dline_002dlength.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dlisten.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dpeek_002dchar.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dread_002dbyte.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dread_002dchar.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dread_002dchar_002dno_002dhang.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dread_002dline.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dread_002dsequence.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dstart_002dline_002dp.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dterpri.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dunread_002dchar.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dwrite_002dbyte.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dwrite_002dchar.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dwrite_002dsequence.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dwrite_002dstring.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Getting-Existing-Programs-to-Run.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Gray-Streams.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Handling-of-Types.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/History-and-Implementation-of-SBCL.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/How-Arguments-are-Printed.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/How-the-Source-is-Found.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/INET-Domain-Sockets.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Idiosyncrasies.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Implementation-Limitations.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Implementation-Packages.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Implementation-_0028Linux-x86_0029.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Information-Commands.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Initialization-Examples.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Initialization-File-Semantics.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Initialization-Files.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Internals-Documentation.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Internet-Community.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Interpreter.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Introduction-to-the-Foreign-Function-Interface.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Introduction.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Language-Reference.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Lisp-Pathnames.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Loading-Shared-Object-Files.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Local-Foreign-Variables.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Local-_0028Unix_0029-Domain-Sockets.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Macro-common_002dlisp_003astep.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Macro-common_002dlisp_003atrace.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Macro-common_002dlisp_003auntrace.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Macro-sb_002dext_003awith_002dunlocked_002dpackages.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Macro-sb_002dext_003awithout_002dpackage_002dlocks.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Macro-sb_002dprofile_003aprofile.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Macro-sb_002dprofile_003aunprofile.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Macro-sb_002dsprof_003awith_002dprofiling.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Macro-sb_002dsprof_003awith_002dsampling.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Macro-sb_002dthread_003awith_002dmutex.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Macro-sb_002dthread_003awith_002drecursive_002dlock.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Metaobject-Protocol.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Modular-arithmetic.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/More-Common-Lisp-Information.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/More-SBCL-Information.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Mutex-Support.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Name-Service.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Native-Filenames.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Networking.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Note-On-Lexical-Variable-Access.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Online-Documentation.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Open-Coding-and-Inline-Expansion.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Operations-On-Foreign-Values.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Operations-Violating-Package-Locks.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Package-Lock-Concepts.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Package-Lock-Dictionary.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Package-Lock-Overview.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Package-Lock-Violations.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Package-Locks-in-Compiled-Code.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Package-Locks.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Pathnames.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Precise-Type-Checking.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Profiling.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Quit.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Read-Errors.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Resolution-of-Name-Conflicts.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Running-from-Emacs.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Running-from-Shell.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Runtime-Options.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/SBCL-Homepage.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Saving-a-Core-Image.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Sessions_002fDebugging.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Shebang-Scripts.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Simple-Streams.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Single-Stepping.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Socket-Options.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Sockets-Overview.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Source-Location-Availability.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Source-Location-Printing.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Special-Variables.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Special_002dOperator-sb_002dext_003atruly_002dthe.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Stack-Frames.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Stack-Motion.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Stale-Extensions.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Starting-SBCL.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Starting-and-Stopping.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Statistical-Profiler.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Step_002dBy_002dStep-Example-of-the-Foreign-Function-Interface.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Stopping-SBCL.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Structure-sb_002dext_003atimer.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Structure-sb_002dthread_003amutex.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Structure-sb_002dthread_003athread.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Structure-sb_002dthread_003awaitqueue.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Style-Warnings.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Support-For-Unix.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/System-Initialization-File.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/The-Original-and-Actual-Source.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/The-Parts-of-a-Compiler-Diagnostic.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/The-Processing-Path.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/The-alien_002dfuncall-Primitive.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/The-define_002dalien_002droutine-Macro.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Third_002dparty-Libraries.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Threading-basics.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Threading.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Timers.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Tools-To-Help-Developers.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Toplevel-Options.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Type-Errors-at-Compile-Time.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Type-Index.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Understanding-Compiler-Diagnostics.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Unix_002dstyle-Command-Line-Protocol.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Unknown-Locations-and-Interrupts.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/User-Initialization-File.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-Access.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-Index.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-Value-Availability.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002ddebug_003a_002amax_002dtrace_002dindentation_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002ddebug_003a_002atrace_002dencapsulate_002ddefault_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002ddebug_003a_002atrace_002dindentation_002dstep_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002ddebug_003a_002atrace_002dvalues_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002dext_003a_002aafter_002dgc_002dhooks_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002dext_003a_002acompiler_002dprint_002dvariable_002dalist_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002dext_003a_002acore_002dpathname_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002dext_003a_002adebug_002dprint_002dvariable_002dalist_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002dext_003a_002aed_002dfunctions_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002dext_003a_002ainvoke_002ddebugger_002dhook_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002dext_003a_002amodule_002dprovider_002dfunctions_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002dsprof_003a_002amax_002dsamples_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002dsprof_003a_002asample_002dinterval_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Variable-sb_002dthread_003a_002acurrent_002dthread_002a.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Waitqueue_002fcondition-variables.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/define_002dalien_002droutine-Example.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/index.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/sb_002daclrepl.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/sb_002dgrovel.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/sb_002dmd5.html
-%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/sb_002drotate_002dbyte.html
 bin/sbcl
 lib/sbcl/asdf-install/.cvsignore
 lib/sbcl/asdf-install/Makefile
@@ -538,9 +197,6 @@ lib/sbcl/sbcl.core
 lib/sbcl/sbcl.core
 @exec mkdir -p %D/lib/sbcl/site-systems
 @exec mkdir -p %D/lib/sbcl/sb-posix/test-lab
-%%PORTDOCS%%@dirrm %%DOCSDIR%%/html/sbcl
-%%PORTDOCS%%@dirrm %%DOCSDIR%%/html/asdf
-%%PORTDOCS%%@dirrm %%DOCSDIR%%/html
 @dirrm %%DOCSDIR%%
 @dirrm lib/sbcl/site-systems
 @dirrm lib/sbcl/sb-sprof
--- sbcl-101.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list