Export SB-SIMD-PACK symbols from SB-EXT
authorPaul Khuong <pvk@pvk.ca>
Tue, 21 May 2013 19:12:46 +0000 (15:12 -0400)
committerPaul Khuong <pvk@pvk.ca>
Tue, 21 May 2013 19:12:46 +0000 (15:12 -0400)
 Export the SIMD-PACK type, the SIMD-PACK-P predicate,
 %make-simd-pack-{ub32,ub64,single,double}, and
 %simd-pack-{ub32s,ub64s,singles,doubles}.

 These are far from useful yet, but at least future extensions
 can work with SB-EXT instead of SB-KERNEL.

 Also, says so in NEWS.

NEWS
package-data-list.lisp-expr

diff --git a/NEWS b/NEWS
index a7761d0..28f4515 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,11 @@ changes relative to sbcl-1.1.7:
   * notice: The implementation of MAP-ALLOCATED-OBJECTS (the heart of
     ROOM, plus a few SB-INTROSPECT functions) has been completely
     rewritten; it may now exhibit different bugs than before.
+  * new feature: minimal runtime/compiler intrastructure support for SSE
+    SIMD values, as SB-EXT:SIMD-PACK. Enabled on x86-64 via the build-time
+    feature :sb-simd-pack. This should enable intrinsics extensions as
+    libraries, without patching SBCL itself. Thanks to Alexander Gavrilov
+    for maintaining a branch for so long.
   * enhancement: RUN-PROGRAM supports a :DIRECTORY argument to set
     the working directory of the spawned process.
     (lp#791800) (patch by Matthias Benkard)
index e6b9b96..abb77ec 100644 (file)
@@ -868,7 +868,19 @@ like *STACK-TOP-HINT* and unsupported stuff like *TRACED-FUN-LIST*."
 
                ;; timer
                "TIMER" "MAKE-TIMER" "TIMER-NAME" "TIMER-SCHEDULED-P"
-               "SCHEDULE-TIMER" "UNSCHEDULE-TIMER" "LIST-ALL-TIMERS"))
+               "SCHEDULE-TIMER" "UNSCHEDULE-TIMER" "LIST-ALL-TIMERS"
+
+               ;; SIMD pack
+               #!+sb-simd-pack "SIMD-PACK"
+               #!+sb-simd-pack "SIMD-PACK-P"
+               #!+sb-simd-pack "%MAKE-SIMD-PACK-UB32"
+               #!+sb-simd-pack "%MAKE-SIMD-PACK-UB64"
+               #!+sb-simd-pack "%MAKE-SIMD-PACK-DOUBLE"
+               #!+sb-simd-pack "%MAKE-SIMD-PACK-SINGLE"
+               #!+sb-simd-pack "%SIMD-PACK-UB32S"
+               #!+sb-simd-pack "%SIMD-PACK-UB64S"
+               #!+sb-simd-pack "%SIMD-PACK-DOUBLES"
+               #!+sb-simd-pack "%SIMD-PACK-SINGLES"))
 
    #s(sb-cold:package-data
       :name "SB!FORMAT"
@@ -1303,7 +1315,18 @@ integration' (said CMU CL architecture.tex) and that probably was and
 is a good idea, but see SB-SYS re. blurring of boundaries."
       :use ("CL" "SB!ALIEN" "SB!ALIEN-INTERNALS" "SB!BIGNUM"
                  "SB!EXT" "SB!FASL" "SB!INT" "SB!SYS" "SB!GRAY")
-      :reexport ("DEF!STRUCT" "DEF!MACRO")
+      :reexport ("DEF!STRUCT"
+                 "DEF!MACRO"
+                 #!+sb-simd-pack "SIMD-PACK"
+                 #!+sb-simd-pack "SIMD-PACK-P"
+                 #!+sb-simd-pack "%MAKE-SIMD-PACK-UB32"
+                 #!+sb-simd-pack "%MAKE-SIMD-PACK-UB64"
+                 #!+sb-simd-pack "%MAKE-SIMD-PACK-DOUBLE"
+                 #!+sb-simd-pack "%MAKE-SIMD-PACK-SINGLE"
+                 #!+sb-simd-pack "%SIMD-PACK-UB32S"
+                 #!+sb-simd-pack "%SIMD-PACK-UB64S"
+                 #!+sb-simd-pack "%SIMD-PACK-DOUBLES"
+                 #!+sb-simd-pack "%SIMD-PACK-SINGLES")
       :export ("%ACOS"
                "%ACOSH"
                "%ADJOIN"
@@ -1371,10 +1394,6 @@ is a good idea, but see SB-SYS re. blurring of boundaries."
                "%MAKE-RATIO" "%MAKE-LISP-OBJ"
                "%MAKE-INSTANCE"
                #!+sb-simd-pack "%MAKE-SIMD-PACK"
-               #!+sb-simd-pack "%MAKE-SIMD-PACK-UB32"
-               #!+sb-simd-pack "%MAKE-SIMD-PACK-UB64"
-               #!+sb-simd-pack "%MAKE-SIMD-PACK-DOUBLE"
-               #!+sb-simd-pack "%MAKE-SIMD-PACK-SINGLE"
                "%MAKE-STRUCTURE-INSTANCE"
                "%MAKE-STRUCTURE-INSTANCE-ALLOCATOR"
                "%MAP" "%MAP-TO-SIMPLE-VECTOR-ARITY-1"
@@ -1441,10 +1460,6 @@ is a good idea, but see SB-SYS re. blurring of boundaries."
                #!+sb-simd-pack "%SIMD-PACK-TAG"
                #!+sb-simd-pack "%SIMD-PACK-LOW"
                #!+sb-simd-pack "%SIMD-PACK-HIGH"
-               #!+sb-simd-pack "%SIMD-PACK-UB32S"
-               #!+sb-simd-pack "%SIMD-PACK-UB64S"
-               #!+sb-simd-pack "%SIMD-PACK-SINGLES"
-               #!+sb-simd-pack "%SIMD-PACK-DOUBLES"
                "%SXHASH-SIMPLE-SUBSTRING" "%TAN" "%TAN-QUICK" "%TANH"
                "%UNARY-ROUND"
                "%UNARY-TRUNCATE"
@@ -1753,8 +1768,6 @@ is a good idea, but see SB-SYS re. blurring of boundaries."
                #!+sb-simd-pack "SIMD-PACK-SINGLE"
                #!+sb-simd-pack "SIMD-PACK-DOUBLE"
                #!+sb-simd-pack "SIMD-PACK-INT"
-               #!+sb-simd-pack "SIMD-PACK"
-               #!+sb-simd-pack "SIMD-PACK-P"
                #!+sb-simd-pack "SIMD-PACK-TYPE"
                #!+sb-simd-pack "SIMD-PACK-TYPE-ELEMENT-TYPE"
                #!+sb-simd-pack "*SIMD-PACK-ELEMENT-TYPES*"