From: Nikodemus Siivola Date: Fri, 18 Dec 2009 14:26:33 +0000 (+0000) Subject: 1.0.33.26: enabled threads by default on x86[-64] Linux X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=1baab0bfb9538caec57262ed37f693507f6f33ec;p=sbcl.git 1.0.33.26: enabled threads by default on x86[-64] Linux I'll let FreeBSD folks make the judgement if threads should be default there as well. Also: update INSTALL documentation regarding *FEATURES* a bit, and make the documentation clear about availability of threads on different builds. --- diff --git a/INSTALL b/INSTALL index 018ef58..1204ae8 100644 --- a/INSTALL +++ b/INSTALL @@ -25,7 +25,7 @@ INSTALLING SBCL $ sh run-sbcl.sh The following command installs SBCL and related documentation under - the "/usr/local" directory: + the "/usr/local" directory (typically run as root): # INSTALL_ROOT=/usr/local sh install.sh @@ -159,13 +159,27 @@ INSTALLING SBCL (pushnew x features)) (disable (x) (setf features (remove x features)))) - ;; Threading support, available only on x86/x86-64 Linux, x86 Solaris - ;; and x86 Mac OS X (experimental). + ;; Threading support. (enable :sb-thread))) This is the preferred way because it lets local changes interact cleanly with CVS changes to the main, global source tree. + Some features of interest: + + :SB-THREAD + Native threads. Enabled by default on x86[-64] Linux only, also + available on x86[-64] Max OS X, x86[-64] FreeBSD, and x86 + Solaris. + + :SB-UNICODE + Unicode support. Enabled by default. Disabling this feature + limits characters to the 8-bit ISO-8859-1 set. + + :SB-XREF-FOR-INTERNALS + XREF data for SBCL internals. Not enabled by default, increases + core size by 5-6mb. + A catalog of available features and their meaning can be found in "base-target-features.lisp-expr". @@ -243,7 +257,7 @@ INSTALLING SBCL Supported operating systems and architectures: x86 x86-64 PPC Sparc Alpha MIPS MIPSel - Linux 2.2, 2.4, 2.6 X X X X X X X + Linux 2.6 X X X X X X X Darwin (Mac OS X) X X X Solaris X X FreeBSD X X diff --git a/NEWS b/NEWS index 5a2225a..9f7e51a 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,7 @@ ;;;; -*- coding: utf-8; fill-column: 78 -*- changes relative to sbcl-1.0.33: + * minor incompatible change: threading support is now enabled by default + on x86[-64] Linux. * enhancement: SB-INTROSPECT:DEFTYPE-LAMBDA-LIST now also works on most builtin types. * enhancement: Errors during compile-time-too processing (i.e. EVAL-WHEN) diff --git a/base-target-features.lisp-expr b/base-target-features.lisp-expr index 770949a..60161d4 100644 --- a/base-target-features.lisp-expr +++ b/base-target-features.lisp-expr @@ -216,12 +216,9 @@ ;; low-level thread primitives support ;; - ;; As of SBCL 0.8, this is only supposed to work in x86 Linux with - ;; NPTL support (usually kernel 2.6, though sme Red Hat distributions - ;; with older kernels also have it) and is implemented using clone(2) - ;; and the %fs segment register. Note that no consistent effort to - ;; audit the SBCL library code for thread safety has been performed, - ;; so caveat executor. + ;; As of SBCL 1.0.33.26, threads are part of the default build on + ;; x86oid Linux. Other platforms that support them include + ;; x86oid Darwin, FreeBSD, and Solaris. ; :sb-thread ;; lutex support diff --git a/doc/manual/threading.texinfo b/doc/manual/threading.texinfo index b681669..2fbd8d8 100644 --- a/doc/manual/threading.texinfo +++ b/doc/manual/threading.texinfo @@ -9,9 +9,12 @@ multiprocessing on machines that have more than one CPU, but it does not allow Lisp control of the scheduler. This is found in the SB-THREAD package. -This requires Linux (2.6+ or systems with NPTL backports) running on the -x86 or x86-64 architecture, or SunOS (Solaris) on the x86. Support for -threading on Darwin (Mac OS X) and FreeBSD on the x86 is experimental. +Threads are part of the default build on x86[-64] Linux only. + +They are also experimentally supported on: x86[-64] Darwin (Mac OS X), +x86[-64] FreeBSD, and x86 SunOS (Solaris). On these platforms threads +must be explicitly enabled at build-time, see @file{INSTALL} for +directions. @menu * Threading basics:: diff --git a/make-config.sh b/make-config.sh index 81877e7..6075913 100644 --- a/make-config.sh +++ b/make-config.sh @@ -160,9 +160,12 @@ case "$sbcl_os" in # If you add other platforms here, don't forget to edit # src/runtime/Config.foo-linux too. case "$sbcl_arch" in - x86 | x86-64 | mips) - printf ' :largefile' >> $ltf - ;; + mips) + printf ' :largefile' >> $ltf + ;; + x86 | x86-64) + printf ' :sb-thread :largefile' >> $ltf + ;; esac if [ $sbcl_arch = "x86-64" ]; then diff --git a/version.lisp-expr b/version.lisp-expr index 371a3d5..ba7e248 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.33.25" +"1.0.33.26"