From: Alastair B. <lis...@us...> - 2010-08-04 17:58:25
|
Update of /cvsroot/sbcl/sbcl In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv26013 Modified Files: base-target-features.lisp-expr build-order.lisp-expr package-data-list.lisp-expr version.lisp-expr Log Message: "1.0.41.2": threads: Add memory-barrier framework. * New file, src/code/barrier.lisp, containing the baseline implementation. * Added the barrier functions to the compiler function database. * Export the interface macro, BARRIER, from SB!THREAD and the underlying barrier functions from SB!VM. * Document a new architecture-dependent build-time feature, MEMORY-BARRIER-VOPS, for controlling the behavior and inlining of the interpreter stubs for the barrier functions. Index: base-target-features.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/base-target-features.lisp-expr,v retrieving revision 1.54 retrieving revision 1.55 diff -u -d -r1.54 -r1.55 --- base-target-features.lisp-expr 1 Mar 2010 13:09:00 -0000 1.54 +++ base-target-features.lisp-expr 4 Aug 2010 17:58:15 -0000 1.55 @@ -390,6 +390,10 @@ ;; :compare-and-swap-vops ;; The backend implements compare-and-swap VOPs. ;; + ;; :memory-barrier-vops + ;; Memory barriers (for multi-threaded synchronization) have been + ;; implemented for this platform. + ;; ;; operating system features: ;; :unix = We're intended to run under some Unix-like OS. (This is not ;; exclusive with the features which indicate which particular Index: build-order.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/build-order.lisp-expr,v retrieving revision 1.93 retrieving revision 1.94 diff -u -d -r1.93 -r1.94 --- build-order.lisp-expr 10 May 2010 00:39:13 -0000 1.93 +++ build-order.lisp-expr 4 Aug 2010 17:58:15 -0000 1.94 @@ -467,6 +467,9 @@ ;; This has ASSEMBLY-UNIT-related stuff needed by core.lisp. ("src/compiler/early-assem") + ;; This has the BARRIER stuff that the threading support needs. + ("src/code/barrier") + ;; core.lisp contains DEFSTRUCT CORE-OBJECT, and "compiler/main.lisp" ;; does lots of (TYPEP FOO 'CORE-OBJECT), so it's nice to compile this ;; before "compiler/main.lisp" so that those can be coded efficiently Index: package-data-list.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/package-data-list.lisp-expr,v retrieving revision 1.529 retrieving revision 1.530 diff -u -d -r1.529 -r1.530 --- package-data-list.lisp-expr 26 Apr 2010 21:47:39 -0000 1.529 +++ package-data-list.lisp-expr 4 Aug 2010 17:58:15 -0000 1.530 @@ -1928,6 +1928,8 @@ "THREAD-ALIVE-P" "THREAD-NAME" "THREAD-YIELD" + ;; Memory barrier + "BARRIER" ;; Mutexes "GET-MUTEX" "GRAB-MUTEX" @@ -2470,6 +2472,8 @@ "*PRIMITIVE-OBJECTS*" "+HIGHEST-NORMAL-GENERATION+" "+PSEUDO-STATIC-GENERATION+" + "%COMPILER-BARRIER" "%DATA-DEPENDENCY-BARRIER" + "%MEMORY-BARRIER" "%READ-BARRIER" "%WRITE-BARRIER" "AFTER-BREAKPOINT-TRAP" "ANY-REG-SC-NUMBER" "ARRAY-DATA-SLOT" "ARRAY-DIMENSIONS-OFFSET" "ARRAY-DISPLACED-P-SLOT" "ARRAY-DISPLACEMENT-SLOT" Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.4916 retrieving revision 1.4917 diff -u -d -r1.4916 -r1.4917 --- version.lisp-expr 30 Jul 2010 21:01:12 -0000 1.4916 +++ version.lisp-expr 4 Aug 2010 17:58:15 -0000 1.4917 @@ -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.41.1" +"1.0.41.2" |