The following patch updates lang/sbcl to 1.0.31. Notable changes
include amd64 support, switching the host lisp from a static binary to
clisp, removal of the /proc requirement for embedded cores, and
default memory allocation sizes that are compatible with the default
resource limits.

Note that this patch add and deletes a few files.

Index: Makefile
===================================================================
RCS file: /home/cvsync/openbsd/ports/lang/sbcl/Makefile,v
retrieving revision 1.2
diff -u -N Makefile
--- Makefile    15 Apr 2008 12:07:31 -0000      1.2
+++ Makefile    1 Sep 2009 22:49:45 -0000
@@ -1,11 +1,11 @@
 # $OpenBSD: Makefile,v 1.2 2008/04/15 12:07:31 deanna Exp $
 
 # not yet ported to other arches
-ONLY_FOR_ARCHS=                i386
+ONLY_FOR_ARCHS =       amd64 i386
 
 COMMENT=               compiler and runtime system for ANSI Common Lisp
 
-V=                     1.0.15
+V =                    1.0.31
 DISTNAME=              sbcl-${V}-source
 PKGNAME=               sbcl-${V}
 WRKDIST=               ${WRKDIR}/sbcl-${V}
@@ -13,7 +13,7 @@
 
 CATEGORIES=            lang
 HOMEPAGE=              http://www.sbcl.org/
-MAINTAINER=            Josh Elsasser <j...@elsasser.org>
+MAINTAINER =           Joshua Elsasser <jos...@elsasser.org>
 
 # Public domain and BSD
 PERMIT_PACKAGE_CDROM=  Yes
@@ -24,49 +24,35 @@
 WANTLIB=               c m util
 
 MASTER_SITES=          ${MASTER_SITE_SOURCEFORGE:=sbcl/}
-MASTER_SITES0=         http://www.elsasser.org/openbsd/
-DISTFILES=             ${DISTNAME}${EXTRACT_SUFX}
-SUPDISTFILES=          ${SBCL_BOOTSTRAP_I386}.tar.bz2:0
 
-SBCL_BOOTSTRAP_I386=   sbcl-1.0.14-openbsd-i386-static-1
-SBCL_BOOTSTRAP=                ${SBCL_BOOTSTRAP_${MACHINE_ARCH:U}}
-
-# To build a new bootstrap tarball, do "make patch" then edit the
-# following files:
-#     ${WRKSRC}/make.sh
-#         comment out "time sh make-target-contrib.sh" near the end
-#     ${WRKSRC}/src/runtime/Config.x86-openbsd
-#         change the -export-dynamic flags to -static
-# You should also edit the do-build target in this Makefile, comment
-# out the second line to avoid trying to build the manual. Finally, do
-# "make build" and go get some coffee. When it's finished you can grab
-# ${WRKSRC}/src/runtime/sbcl and ${WRKSRC}/output/sbcl.core to make
-# the bootstrap tarball.
-
 PSEUDO_FLAVORS=                native_bootstrap
 FLAVOR?=
 
 BUILD_DEPENDS=         ::print/texlive/base
 
-# it's not actually interactive, it just needs /proc and higher resource limits
-REGRESS_IS_INTERACTIVE=Yes
-
 .if ${FLAVOR:L:Mnative_bootstrap}
 BUILD_DEPENDS+=                ::lang/sbcl
 BOOTSTRAP_CMD=         ${LOCALBASE}/bin/sbcl \
                        --disable-debugger --no-sysinit --no-userinit
-.elif !empty(SBCL_BOOTSTRAP)
-DISTFILES+=            ${SBCL_BOOTSTRAP}.tar.bz2:0
-BOOTSTRAP_CMD=         ${WRKDIR}/${SBCL_BOOTSTRAP}/sbcl \
-                       --core ${WRKDIR}/${SBCL_BOOTSTRAP}/sbcl.core \
-                       --disable-debugger --no-sysinit --no-userinit
+.else
+BUILD_DEPENDS +=       ::lang/clisp
+BOOTSTRAP_CMD =                ${LOCALBASE}/bin/clisp -q -norc
 .endif
 
+.if ${MACHINE_ARCH} == "i386"
+PKG_ARGS +=            -Di386=1
+.else
+PKG_ARGS +=            -Di386=0
+.endif
+
 USE_GMAKE=             Yes
 PORTHOME=              ${TMPDIR}
 MAKE_ENV=              GNUMAKE=${GMAKE} INSTALL_ROOT=${PREFIX} \
                        MAN_DIR=${PREFIX}/man INFO_DIR=${PREFIX}/info
 
+pre-configure:
+       @${SUBST_CMD} ${WRKSRC}/src/runtime/runtime.c
+
 do-build:
        cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} /bin/sh make.sh "${BOOTSTRAP_CMD}"
        cd ${WRKSRC}/doc/manual && ${SETENV} ${MAKE_ENV} ${GMAKE}
@@ -78,13 +64,6 @@
        ${CHOWN} -R 0:0 ${PREFIX}/lib/sbcl
 
 do-regress:
-       @echo "These tests must be run with a data size resource limit of at 
least"
-       @echo "768 MB, for example by a user in the staff or daemon login 
classes."
-       @echo
-       @echo "The /proc filesystem must also be mounted for the core.test.sh 
test:"
-       @echo "  mkdir -p /proc && mount -t procfs proc /proc"
-       @echo
-       @sleep 5
        cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} RUN_CONTRIB_TESTS=1 \
            /bin/sh make-target-contrib.sh
        cd ${WRKSRC}/tests && ${SETENV} ${MAKE_ENV} /bin/sh run-tests.sh
Index: distinfo
===================================================================
RCS file: /home/cvsync/openbsd/ports/lang/sbcl/distinfo,v
retrieving revision 1.1.1.1
diff -u -N distinfo
--- distinfo    14 Apr 2008 12:29:40 -0000      1.1.1.1
+++ distinfo    27 Aug 2009 20:41:06 -0000
@@ -1,10 +1,5 @@
-MD5 (sbcl-1.0.14-openbsd-i386-static-1.tar.bz2) = LLiuQhzlqTgixZV4yZ5j7Q==
-MD5 (sbcl-1.0.15-source.tar.bz2) = 09la4QaEo8/FnkJ+xTPuaA==
-RMD160 (sbcl-1.0.14-openbsd-i386-static-1.tar.bz2) = 
cx9B6lgyN7hg2alpXHXu54diiBM=
-RMD160 (sbcl-1.0.15-source.tar.bz2) = WNputGy3LQ6IzbXtWhvAHVklz6I=
-SHA1 (sbcl-1.0.14-openbsd-i386-static-1.tar.bz2) = 8UjrJjR7PPKBrjz+7qvdvKMF/XA=
-SHA1 (sbcl-1.0.15-source.tar.bz2) = TTNX9W5vYAyuCsP3gRH8zVrrdHM=
-SHA256 (sbcl-1.0.14-openbsd-i386-static-1.tar.bz2) = 
fn++aMwD+62CKaXAuqPgFi1EztAD2GI5Pxas9iGQwG4=
-SHA256 (sbcl-1.0.15-source.tar.bz2) = 
XeSYVZpr4AAZ/QzgkHV+dch12J6FR1k9ehCvttqXC+k=
-SIZE (sbcl-1.0.14-openbsd-i386-static-1.tar.bz2) = 7636859
-SIZE (sbcl-1.0.15-source.tar.bz2) = 3205556
+MD5 (sbcl-1.0.31-source.tar.bz2) = ph/QmacsLT+hClcpjzyb9g==
+RMD160 (sbcl-1.0.31-source.tar.bz2) = 6UyQl/9BOEccF5v+Hx4sM+by4Wk=
+SHA1 (sbcl-1.0.31-source.tar.bz2) = Skt03hdPlwUKJ4WsRVmqbdSKPQk=
+SHA256 (sbcl-1.0.31-source.tar.bz2) = 
0CZNbkpJ5tGBwnNI8H3nM8CYYMnNdKH76Objy3yiidw=
+SIZE (sbcl-1.0.31-source.tar.bz2) = 3354506
Index: patches/patch-contrib_asdf-module.mk
===================================================================
RCS file: 
/home/cvsync/openbsd/ports/lang/sbcl/patches/patch-contrib_asdf-module.mk,v
retrieving revision 1.1.1.1
diff -u -N patches/patch-contrib_asdf-module.mk
--- patches/patch-contrib_asdf-module.mk        14 Apr 2008 12:29:40 -0000      
1.1.1.1
+++ patches/patch-contrib_asdf-module.mk        8 Jul 2009 01:03:47 -0000
@@ -1,7 +1,13 @@
 $OpenBSD: patch-contrib_asdf-module.mk,v 1.1.1.1 2008/04/14 12:29:40 deanna 
Exp $
---- contrib/asdf-module.mk.orig        Wed Sep  6 17:56:59 2006
-+++ contrib/asdf-module.mk     Thu Apr 10 14:37:27 2008
-@@ -18,7 +18,8 @@ endif
+
+Fix 'all' target to allow building without running tests.
+
+Don't copy every single file when installing the contribs, only the
+ones that are actually needed to load the system.
+
+--- contrib/asdf-module.mk.orig        Tue Apr 28 09:02:13 2009
++++ contrib/asdf-module.mk     Tue Jul  7 17:57:02 2009
+@@ -22,7 +22,8 @@ endif
  
  export CC SBCL EXTRA_CFLAGS EXTRA_LDFLAGS
  
@@ -11,9 +17,10 @@
        $(MAKE) -C ../asdf
        $(SBCL) --eval '(defvar *system* "$(SYSTEM)")' --load ../asdf-stub.lisp 
--eval '(quit)'
  
-@@ -29,4 +30,4 @@ test: all
- 
- 
+@@ -34,5 +35,4 @@ test: all
+ # KLUDGE: There seems to be no portable way to tell tar to not to
+ # preserve owner, so chown after installing for the current user.
  install: $(EXTRA_INSTALL_TARGETS)
 -      tar cf - . | ( cd "$(BUILD_ROOT)$(INSTALL_DIR)" && tar xpvf - )
+-      find "$(BUILD_ROOT)$(INSTALL_DIR)" -type f -exec chown `id -u`:`id -g` 
{} \;
 +      cp -p $(SYSTEM).asd *.lisp *.fasl "$(BUILD_ROOT)$(INSTALL_DIR)"
Index: patches/patch-contrib_vanilla-module.mk
===================================================================
RCS file: 
/home/cvsync/openbsd/ports/lang/sbcl/patches/patch-contrib_vanilla-module.mk,v
retrieving revision 1.1.1.1
diff -u -N patches/patch-contrib_vanilla-module.mk
--- patches/patch-contrib_vanilla-module.mk     14 Apr 2008 12:29:40 -0000      
1.1.1.1
+++ patches/patch-contrib_vanilla-module.mk     8 Jul 2009 00:47:16 -0000
@@ -1,4 +1,7 @@
 $OpenBSD: patch-contrib_vanilla-module.mk,v 1.1.1.1 2008/04/14 12:29:40 deanna 
Exp $
+
+Add an 'all' target to allow building without running tests.
+
 --- contrib/vanilla-module.mk.orig     Wed Sep  6 17:56:59 2006
 +++ contrib/vanilla-module.mk  Thu Apr 10 14:13:34 2008
 @@ -1,3 +1,4 @@
Index: patches/patch-make-target-contrib.sh
===================================================================
RCS file: 
/home/cvsync/openbsd/ports/lang/sbcl/patches/patch-make-target-contrib.sh,v
retrieving revision 1.1.1.1
diff -u -N patches/patch-make-target-contrib.sh
--- patches/patch-make-target-contrib.sh        14 Apr 2008 12:29:40 -0000      
1.1.1.1
+++ patches/patch-make-target-contrib.sh        8 Jul 2009 01:03:48 -0000
@@ -1,7 +1,12 @@
 $OpenBSD: patch-make-target-contrib.sh,v 1.1.1.1 2008/04/14 12:29:40 deanna 
Exp $
---- make-target-contrib.sh.orig        Mon Oct  8 04:02:52 2007
-+++ make-target-contrib.sh     Thu Apr 10 14:13:34 2008
-@@ -42,6 +42,7 @@ export SBCL SBCL_BUILDING_CONTRIB
+
+Only run the contrib tests if $RUN_CONTRIB_TESTS is not empty.  This
+allows the contribs to be build when USE_SYSTRACE=Yes, and the tests
+to be run later in do-regress.
+
+--- make-target-contrib.sh.orig        Mon Feb 16 13:36:13 2009
++++ make-target-contrib.sh     Tue Jul  7 17:57:02 2009
+@@ -43,6 +43,7 @@ export SBCL SBCL_BUILDING_CONTRIB
  # as SB-RT and SB-GROVEL, but FIXME: there's probably a better
  # solution.  -- CSR, 2003-05-30
  
@@ -9,7 +14,7 @@
  find contrib/ \( -name '*.fasl' -o \
                   -name '*.FASL' -o \
                   -name 'foo.c' -o \
-@@ -55,13 +56,17 @@ find contrib/ \( -name '*.fasl' -o \
+@@ -56,13 +57,17 @@ find contrib/ \( -name '*.fasl' -o \
    -print | xargs rm -f
  
  find output -name 'building-contrib.*' -print | xargs rm -f
Index: patches/patch-src_code_common-os_lisp
===================================================================
RCS file: patches/patch-src_code_common-os_lisp
diff -u -N patches/patch-src_code_common-os_lisp
--- /dev/null   1 Sep 2009 15:57:41 -0000
+++ patches/patch-src_code_common-os_lisp       8 Jul 2009 01:57:43 -0000
@@ -0,0 +1,30 @@
+$OpenBSD$
+
+If os_get_runtime_executable_path(1) returns NULL then try to use
+saved_runtime_path, which fixes the shebang line in fasls.
+
+--- src/code/common-os.lisp.orig       Wed Jun 24 07:33:19 2009
++++ src/code/common-os.lisp    Mon Jun 29 07:53:42 2009
+@@ -15,7 +15,10 @@
+ 
+ (sb!alien:define-alien-variable ("posix_argv" *native-posix-argv*) (* (* 
char)))
+ (sb!alien:define-alien-variable ("core_string" *native-core-string*) (* char))
+-(sb!alien:define-alien-routine os-get-runtime-executable-path 
sb!alien:c-string)
++(sb!alien:define-alien-routine
++ os-get-runtime-executable-path sb!alien:c-string (external-path boolean))
++(sb!alien:define-alien-variable
++ ("saved_runtime_path" *native-saved-runtime-path*) (* char))
+ 
+ ;;; if something ever needs to be done differently for one OS, then
+ ;;; split out the different part into per-os functions.
+@@ -43,6 +46,8 @@
+   (setf *core-pathname*
+         (merge-pathnames (native-pathname *core-string*)))
+   (/show0 "setting *RUNTIME-PATHNAME*")
+-  (let ((exe (os-get-runtime-executable-path)))
+-    (setf *runtime-pathname* (when exe (native-pathname exe))))
++  (let ((exe (os-get-runtime-executable-path t))
++        (saved (sb!alien:cast *native-saved-runtime-path* sb!alien:c-string)))
++    (setf *runtime-pathname*
++          (when (or exe saved) (native-pathname (or exe saved)))))
+   (/show0 "leaving OS-COLD-INIT-OR-REINIT"))
Index: patches/patch-src_compiler_ir1util_lisp
===================================================================
RCS file: patches/patch-src_compiler_ir1util_lisp
diff -u -N patches/patch-src_compiler_ir1util_lisp
--- /dev/null   1 Sep 2009 15:57:41 -0000
+++ patches/patch-src_compiler_ir1util_lisp     8 Jul 2009 01:09:23 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+Clisp 2.43 chokes on this declaration.
+
+--- src/compiler/ir1util.lisp.orig     Wed Jun 17 13:03:36 2009
++++ src/compiler/ir1util.lisp  Mon Jun 29 08:22:24 2009
+@@ -429,7 +429,7 @@
+     (lvar-dynamic-extent it)))
+ 
+ (defun flushable-combination-p (call)
+-  (declare (combination call))
++  (declare (type combination call))
+   (let ((kind (combination-kind call))
+         (info (combination-fun-info call)))
+     (when (and (eq kind :known) (fun-info-p info))
Index: patches/patch-src_runtime_Config.x86-openbsd
===================================================================
RCS file: 
/home/cvsync/openbsd/ports/lang/sbcl/patches/patch-src_runtime_Config.x86-openbsd,v
retrieving revision 1.1.1.1
diff -u -N patches/patch-src_runtime_Config.x86-openbsd
--- patches/patch-src_runtime_Config.x86-openbsd        14 Apr 2008 12:29:40 
-0000      1.1.1.1
+++ patches/patch-src_runtime_Config.x86-openbsd        8 Jul 2009 01:28:42 
-0000
@@ -1,9 +1,9 @@
 $OpenBSD: patch-src_runtime_Config.x86-openbsd,v 1.1.1.1 2008/04/14 12:29:40 
deanna Exp $
---- src/runtime/Config.x86-openbsd.orig        Wed Jan  9 11:12:23 2008
-+++ src/runtime/Config.x86-openbsd     Thu Apr 10 14:13:34 2008
-@@ -25,4 +25,4 @@ OS_LIBS += -lutil
+--- src/runtime/Config.x86-openbsd.orig        Sun Feb  3 10:34:58 2008
++++ src/runtime/Config.x86-openbsd     Thu Feb  5 08:41:33 2009
+@@ -24,5 +24,3 @@ OS_LIBS += -lutil
+ 
  LINKFLAGS += -export-dynamic
  LDFLAGS += -export-dynamic
- 
+-
 -CFLAGS =  -g -Wall -O2
-+CFLAGS +=  -g -Wall -O2 -DSBCL_HOME='"${PREFIX}/lib/sbcl/"'
Index: patches/patch-src_runtime_GNUmakefile
===================================================================
RCS file: 
/home/cvsync/openbsd/ports/lang/sbcl/patches/patch-src_runtime_GNUmakefile,v
retrieving revision 1.1.1.1
diff -u -N patches/patch-src_runtime_GNUmakefile
--- patches/patch-src_runtime_GNUmakefile       14 Apr 2008 12:29:40 -0000      
1.1.1.1
+++ patches/patch-src_runtime_GNUmakefile       3 Apr 2009 04:24:52 -0000
@@ -6,7 +6,7 @@
  GREP = grep
  
 -CFLAGS = -g -Wall -Wsign-compare -O3
-+CFLAGS += -Wsign-compare
++CFLAGS += -Wall -Wsign-compare
  ASFLAGS = $(CFLAGS)
  CPPFLAGS = -I.
  
Index: patches/patch-src_runtime_bsd-os_c
===================================================================
RCS file: patches/patch-src_runtime_bsd-os_c
diff -u -N patches/patch-src_runtime_bsd-os_c
--- /dev/null   1 Sep 2009 15:57:41 -0000
+++ patches/patch-src_runtime_bsd-os_c  8 Jul 2009 01:52:32 -0000
@@ -0,0 +1,29 @@
+$OpenBSD$
+
+Add a flag to os_get_runtime_executable_path() indicating if an
+externally usable path is required, which means we can't use
+/proc/curproc/file even if procfs happens to be mounted.
+
+--- src/runtime/bsd-os.c.orig  Wed May 13 11:13:48 2009
++++ src/runtime/bsd-os.c       Mon Jun 29 07:53:42 2009
+@@ -465,16 +465,12 @@ os_get_runtime_executable_path()
+ }
+ #elif defined(LISP_FEATURE_NETBSD) || defined(LISP_FEATURE_OPENBSD)
+ char *
+-os_get_runtime_executable_path()
++os_get_runtime_executable_path(int external)
+ {
+     struct stat sb;
+-    char *path = strdup("/proc/curproc/file");
+-    if (path && ((stat(path, &sb)) == 0))
+-        return path;
+-    else {
+-        fprintf(stderr, "Couldn't stat /proc/curproc/file; is /proc 
mounted?\n");
+-        return NULL;
+-    }
++    if (!external && stat("/proc/curproc/file", &sb) == 0)
++        return copied_string("/proc/curproc/file");
++    return NULL;
+ }
+ #else /* Not DARWIN or FREEBSD or NETBSD or OPENBSD */
+ char *
Index: patches/patch-src_runtime_gc-common.c
===================================================================
RCS file: 
/home/cvsync/openbsd/ports/lang/sbcl/patches/patch-src_runtime_gc-common.c,v
retrieving revision 1.1.1.1
diff -u -N patches/patch-src_runtime_gc-common.c
--- patches/patch-src_runtime_gc-common.c       14 Apr 2008 12:29:40 -0000      
1.1.1.1
+++ /dev/null   1 Sep 2009 21:13:22 -0000
@@ -1,20 +0,0 @@
-$OpenBSD: patch-src_runtime_gc-common.c,v 1.1.1.1 2008/04/14 12:29:40 deanna 
Exp $
---- src/runtime/gc-common.c.orig       Wed Feb 20 09:55:27 2008
-+++ src/runtime/gc-common.c    Thu Apr 10 14:13:34 2008
-@@ -25,6 +25,7 @@
-  *   <ftp://ftp.cs.utexas.edu/pub/garbage/bigsurv.ps>.
-  */
- 
-+#include <sys/param.h>
- #include <stdio.h>
- #include <signal.h>
- #include <string.h>
-@@ -53,7 +54,7 @@
- #endif
- #endif
- 
--size_t dynamic_space_size = DEFAULT_DYNAMIC_SPACE_SIZE;
-+size_t dynamic_space_size = MIN(DEFAULT_DYNAMIC_SPACE_SIZE, 400 * 1024 * 
1024);
- 
- inline static boolean
- forwarding_pointer_p(lispobj *pointer) {
Index: patches/patch-src_runtime_os_h
===================================================================
RCS file: patches/patch-src_runtime_os_h
diff -u -N patches/patch-src_runtime_os_h
--- /dev/null   1 Sep 2009 15:57:41 -0000
+++ patches/patch-src_runtime_os_h      29 Jun 2009 14:54:29 -0000
@@ -0,0 +1,11 @@
+$OpenBSD$
+--- src/runtime/os.h.orig      Wed Jul 25 14:37:31 2007
++++ src/runtime/os.h   Mon Jun 29 07:53:42 2009
+@@ -175,6 +175,6 @@ int os_get_errno(void);
+ /* Return an absolute path to the runtime executable, or NULL if this
+  * information is unavailable.  If a non-null pathname is returned, it
+  * must be 'free'd. */
+-extern char *os_get_runtime_executable_path(void);
++extern char *os_get_runtime_executable_path(int external_path);
+ 
+ #endif
Index: patches/patch-src_runtime_runtime.c
===================================================================
RCS file: 
/home/cvsync/openbsd/ports/lang/sbcl/patches/patch-src_runtime_runtime.c,v
retrieving revision 1.1.1.1
diff -u -N patches/patch-src_runtime_runtime.c
--- patches/patch-src_runtime_runtime.c 14 Apr 2008 12:29:40 -0000      1.1.1.1
+++ patches/patch-src_runtime_runtime.c 8 Jul 2009 01:51:04 -0000
@@ -1,12 +1,147 @@
 $OpenBSD: patch-src_runtime_runtime.c,v 1.1.1.1 2008/04/14 12:29:40 deanna Exp 
$
---- src/runtime/runtime.c.orig Thu Oct 25 21:33:34 2007
-+++ src/runtime/runtime.c      Thu Apr 10 14:13:34 2008
-@@ -279,6 +279,8 @@ main(int argc, char *argv[], char *envp[])
-                 dynamic_space_size = strtol(argv[argi++], 0, 0) << 20;
-                 if (errno)
-                     lose("argument to --dynamic-space-size is not a number");
-+                if (dynamic_space_size > DEFAULT_DYNAMIC_SPACE_SIZE)
-+                    lose("argument to --dynamic-space-size is too large");
-             } else if (0 == strcmp(arg, "--debug-environment")) {
-                 int n = 0;
-                 printf("; Commandline arguments:\n");
+
+Don't hardcode /usr/local, patch and use SUBST_COMMAND.
+
+Try to guess the path to the current executable from argv[0] and stash
+it in saved_runtime_path for later.  It's needed to check for an
+embedded core, to save an executable core, and to write a shebang line
+in fasls.
+
+Check saved_runtime_path if os_get_runtime_executable_path(0) returns
+NULL, which it always will on OpenBSD unless /proc is mounted.
+
+--- src/runtime/runtime.c.orig Thu May 21 09:22:55 2009
++++ src/runtime/runtime.c      Mon Jun 29 07:53:42 2009
+@@ -67,7 +67,7 @@
+ #endif
+ 
+ #ifndef SBCL_HOME
+-#define SBCL_HOME "/usr/local/lib/sbcl/"
++#define SBCL_HOME "${PREFIX}/lib/sbcl/"
+ #endif
+ 
+ #ifdef LISP_FEATURE_HPUX
+@@ -127,6 +127,37 @@ copied_existing_filename_or_null(char *filename)
+         return copied_string(filename);
+     }
+ }
++
++#ifndef LISP_FEATURE_WIN32
++char *
++copied_realpath(const char *pathname)
++{
++    char *messy, *tidy;
++    size_t len;
++
++    /* realpath() supposedly can't be counted on to always return
++     * an absolute path, so we prepend the cwd to relative paths */
++    messy = NULL;
++    if (pathname[0] != '/') {
++        messy = successful_malloc(PATH_MAX + 1);
++        if (getcwd(messy, PATH_MAX + 1) == NULL) {
++            free(messy);
++            return NULL;
++        }
++        len = strlen(messy);
++        snprintf(messy + len, PATH_MAX + 1 - len, "/%s", pathname);
++    }
++
++    tidy = successful_malloc(PATH_MAX + 1);
++    if (realpath((messy ? messy : pathname), tidy) == NULL) {
++        free(messy);
++        free(tidy);
++        return NULL;
++    }
++
++    return tidy;
++}
++#endif /* LISP_FEATURE_WIN32 */
+ 
+ /* miscellaneous chattiness */
+ 
+@@ -205,11 +236,58 @@ search_for_core ()
+     return core;
+ }
+ 
++/* Try to find the path to an executable from argv[0], this is only
++ * used when os_get_runtime_executable_path() returns NULL */
++#ifdef LISP_FEATURE_WIN32
++char *
++search_for_executable(const char *argv0)
++{
++    return NULL;
++}
++#else /* LISP_FEATURE_WIN32 */
++char *
++search_for_executable(const char *argv0)
++{
++    char *search, *start, *end, *buf;
++
++    /* If argv[0] contains a slash then it's probably an absolute path
++     * or relative to the current directory, so check if it exists. */
++    if (strchr(argv0, '/') != NULL && access(argv0, F_OK) == 0)
++        return copied_realpath(argv0);
++
++    /* Bail on an absolute path which doesn't exist */
++    if (argv0[0] == '/')
++        return NULL;
++
++    /* Otherwise check if argv[0] exists relative to any directory in PATH */
++    search = getenv("PATH");
++    if (search == NULL)
++        return NULL;
++    search = copied_string(search);
++    buf = successful_malloc(PATH_MAX + 1);
++    for (start = search; (end = strchr(start, ':')) != NULL; start = end + 1) 
{
++        *end = '\0';
++        snprintf(buf, PATH_MAX + 1, "%s/%s", start, argv0);
++        if (access(buf, F_OK) == 0) {
++            free(search);
++            search = copied_realpath(buf);
++            free(buf);
++            return search;
++        }
++    }
++
++    free(search);
++    free(buf);
++    return NULL;
++}
++#endif /* LISP_FEATURE_WIN32 */
++
+ char **posix_argv;
+ char *core_string;
+ 
+ struct runtime_options *runtime_options;
+ 
++char *saved_runtime_path = NULL;
+ 
+ int
+ main(int argc, char *argv[], char *envp[])
+@@ -241,15 +319,22 @@ main(int argc, char *argv[], char *envp[])
+ 
+     runtime_options = NULL;
+ 
++    /* Save the argv[0] derived runtime path in case
++     * os_get_runtime_executable_path(1) isn't able to get an
++     * externally-usable path later on. */
++    saved_runtime_path = search_for_executable(argv[0]);
++
+     /* Check early to see if this executable has an embedded core,
+      * which also populates runtime_options if the core has runtime
+      * options */
+-    runtime_path = os_get_runtime_executable_path();
+-    if (runtime_path) {
+-        os_vm_offset_t offset = search_for_embedded_core(runtime_path);
++    runtime_path = os_get_runtime_executable_path(0);
++    if (runtime_path || saved_runtime_path) {
++        os_vm_offset_t offset = search_for_embedded_core(
++            runtime_path ? runtime_path : saved_runtime_path);
+         if (offset != -1) {
+             embedded_core_offset = offset;
+-            core = runtime_path;
++            core = (runtime_path ? runtime_path :
++                    copied_string(saved_runtime_path));
+         } else {
+             free(runtime_path);
+         }
Index: patches/patch-src_runtime_runtime_h
===================================================================
RCS file: patches/patch-src_runtime_runtime_h
diff -u -N patches/patch-src_runtime_runtime_h
--- /dev/null   1 Sep 2009 15:57:41 -0000
+++ patches/patch-src_runtime_runtime_h 29 Jun 2009 14:54:29 -0000
@@ -0,0 +1,11 @@
+$OpenBSD$
+--- src/runtime/runtime.h.orig Mon Jun 22 06:00:14 2009
++++ src/runtime/runtime.h      Mon Jun 29 07:53:42 2009
+@@ -254,4 +254,7 @@ struct runtime_options {
+     size_t thread_control_stack_size;
+ };
+ 
++/* saved runtime path computed from argv[0] */
++extern char *saved_runtime_path;
++
+ #endif /* _SBCL_RUNTIME_H_ */
Index: patches/patch-src_runtime_save_c
===================================================================
RCS file: patches/patch-src_runtime_save_c
diff -u -N patches/patch-src_runtime_save_c
--- /dev/null   1 Sep 2009 15:57:41 -0000
+++ patches/patch-src_runtime_save_c    8 Jul 2009 02:09:49 -0000
@@ -0,0 +1,75 @@
+$OpenBSD$
+
+Fall back to saved_runtime_path if os_get_runtime_executable_path(0)
+returns NULL.
+
+Search for the current build_id when loading the runtime from disk to
+save an executable core.  This provided some protection against
+accidentally embedding a core in the wrong runtime, which may be more
+likely when using saved_runtime_path.
+
+--- src/runtime/save.c.orig    Sat Jan 17 02:43:57 2009
++++ src/runtime/save.c Mon Jun 29 07:53:42 2009
+@@ -376,6 +376,25 @@ save_to_filehandle(FILE *file, char *filename, lispobj
+     exit(0);
+ }
+ 
++/* Check if the build_id for the current runtime is present in a
++ * buffer. */
++int
++check_runtime_build_id(void *buf, size_t size)
++{
++    size_t idlen;
++    char *pos;
++
++    idlen = strlen(build_id) - 1;
++    while ((pos = memchr(buf, build_id[0], size)) != NULL) {
++        size -= (pos + 1) - (char *)buf;
++        buf = (pos + 1);
++        if (idlen <= size && memcmp(buf, build_id + 1, idlen) == 0)
++            return 1;
++    }
++
++    return 0;
++}
++
+ /* Slurp the executable portion of the runtime into a malloced buffer
+  * and return it.  Places the size in bytes of the runtime into
+  * 'size_out'.  Returns NULL if the runtime cannot be loaded from
+@@ -407,6 +426,12 @@ load_runtime(char *runtime_path, size_t *size_out)
+         goto lose;
+     }
+ 
++    if (!check_runtime_build_id(buf, size)) {
++        fprintf(stderr, "Failed to locate current build_id in runtime: %s\n",
++            runtime_path);
++        goto lose;
++    }
++
+     fclose(input);
+     *size_out = size;
+     return buf;
+@@ -453,15 +478,19 @@ prepare_to_save(char *filename, boolean prepend_runtim
+     char *runtime_path;
+ 
+     if (prepend_runtime) {
+-        runtime_path = os_get_runtime_executable_path();
++        runtime_path = os_get_runtime_executable_path(0);
+ 
+-        if (runtime_path == NULL) {
++        if (runtime_path == NULL && saved_runtime_path == NULL) {
+             fprintf(stderr, "Unable to get default runtime path.\n");
+             return NULL;
+         }
+ 
+-        *runtime_bytes = load_runtime(runtime_path, runtime_size);
+-        free(runtime_path);
++        if (runtime_path == NULL)
++            *runtime_bytes = load_runtime(saved_runtime_path, runtime_size);
++        else {
++            *runtime_bytes = load_runtime(runtime_path, runtime_size);
++            free(runtime_path);
++        }
+ 
+         if (*runtime_bytes == NULL)
+             return 0;
Index: patches/patch-tests_subr.sh
===================================================================
RCS file: /home/cvsync/openbsd/ports/lang/sbcl/patches/patch-tests_subr.sh,v
retrieving revision 1.1.1.1
diff -u -N patches/patch-tests_subr.sh
--- patches/patch-tests_subr.sh 14 Apr 2008 12:29:40 -0000      1.1.1.1
+++ /dev/null   1 Sep 2009 21:13:22 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-tests_subr.sh,v 1.1.1.1 2008/04/14 12:29:40 deanna Exp $
---- tests/subr.sh.orig Fri Dec 28 11:46:57 2007
-+++ tests/subr.sh      Thu Apr 10 14:13:34 2008
-@@ -29,7 +29,7 @@ set -a # export all variables at assignment-time.
- SBCL_HOME="$SBCL_PWD/../contrib"
- SBCL_CORE="$SBCL_PWD/../output/sbcl.core"
- SBCL_RUNTIME="$SBCL_PWD/../src/runtime/sbcl"
--SBCL_ARGS="--noinform --no-sysinit --no-userinit --noprint --disable-debugger"
-+SBCL_ARGS="--noinform --dynamic-space-size 600 --no-sysinit --no-userinit 
--noprint --disable-debugger"
- 
- # Scripts that use these variables should quote them.
- TEST_BASENAME="$(basename $0)"
Index: patches/patch-tests_timer_impure_lisp
===================================================================
RCS file: patches/patch-tests_timer_impure_lisp
diff -u -N patches/patch-tests_timer_impure_lisp
--- /dev/null   1 Sep 2009 15:57:41 -0000
+++ patches/patch-tests_timer_impure_lisp       8 Jul 2009 01:16:30 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+The timer scheduler seems to only run one timer per SIGALRM and
+OpenBSD only delivers ~50 SIGALRMs per second, so it takes ~5 secs to
+trigger 200 timers.
+
+--- tests/timer.impure.lisp.orig       Mon Apr  6 01:54:27 2009
++++ tests/timer.impure.lisp    Thu Jun  4 07:31:02 2009
+@@ -159,7 +159,7 @@
+   (let ((time (1+ (get-universal-time))))
+     (loop repeat 200 do
+           (schedule-timer (make-timer (lambda ())) time :absolute-p t))
+-    (sleep 2)
++    (sleep 6)
+     (assert (zerop (length (sb-impl::%pqueue-contents 
sb-impl::*schedule*))))))
+ 
+ (with-test (:name (:with-timeout :timeout))
Index: pkg/MESSAGE
===================================================================
RCS file: /home/cvsync/openbsd/ports/lang/sbcl/pkg/MESSAGE,v
retrieving revision 1.1.1.1
diff -u -N pkg/MESSAGE
--- pkg/MESSAGE 14 Apr 2008 12:29:40 -0000      1.1.1.1
+++ /dev/null   1 Sep 2009 21:13:22 -0000
@@ -1,2 +0,0 @@
-To run or dump a copy of the SBCL runtime with an embedded core, /proc
-must be mounted.
Index: pkg/PFRAG.i386
===================================================================
RCS file: pkg/PFRAG.i386
diff -u -N pkg/PFRAG.i386
--- /dev/null   1 Sep 2009 15:57:41 -0000
+++ pkg/PFRAG.i386      12 Feb 2009 02:43:08 -0000
@@ -0,0 +1,2 @@
+...@comment $OpenBSD$
+lib/sbcl/sb-rotate-byte/x86-vm.fasl
Index: pkg/PLIST
===================================================================
RCS file: /home/cvsync/openbsd/ports/lang/sbcl/pkg/PLIST,v
retrieving revision 1.1.1.1
diff -u -N pkg/PLIST
--- pkg/PLIST   14 Apr 2008 12:29:40 -0000      1.1.1.1
+++ pkg/PLIST   27 Aug 2009 21:04:17 -0000
@@ -1,5 +1,6 @@
 @comment $OpenBSD: PLIST,v 1.1.1.1 2008/04/14 12:29:40 deanna Exp $
-bin/sbcl
+%%i386%%
+...@bin bin/sbcl
 @info info/asdf.info
 @info info/sbcl.info
 lib/sbcl/
@@ -83,7 +84,14 @@
 lib/sbcl/sb-grovel/sb-grovel.asd
 lib/sbcl/sb-grovel/sb-grovel.fasl
 lib/sbcl/sb-introspect/
+lib/sbcl/sb-introspect/introspect.fasl
+lib/sbcl/sb-introspect/introspect.lisp
+lib/sbcl/sb-introspect/sb-introspect.asd
 lib/sbcl/sb-introspect/sb-introspect.fasl
+lib/sbcl/sb-introspect/test-driver.lisp
+lib/sbcl/sb-introspect/test.lisp
+lib/sbcl/sb-introspect/xref-test-data.lisp
+lib/sbcl/sb-introspect/xref-test.lisp
 lib/sbcl/sb-md5/
 lib/sbcl/sb-md5/md5-tests.lisp
 lib/sbcl/sb-md5/md5.fasl
@@ -104,6 +112,8 @@
 lib/sbcl/sb-posix/posix-tests.lisp
 lib/sbcl/sb-posix/sb-posix.asd
 lib/sbcl/sb-posix/sb-posix.fasl
+lib/sbcl/sb-queue/
+lib/sbcl/sb-queue/sb-queue.fasl
 lib/sbcl/sb-rotate-byte/
 lib/sbcl/sb-rotate-byte/compiler.fasl
 lib/sbcl/sb-rotate-byte/compiler.lisp
@@ -115,7 +125,6 @@
 lib/sbcl/sb-rotate-byte/rotate-byte.lisp
 lib/sbcl/sb-rotate-byte/sb-rotate-byte.asd
 lib/sbcl/sb-rotate-byte/sb-rotate-byte.fasl
-lib/sbcl/sb-rotate-byte/x86-vm.fasl
 lib/sbcl/sb-rotate-byte/x86-vm.lisp
 lib/sbcl/sb-rt/
 lib/sbcl/sb-rt/rt.fasl
@@ -162,7 +171,6 @@
 share/doc/sbcl/COPYING
 share/doc/sbcl/CREDITS
 share/doc/sbcl/NEWS
-share/doc/sbcl/SUPPORT
 share/doc/sbcl/asdf.pdf
 share/doc/sbcl/html/
 share/doc/sbcl/html/asdf/
@@ -192,8 +200,7 @@
 share/doc/sbcl/html/sbcl/
 share/doc/sbcl/html/sbcl/ANSI-Conformance.html
 share/doc/sbcl/html/sbcl/Accessing-Foreign-Values.html
-share/doc/sbcl/html/sbcl/Additional-Distributed-Documentation.html
-share/doc/sbcl/html/sbcl/Automatic-Recompilation-of-Stale-Fasls.html
+share/doc/sbcl/html/sbcl/Additional-Documentation-Files.html
 share/doc/sbcl/html/sbcl/Beyond-the-ANSI-Standard.html
 share/doc/sbcl/html/sbcl/Binary-stream-methods.html
 share/doc/sbcl/html/sbcl/Bivalent-Streams.html
@@ -214,6 +221,7 @@
 
share/doc/sbcl/html/sbcl/Class-sb_002dgray_003afundamental_002dinput_002dstream.html
 
share/doc/sbcl/html/sbcl/Class-sb_002dgray_003afundamental_002doutput_002dstream.html
 share/doc/sbcl/html/sbcl/Class-sb_002dgray_003afundamental_002dstream.html
+share/doc/sbcl/html/sbcl/Class-sb_002dposix_003aflock.html
 share/doc/sbcl/html/sbcl/Class-sb_002dposix_003apasswd.html
 share/doc/sbcl/html/sbcl/Class-sb_002dposix_003astat.html
 share/doc/sbcl/html/sbcl/Class-sb_002dposix_003atermios.html
@@ -222,6 +230,7 @@
 share/doc/sbcl/html/sbcl/Colophon.html
 share/doc/sbcl/html/sbcl/Command-Line-Options.html
 share/doc/sbcl/html/sbcl/Command_002dline-arguments.html
+share/doc/sbcl/html/sbcl/Commercial-Support.html
 share/doc/sbcl/html/sbcl/Common-Lisp-Books.html
 share/doc/sbcl/html/sbcl/Compiler-Errors.html
 share/doc/sbcl/html/sbcl/Compiler-Policy.html
@@ -235,6 +244,7 @@
 
share/doc/sbcl/html/sbcl/Condition-sb_002dext_003asymbol_002dpackage_002dlocked_002derror.html
 
share/doc/sbcl/html/sbcl/Condition-sb_002dthread_003ainterrupt_002dthread_002derror.html
 
share/doc/sbcl/html/sbcl/Condition-sb_002dthread_003ajoin_002dthread_002derror.html
+share/doc/sbcl/html/sbcl/Condition-sb_002dthread_003athread_002derror.html
 share/doc/sbcl/html/sbcl/Contributed-Modules.html
 share/doc/sbcl/html/sbcl/Controlling-Verbosity.html
 share/doc/sbcl/html/sbcl/Customization-Hooks-for-Users.html
@@ -265,6 +275,7 @@
 share/doc/sbcl/html/sbcl/Extensible-Streams.html
 share/doc/sbcl/html/sbcl/Extensions.html
 share/doc/sbcl/html/sbcl/External-Foreign-Variables.html
+share/doc/sbcl/html/sbcl/FASL-Format.html
 share/doc/sbcl/html/sbcl/File_002ddescriptors.html
 share/doc/sbcl/html/sbcl/Filenames.html
 share/doc/sbcl/html/sbcl/Foreign-Data-Structure-Examples.html
@@ -275,12 +286,14 @@
 share/doc/sbcl/html/sbcl/Foreign-Types-and-Lisp-Types.html
 share/doc/sbcl/html/sbcl/Foreign-Types.html
 share/doc/sbcl/html/sbcl/Foreign-Variables.html
+share/doc/sbcl/html/sbcl/Foreign-threads.html
 share/doc/sbcl/html/sbcl/Function-Index.html
 share/doc/sbcl/html/sbcl/Function-Names.html
 share/doc/sbcl/html/sbcl/Function-Parameters.html
 share/doc/sbcl/html/sbcl/Function-Return-Values.html
 share/doc/sbcl/html/sbcl/Function-Tracing.html
 share/doc/sbcl/html/sbcl/Function-common_002dlisp_003aed.html
+share/doc/sbcl/html/sbcl/Function-common_002dlisp_003amake_002dhash_002dtable.html
 share/doc/sbcl/html/sbcl/Function-common_002dlisp_003arequire.html
 
share/doc/sbcl/html/sbcl/Function-sb_002dalien_003aload_002dshared_002dobject.html
 
share/doc/sbcl/html/sbcl/Function-sb_002dbsd_002dsockets_003aget_002dhost_002dby_002daddress.html
@@ -305,8 +318,11 @@
 share/doc/sbcl/html/sbcl/Function-sb_002dcover_003asave_002dcoverage.html
 
share/doc/sbcl/html/sbcl/Function-sb_002dcover_003asave_002dcoverage_002din_002dfile.html
 
share/doc/sbcl/html/sbcl/Function-sb_002dext_003aadd_002dimplementation_002dpackage.html
+share/doc/sbcl/html/sbcl/Function-sb_002dext_003aarray_002dstorage_002dvector.html
 share/doc/sbcl/html/sbcl/Function-sb_002dext_003acancel_002dfinalization.html
 share/doc/sbcl/html/sbcl/Function-sb_002dext_003afinalize.html
+share/doc/sbcl/html/sbcl/Function-sb_002dext_003ahash_002dtable_002dsynchronized_002dp.html
+share/doc/sbcl/html/sbcl/Function-sb_002dext_003ahash_002dtable_002dweakness.html
 share/doc/sbcl/html/sbcl/Function-sb_002dext_003alist_002dall_002dtimers.html
 share/doc/sbcl/html/sbcl/Function-sb_002dext_003alock_002dpackage.html
 share/doc/sbcl/html/sbcl/Function-sb_002dext_003amake_002dtimer.html
@@ -344,11 +360,21 @@
 share/doc/sbcl/html/sbcl/Function-sb_002dmd5_003amd5sum_002dsequence.html
 share/doc/sbcl/html/sbcl/Function-sb_002dmd5_003amd5sum_002dstream.html
 share/doc/sbcl/html/sbcl/Function-sb_002dmd5_003amd5sum_002dstring.html
+share/doc/sbcl/html/sbcl/Function-sb_002dposix_003afile_002ddescriptor.html
+share/doc/sbcl/html/sbcl/Function-sb_002dposix_003afilename.html
 share/doc/sbcl/html/sbcl/Function-sb_002dposix_003agetcwd.html
 share/doc/sbcl/html/sbcl/Function-sb_002dposix_003areadlink.html
 share/doc/sbcl/html/sbcl/Function-sb_002dposix_003asyslog.html
 share/doc/sbcl/html/sbcl/Function-sb_002dprofile_003areport.html
 share/doc/sbcl/html/sbcl/Function-sb_002dprofile_003areset.html
+share/doc/sbcl/html/sbcl/Function-sb_002dqueue_003adequeue.html
+share/doc/sbcl/html/sbcl/Function-sb_002dqueue_003aenqueue.html
+share/doc/sbcl/html/sbcl/Function-sb_002dqueue_003alist_002dqueue_002dcontents.html
+share/doc/sbcl/html/sbcl/Function-sb_002dqueue_003amake_002dqueue.html
+share/doc/sbcl/html/sbcl/Function-sb_002dqueue_003aqueue_002dcount.html
+share/doc/sbcl/html/sbcl/Function-sb_002dqueue_003aqueue_002dempty_002dp.html
+share/doc/sbcl/html/sbcl/Function-sb_002dqueue_003aqueue_002dname.html
+share/doc/sbcl/html/sbcl/Function-sb_002dqueue_003aqueuep.html
 
share/doc/sbcl/html/sbcl/Function-sb_002drotate_002dbyte_003arotate_002dbyte.html
 
share/doc/sbcl/html/sbcl/Function-sb_002dsprof_003aprofile_002dcall_002dcounts.html
 share/doc/sbcl/html/sbcl/Function-sb_002dsprof_003areport.html
@@ -361,9 +387,7 @@
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003acondition_002dwait.html
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003aget_002dmutex.html
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003ainterrupt_002dthread.html
-share/doc/sbcl/html/sbcl/Function-sb_002dthread_003ainterrupt_002dthread_002derror_002dthread.html
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003ajoin_002dthread.html
-share/doc/sbcl/html/sbcl/Function-sb_002dthread_003ajoin_002dthread_002derror_002dthread.html
 
share/doc/sbcl/html/sbcl/Function-sb_002dthread_003alist_002dall_002dthreads.html
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003amake_002dmutex.html
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003amake_002dsemaphore.html
@@ -375,8 +399,11 @@
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003asemaphore_002dcount.html
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003asemaphore_002dname.html
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003asignal_002dsemaphore.html
+share/doc/sbcl/html/sbcl/Function-sb_002dthread_003asymbol_002dvalue_002din_002dthread.html
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003aterminate_002dthread.html
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003athread_002dalive_002dp.html
+share/doc/sbcl/html/sbcl/Function-sb_002dthread_003athread_002derror_002dthread.html
+share/doc/sbcl/html/sbcl/Function-sb_002dthread_003athread_002dname.html
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003athread_002dyield.html
 
share/doc/sbcl/html/sbcl/Function-sb_002dthread_003await_002don_002dsemaphore.html
 share/doc/sbcl/html/sbcl/Function-sb_002dthread_003awaitqueue_002dname.html
@@ -423,10 +450,13 @@
 
share/doc/sbcl/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dwrite_002dsequence.html
 
share/doc/sbcl/html/sbcl/Generic_002dFunction-sb_002dgray_003astream_002dwrite_002dstring.html
 share/doc/sbcl/html/sbcl/Getting-Existing-Programs-to-Run.html
+share/doc/sbcl/html/sbcl/Getting-Support-and-Reporting-Bugs.html
+share/doc/sbcl/html/sbcl/Global-and-Always_002dBound-variables.html
 share/doc/sbcl/html/sbcl/Gray-Streams-classes.html
 share/doc/sbcl/html/sbcl/Gray-Streams-examples.html
 share/doc/sbcl/html/sbcl/Gray-Streams.html
 share/doc/sbcl/html/sbcl/Handling-of-Types.html
+share/doc/sbcl/html/sbcl/Hash-Table-Extensions.html
 share/doc/sbcl/html/sbcl/History-and-Implementation-of-SBCL.html
 share/doc/sbcl/html/sbcl/How-Arguments-are-Printed.html
 share/doc/sbcl/html/sbcl/How-the-Source-is-Found.html
@@ -434,10 +464,8 @@
 share/doc/sbcl/html/sbcl/Idiosyncrasies.html
 share/doc/sbcl/html/sbcl/Implementation-Limitations.html
 share/doc/sbcl/html/sbcl/Implementation-Packages.html
-share/doc/sbcl/html/sbcl/Implementation-_0028Linux-x86_0029.html
+share/doc/sbcl/html/sbcl/Implementation-_0028Linux-x86_002fx86_002d64_0029.html
 share/doc/sbcl/html/sbcl/Information-Commands.html
-share/doc/sbcl/html/sbcl/Initialization-Examples.html
-share/doc/sbcl/html/sbcl/Initialization-File-Semantics.html
 share/doc/sbcl/html/sbcl/Initialization-Files.html
 share/doc/sbcl/html/sbcl/Initialization-and-Exit-Hooks.html
 share/doc/sbcl/html/sbcl/Input-stream-methods.html
@@ -456,6 +484,9 @@
 share/doc/sbcl/html/sbcl/Macro-common_002dlisp_003astep.html
 share/doc/sbcl/html/sbcl/Macro-common_002dlisp_003atrace.html
 share/doc/sbcl/html/sbcl/Macro-common_002dlisp_003auntrace.html
+share/doc/sbcl/html/sbcl/Macro-sb_002dext_003adefglobal.html
+share/doc/sbcl/html/sbcl/Macro-sb_002dext_003adefine_002dhash_002dtable_002dtest.html
+share/doc/sbcl/html/sbcl/Macro-sb_002dext_003awith_002dlocked_002dhash_002dtable.html
 
share/doc/sbcl/html/sbcl/Macro-sb_002dext_003awith_002dunlocked_002dpackages.html
 
share/doc/sbcl/html/sbcl/Macro-sb_002dext_003awithout_002dpackage_002dlocks.html
 share/doc/sbcl/html/sbcl/Macro-sb_002dprofile_003aprofile.html
@@ -465,7 +496,10 @@
 share/doc/sbcl/html/sbcl/Macro-sb_002dthread_003awith_002dmutex.html
 
share/doc/sbcl/html/sbcl/Macro-sb_002dthread_003awith_002drecursive_002dlock.html
 share/doc/sbcl/html/sbcl/Metaobject-Protocol.html
+share/doc/sbcl/html/sbcl/Method-sb_002dbsd_002dsockets_003asocket_002dmake_002dstream-_0028_0028socket-socket_0029-_0026key-input-output-_0028element_002dtype-_0027character_0029-_0028buffering-full_0029-_0028external_002dformat-default_0029-timeout_0029.html
 share/doc/sbcl/html/sbcl/Methods-common-to-all-streams.html
+share/doc/sbcl/html/sbcl/Miscellaneous-Efficiency-Issues.html
+share/doc/sbcl/html/sbcl/Miscellaneous-Extensions.html
 share/doc/sbcl/html/sbcl/Modular-arithmetic.html
 share/doc/sbcl/html/sbcl/More-Common-Lisp-Information.html
 share/doc/sbcl/html/sbcl/More-SBCL-Information.html
@@ -492,6 +526,7 @@
 share/doc/sbcl/html/sbcl/Querying-the-process-environment.html
 share/doc/sbcl/html/sbcl/Quit.html
 share/doc/sbcl/html/sbcl/Read-Errors.html
+share/doc/sbcl/html/sbcl/Reporting-Bugs.html
 share/doc/sbcl/html/sbcl/Resolution-of-Name-Conflicts.html
 share/doc/sbcl/html/sbcl/Running-external-programs.html
 share/doc/sbcl/html/sbcl/Running-from-Emacs.html
@@ -504,6 +539,7 @@
 share/doc/sbcl/html/sbcl/Shebang-Scripts.html
 share/doc/sbcl/html/sbcl/Simple-Streams.html
 share/doc/sbcl/html/sbcl/Single-Stepping.html
+share/doc/sbcl/html/sbcl/Slot-access.html
 share/doc/sbcl/html/sbcl/Socket-Options.html
 share/doc/sbcl/html/sbcl/Sockets-Overview.html
 share/doc/sbcl/html/sbcl/Source-Location-Availability.html
@@ -519,13 +555,13 @@
 
share/doc/sbcl/html/sbcl/Step_002dBy_002dStep-Example-of-the-Foreign-Function-Interface.html
 share/doc/sbcl/html/sbcl/Stopping-SBCL.html
 share/doc/sbcl/html/sbcl/Structure-sb_002dext_003atimer.html
+share/doc/sbcl/html/sbcl/Structure-sb_002dqueue_003aqueue.html
 share/doc/sbcl/html/sbcl/Structure-sb_002dthread_003amutex.html
 share/doc/sbcl/html/sbcl/Structure-sb_002dthread_003asemaphore.html
 share/doc/sbcl/html/sbcl/Structure-sb_002dthread_003athread.html
 share/doc/sbcl/html/sbcl/Structure-sb_002dthread_003awaitqueue.html
 share/doc/sbcl/html/sbcl/Style-Warnings.html
 share/doc/sbcl/html/sbcl/Support-For-Unix.html
-share/doc/sbcl/html/sbcl/System-Initialization-File.html
 share/doc/sbcl/html/sbcl/The-Original-and-Actual-Source.html
 share/doc/sbcl/html/sbcl/The-Parts-of-a-Compiler-Diagnostic.html
 share/doc/sbcl/html/sbcl/The-Processing-Path.html
@@ -539,12 +575,13 @@
 share/doc/sbcl/html/sbcl/Toplevel-Options.html
 share/doc/sbcl/html/sbcl/Type-Errors-at-Compile-Time.html
 share/doc/sbcl/html/sbcl/Type-Index.html
-share/doc/sbcl/html/sbcl/Type-conversion-functions.html
+share/doc/sbcl/html/sbcl/Type-sb_002dposix_003afile_002ddescriptor.html
+share/doc/sbcl/html/sbcl/Type-sb_002dposix_003afile_002ddescriptor_002ddesignator.html
+share/doc/sbcl/html/sbcl/Type-sb_002dposix_003afilename.html
+share/doc/sbcl/html/sbcl/Type-sb_002dposix_003afilename_002ddesignator.html
 share/doc/sbcl/html/sbcl/Types.html
 share/doc/sbcl/html/sbcl/Understanding-Compiler-Diagnostics.html
-share/doc/sbcl/html/sbcl/Unix_002dstyle-Command-Line-Protocol.html
 share/doc/sbcl/html/sbcl/Unknown-Locations-and-Interrupts.html
-share/doc/sbcl/html/sbcl/User-Initialization-File.html
 share/doc/sbcl/html/sbcl/Variable-Access.html
 share/doc/sbcl/html/sbcl/Variable-Index.html
 share/doc/sbcl/html/sbcl/Variable-Value-Availability.html
@@ -561,10 +598,13 @@
 share/doc/sbcl/html/sbcl/Variable-sb_002dext_003a_002ainit_002dhooks_002a.html
 
share/doc/sbcl/html/sbcl/Variable-sb_002dext_003a_002ainvoke_002ddebugger_002dhook_002a.html
 
share/doc/sbcl/html/sbcl/Variable-sb_002dext_003a_002amodule_002dprovider_002dfunctions_002a.html
+share/doc/sbcl/html/sbcl/Variable-sb_002dext_003a_002amuffled_002dwarnings_002a.html
 share/doc/sbcl/html/sbcl/Variable-sb_002dext_003a_002asave_002dhooks_002a.html
+share/doc/sbcl/html/sbcl/Variable-sb_002dext_003a_002astack_002dallocate_002ddynamic_002dextent_002a.html
 
share/doc/sbcl/html/sbcl/Variable-sb_002dsprof_003a_002amax_002dsamples_002a.html
 
share/doc/sbcl/html/sbcl/Variable-sb_002dsprof_003a_002asample_002dinterval_002a.html
 
share/doc/sbcl/html/sbcl/Variable-sb_002dthread_003a_002acurrent_002dthread_002a.html
+share/doc/sbcl/html/sbcl/Volunteer-Support.html
 share/doc/sbcl/html/sbcl/Waitqueue_002fcondition-variables.html
 share/doc/sbcl/html/sbcl/define_002dalien_002droutine-Example.html
 share/doc/sbcl/html/sbcl/index.html
@@ -573,5 +613,6 @@
 share/doc/sbcl/html/sbcl/sb_002dgrovel.html
 share/doc/sbcl/html/sbcl/sb_002dmd5.html
 share/doc/sbcl/html/sbcl/sb_002dposix.html
+share/doc/sbcl/html/sbcl/sb_002dqueue.html
 share/doc/sbcl/html/sbcl/sb_002drotate_002dbyte.html
 share/doc/sbcl/sbcl.pdf

Reply via email to