CMUCL commit: intl-branch src (14 files)

Raymond Toy rtoy at common-lisp.net
Thu Mar 18 23:17:22 CET 2010


    Date: Thursday, March 18, 2010 @ 18:17:21
  Author: rtoy
    Path: /project/cmucl/cvsroot/src
     Tag: intl-branch

Modified: code/eval.lisp code/extfmts.lisp code/macros.lisp
          compiler/main.lisp compiler/proclaim.lisp compiler/x86/insts.lisp
          general-info/release-20b.txt i18n/locale/cmucl-x86-vm.pot
          i18n/locale/cmucl.pot
          i18n/locale/en at piglatin/LC_MESSAGES/cmucl-x86-vm.po
          i18n/locale/en at piglatin/LC_MESSAGES/cmucl.po
          i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po
          i18n/locale/ko/LC_MESSAGES/cmucl.po pcl/boot.lisp

Merge changes from HEAD, update po files.


-----------------------------------------------------+
 code/eval.lisp                                      |    5 
 code/extfmts.lisp                                   |   17 +
 code/macros.lisp                                    |    4 
 compiler/main.lisp                                  |   35 +++-
 compiler/proclaim.lisp                              |   29 ++-
 compiler/x86/insts.lisp                             |  123 ++++++++++----
 general-info/release-20b.txt                        |   25 ++
 i18n/locale/cmucl-x86-vm.pot                        |  134 +++++++++++----
 i18n/locale/cmucl.pot                               |   22 +-
 i18n/locale/en at piglatin/LC_MESSAGES/cmucl-x86-vm.po |  156 +++++++++++++-----
 i18n/locale/en at piglatin/LC_MESSAGES/cmucl.po        |   32 +--
 i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po          |  134 +++++++++++----
 i18n/locale/ko/LC_MESSAGES/cmucl.po                 |   22 +-
 pcl/boot.lisp                                       |    5 
 14 files changed, 524 insertions(+), 219 deletions(-)


Index: src/code/eval.lisp
diff -u src/code/eval.lisp:1.45.12.2 src/code/eval.lisp:1.45.12.3
--- src/code/eval.lisp:1.45.12.2	Tue Feb  9 10:18:21 2010
+++ src/code/eval.lisp	Thu Mar 18 18:17:15 2010
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /project/cmucl/cvsroot/src/code/eval.lisp,v 1.45.12.2 2010-02-09 15:18:21 rtoy Exp $")
+  "$Header: /project/cmucl/cvsroot/src/code/eval.lisp,v 1.45.12.3 2010-03-18 22:17:15 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -302,7 +302,8 @@
 	     (info (kernel:%code-debug-info code)))
 	(if info
 	    (let ((source (first (c::compiled-debug-info-source info))))
-	      (cond ((and (eq (c::debug-source-from source) :lisp)
+	      (cond ((and source
+			  (eq (c::debug-source-from source) :lisp)
 			  (eq (c::debug-source-info source) fun))
 		     (values (second (svref (c::debug-source-name source) 0))
 			     nil name))
Index: src/code/extfmts.lisp
diff -u src/code/extfmts.lisp:1.20.4.2 src/code/extfmts.lisp:1.20.4.3
--- src/code/extfmts.lisp:1.20.4.2	Tue Feb  9 10:18:21 2010
+++ src/code/extfmts.lisp	Thu Mar 18 18:17:15 2010
@@ -5,7 +5,7 @@
 ;;; domain.
 ;;; 
 (ext:file-comment
- "$Header: /project/cmucl/cvsroot/src/code/extfmts.lisp,v 1.20.4.2 2010-02-09 15:18:21 rtoy Exp $")
+ "$Header: /project/cmucl/cvsroot/src/code/extfmts.lisp,v 1.20.4.3 2010-03-18 22:17:15 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -362,12 +362,15 @@
 
   (or (gethash name *external-formats*)
       (and (consp name) (find-external-format name))
-      (and (let ((*package* (find-package "STREAM"))
-		 (lisp::*enable-package-locked-errors* nil)
-		 (s (open (format nil "ext-formats:~(~A~).lisp" name)
-			  :if-does-not-exist nil :external-format :iso8859-1)))
-	     (when s
-	       (null (nth-value 1 (ext:compile-from-stream s)))))
+      (and (with-standard-io-syntax
+	     ;; Use standard IO syntax so that changes by the user
+	     ;; don't mess up compiling the external format.
+	     (let ((*package* (find-package "STREAM"))
+		   (lisp::*enable-package-locked-errors* nil)
+		   (s (open (format nil "ext-formats:~(~A~).lisp" name)
+			    :if-does-not-exist nil :external-format :iso8859-1)))
+	       (when s
+		 (null (nth-value 1 (ext:compile-from-stream s))))))
            (gethash name *external-formats*))))
 
 (defun %composed-ef-name (a b)
Index: src/code/macros.lisp
diff -u src/code/macros.lisp:1.113.10.7 src/code/macros.lisp:1.113.10.8
--- src/code/macros.lisp:1.113.10.7	Mon Mar  1 19:39:16 2010
+++ src/code/macros.lisp	Thu Mar 18 18:17:15 2010
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /project/cmucl/cvsroot/src/code/macros.lisp,v 1.113.10.7 2010-03-02 00:39:16 rtoy Exp $")
+  "$Header: /project/cmucl/cvsroot/src/code/macros.lisp,v 1.113.10.8 2010-03-18 22:17:15 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -359,12 +359,12 @@
 ;;;    Similar to %Defmacro, ...
 ;;;
 (defun c::%%defun (name def doc &optional inline-expansion)
+  (c::define-function-name name)
   (setf (fdefinition name) def)
   (when doc
     (if (and (consp name) (eq (first name) 'setf))
 	(setf (documentation (second name) 'setf) doc)
 	(setf (documentation name 'function) doc)))
-  (c::define-function-name name)
   (when (eq (info function where-from name) :assumed)
     (setf (info function where-from name) :defined)
     (when (info function assumed-type name)
Index: src/compiler/main.lisp
diff -u src/compiler/main.lisp:1.148.2.7 src/compiler/main.lisp:1.148.2.8
--- src/compiler/main.lisp:1.148.2.7	Thu Feb 25 22:38:17 2010
+++ src/compiler/main.lisp	Thu Mar 18 18:17:16 2010
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /project/cmucl/cvsroot/src/compiler/main.lisp,v 1.148.2.7 2010-02-26 03:38:17 rtoy Exp $")
+  "$Header: /project/cmucl/cvsroot/src/compiler/main.lisp,v 1.148.2.8 2010-03-18 22:17:16 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -1922,6 +1922,7 @@
 (defun compile-fix-function-name (lambda name)
   (declare (type clambda lambda) (type (or symbol cons) name))
   (when name
+    (note-if-accessor name)
     (let ((fun (ref-leaf
 		(continuation-next
 		 (node-cont (lambda-bind lambda))))))
@@ -1933,11 +1934,14 @@
 
 ;;; COMPILE  --  Public
 ;;;
-(defun compile (name &optional (definition (fdefinition name)))
-  _N"Compiles the function whose name is NAME.  If DEFINITION is supplied,
-  it should be a lambda expression that is compiled and then placed in the
-  function cell of NAME.  If NAME is Nil, the compiled code object is
-  returned."
+(defun compile (name &optional (definition (or (macro-function name)
+					       (fdefinition name))))
+  _N"Compiles the function (or macro-function) whose name is NAME.  If
+  DEFINITION is supplied, it should be a lambda expression that is
+  compiled.  IF NAME names a macro, then the compiled expression
+  replaces the existing macro-function.  If NAME names a function, the
+  compiled expression is placed in the function cell of NAME.  If NAME
+  is Nil, the compiled code object is returned."
   (with-compilation-unit ()
     (with-ir1-namespace
       (let* ((*backend* *native-backend*)
@@ -1955,10 +1959,20 @@
 	     ;;   If the definition is already a compiled function,
 	     ;;   compile either produces that function itself (i.e.,
 	     ;;   is an identity operation) or an equivalent function.
+	     ;;
+	     ;; But if the function lambda expression is available,
+	     ;; and if the expression is defined in a null lexical
+	     ;; environment, recompile from sources.  (This was the
+	     ;; old behavior, which is quite useful.)
 	     (form (etypecase definition
 		     ((or cons eval:interpreted-function)
 		      `#',(get-lambda-to-compile definition))
-		     (function `',definition)))
+		     (function
+		      (multiple-value-bind (exp lexenv)
+			  (function-lambda-expression definition)
+			(if (and exp (not lexenv))
+			    `#',exp
+			    `',definition)))))
 	     (*source-info* (make-lisp-source-info form))
 	     (*top-level-lambdas* ())
 	     (*converting-for-interpreter* nil)
@@ -1987,6 +2001,8 @@
 	  (find-source-paths form 0)
 	  (let ((lambda (ir1-top-level form '(original-source-start 0 0) t)))
 
+	    ;; XXX: If NAME is a macro function, do we need to do
+	    ;; call COMPILE-FIX-FUNCTION-NAME?
 	    (compile-fix-function-name lambda name)
 	    (let* ((component
 		    (block-component (node-block (lambda-bind lambda))))
@@ -2003,7 +2019,10 @@
 		   (return (or name res)))
 	      (fix-core-source-info *source-info* *compile-object* res)
 	      (when name
-		(setf (fdefinition name) res))
+		(if (and (symbolp name)
+			 (macro-function name))
+		    (setf (macro-function name) res)
+		    (setf (fdefinition name) res)))
 
 	      (cond ((or (> *compiler-error-count* start-errors)
 			 (> *compiler-warning-count* start-warnings))
Index: src/compiler/proclaim.lisp
diff -u src/compiler/proclaim.lisp:1.44.24.5 src/compiler/proclaim.lisp:1.44.24.6
--- src/compiler/proclaim.lisp:1.44.24.5	Thu Feb 25 22:38:17 2010
+++ src/compiler/proclaim.lisp	Thu Mar 18 18:17:16 2010
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /project/cmucl/cvsroot/src/compiler/proclaim.lisp,v 1.44.24.5 2010-02-26 03:38:17 rtoy Exp $")
+  "$Header: /project/cmucl/cvsroot/src/compiler/proclaim.lisp,v 1.44.24.6 2010-03-18 22:17:16 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -225,28 +225,35 @@
        name)))
   (undefined-value))
 
+;;; Note-If-Accessor  -- Interface
+;;;
+;;;    Check if Name is also the name of a slot accessor for some
+;;; structure.  If it is, we signal an continuable error.  If we
+;;; continue, assume the user knows what he's doing and redefine the
+;;; function.
+(defun note-if-accessor (name)
+  (let ((for (info function accessor-for name)))
+    (when for
+      (cerror "Assume redefinition is compatible and allow it"
+	      "Redefining slot accessor ~S for structure type ~S"
+	      name (%class-name for))
+      ;;(undefine-structure for)
+      (setf (info function kind name) :function))))
 
 ;;; Define-Function-Name  --  Interface
 ;;;
 ;;;    Check the legality of a function name that is being introduced.
 ;;; -- If it names a macro, then give a warning and blast the macro
 ;;;    information.
-;;; -- If it is a structure slot accessor, give a warning and blast the
-;;;    structure. 
+;;; -- If it is a structure slot accessor, give a continuable error
+;;;    and allow redefinition if continued.
 ;;; -- Check for conflicting setf macros.
 ;;;
 (defun define-function-name (name)
   (check-function-name name)
   (ecase (info function kind name)
     (:function
-     (let ((for (info function accessor-for name)))
-       (when for
-	 (compiler-warning
-	  _N"Undefining structure type:~%  ~S~@
-	   so that this slot accessor can be redefined:~%  ~S"
-	  (%class-name for) name)
-	 (undefine-structure for)
-	 (setf (info function kind name) :function))))
+     (note-if-accessor name))
     (:macro
      (compiler-warning _N"~S previously defined as a macro." name)
      (setf (info function kind name) :function)
Index: src/compiler/x86/insts.lisp
diff -u src/compiler/x86/insts.lisp:1.33.14.2 src/compiler/x86/insts.lisp:1.33.14.3
--- src/compiler/x86/insts.lisp:1.33.14.2	Fri Feb 26 10:44:30 2010
+++ src/compiler/x86/insts.lisp	Thu Mar 18 18:17:17 2010
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group at cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /project/cmucl/cvsroot/src/compiler/x86/insts.lisp,v 1.33.14.2 2010-02-26 15:44:30 rtoy Exp $")
+  "$Header: /project/cmucl/cvsroot/src/compiler/x86/insts.lisp,v 1.33.14.3 2010-03-18 22:17:17 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -3200,22 +3200,99 @@
                         (emit-sse-inst segment src dst ,prefix ,(1+ (ash op 1))
                                        :operand-size :do-not-set)))))))
   (define-movsd/ss-sse-inst movsd #xf2 #b0001000)
-  (define-movsd/ss-sse-inst movss #xf3 #b0001000)
+  (define-movsd/ss-sse-inst movss #xf3 #b0001000))
+
+
+;; MOVHLPS and MOVLHPS are incorrectly disassembled as MOVLPS and
+;; MOVHPS (respectively).  I (rtoy) don't know how to fix that;
+;; instead. just print a note with the correct instruction name.
+(defun movlps-control (chunk inst stream dstate)
+  (when stream
+    (when (>= (ldb (byte 8 16) chunk) #xc0)
+      (disassem:note "MOVHLPS" dstate))))
+
+(defun movhps-control (chunk inst stream dstate)
+  (when stream
+    (when (>= (ldb (byte 8 16) chunk) #xc0)
+      (disassem:note "MOVLHPS" dstate))))
+
+
+(macrolet ((define-mov-sse-inst (name prefix opcode-from opcode-to
+                                      &key force-to-mem reg-reg-name control)
+               `(progn
+                  ,(when reg-reg-name
+                     `(define-instruction ,reg-reg-name (segment dst src)
+                        (:emitter
+                         (assert (xmm-register-p dst))
+                         (assert (xmm-register-p src))
+                         (emit-regular-sse-inst segment dst src ,prefix ,opcode-from))))
+                  (define-instruction ,name (segment dst src)
+                    ,@(if prefix
+                          `((:printer ext-xmm-xmm/mem
+                                      ((prefix ,prefix) (op ,opcode-from))
+				      :default
+				      :control ,control)
+			    #+nil
+                            (:printer ext-rex-xmm-xmm/mem
+                                      ((prefix ,prefix) (op ,opcode-from)))
+                            (:printer ext-xmm-xmm/mem
+                                      ((prefix ,prefix) (op ,opcode-to))
+                                      '(:name :tab reg/mem ", " reg)
+				      :control ,control)
+			    #+nil
+			    (:printer ext-rex-xmm-xmm/mem
+                                      ((prefix ,prefix) (op ,opcode-to))
+                                      '(:name :tab reg/mem ", " reg)))
+                          `((:printer xmm-xmm/mem
+                                      ((op ,opcode-from))
+				      :default
+				      :control ,control)
+			    #+nil
+                            (:printer rex-xmm-xmm/mem
+                                      ((op ,opcode-from)))
+                            (:printer xmm-xmm/mem
+                                      ((op ,opcode-to))
+                                      '(:name :tab reg/mem ", " reg)
+				      :control ,control)
+			    #+nil
+                            (:printer rex-xmm-xmm/mem
+                                      ((op ,opcode-to))
+                                      '(:name :tab reg/mem ", " reg))))
+                    (:emitter
+                     (cond ((xmm-register-p dst)
+                            ,(when force-to-mem
+                               `(assert (not (or (register-p src)
+                                               (xmm-register-p src)))))
+                            (emit-regular-sse-inst segment dst src ,prefix ,opcode-from))
+                           (t
+                            (assert (xmm-register-p src))
+                            ,(when force-to-mem
+                               `(assert (not (or (register-p dst)
+                                               (xmm-register-p dst)))))
+                            (emit-regular-sse-inst segment src dst ,prefix ,opcode-to))))))))
+  ;; direction bit?
+
+  ;; This is useful for moving between xmm registers.  We don't have
+  ;; aligned 128-bit objects.
+  (define-mov-sse-inst movapd #x66 #x28 #x29)
+  (define-mov-sse-inst movaps nil  #x28 #x29)
+  (define-mov-sse-inst movdqa #x66 #x6f #x7f)
+  (define-mov-sse-inst movdqu #xf3 #x6f #x7f)
+
+  ;; Load/store high part of packed single/double.  Low part untouched.
+  (define-mov-sse-inst movhpd #x66 #x16 #x17 :force-to-mem t)
+  (define-mov-sse-inst movlpd #x66 #x12 #x13 :force-to-mem t)
+  ;; Note: movhps and movlhps have exactly the same encoding.  The
+  ;; only difference is that movhps moves between registers and memory
+  ;; and movlhps moves between registers.  Same for movlps and movhlps.
+  (define-mov-sse-inst movhps nil  #x16 #x17 :reg-reg-name movlhps :control #'movhps-control)
+  (define-mov-sse-inst movlps nil  #x12 #x13 :reg-reg-name movhlps :control #'movlps-control)
+
   ;; We don't enforce it, but movupd should be used for moving to/from
   ;; memory because we 128-bit objects aren't aligned on 128-bit
   ;; boundaries.
-  (define-movsd/ss-sse-inst movupd #x66 #b0001000)
-  (define-movsd/ss-sse-inst movups nil  #b0001000)
-  ;; This is useful for moving between xmm registers.  We don't have
-  ;; aligned 128-bit objects.
-  (define-movsd/ss-sse-inst movapd #x66 #b0010100)
-  (define-movsd/ss-sse-inst movaps nil  #b0010100)
-  ;; Load/store high part of packed double.  Low part untouched.
-  (define-movsd/ss-sse-inst movhpd #x66 #b0001011)
-  ;; Load/store low part of packed double.  High part untouched.
-  (define-movsd/ss-sse-inst movlpd #x66 #b0001001)
-  (define-movsd/ss-sse-inst movlps nil  #b0001001)
-  )
+  (define-mov-sse-inst movupd #x66 #x10 #x11)
+  (define-mov-sse-inst movups nil  #x10 #x11))
 
 ;;; MOVQ
 (define-instruction movq (segment dst src)
@@ -3238,24 +3315,6 @@
    (emit-sse-inst segment dst src #xf2 #x12
 		  :operand-size :do-not-set)))
 
-;;; MOVHLPS
-;;;
-;;; dst[63:0] = src[127:64]
-;;; dst[127:64] unchanged.
-(define-instruction movhlps (segment dst src)
-  (:printer xmm-xmm/mem ((op #x12)))
-  (:emitter
-   (assert (xmm-register-p src))
-   (emit-sse-inst segment dst src nil #x12
-		  :operand-size :do-not-set)))
-
-(define-instruction movlhps (segment dst src)
-  (:printer xmm-xmm/mem ((op #x16)))
-  (:emitter
-   (assert (xmm-register-p src))
-   (emit-sse-inst segment dst src nil #x16
-		  :operand-size :do-not-set)))
-
 ;;; SHUFPD
 ;;;
 ;;; Shuffle packed double floats.  Basically, the low part of dst is
Index: src/general-info/release-20b.txt
diff -u src/general-info/release-20b.txt:1.9.2.1 src/general-info/release-20b.txt:1.9.2.2
--- src/general-info/release-20b.txt:1.9.2.1	Mon Feb 15 10:18:17 2010
+++ src/general-info/release-20b.txt	Thu Mar 18 18:17:17 2010
@@ -42,6 +42,8 @@
 
 
   * ANSI compliance fixes:
+    - COMPILE will update the macro-function if the specified names a
+      macro.  (Previously, the fdefinition of the name was set.)
 
   * Bugfixes:
     - On Unicode builds, printing of '|\|| and '|`| was incorrect
@@ -78,8 +80,26 @@
     - GET-MACRO-CHARACTER would return the wrong second value because
       *READTABLE* was always being used instead of the specified
       readtable. 
-    - Compiling a file containing "(compile nil (lambda ...))" caused
-      an error when loading the file.  This is fixed.
+    - COMPILE-FILE was generating an error when compiling COMPILE
+      forms.  This is fixed.
+    - A critical bug in SSE2 support has been fixed.  Multiplying a
+      complex single-float by a single-float produced the wrong
+      result. 
+    - Fix issue where CMUCL does not correctly handle FLETs in
+      DEFMETHOD bodies which use the same name as that of the generic
+      function.   The generic function was called instead of the local
+      function.
+    - CMUCL would fail to compile external formats if *readtable* was
+      not the standard readtable.  This is fixed by using the standard
+      I/O syntax when compiling the external format.
+    - The debugger help message is updated to reflect the actual
+      options for L and PP commands.  Help for the DESCRIBE command
+      has been added.
+    - CMUCL now signals a cerror when attempting to redefine a slot
+      accessor via DEFUN or COMPILE.  If continued, the accessor is
+      redefined, and CMUCL assumes the new definition is usable as a
+      slot accessor.  Previously, CMUCL would print a warning and
+      undefine the structure.
 
   * Trac Tickets:
     #33: get-dispatch-macro-character doesn't signal errors in
@@ -104,7 +124,6 @@
       is abslute or relative.  Previously, the result was take from
       the SOURCE pathname, except if TO were absolute, in which case
       the result was absolute.
-
   * Improvements to the PCL implementation of CLOS:
 
   * Changes to building procedure:
Index: src/i18n/locale/cmucl-x86-vm.pot
diff -u src/i18n/locale/cmucl-x86-vm.pot:1.1.2.1 src/i18n/locale/cmucl-x86-vm.pot:1.1.2.2
--- src/i18n/locale/cmucl-x86-vm.pot:1.1.2.1	Fri Feb 26 10:38:18 2010
+++ src/i18n/locale/cmucl-x86-vm.pot	Thu Mar 18 18:17:17 2010
@@ -139,7 +139,7 @@
 #: target:compiler/x86/alloc.lisp target:compiler/x86/cell.lisp
 #: target:compiler/x86/debug.lisp target:compiler/x86/arith.lisp
 #: target:compiler/x86/memory.lisp target:compiler/x86/char.lisp
-#: target:compiler/x86/float-sse2.lisp target:compiler/x86/move.lisp
+#: target:compiler/x86/float.lisp target:compiler/x86/move.lisp
 msgid "Unknown SC to SC-Case for ~S:~%  ~S"
 msgstr ""
 
@@ -152,7 +152,7 @@
 msgstr ""
 
 #: target:compiler/x86/call.lisp target:compiler/x86/debug.lisp
-#: target:compiler/x86/char.lisp target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/char.lisp target:compiler/x86/float.lisp
 #: target:compiler/x86/move.lisp
 msgid ""
 "Load TN allocated, but no move function?~@\n"
@@ -183,122 +183,182 @@
 msgid "word integer argument move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "Ignoring bogus i387 Constant ~a"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "float move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
+msgid "complex float move"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
 msgid "float to pointer coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "pointer to float coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex float to pointer coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex double-double float to pointer coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "pointer to complex float coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "float argument move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex float argument move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex double-double-float argument move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float arithmetic"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float comparison"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float truncate"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
+msgid "inline NPX function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline tan function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline sin/cos function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline exp function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline expm1 function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline log function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline log10 function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline pow function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline scalbn function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline scalb function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline log1p function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline log1p with limited x range function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline logb function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline atan function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline atan2 function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
 msgid "inline complex single-float creation"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline complex double-float creation"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
+msgid "inline complex long-float creation"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
 msgid "complex float realpart"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex float imagpart"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline dummy FP register bias"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double-double float move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double double float to pointer coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "pointer to double-double-float coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double double-float argument move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline double-double-float creation"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double-double high part"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double-double low part"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline complex double-double-float creation"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
-msgid "inline complex float arithmetic"
-msgstr ""
-
-#: target:compiler/x86/float-sse2.lisp
-msgid "inline complex float/float arithmetic"
-msgstr ""
-
 #: target:compiler/x86/char.lisp
 msgid "character untagging"
 msgstr ""
Index: src/i18n/locale/cmucl.pot
diff -u src/i18n/locale/cmucl.pot:1.1.2.36 src/i18n/locale/cmucl.pot:1.1.2.37
--- src/i18n/locale/cmucl.pot:1.1.2.36	Tue Mar  9 15:18:32 2010
+++ src/i18n/locale/cmucl.pot	Thu Mar 18 18:17:17 2010
@@ -4953,12 +4953,6 @@
 msgstr ""
 
 #: target:compiler/proclaim.lisp
-msgid ""
-"Undefining structure type:~%  ~S~@\n"
-"	   so that this slot accessor can be redefined:~%  ~S"
-msgstr ""
-
-#: target:compiler/proclaim.lisp
 msgid "~S previously defined as a macro."
 msgstr ""
 
@@ -15721,11 +15715,11 @@
 
 #: target:assembly/x86/arith.lisp target:assembly/x86/array.lisp
 #: target:assembly/x86/assem-rtns.lisp target:compiler/x86/type-vops.lisp
-#: target:compiler/x86/pred.lisp target:compiler/x86/sse2-array.lisp
+#: target:compiler/x86/pred.lisp target:compiler/x86/x87-array.lisp
 #: target:compiler/x86/print.lisp target:compiler/x86/nlx.lisp
-#: target:compiler/x86/values.lisp target:compiler/x86/sse2-c-call.lisp
+#: target:compiler/x86/values.lisp target:compiler/x86/x87-c-call.lisp
 #: target:compiler/x86/subprim.lisp target:compiler/x86/static-fn.lisp
-#: target:compiler/x86/system.lisp target:compiler/x86/sse2-sap.lisp
+#: target:compiler/x86/system.lisp target:compiler/x86/x87-sap.lisp
 #: target:compiler/x86/sap.lisp target:compiler/meta-vmdef.lisp
 msgid "Unknown SC to SC-Case for ~S:~%  ~S"
 msgstr ""
@@ -17068,10 +17062,12 @@
 
 #: target:compiler/main.lisp
 msgid ""
-"Compiles the function whose name is NAME.  If DEFINITION is supplied,\n"
-"  it should be a lambda expression that is compiled and then placed in the\n"
-"  function cell of NAME.  If NAME is Nil, the compiled code object is\n"
-"  returned."
+"Compiles the function (or macro-function) whose name is NAME.  If\n"
+"  DEFINITION is supplied, it should be a lambda expression that is\n"
+"  compiled.  IF NAME names a macro, then the compiled expression\n"
+"  replaces the existing macro-function.  If NAME names a function, the\n"
+"  compiled expression is placed in the function cell of NAME.  If NAME\n"
+"  is Nil, the compiled code object is returned."
 msgstr ""
 
 #: target:compiler/main.lisp
Index: src/i18n/locale/en at piglatin/LC_MESSAGES/cmucl-x86-vm.po
diff -u src/i18n/locale/en at piglatin/LC_MESSAGES/cmucl-x86-vm.po:1.1.2.3 src/i18n/locale/en at piglatin/LC_MESSAGES/cmucl-x86-vm.po:1.1.2.4
--- src/i18n/locale/en at piglatin/LC_MESSAGES/cmucl-x86-vm.po:1.1.2.3	Thu Mar 18 12:58:37 2010
+++ src/i18n/locale/en at piglatin/LC_MESSAGES/cmucl-x86-vm.po	Thu Mar 18 18:17:18 2010
@@ -198,7 +198,7 @@
 #: target:compiler/x86/alloc.lisp target:compiler/x86/cell.lisp
 #: target:compiler/x86/debug.lisp target:compiler/x86/arith.lisp
 #: target:compiler/x86/memory.lisp target:compiler/x86/char.lisp
-#: target:compiler/x86/float-sse2.lisp target:compiler/x86/move.lisp
+#: target:compiler/x86/float.lisp target:compiler/x86/move.lisp
 msgid "Unknown SC to SC-Case for ~S:~%  ~S"
 msgstr "Unknownway SC otay SC-Asecay orfay ~S:~%  ~S"
 
@@ -211,7 +211,7 @@
 msgstr "onstantcay oadlay"
 
 #: target:compiler/x86/call.lisp target:compiler/x86/debug.lisp
-#: target:compiler/x86/char.lisp target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/char.lisp target:compiler/x86/float.lisp
 #: target:compiler/x86/move.lisp
 msgid ""
 "Load TN allocated, but no move function?~@\n"
@@ -245,122 +245,198 @@
 msgid "word integer argument move"
 msgstr "ordway integerway argumentway ovemay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "Ignoring bogus i387 Constant ~a"
 msgstr "Ignoringway ogusbay i387 Onstantcay ~away"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "float move"
 msgstr "oatflay ovemay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "complex float move"
+msgstr "omplexcay oatflay argumentway ovemay"
+
+#: target:compiler/x86/float.lisp
 msgid "float to pointer coercion"
 msgstr "oatflay otay ointerpay oercioncay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "pointer to float coercion"
 msgstr "ointerpay otay oatflay oercioncay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex float to pointer coercion"
 msgstr "omplexcay oatflay otay ointerpay oercioncay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex double-double float to pointer coercion"
 msgstr "omplexcay oubleday-oubleday oatflay otay ointerpay oercioncay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "pointer to complex float coercion"
 msgstr "ointerpay otay omplexcay oatflay oercioncay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "float argument move"
 msgstr "oatflay argumentway ovemay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex float argument move"
 msgstr "omplexcay oatflay argumentway ovemay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex double-double-float argument move"
 msgstr "omplexcay oubleday-oubleday-oatflay argumentway ovemay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float arithmetic"
 msgstr "inlineway oatflay arithmeticway"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float comparison"
 msgstr "inlineway oatflay omparisoncay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float coercion"
 msgstr "inlineway oatflay oercioncay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float truncate"
 msgstr "inlineway oatflay uncatetray"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline NPX function"
+msgstr "inlineway omparisoncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline tan function"
+msgstr "inlineway oatflay oercioncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline sin/cos function"
+msgstr "inlineway omparisoncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline exp function"
+msgstr "inlineway omparisoncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline expm1 function"
+msgstr "inlineway ixnumfay omparisoncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline log function"
+msgstr "inlineway oatflay oercioncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline log10 function"
+msgstr "inlineway oatflay oercioncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline pow function"
+msgstr "inlineway oatflay oercioncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline scalbn function"
+msgstr "inlineway omparisoncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline scalb function"
+msgstr "inlineway omparisoncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline log1p function"
+msgstr "inlineway oatflay oercioncay"
+
+#: target:compiler/x86/float.lisp
+msgid "inline log1p with limited x range function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline logb function"
+msgstr "inlineway oatflay oercioncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline atan function"
+msgstr "inlineway oatflay oercioncay"
+
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline atan2 function"
+msgstr "inlineway oatflay oercioncay"
+
+#: target:compiler/x86/float.lisp
 msgid "inline complex single-float creation"
 msgstr "inlineway omplexcay inglesay-oatflay eationcray"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline complex double-float creation"
 msgstr "inlineway omplexcay oubleday-oatflay eationcray"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
+#, fuzzy
+msgid "inline complex long-float creation"
+msgstr "inlineway omplexcay inglesay-oatflay eationcray"
+
+#: target:compiler/x86/float.lisp
 msgid "complex float realpart"
 msgstr "omplexcay oatflay ealpartray"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex float imagpart"
 msgstr "omplexcay oatflay imagpartway"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline dummy FP register bias"
 msgstr "inlineway ummyday FP egisterray iasbay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double-double float move"
 msgstr "oubleday-oubleday oatflay ovemay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double double float to pointer coercion"
 msgstr "oubleday oubleday oatflay otay ointerpay oercioncay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "pointer to double-double-float coercion"
 msgstr "ointerpay otay oubleday-oubleday-oatflay oercioncay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double double-float argument move"
 msgstr "oubleday oubleday-oatflay argumentway ovemay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline double-double-float creation"
 msgstr "inlineway oubleday-oubleday-oatflay eationcray"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double-double high part"
 msgstr "oubleday-oubleday ighhay artpay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double-double low part"
 msgstr "oubleday-oubleday owlay artpay"
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline complex double-double-float creation"
 msgstr "inlineway omplexcay oubleday-oubleday-oatflay eationcray"
 
-#: target:compiler/x86/float-sse2.lisp
-msgid "inline complex float arithmetic"
-msgstr "inlineway omplexcay oatflay arithmeticway"
-
-#: target:compiler/x86/float-sse2.lisp
-msgid "inline complex float/float arithmetic"
-msgstr "inlineway omplexcay oatflay/oatflay arithmeticway"
-
 #: target:compiler/x86/char.lisp
 msgid "character untagging"
 msgstr "aracterchay untaggingway"
@@ -453,3 +529,9 @@
 #: target:compiler/x86/array.lisp
 msgid "inline array store"
 msgstr "inlineway arrayway toresay"
+
+#~ msgid "inline complex float arithmetic"
+#~ msgstr "inlineway omplexcay oatflay arithmeticway"
+
+#~ msgid "inline complex float/float arithmetic"
+#~ msgstr "inlineway omplexcay oatflay/oatflay arithmeticway"
Index: src/i18n/locale/en at piglatin/LC_MESSAGES/cmucl.po
diff -u src/i18n/locale/en at piglatin/LC_MESSAGES/cmucl.po:1.1.2.11 src/i18n/locale/en at piglatin/LC_MESSAGES/cmucl.po:1.1.2.12
--- src/i18n/locale/en at piglatin/LC_MESSAGES/cmucl.po:1.1.2.11	Thu Mar 18 12:58:37 2010
+++ src/i18n/locale/en at piglatin/LC_MESSAGES/cmucl.po	Thu Mar 18 18:17:18 2010
@@ -7069,14 +7069,6 @@
 "       ~%  ~S"
 
 #: target:compiler/proclaim.lisp
-msgid ""
-"Undefining structure type:~%  ~S~@\n"
-"\t   so that this slot accessor can be redefined:~%  ~S"
-msgstr ""
-"Undefiningway ucturestray ypetay:~%  ~S~@\n"
-"\t   osay atthay isthay otslay accessorway ancay ebay edefinedray:~%  ~S"
-
-#: target:compiler/proclaim.lisp
 msgid "~S previously defined as a macro."
 msgstr "~S eviouslypray efinedday asway away acromay."
 
@@ -22651,11 +22643,11 @@
 
 #: target:assembly/x86/arith.lisp target:assembly/x86/array.lisp
 #: target:assembly/x86/assem-rtns.lisp target:compiler/x86/type-vops.lisp
-#: target:compiler/x86/pred.lisp target:compiler/x86/sse2-array.lisp
+#: target:compiler/x86/pred.lisp target:compiler/x86/x87-array.lisp
 #: target:compiler/x86/print.lisp target:compiler/x86/nlx.lisp
-#: target:compiler/x86/values.lisp target:compiler/x86/sse2-c-call.lisp
+#: target:compiler/x86/values.lisp target:compiler/x86/x87-c-call.lisp
 #: target:compiler/x86/subprim.lisp target:compiler/x86/static-fn.lisp
-#: target:compiler/x86/system.lisp target:compiler/x86/sse2-sap.lisp
+#: target:compiler/x86/system.lisp target:compiler/x86/x87-sap.lisp
 #: target:compiler/x86/sap.lisp target:compiler/meta-vmdef.lisp
 msgid "Unknown SC to SC-Case for ~S:~%  ~S"
 msgstr "Unknownway SC otay SC-Asecay orfay ~S:~%  ~S"
@@ -24665,11 +24657,14 @@
 msgstr "Ancay't indfay away efinitionday orfay ~S."
 
 #: target:compiler/main.lisp
+#, fuzzy
 msgid ""
-"Compiles the function whose name is NAME.  If DEFINITION is supplied,\n"
-"  it should be a lambda expression that is compiled and then placed in the\n"
-"  function cell of NAME.  If NAME is Nil, the compiled code object is\n"
-"  returned."
+"Compiles the function (or macro-function) whose name is NAME.  If\n"
+"  DEFINITION is supplied, it should be a lambda expression that is\n"
+"  compiled.  IF NAME names a macro, then the compiled expression\n"
+"  replaces the existing macro-function.  If NAME names a function, the\n"
+"  compiled expression is placed in the function cell of NAME.  If NAME\n"
+"  is Nil, the compiled code object is returned."
 msgstr ""
 "Ompilescay ethay unctionfay osewhay amenay isway NAME.  Ifway DEFINITION "
 "isway uppliedsay,\n"
@@ -28702,3 +28697,10 @@
 #: target:pcl/gray-streams.lisp
 msgid "    Gray Streams Protocol Support"
 msgstr "    Aygray Eamsstray Otocolpray Upportsay"
+
+#~ msgid ""
+#~ "Undefining structure type:~%  ~S~@\n"
+#~ "\t   so that this slot accessor can be redefined:~%  ~S"
+#~ msgstr ""
+#~ "Undefiningway ucturestray ypetay:~%  ~S~@\n"
+#~ "\t   osay atthay isthay otslay accessorway ancay ebay edefinedray:~%  ~S"
Index: src/i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po
diff -u src/i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po:1.1.2.2 src/i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po:1.1.2.3
--- src/i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po:1.1.2.2	Tue Mar  9 15:22:16 2010
+++ src/i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po	Thu Mar 18 18:17:20 2010
@@ -138,7 +138,7 @@
 #: target:compiler/x86/alloc.lisp target:compiler/x86/cell.lisp
 #: target:compiler/x86/debug.lisp target:compiler/x86/arith.lisp
 #: target:compiler/x86/memory.lisp target:compiler/x86/char.lisp
-#: target:compiler/x86/float-sse2.lisp target:compiler/x86/move.lisp
+#: target:compiler/x86/float.lisp target:compiler/x86/move.lisp
 msgid "Unknown SC to SC-Case for ~S:~%  ~S"
 msgstr ""
 
@@ -151,7 +151,7 @@
 msgstr ""
 
 #: target:compiler/x86/call.lisp target:compiler/x86/debug.lisp
-#: target:compiler/x86/char.lisp target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/char.lisp target:compiler/x86/float.lisp
 #: target:compiler/x86/move.lisp
 msgid ""
 "Load TN allocated, but no move function?~@\n"
@@ -182,122 +182,182 @@
 msgid "word integer argument move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "Ignoring bogus i387 Constant ~a"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "float move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
+msgid "complex float move"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
 msgid "float to pointer coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "pointer to float coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex float to pointer coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex double-double float to pointer coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "pointer to complex float coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "float argument move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex float argument move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex double-double-float argument move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float arithmetic"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float comparison"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline float truncate"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
+msgid "inline NPX function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline tan function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline sin/cos function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline exp function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline expm1 function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline log function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline log10 function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline pow function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline scalbn function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline scalb function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline log1p function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline log1p with limited x range function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline logb function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline atan function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
+msgid "inline atan2 function"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
 msgid "inline complex single-float creation"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline complex double-float creation"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
+msgid "inline complex long-float creation"
+msgstr ""
+
+#: target:compiler/x86/float.lisp
 msgid "complex float realpart"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "complex float imagpart"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline dummy FP register bias"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double-double float move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double double float to pointer coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "pointer to double-double-float coercion"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double double-float argument move"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline double-double-float creation"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double-double high part"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "double-double low part"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
+#: target:compiler/x86/float.lisp
 msgid "inline complex double-double-float creation"
 msgstr ""
 
-#: target:compiler/x86/float-sse2.lisp
-msgid "inline complex float arithmetic"
-msgstr ""
-
-#: target:compiler/x86/float-sse2.lisp
-msgid "inline complex float/float arithmetic"
-msgstr ""
-
 #: target:compiler/x86/char.lisp
 msgid "character untagging"
 msgstr ""
Index: src/i18n/locale/ko/LC_MESSAGES/cmucl.po
diff -u src/i18n/locale/ko/LC_MESSAGES/cmucl.po:1.1.2.37 src/i18n/locale/ko/LC_MESSAGES/cmucl.po:1.1.2.38
--- src/i18n/locale/ko/LC_MESSAGES/cmucl.po:1.1.2.37	Tue Mar  9 15:22:16 2010
+++ src/i18n/locale/ko/LC_MESSAGES/cmucl.po	Thu Mar 18 18:17:20 2010
@@ -4954,12 +4954,6 @@
 msgstr ""
 
 #: target:compiler/proclaim.lisp
-msgid ""
-"Undefining structure type:~%  ~S~@\n"
-"\t   so that this slot accessor can be redefined:~%  ~S"
-msgstr ""
-
-#: target:compiler/proclaim.lisp
 msgid "~S previously defined as a macro."
 msgstr ""
 
@@ -15774,11 +15768,11 @@
 
 #: target:assembly/x86/arith.lisp target:assembly/x86/array.lisp
 #: target:assembly/x86/assem-rtns.lisp target:compiler/x86/type-vops.lisp
-#: target:compiler/x86/pred.lisp target:compiler/x86/sse2-array.lisp
+#: target:compiler/x86/pred.lisp target:compiler/x86/x87-array.lisp
 #: target:compiler/x86/print.lisp target:compiler/x86/nlx.lisp
-#: target:compiler/x86/values.lisp target:compiler/x86/sse2-c-call.lisp
+#: target:compiler/x86/values.lisp target:compiler/x86/x87-c-call.lisp
 #: target:compiler/x86/subprim.lisp target:compiler/x86/static-fn.lisp
-#: target:compiler/x86/system.lisp target:compiler/x86/sse2-sap.lisp
+#: target:compiler/x86/system.lisp target:compiler/x86/x87-sap.lisp
 #: target:compiler/x86/sap.lisp target:compiler/meta-vmdef.lisp
 msgid "Unknown SC to SC-Case for ~S:~%  ~S"
 msgstr ""
@@ -17122,10 +17116,12 @@
 
 #: target:compiler/main.lisp
 msgid ""
-"Compiles the function whose name is NAME.  If DEFINITION is supplied,\n"
-"  it should be a lambda expression that is compiled and then placed in the\n"
-"  function cell of NAME.  If NAME is Nil, the compiled code object is\n"
-"  returned."
+"Compiles the function (or macro-function) whose name is NAME.  If\n"
+"  DEFINITION is supplied, it should be a lambda expression that is\n"
+"  compiled.  IF NAME names a macro, then the compiled expression\n"
+"  replaces the existing macro-function.  If NAME names a function, the\n"
+"  compiled expression is placed in the function cell of NAME.  If NAME\n"
+"  is Nil, the compiled code object is returned."
 msgstr ""
 
 #: target:compiler/main.lisp
Index: src/pcl/boot.lisp
diff -u src/pcl/boot.lisp:1.73.34.2 src/pcl/boot.lisp:1.73.34.3
--- src/pcl/boot.lisp:1.73.34.2	Fri Feb 12 20:28:04 2010
+++ src/pcl/boot.lisp	Thu Mar 18 18:17:20 2010
@@ -25,7 +25,7 @@
 ;;; *************************************************************************
 
 (file-comment
- "$Header: /project/cmucl/cvsroot/src/pcl/boot.lisp,v 1.73.34.2 2010-02-13 01:28:04 rtoy Exp $")
+ "$Header: /project/cmucl/cvsroot/src/pcl/boot.lisp,v 1.73.34.3 2010-03-18 22:17:20 rtoy Exp $")
 
 (in-package :pcl)
 (intl:textdomain "cmucl")
@@ -1178,7 +1178,8 @@
 		    (optimize-slot-writer form required-parameters slots env))
 		   ;;
 		   ((and (valid-function-name-p (car form))
-			 (info-gf-name-p (car form)))
+			 (info-gf-name-p (car form))
+			 (not (walker::environment-function env (car form))))
 		    (optimize-gf-call form required-parameters calls env))
 		   (t
 		    form))))



More information about the cmucl-commit mailing list