CMUCL commit: intl-branch src (7 files)

Raymond Toy rtoy at common-lisp.net
Tue Feb 9 16:18:21 CET 2010


    Date: Tuesday, February 9, 2010 @ 10:18:21
  Author: rtoy
    Path: /project/cmucl/cvsroot/src
     Tag: intl-branch

Modified: code/env-access.lisp code/error.lisp code/eval.lisp
          code/extensions.lisp code/extfmts.lisp i18n/locale/cmucl.pot
          i18n/locale/ko/LC_MESSAGES/cmucl.po

Mark translatable strings; update cmucl.pot and ko/cmucl.po
accordingly.


-------------------------------------+
 code/env-access.lisp                |   14 
 code/error.lisp                     |  106 +--
 code/eval.lisp                      |   68 +-
 code/extensions.lisp                |   52 -
 code/extfmts.lisp                   |   40 -
 i18n/locale/cmucl.pot               |  921 ++++++++++++++++++++++++++++++++++
 i18n/locale/ko/LC_MESSAGES/cmucl.po |  921 ++++++++++++++++++++++++++++++++++
 7 files changed, 1982 insertions(+), 140 deletions(-)


Index: src/code/env-access.lisp
diff -u src/code/env-access.lisp:1.5.18.1 src/code/env-access.lisp:1.5.18.2
--- src/code/env-access.lisp:1.5.18.1	Mon Feb  8 12:15:47 2010
+++ src/code/env-access.lisp	Tue Feb  9 10:18:21 2010
@@ -6,7 +6,7 @@
 ;;;
 
 (ext:file-comment
- "$Header: /project/cmucl/cvsroot/src/code/env-access.lisp,v 1.5.18.1 2010-02-08 17:15:47 rtoy Exp $")
+ "$Header: /project/cmucl/cvsroot/src/code/env-access.lisp,v 1.5.18.2 2010-02-09 15:18:21 rtoy Exp $")
 
 ;;;
 ;;; **********************************************************************
@@ -28,7 +28,7 @@
 (in-package "C")
 
 (defun variable-information (var &optional env)
-  "Returns information about the symbol VAR in the lexical environment ENV.
+  _N"Returns information about the symbol VAR in the lexical environment ENV.
 Three values are returned:
   1) Type or binding of VAR.
      NIL           No definition or binding
@@ -76,7 +76,7 @@
 			   (info variable type var)))))))))
 
 (defun declaration-information (declaration-name &optional env)
-  "Returns information about declarations named by the symbol DECLARATION-NAME.
+  _N"Returns information about declarations named by the symbol DECLARATION-NAME.
 Supported DECLARATION-NAMES are
   1) OPTIMIZE
      A list whose entries are of the form (QUALITY VALUE) is returned,
@@ -123,10 +123,10 @@
 		    (when (equal class "DECLARATION")
 		      (push name decls))))
 		decls))))
-      (t (error "Unsupported declaration ~S." declaration-name)))))
+      (t (error _"Unsupported declaration ~S." declaration-name)))))
 
 (defun parse-macro (name lambda-list body &optional env)
-  "Process a macro in the same way that DEFMACRO or MACROLET would.
+  _N"Process a macro in the same way that DEFMACRO or MACROLET would.
 Three values are returned:
   1) A lambda-expression that accepts two arguments
   2) A form
@@ -143,7 +143,7 @@
          ,body))))
 
 (defun function-information (function &optional env)
-  "Returns information about the function name FUNCTION in the lexical environment ENV.
+  _N"Returns information about the function name FUNCTION in the lexical environment ENV.
 Three values are returned:
   1) Type of definition or binding:
      NIL          No apparent definition
@@ -219,7 +219,7 @@
   `(quote ,env))
 
 (defun augment-environment (env &key variable symbol-macro function macro declare)
-  "Return a new environment containing information in ENV that is augmented
+  _N"Return a new environment containing information in ENV that is augmented
 by the specified parameters:
   :VARIABLE     a list of symbols visible as bound variables in the new
                 environemnt
Index: src/code/error.lisp
diff -u src/code/error.lisp:1.88.12.1 src/code/error.lisp:1.88.12.2
--- src/code/error.lisp:1.88.12.1	Mon Feb  8 12:15:47 2010
+++ src/code/error.lisp	Tue Feb  9 10:18:21 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/error.lisp,v 1.88.12.1 2010-02-08 17:15:47 rtoy Exp $")
+  "$Header: /project/cmucl/cvsroot/src/code/error.lisp,v 1.88.12.2 2010-02-09 15:18:21 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -71,7 +71,7 @@
 			      &body forms)
   (let ((temp (member '&rest names)))
     (unless (= (length temp) 2)
-      (simple-program-error "&rest keyword is ~:[missing~;misplaced~]." temp))
+      (simple-program-error _"&rest keyword is ~:[missing~;misplaced~]." temp))
     (let ((key-vars (ldiff names temp))
           (key-var (or keywords-var (gensym)))
           (rest-var (cadr temp)))
@@ -101,7 +101,7 @@
 (defvar *condition-restarts* ())
 
 (defun compute-restarts (&optional condition)
-  "Return a list of all the currently active restarts ordered from most
+  _N"Return a list of all the currently active restarts ordered from most
    recently established to less recently established.  If Condition is
    specified, then only restarts associated with Condition (or with no
    condition) will be returned."
@@ -136,7 +136,7 @@
   (test-function #'(lambda (cond) (declare (ignore cond)) t)))
 
 (setf (documentation 'restart-name 'function)
-      "Returns the name of the given restart object.")
+      _"Returns the name of the given restart object.")
 
 (defun restart-report (restart stream)
   (funcall (or (restart-report-function restart)
@@ -147,7 +147,7 @@
            stream))
 
 (defmacro with-condition-restarts (condition-form restarts-form &body body)
-  "WITH-CONDITION-RESTARTS Condition-Form Restarts-Form Form*
+  _N"WITH-CONDITION-RESTARTS Condition-Form Restarts-Form Form*
    Evaluates the Forms in a dynamic environment where the restarts in the list
    Restarts-Form are associated with the condition returned by Condition-Form.
    This allows FIND-RESTART, etc., to recognize restarts that are not related
@@ -162,7 +162,7 @@
        , at body)))
 
 (defmacro restart-bind (bindings &body forms)
-  "Executes forms in a dynamic context where the given restart bindings are
+  _N"Executes forms in a dynamic context where the given restart bindings are
    in effect.  Users probably want to use RESTART-CASE.  When clauses contain
    the same restart name, FIND-RESTART will find the first such clause."
   `(let ((*restart-clusters*
@@ -171,7 +171,7 @@
 			       (unless (or (car binding)
 					   (member :report-function
 						   binding :test #'eq))
-				 (warn "Unnamed restart does not have a ~
+				 (warn _"Unnamed restart does not have a ~
 					report function -- ~S"
 				       binding))
 			       `(make-restart
@@ -183,7 +183,7 @@
      , at forms))
 
 (defun find-restart (name &optional condition)
-  "Returns the first restart named name.  If name is a restart, it is returned
+  _N"Returns the first restart named name.  If name is a restart, it is returned
    if it is currently active.  If no such restart is found, nil is returned.
    It is an error to supply nil as a name.  If Condition is specified and not
    NIL, then only restarts associated with that condition (or with no
@@ -194,24 +194,24 @@
 	   (compute-restarts condition)))
 
 (defun invoke-restart (restart &rest values)
-  "Calls the function associated with the given restart, passing any given
+  _N"Calls the function associated with the given restart, passing any given
    arguments.  If the argument restart is not a restart or a currently active
    non-nil restart name, then a control-error is signalled."
   (let ((real-restart (find-restart restart)))
     (unless real-restart
       (error 'simple-control-error
-	     :format-control "Restart ~S is not active."
+	     :format-control _"Restart ~S is not active."
 	     :format-arguments (list restart)))
     (apply (restart-function real-restart) values)))
 
 (defun invoke-restart-interactively (restart)
-  "Calls the function associated with the given restart, prompting for any
+  _N"Calls the function associated with the given restart, prompting for any
    necessary arguments.  If the argument restart is not a restart or a
    currently active non-nil restart name, then a control-error is signalled."
   (let ((real-restart (find-restart restart)))
     (unless real-restart
       (error 'simple-control-error
-	     :format-control "Restart ~S is not active."
+	     :format-control _"Restart ~S is not active."
 	     :format-arguments (list restart)))
     (%invoke-restart-interactively real-restart)))
 
@@ -272,7 +272,7 @@
 ); eval-when (compile load eval)
 
 (defmacro restart-case (expression &body clauses &environment env)
-  "(RESTART-CASE form
+  _N"(RESTART-CASE form
    {(case-name arg-list {keyword value}* body)}*)
    The form is evaluated in a dynamic context where the clauses have special
    meanings as points to which control may be transferred (see INVOKE-RESTART).
@@ -345,7 +345,7 @@
 (defmacro with-simple-restart ((restart-name format-string
 					     &rest format-arguments)
 			       &body forms)
-  "(WITH-SIMPLE-RESTART (restart-name format-string format-arguments)
+  _N"(WITH-SIMPLE-RESTART (restart-name format-string format-arguments)
    body)
    If restart-name is not invoked, then all values returned by forms are
    returned.  If control is transferred to this restart, it immediately
@@ -433,7 +433,7 @@
 
 (setf (condition-class-report (kernel::find-class 'condition))
       #'(lambda (cond stream)
-	  (format stream "Condition ~S was signalled." (type-of cond))))
+	  (format stream _"Condition ~S was signalled." (type-of cond))))
 
 (eval-when (compile load eval)
 
@@ -474,7 +474,7 @@
   (if *print-escape*
       (print-unreadable-object (s stream :identity t :type t))
       (dolist (class (condition-class-cpl (kernel::class-of s))
-		     (error "No REPORT?  Shouldn't happen!"))
+		     (error _"No REPORT?  Shouldn't happen!"))
 	(let ((report (condition-class-report class)))
 	  (when report
 	    (return (funcall report s stream)))))))
@@ -501,7 +501,7 @@
 	  (if (functionp initform)
 	      (funcall initform)
 	      initform))
-	(error "Condition slot is not bound: ~S"
+	(error _"Condition slot is not bound: ~S"
 	       (condition-slot-name slot)))))
 
 (defun find-slot (classes name)
@@ -531,7 +531,7 @@
 	  (let ((actual-initargs (condition-actual-initargs condition))
 		(slot (find-slot (condition-class-cpl class) name)))
 	    (unless slot
-	      (error "Slot ~S of ~S missing." name condition))
+	      (error _"Slot ~S of ~S missing." name condition))
 	    ;;
 	    ;; Loop over actual initargs because the order of
 	    ;; actual initargs determines how slots are initialized.
@@ -548,7 +548,7 @@
 
 
 (defun make-condition (thing &rest args)
-  "Make an instance of a condition object using the specified initargs."
+  _N"Make an instance of a condition object using the specified initargs."
   ;; Note: ANSI specifies no exceptional situations in this function.
   ;; signalling simple-type-error would not be wrong.
   (let* ((thing (if (symbolp thing)
@@ -564,13 +564,13 @@
 		   (error 'simple-type-error
 			  :datum thing
 			  :expected-type 'condition-class
-			  :format-control "~S is not a condition class."
+			  :format-control _"~S is not a condition class."
 			  :format-arguments (list thing)))
 		  (t
 		   (error 'simple-type-error
 			  :datum thing
 			  :expected-type 'condition-class
-			  :format-control "Bad thing for class arg:~%  ~S"
+			  :format-control _"Bad thing for class arg:~%  ~S"
 			  :format-arguments (list thing)))))
 	 (res (make-condition-object args)))
     (setf (%instance-layout res) (%class-layout class))
@@ -699,7 +699,7 @@
 
 (defun %define-condition (name slots documentation report default-initargs)
   (when (info declaration recognized name)
-    (error "Condition already names a declaration: ~S." name))
+    (error _"Condition already names a declaration: ~S." name))
   (let ((class (kernel::find-class name)))
     (setf (slot-class-print-function class) #'%print-condition)
     (setf (condition-class-slots class) slots)
@@ -746,7 +746,7 @@
 
 (defmacro define-condition (name (&rest parent-types) (&rest slot-specs)
 				 &body options)
-  "DEFINE-CONDITION Name (Parent-Type*) (Slot-Spec*) Option*
+  _N"DEFINE-CONDITION Name (Parent-Type*) (Slot-Spec*) Option*
    Define NAME as a condition type.  This new type inherits slots and its
    report function from the specified PARENT-TYPEs.  A slot spec is either
    a symbol denoting the name of the slot, or a list of the form:
@@ -782,7 +782,7 @@
 	      (all-writers nil append))
       (dolist (spec slot-specs)
 	(when (keywordp spec)
-	  (warn "Keyword slot name indicates probable syntax error:~%  ~S"
+	  (warn _"Keyword slot name indicates probable syntax error:~%  ~S"
 		spec))
 	(let* ((spec (if (consp spec) spec (list spec)))
 	       (slot-name (first spec))
@@ -796,7 +796,7 @@
 	    (do ((options (rest spec) (cddr options)))
 		((null options))
 	      (unless (and (consp options) (consp (cdr options)))
-		(simple-program-error "Malformed condition slot spec:~%  ~S."
+		(simple-program-error _"Malformed condition slot spec:~%  ~S."
                                       spec))
 	      (let ((arg (second options)))
 		(case (first options)
@@ -807,7 +807,7 @@
 		   (writers `(setf ,arg)))
 		  (:initform
 		   (when initform-p
-		     (simple-program-error "More than one :INITFORM in:~%  ~S"
+		     (simple-program-error _"More than one :INITFORM in:~%  ~S"
                                            spec))
 		   (setq initform-p t)
 		   (setq initform arg))
@@ -817,14 +817,14 @@
 		  (:documentation
 		   (when documentation
 		     (simple-program-error
-		      "More than one slot :DOCUMENTATION in~%  ~s" spec))
+		      _"More than one slot :DOCUMENTATION in~%  ~s" spec))
 		   (unless (stringp arg)
 		     (simple-program-error
-		      "Slot :DOCUMENTATION is not a string in~%  ~s" spec))
+		      _"Slot :DOCUMENTATION is not a string in~%  ~s" spec))
 		   (setq documentation arg))
 		  (:type)
 		  (t
-		   (simple-program-error "Unknown slot option:~%  ~S"
+		   (simple-program-error _"Unknown slot option:~%  ~S"
                                          (first options))))))
 
 	    (push (list slot-name (readers) (writers)) slot-name/accessors)
@@ -844,7 +844,7 @@
       
       (dolist (option options)
 	(unless (consp option)
-	  (simple-program-error "Bad option:~%  ~S" option))
+	  (simple-program-error _"Bad option:~%  ~S" option))
 	(case (first option)
 	  (:documentation (setq documentation (second option)))
 	  (:report
@@ -867,7 +867,7 @@
 				`#'(lambda () ,val))
 			    default-initargs)))))
 	  (t
-	   (simple-program-error "Unknown option: ~S" (first option)))))
+	   (simple-program-error _"Unknown option: ~S" (first option)))))
 
       `(progn
 	 (eval-when (compile load eval)
@@ -900,13 +900,13 @@
 (defvar *handler-clusters* nil)
 
 (defmacro handler-bind (bindings &body forms)
-  "(HANDLER-BIND ( {(type handler)}* )  body)
+  _N"(HANDLER-BIND ( {(type handler)}* )  body)
    Executes body in a dynamic context where the given handler bindings are
    in effect.  Each handler must take the condition being signalled as an
    argument.  The bindings are searched first to last in the event of a
    signalled condition."
   (unless (every #'(lambda (x) (and (listp x) (= (length x) 2))) bindings)
-    (simple-program-error "Ill-formed handler bindings."))
+    (simple-program-error _"Ill-formed handler bindings."))
   `(let ((*handler-clusters*
 	  (cons (list ,@(mapcar #'(lambda (x) `(cons ',(car x) ,(cadr x)))
 				bindings))
@@ -942,7 +942,7 @@
 (define-condition simple-style-warning (simple-condition style-warning) ())
 
 (defun print-simple-error (condition stream)
-  (format stream "~&~@<Error in function ~S:  ~3i~:_~?~:>"
+  (format stream _"~&~@<Error in function ~S:  ~3i~:_~?~:>"
 	  (condition-function-name condition)
 	  (simple-condition-format-control condition)
 	  (simple-condition-format-arguments condition)))
@@ -959,21 +959,21 @@
   ()
   (:report (lambda (condition stream)
 	     (declare (ignore condition))
-	     (format stream "Control stack overflow"))))
+	     (format stream _"Control stack overflow"))))
 
 #+heap-overflow-check
 (define-condition heap-overflow (storage-condition)
   ()
   (:report (lambda (condition stream)
 	     (declare (ignore condition))
-	     (format stream "Heap (dynamic space) overflow"))))
+	     (format stream _"Heap (dynamic space) overflow"))))
 
 (define-condition type-error (error)
   ((datum :reader type-error-datum :initarg :datum)
    (expected-type :reader type-error-expected-type :initarg :expected-type))
   (:report
    (lambda (condition stream)
-     (format stream "~@<Type-error in ~S:  ~3i~:_~S is not of type ~S~:>"
+     (format stream _"~@<Type-error in ~S:  ~3i~:_~S is not of type ~S~:>"
 	     (condition-function-name condition)
 	     (type-error-datum condition)
 	     (type-error-expected-type condition)))))
@@ -984,7 +984,7 @@
   ()
   (:report
    (lambda (condition stream)
-     (format stream "Layout-invalid error in ~S:~@
+     (format stream _"Layout-invalid error in ~S:~@
 		     Type test of class ~S was passed obsolete instance:~%  ~S"
 	     (condition-function-name condition)
 	     (kernel:class-proper-name (type-error-expected-type condition))
@@ -995,7 +995,7 @@
    (possibilities :reader case-failure-possibilities :initarg :possibilities))
   (:report
     (lambda (condition stream)
-      (format stream "~@<~S fell through ~S expression.  ~:_Wanted one of ~:S.~:>"
+      (format stream _"~@<~S fell through ~S expression.  ~:_Wanted one of ~:S.~:>"
 	      (type-error-datum condition)
 	      (case-failure-name condition)
 	      (case-failure-possibilities condition)))))
@@ -1058,7 +1058,7 @@
 (define-condition end-of-file (stream-error) ()
   (:report
    (lambda (condition stream)
-     (format stream "End-of-File on ~S"
+     (format stream _"End-of-File on ~S"
 	     (stream-error-stream condition)))))
 
 (define-condition file-error (error)
@@ -1073,7 +1073,7 @@
 (define-condition simple-file-error (simple-condition file-error) ()
   (:report
    (lambda (condition stream)
-     (format stream "~&~@<File-error in function ~S:  ~3i~:_~?~:>"
+     (format stream _"~&~@<File-error in function ~S:  ~3i~:_~?~:>"
 	     (condition-function-name condition)
 	     (simple-condition-format-control condition)
 	     (simple-condition-format-arguments condition)))))
@@ -1088,7 +1088,7 @@
   (:report
    (lambda (condition stream)
      (format stream
-	     "Error in ~S:  the variable ~S is unbound."
+	     _"Error in ~S:  the variable ~S is unbound."
 	     (condition-function-name condition)
 	     (cell-error-name condition)))))
   
@@ -1096,7 +1096,7 @@
   (:report
    (lambda (condition stream)
      (format stream
-	     "Error in ~S:  the function ~S is undefined."
+	     _"Error in ~S:  the function ~S is undefined."
 	     (condition-function-name condition)
 	     (cell-error-name condition)))))
 
@@ -1106,7 +1106,7 @@
 (define-condition constant-modified (reference-condition warning)
   ((function-name :initarg :function-name :reader constant-modified-function-name))
   (:report (lambda (c s)
-             (format s "~@<Destructive function ~S called on ~
+             (format s _"~@<Destructive function ~S called on ~
                          constant data.~@:>"
                      (constant-modified-function-name c))
 	     (print-references (reference-condition-references c) s)))
@@ -1117,10 +1117,10 @@
 	      :initform nil)
    (operands :reader arithmetic-error-operands :initarg :operands))
   (:report (lambda (condition stream)
-	     (format stream "Arithmetic error ~S signalled."
+	     (format stream _"Arithmetic error ~S signalled."
 		     (type-of condition))
 	     (when (arithmetic-error-operation condition)
-	       (format stream "~%Operation was ~S, operands ~S."
+	       (format stream _"~%Operation was ~S, operands ~S."
 		       (arithmetic-error-operation condition)
 		       (arithmetic-error-operands condition))))))
 
@@ -1143,7 +1143,7 @@
 ;;; in closing over tags.  The previous version sets up unique run-time tags.
 ;;;
 (defmacro handler-case (form &rest cases)
-  "(HANDLER-CASE form
+  _N"(HANDLER-CASE form
    { (type ([var]) body) }* )
    Executes form in a context with handlers established for the condition
    types.  A peculiar property allows type to be :no-error.  If such a clause
@@ -1195,7 +1195,7 @@
 		     annotated-cases))))))))
 
 (defmacro ignore-errors (&rest forms)
-  "Executes forms after establishing a handler for all error conditions that
+  _N"Executes forms after establishing a handler for all error conditions that
    returns from this form nil and the condition signalled."
   `(handler-case (progn , at forms)
      (error (condition) (values nil condition))))
@@ -1212,14 +1212,14 @@
 ;;; not tranfer control dynamically.  This could happen with RESTART-BIND.
 ;;;
 (defun abort (&optional condition)
-  "Transfers control to a restart named abort, signalling a control-error if
+  _N"Transfers control to a restart named abort, signalling a control-error if
    none exists."
   (invoke-restart (find-restart 'abort condition))
   (error 'abort-failure))
 
 
 (defun muffle-warning (&optional condition)
-  "Transfers control to a restart named muffle-warning, signalling a
+  _N"Transfers control to a restart named muffle-warning, signalling a
    control-error if none exists."
   (invoke-restart (find-restart 'muffle-warning condition)))
 
@@ -1235,12 +1235,12 @@
 	 (invoke-restart restart , at args)))))
 
 (define-nil-returning-restart continue ()
-  "Transfer control to a restart named continue, returning nil if none exists.")
+  _N"Transfer control to a restart named continue, returning nil if none exists.")
 
 (define-nil-returning-restart store-value (value)
-  "Transfer control and value to a restart named store-value, returning nil if
+  _N"Transfer control and value to a restart named store-value, returning nil if
    none exists.")
 
 (define-nil-returning-restart use-value (value)
-  "Transfer control and value to a restart named use-value, returning nil if
+  _N"Transfer control and value to a restart named use-value, returning nil if
    none exists.")
Index: src/code/eval.lisp
diff -u src/code/eval.lisp:1.45.12.1 src/code/eval.lisp:1.45.12.2
--- src/code/eval.lisp:1.45.12.1	Mon Feb  8 12:15:47 2010
+++ src/code/eval.lisp	Tue Feb  9 10:18:21 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.1 2010-02-08 17:15:47 rtoy Exp $")
+  "$Header: /project/cmucl/cvsroot/src/code/eval.lisp,v 1.45.12.2 2010-02-09 15:18:21 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -65,20 +65,20 @@
 (defconstant lambda-list-keywords
   '(&optional &rest &key &aux &body &whole &allow-other-keys &environment
     &parse-body c:&more)
-  "Keywords that you can put in a lambda-list, supposing you should want
+  _N"Keywords that you can put in a lambda-list, supposing you should want
   to do such a thing.")
 
 (defconstant call-arguments-limit most-positive-fixnum
-  "The exclusive upper bound on the number of arguments which may be passed
+  _N"The exclusive upper bound on the number of arguments which may be passed
   to a function, including rest args.")
 
 (defconstant lambda-parameters-limit most-positive-fixnum
-  "The exclusive upper bound on the number of parameters which may be specifed
+  _N"The exclusive upper bound on the number of parameters which may be specifed
   in a given lambda list.  This is actually the limit on required and optional
   parameters.  With &key and &aux you can get more.")
 
 (defconstant multiple-values-limit most-positive-fixnum
-  "The exclusive upper bound on the number of multiple-values that you can
+  _N"The exclusive upper bound on the number of multiple-values that you can
   have.")
 
 
@@ -140,7 +140,7 @@
 (declaim (type (member :warn t nil) *top-level-auto-declare*))
 
 (defvar *top-level-auto-declare* :warn
-  "This variable controls whether assignments to unknown variables at top-level
+  _N"This variable controls whether assignments to unknown variables at top-level
    (or in any other call to EVAL of SETQ) will implicitly declare the variable
    SPECIAL.  These values are meaningful:
      :WARN  -- Print a warning, but declare the variable special (the default.)
@@ -153,7 +153,7 @@
 ;;;    Pick off a few easy cases, and call INTERNAL-EVAL for the rest.
 ;;;
 (defun eval (original-exp)
-  "Evaluates its single arg in a null lexical environment, returns the
+  _N"Evaluates its single arg in a null lexical environment, returns the
   result or results."
   (declare (optimize (safety 1)))
   (let ((exp (macroexpand original-exp)))
@@ -173,7 +173,7 @@
 	   (function
 	    (unless (= args 1)
 	      (error 'simple-program-error
-		     :format-control "Wrong number of args to FUNCTION:~% ~S."
+		     :format-control _"Wrong number of args to FUNCTION:~% ~S."
 		     :format-arguments (list exp)))
 	    (let ((name (second exp)))
 	      (cond ((consp name)
@@ -184,27 +184,27 @@
 		     (error 'simple-type-error
 			    :datum name
 			    :expected-type '(not (satisfies macro-function))
-			    :format-control "~S is a macro."
+			    :format-control _"~S is a macro."
 			    :format-arguments (list name)))
 		    ((special-operator-p name)
 		     (error 'simple-type-error
 			    :datum name
 			    :expected-type '(not
 					     (satisfies special-operator-p))
-			    :format-control "~S is a special operator."
+			    :format-control _"~S is a special operator."
 			    :format-arguments (list name)))
 		    (t
 		     (fdefinition name)))))
 	   (quote
 	    (unless (= args 1)
 	      (error 'simple-program-error
-		     :format-control "Wrong number of args to QUOTE:~% ~S."
+		     :format-control _"Wrong number of args to QUOTE:~% ~S."
 		     :format-arguments (list exp)))
 	    (second exp))
 	   (setq
 	    (unless (evenp args)
 	      (error 'simple-program-error
-		     :format-control "Odd number of args to SETQ:~% ~S."
+		     :format-control _"Odd number of args to SETQ:~% ~S."
 		     :format-arguments (list exp)))
 	    (unless (zerop args)
 	      (do ((name (cdr exp) (cddr name)))
@@ -221,7 +221,7 @@
 		    (:global
 		     (case *top-level-auto-declare*
 		       (:warn
-			(warn "Declaring ~S special." symbol))
+			(warn _"Declaring ~S special." symbol))
 		       ((t))
 		       ((nil)
 			(return (eval:internal-eval original-exp))))
@@ -243,7 +243,7 @@
 			  situations)))
 		(when (or (not (listp situations))
 			  bad-situations)
-		  (warn "Bad Eval-When situation list: ~S." bad-situations))))
+		  (warn _"Bad Eval-When situation list: ~S." bad-situations))))
 	    (if (and (> args 0)
 		     (or (member 'eval (second exp))
 			 (member :execute (second exp))))
@@ -269,13 +269,13 @@
 (declaim (notinline eval:internal-eval))
 (defun eval:internal-eval (form &optional quietly env)
   (declare (ignore quietly env))
-  (error "Attempt to evaluation a complex expression:~%     ~S~@
+  (error _"Attempt to evaluation a complex expression:~%     ~S~@
 	  This expression must be compiled, but the compiler is not loaded."
 	 form))
 ;;;
 (declaim (notinline eval:make-interpreted-function))
 (defun eval:make-interpreted-function (x)
-  (error "EVAL called on #'(lambda (x) ...) when the compiler isn't loaded:~
+  (error _"EVAL called on #'(lambda (x) ...) when the compiler isn't loaded:~
 	  ~%     ~S~%"
 	 x))
 
@@ -286,7 +286,7 @@
 ;;; compiled with COMPILE.  If that fails, check for an inline expansion.
 ;;;
 (defun function-lambda-expression (fun)
-  "Given a function, return three values:
+  _N"Given a function, return three values:
    1] A lambda expression that could be used to define the function, or NIL if
       the definition isn't available.
    2] NIL if the function was definitely defined in a null lexical environment,
@@ -330,12 +330,12 @@
 ;;;; Syntactic environment access:
 
 (defun special-operator-p (symbol)
-  "If the symbol globally names a special form, returns T, otherwise NIL."
+  _N"If the symbol globally names a special form, returns T, otherwise NIL."
   (declare (symbol symbol))
   (eq (info function kind symbol) :special-form))
 
 (defvar *macroexpand-hook* 'funcall
-  "The value of this variable must be a function that can take three
+  _N"The value of this variable must be a function that can take three
   arguments, a macro expander function, the macro form to be expanded,
   and the lexical environment to expand in.  The function should
   return the expanded form.  This function is called by MACROEXPAND-1
@@ -355,7 +355,7 @@
 ;;; it again.
 ;;; 
 (defun invoke-macroexpand-hook (fun form env)
-  "Invoke *MACROEXPAND-HOOK* on FUN, FORM, and ENV after coercing it to
+  _N"Invoke *MACROEXPAND-HOOK* on FUN, FORM, and ENV after coercing it to
    a function."
   (unless (functionp *macroexpand-hook*)
     (setf *macroexpand-hook*
@@ -363,7 +363,7 @@
   (funcall *macroexpand-hook* fun form env))
 
 (defun macro-function (symbol &optional env)
-  "If SYMBOL names a macro in ENV, returns the expansion function,
+  _N"If SYMBOL names a macro in ENV, returns the expansion function,
    else returns NIL.  If ENV is unspecified or NIL, use the global
    environment only."
   (declare (symbol symbol))
@@ -387,7 +387,7 @@
   (declare (symbol symbol) (type function function))
 
   (when (eq (info function kind symbol) :special-form)
-    (error "~S names a special form." symbol))
+    (error _"~S names a special form." symbol))
 
   (setf (info function kind symbol) :macro)
   (setf (info function macro-function symbol) function)
@@ -395,7 +395,7 @@
 	#'(lambda (&rest args) (declare (ignore args))
 	    (error 'simple-undefined-function
 		   :name symbol
-		   :format-control "Cannot funcall macro functions.")))
+		   :format-control _"Cannot funcall macro functions.")))
   function)
 
 ;;; Macroexpand-1  --  Public
@@ -403,7 +403,7 @@
 ;;;    The Env is a LEXENV or NIL (the null environment.)
 ;;;
 (defun macroexpand-1 (form &optional env)
-  "If form is a macro (or symbol macro), expands it once.  Returns two values,
+  _N"If form is a macro (or symbol macro), expands it once.  Returns two values,
    the expanded form and a T-or-NIL flag indicating whether the form was, in
    fact, a macro.  Env is the lexical environment to expand in, which defaults
    to the null environment."
@@ -427,7 +427,7 @@
 	 (values form nil))))
 
 (defun macroexpand (form &optional env)
-  "Repetitively call MACROEXPAND-1 until the form can no longer be expanded.
+  _N"Repetitively call MACROEXPAND-1 until the form can no longer be expanded.
    Returns the final resultant form, and T if it was expanded.  ENV is the
    lexical environment to expand in, or NIL (the default) for the null
    environment."
@@ -441,7 +441,7 @@
     (frob form nil)))
 
 (defun compiler-macro-function (name &optional env)
-  "If NAME names a compiler-macro, returns the expansion function,
+  _N"If NAME names a compiler-macro, returns the expansion function,
    else returns NIL.  Note: if the name is shadowed in ENV by a local
    definition, or declared NOTINLINE, NIL is returned.  Can be
    set with SETF."
@@ -460,7 +460,7 @@
   (declare (type (or symbol list) name)
 	   (type (or function null) function))
   (when (eq (info function kind name) :special-form)
-    (error "~S names a special form." name))
+    (error _"~S names a special form." name))
   (setf (info function compiler-macro-function name) function)
   function)
 
@@ -469,7 +469,7 @@
 ;;; trying to debug his compiler macros.
 
 (defun compiler-macroexpand-1 (form &optional env)
-  "If FORM is a function call for which a compiler-macro has been defined,
+  _N"If FORM is a function call for which a compiler-macro has been defined,
    invoke the expander function using *macroexpand-hook* and return the
    results and T.  Otherwise, return the original form and NIL."
   (let ((fun (and (consp form) (compiler-macro-function (car form) env))))
@@ -479,7 +479,7 @@
 	(values form nil))))
 
 (defun compiler-macroexpand (form &optional env)
-  "Repetitively call COMPILER-MACROEXPAND-1 until the form can no longer be
+  _N"Repetitively call COMPILER-MACROEXPAND-1 until the form can no longer be
    expanded.  ENV is the lexical environment to expand in, or NIL (the
    default) for the null environment."
   (labels ((frob (form expanded)
@@ -492,7 +492,7 @@
     (frob form env)))
 
 (defun constantp (object &optional environment)
-  "True of any Lisp object that has a constant value: types that eval to
+  _N"True of any Lisp object that has a constant value: types that eval to
   themselves, keywords, constants, and list whose car is QUOTE."
   (declare (ignore environment))
   (typecase object
@@ -509,7 +509,7 @@
 ;;; Function invocation:
 
 (defun apply (function arg &rest args)
-  "Applies FUNCTION to a list of arguments produced by evaluating ARGS in
+  _N"Applies FUNCTION to a list of arguments produced by evaluating ARGS in
   the manner of LIST*.  That is, a list is made of the values of all but the
   last argument, appended to the value of the last argument, which must be a
   list."
@@ -525,7 +525,7 @@
 
 
 (defun funcall (function &rest arguments)
-  "Calls Function with the given Arguments."
+  _N"Calls Function with the given Arguments."
   (apply function arguments))
 
 
@@ -533,9 +533,9 @@
 ;;; Multiple-Value forms:
 
 (defun values (&rest values)
-  "Returns all of its arguments, in order, as values."
+  _N"Returns all of its arguments, in order, as values."
   (values-list values))
 
 (defun values-list (list)
-  "Returns all of the elements of List, in order, as values."
+  _N"Returns all of the elements of List, in order, as values."
   (values-list list))
Index: src/code/extensions.lisp
diff -u src/code/extensions.lisp:1.28.42.1 src/code/extensions.lisp:1.28.42.2
--- src/code/extensions.lisp:1.28.42.1	Mon Feb  8 12:15:47 2010
+++ src/code/extensions.lisp	Tue Feb  9 10:18:21 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/extensions.lisp,v 1.28.42.1 2010-02-08 17:15:47 rtoy Exp $")
+  "$Header: /project/cmucl/cvsroot/src/code/extensions.lisp,v 1.28.42.2 2010-02-09 15:18:21 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -40,20 +40,20 @@
 ;;;
 (declaim (ftype (function () nil) required-argument))
 (defun required-argument ()
-  "This function can be used as the default value for keyword arguments that
+  _N"This function can be used as the default value for keyword arguments that
   must be always be supplied.  Since it is known by the compiler to never
   return, it will avoid any compile-time type warnings that would result from a
   default value inconsistent with the declared type.  When this function is
   called, it signals an error indicating that a required keyword argument was
   not supplied.  This function is also useful for DEFSTRUCT slot defaults
   corresponding to required arguments."
-  (error "A required keyword argument was not supplied."))
+  (error _"A required keyword argument was not supplied."))
 
 
 ;;; FILE-COMMENT  --  Public
 ;;;
 (defmacro file-comment (string)
-  "FILE-COMMENT String
+  _N"FILE-COMMENT String
   When COMPILE-FILE sees this form at top-level, it places the constant string
   in the run-time source location information.  DESCRIBE will print the file
   comment for the file that a function was defined in.  The string is also
@@ -70,7 +70,7 @@
 
   
 (defun listen-skip-whitespace (&optional (stream *standard-input*))
-  "See listen.  Any whitespace in the input stream will be flushed."
+  _N"See listen.  Any whitespace in the input stream will be flushed."
   (do ((char (read-char-no-hang stream nil nil nil)
 	     (read-char-no-hang stream nil nil nil)))
       ((null char) nil)
@@ -81,7 +81,7 @@
 ;;; These macros waste time as opposed to space.
 
 (defmacro letf* (bindings &body body &environment env)
-  "Does what one might expect, saving the old values and setting the generalized
+  _N"Does what one might expect, saving the old values and setting the generalized
   variables to the new values in sequence.  Unwind-protects and get-setf-method
   are used to preserve the semantics one might expect in analogy to let*,
   and the once-only evaluation of subforms."
@@ -103,7 +103,7 @@
 
 
 (defmacro letf (bindings &body body &environment env)
-  "Like letf*, but evaluates all the implicit subforms and new values of all
+  _N"Like letf*, but evaluates all the implicit subforms and new values of all
   the implied setfs before altering any values.  However, the store forms
   (see get-setf-method) must still be evaluated in sequence.  Uses unwind-
   protects to protect the environment."
@@ -151,7 +151,7 @@
 ;;; the indentation of a stream.
 
 (defmacro indenting-further (stream more &rest body)
-  "Causes the output of the indenting Stream to indent More spaces.  More is
+  _N"Causes the output of the indenting Stream to indent More spaces.  More is
   evaluated twice."
   `(unwind-protect
      (progn
@@ -175,7 +175,7 @@
 
 
 (defmacro dovector ((elt vector &optional default) &rest forms)
-  "Just like dolist, but with one-dimensional arrays."
+  _N"Just like dolist, but with one-dimensional arrays."
   (let ((index (gensym))
 	(length (gensym))
 	(vec (gensym)))
@@ -201,7 +201,7 @@
 ;;;    The ultimate iteration macro...
 ;;;
 (defmacro iterate (name binds &body body)
-  "Iterate Name ({(Var Initial-Value)}*) Declaration* Form*
+  _N"Iterate Name ({(Var Initial-Value)}*) Declaration* Form*
   This is syntactic sugar for Labels.  It creates a local function Name with
   the specified Vars as its arguments and the Declarations and Forms as its
   body.  This function is then called with the Initial-Values, and the result
@@ -209,7 +209,7 @@
   (dolist (x binds)
     (unless (and (listp x)
 		 (= (length x) 2))
-      (error "Malformed iterate variable spec: ~S." x)))
+      (error _"Malformed iterate variable spec: ~S." x)))
   
   `(labels ((,name ,(mapcar #'first binds) , at body))
      (,name ,@(mapcar #'second binds))))
@@ -253,7 +253,7 @@
 ;;;    The ultimate collection macro...
 ;;;
 (defmacro collect (collections &body body)
-  "Collect ({(Name [Initial-Value] [Function])}*) {Form}*
+  _N"Collect ({(Name [Initial-Value] [Function])}*) {Form}*
   Collect some values somehow.  Each of the collections specifies a bunch of
   things which collected during the evaluation of the body of the form.  The
   name of the collection is used to define a local macro, a la MACROLET.
@@ -276,7 +276,7 @@
 	(binds ()))
     (dolist (spec collections)
       (unless (<= 1 (length spec) 3)
-	(error "Malformed collection specifier: ~S." spec))
+	(error _"Malformed collection specifier: ~S." spec))
       (let ((n-value (gensym))
 	    (name (first spec))
 	    (default (second spec))
@@ -305,7 +305,7 @@
 ;;; forms are only evaluated once.
 ;;;
 (defmacro once-only (specs &body body)
-  "Once-Only ({(Var Value-Expression)}*) Form*
+  _N"Once-Only ({(Var Value-Expression)}*) Form*
   Create a Let* which evaluates each Value-Expression, binding a temporary
   variable to the result, and wrapping the Let* around the result of the
   evaluation of Body.  Within the body, each Var is bound to the corresponding
@@ -317,7 +317,7 @@
 	`(progn , at body)
 	(let ((spec (first specs)))
 	  (when (/= (length spec) 2)
-	    (error "Malformed Once-Only binding spec: ~S." spec))
+	    (error _"Malformed Once-Only binding spec: ~S." spec))
 	  (let ((name (first spec))
 		(exp-temp (gensym)))
 	    `(let ((,exp-temp ,(second spec))
@@ -338,20 +338,20 @@
 	 (l2 (gensym)))
     ;; Check for illegal old-style do.
     (when (or (not (listp varlist)) (atom endlist))
-      (error "Ill-formed ~S -- possibly illegal old style DO?" name))
+      (error _"Ill-formed ~S -- possibly illegal old style DO?" name))
     ;; Parse the varlist to get inits and steps.
     (dolist (v varlist)
       (cond ((symbolp v) (push v inits))
 	    ((listp v)
 	     (unless (symbolp (first v))
-	       (error "~S step variable is not a symbol: ~S" name (first v)))
+	       (error _"~S step variable is not a symbol: ~S" name (first v)))
 	     (case (length v)
 	       (1 (push (first v) inits))
 	       (2 (push v inits))
 	       (3 (push (list (first v) (second v)) inits)
 		  (setq steps (list* (third v) (first v) steps)))
-	       (t (error "~S is an illegal form for a ~S varlist." v name))))
-	    (t (error "~S is an illegal form for a ~S varlist." v name))))
+	       (t (error _"~S is an illegal form for a ~S varlist." v name))))
+	    (t (error _"~S is an illegal form for a ~S varlist." v name))))
     ;; And finally construct the new form.
     `(block ,BLOCK
        (,bind ,(nreverse inits)
@@ -367,7 +367,7 @@
 
 
 (defmacro do-anonymous (varlist endlist &parse-body (body decls))
-  "DO-ANONYMOUS ({(Var [Init] [Step])}*) (Test Exit-Form*) Declaration* Form*
+  _N"DO-ANONYMOUS ({(Var [Init] [Step])}*) (Test Exit-Form*) Declaration* Form*
   Like DO, but has no implicit NIL block.  Each Var is initialized in parallel
   to the value of the specified Init form.  On subsequent iterations, the Vars
   are assigned the value of the Step form (if any) in paralell.  The Test is
@@ -379,7 +379,7 @@
 
 (defmacro do-hash ((key-var value-var table &optional result)
 		   &parse-body (body decls))
-  "DO-HASH (Key-Var Value-Var Table [Result]) Declaration* Form*
+  _N"DO-HASH (Key-Var Value-Var Table [Result]) Declaration* Form*
    Iterate over the entries in a hash-table."
   (let ((gen (gensym))
 	(n-more (gensym)))
@@ -405,7 +405,7 @@
 (defmacro define-hash-cache (name args &key hash-function hash-bits default
 				  (init-form 'progn)
 				  (values 1))
-  "DEFINE-HASH-CACHE Name ({(Arg-Name Test-Function)}*) {Key Value}*
+  _N"DEFINE-HASH-CACHE Name ({(Arg-Name Test-Function)}*) {Key Value}*
   Define a hash cache that associates some number of argument values to a
   result value.  The Test-Function paired with each Arg-Name is used to compare
   the value for that arg in a cache entry with a supplied arg.  The
@@ -458,7 +458,7 @@
 	 (n-cache (gensym)))
 
     (unless (= (length default-values) values)
-      (error "Number of default values ~S differs from :VALUES ~D."
+      (error _"Number of default values ~S differs from :VALUES ~D."
 	     default values))
 
     (collect ((inlines)
@@ -476,7 +476,7 @@
       (let ((n 0))
 	(dolist (arg args)
 	  (unless (= (length arg) 2)
-	    (error "Bad arg spec: ~S." arg))
+	    (error _"Bad arg spec: ~S." arg))
 	  (let ((arg-name (first arg))
 		(test (second arg)))
 	    (arg-vars arg-name)
@@ -579,7 +579,7 @@
 (defmacro defun-cached ((name &rest options &key (values 1) default
 			      &allow-other-keys)
 			args &parse-body (body decls doc))
-  "DEFUN-CACHED (Name {Key Value}*) ({(Arg-Name Test-Function)}*) Form*
+  _N"DEFUN-CACHED (Name {Key Value}*) ({(Arg-Name Test-Function)}*) Form*
   Some syntactic sugar for defining a function whose values are cached by
   DEFINE-HASH-CACHE."
   (let ((default-values (if (and (consp default) (eq (car default) 'values))
@@ -609,6 +609,6 @@
 ;;; CACHE-HASH-EQ  -- Public
 ;;;
 (defmacro cache-hash-eq (x)
-  "Return an EQ hash of X.  The value of this hash for any given object can (of
+  _N"Return an EQ hash of X.  The value of this hash for any given object can (of
   course) change at arbitary times."
   `(lisp::pointer-hash ,x))
Index: src/code/extfmts.lisp
diff -u src/code/extfmts.lisp:1.20.4.1 src/code/extfmts.lisp:1.20.4.2
--- src/code/extfmts.lisp:1.20.4.1	Mon Feb  8 12:15:47 2010
+++ src/code/extfmts.lisp	Tue Feb  9 10:18:21 2010
@@ -5,7 +5,7 @@
 ;;; domain.
 ;;; 
 (ext:file-comment
- "$Header: /project/cmucl/cvsroot/src/code/extfmts.lisp,v 1.20.4.1 2010-02-08 17:15:47 rtoy Exp $")
+ "$Header: /project/cmucl/cvsroot/src/code/extfmts.lisp,v 1.20.4.2 2010-02-09 15:18:21 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -46,7 +46,7 @@
   (:report
     (lambda (condition stream)
       (declare (ignore condition))
-      (format stream "Attempting unimplemented external-format I/O."))))
+      (format stream _"Attempting unimplemented external-format I/O."))))
 
 (defun %efni (a b c d)
   (declare (ignore a b c d))
@@ -189,7 +189,7 @@
 				       &optional octets-to-code code-to-octets
 				       flush-state copy-state)
   (when (and (oddp (length args)) (not (= (length args) 1)))
-    (warn "Nonsensical argument (~S) to DEFINE-EXTERNAL-FORMAT." args))
+    (warn _"Nonsensical argument (~S) to DEFINE-EXTERNAL-FORMAT." args))
   (let* ((tmp (gensym))
 	 (min (if (evenp (length args))
 		  (or (getf args :min) (getf args :size) 1)
@@ -331,12 +331,12 @@
 	     (value (read stm nil stm) (read stm nil stm)))
 	    ((or (eq alias stm) (eq value stm))
 	     (unless (eq alias stm)
-	       (warn "External-format aliases file ends early.")))
+	       (warn _"External-format aliases file ends early.")))
 	  (if (and (keywordp alias) (or (keywordp value)
 					(and (consp value)
 					     (every #'keywordp value))))
 	      (setf (gethash alias *external-format-aliases*) value)
-	      (warn "Bad entry in external-format aliases file: ~S => ~S."
+	      (warn _"Bad entry in external-format aliases file: ~S => ~S."
 		    alias value)))))))
 
 (defun %find-external-format (name)
@@ -357,7 +357,7 @@
        (cnt 0 (1+ cnt)))
       ((or (null tmp) (= cnt 50))
        (unless (null tmp)
-         (error "External-format aliasing depth exceeded.")))
+         (error _"External-format aliasing depth exceeded.")))
     (setq name tmp))
 
   (or (gethash name *external-formats*)
@@ -375,9 +375,9 @@
 
 (defun %compose-external-formats (a b)
   (when (ef-composingp a)
-    (error "~S is a Composing-External-Format." (ef-name a)))
+    (error _"~S is a Composing-External-Format." (ef-name a)))
   (unless (ef-composingp b)
-    (error "~S is not a Composing-External-Format." (ef-name b)))
+    (error _"~S is not a Composing-External-Format." (ef-name b)))
   (make-external-format
    (%composed-ef-name (ef-name a) (ef-name b))
    (make-efx
@@ -409,7 +409,7 @@
     (return-from find-external-format name))
 
   (or (if (consp name) (every #'keywordp name) (keywordp name))
-      (error "~S is not a valid external format name." name))
+      (error _"~S is not a valid external format name." name))
 
   (when (eq name :default)
     (setq name *default-external-format*))
@@ -420,7 +420,7 @@
   (flet ((not-found ()
 	   (when (equal *default-external-format* name)
 	     (setq *default-external-format* :iso8859-1))
-	   (if error-p (error "External format ~S not found." name) nil)))
+	   (if error-p (error _"External format ~S not found." name) nil)))
     (if (consp name)
 	(let ((efs (mapcar #'%find-external-format name)))
 	  (if (member nil efs)
@@ -507,7 +507,7 @@
   (:report
     (lambda (condition stream)
       (declare (ignore condition))
-      (format stream "Attempting I/O through void external-format."))))
+      (format stream _"Attempting I/O through void external-format."))))
 
 (define-external-format :void (:size 0) ()
   (octets-to-code (state input unput)
@@ -680,7 +680,7 @@
 
 (defun string-to-octets (string &key (start 0) end (external-format :default)
 				     (buffer nil bufferp))
-  "Convert String to octets using the specified External-format.  The
+  _N"Convert String to octets using the specified External-format.  The
    string is bounded by Start (defaulting to 0) and End (defaulting to
    the end of the string.  If Buffer is given, the octets are stored
    there.  If not, a new buffer is created."
@@ -720,7 +720,7 @@
 				     (string nil stringp)
 			             (s-start 0) (s-end nil s-end-p)
 			             (state nil))
-  "Octets-to-string converts an array of octets in Octets to a string
+  _N"Octets-to-string converts an array of octets in Octets to a string
   according to the specified External-format.  The array of octets is
   bounded by Start (defaulting ot 0) and End (defaulting to the end of
   the array.  If String is not given, a new string is created.  If
@@ -770,7 +770,7 @@
 			     (code-char b)))))))
 
 (defun string-encode (string external-format &optional (start 0) end)
-  "Encode the given String using External-Format and return a new
+  _N"Encode the given String using External-Format and return a new
   string.  The characters of the new string are the octets of the
   encoded result, with each octet converted to a character via
   code-char.  This is the inverse to String-Decode"
@@ -803,7 +803,7 @@
 	finally (return (values result (1+ pos))))))
 
 (defun string-decode (string external-format &optional (start 0) end)
-  "Decode String using the given External-Format and return the new
+  _N"Decode String using the given External-Format and return the new
   string.  The input string is treated as if it were an array of
   octets, where the char-code of each character is the octet.  This is
   the inverse of String-Encode."
@@ -817,7 +817,7 @@
 
 
 (defun set-system-external-format (terminal &optional filenames)
-  "Change the external format of the standard streams to Terminal.
+  _N"Change the external format of the standard streams to Terminal.
   The standard streams are sys::*stdin*, sys::*stdout*, and
   sys::*stderr*, which are normally the input and/or output streams
   for *standard-input* and *standard-output*.  Also sets sys::*tty*
@@ -825,7 +825,7 @@
   optional argument Filenames is gvien, then the filename encoding is
   set to the specified format."
   (unless (find-external-format terminal)
-    (error "Can't find external-format ~S." terminal))
+    (error _"Can't find external-format ~S." terminal))
   (setf (stream-external-format sys:*stdin*) terminal
 	(stream-external-format sys:*stdout*) terminal
 	(stream-external-format sys:*stderr*) terminal)
@@ -833,11 +833,11 @@
     (setf (stream-external-format sys:*tty*) terminal))
   (when filenames
     (unless (find-external-format filenames)
-      (error "Can't find external-format ~S." filenames))
+      (error _"Can't find external-format ~S." filenames))
     (when (and unix::*filename-encoding*
 	       (not (eq unix::*filename-encoding* filenames)))
-      (cerror "Change it anyway."
-	      "The external-format for encoding filenames is already set.")
+      (cerror _"Change it anyway."
+	      _"The external-format for encoding filenames is already set.")
       (setq unix::*filename-encoding* filenames)))
   t)
 
Index: src/i18n/locale/cmucl.pot
diff -u src/i18n/locale/cmucl.pot:1.1.2.4 src/i18n/locale/cmucl.pot:1.1.2.5
--- src/i18n/locale/cmucl.pot:1.1.2.4	Tue Feb  9 09:56:38 2010
+++ src/i18n/locale/cmucl.pot	Tue Feb  9 10:18:21 2010
@@ -73,6 +73,319 @@
 msgid "_@ is a reserved reader macro prefix."
 msgstr ""
 
+#: target:code/error.lisp
+msgid "&rest keyword is ~:[missing~;misplaced~]."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Return a list of all the currently active restarts ordered from most\n"
+"   recently established to less recently established.  If Condition is\n"
+"   specified, then only restarts associated with Condition (or with no\n"
+"   condition) will be returned."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Returns the name of the given restart object."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"WITH-CONDITION-RESTARTS Condition-Form Restarts-Form Form*\n"
+"   Evaluates the Forms in a dynamic environment where the restarts in the "
+"list\n"
+"   Restarts-Form are associated with the condition returned by Condition-For"
+"m.\n"
+"   This allows FIND-RESTART, etc., to recognize restarts that are not "
+"related\n"
+"   to the error currently being debugged.  See also RESTART-CASE."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Executes forms in a dynamic context where the given restart bindings are\n"
+"   in effect.  Users probably want to use RESTART-CASE.  When clauses "
+"contain\n"
+"   the same restart name, FIND-RESTART will find the first such clause."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Unnamed restart does not have a ~\n"
+"					report function -- ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Returns the first restart named name.  If name is a restart, it is returned\n"
+"   if it is currently active.  If no such restart is found, nil is "
+"returned.\n"
+"   It is an error to supply nil as a name.  If Condition is specified and "
+"not\n"
+"   NIL, then only restarts associated with that condition (or with no\n"
+"   condition) will be returned."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Calls the function associated with the given restart, passing any given\n"
+"   arguments.  If the argument restart is not a restart or a currently "
+"active\n"
+"   non-nil restart name, then a control-error is signalled."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Restart ~S is not active."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Calls the function associated with the given restart, prompting for any\n"
+"   necessary arguments.  If the argument restart is not a restart or a\n"
+"   currently active non-nil restart name, then a control-error is "
+"signalled."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"(RESTART-CASE form\n"
+"   {(case-name arg-list {keyword value}* body)}*)\n"
+"   The form is evaluated in a dynamic context where the clauses have "
+"special\n"
+"   meanings as points to which control may be transferred (see INVOKE-RESTAR"
+"T).\n"
+"   When clauses contain the same case-name, FIND-RESTART will find the "
+"first\n"
+"   such clause.  If Expression is a call to SIGNAL, ERROR, CERROR or WARN "
+"(or\n"
+"   macroexpands into such) then the signalled condition will be associated "
+"with\n"
+"   the new restarts."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"(WITH-SIMPLE-RESTART (restart-name format-string format-arguments)\n"
+"   body)\n"
+"   If restart-name is not invoked, then all values returned by forms are\n"
+"   returned.  If control is transferred to this restart, it immediately\n"
+"   returns the values nil and t."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Condition ~S was signalled."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "No REPORT?  Shouldn't happen!"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Condition slot is not bound: ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Slot ~S of ~S missing."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Make an instance of a condition object using the specified initargs."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~S is not a condition class."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Bad thing for class arg:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Condition already names a declaration: ~S."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"DEFINE-CONDITION Name (Parent-Type*) (Slot-Spec*) Option*\n"
+"   Define NAME as a condition type.  This new type inherits slots and its\n"
+"   report function from the specified PARENT-TYPEs.  A slot spec is either\n"
+"   a symbol denoting the name of the slot, or a list of the form:\n"
+"\n"
+"     (slot-name {slot-option value}*)\n"
+"\n"
+"   where slot-option is one of :READER, :WRITER, :ACCESSOR, :ALLOCATION,\n"
+"   :INITARG, :INITFORM, :DOCUMENTATION, and :TYPE.\n"
+"\n"
+"   Each overall option is of the form\n"
+"\n"
+"     (option-name {value}*)\n"
+"\n"
+"   where option-name is one of :DEFAULT-INITARGS, :DOCUMENTATION,\n"
+"   and :REPORT.\n"
+"\n"
+"   The :REPORT option is peculiar to DEFINE-CONDITION.  Its argument is "
+"either\n"
+"   a string or a two-argument lambda or function name.  If a function, the\n"
+"   function is called with the condition and stream to report the "
+"condition.\n"
+"   If a string, the string is printed.\n"
+"\n"
+"   Condition types are classes, but (as allowed by ANSI and not as described"
+" in\n"
+"   CLtL2) are neither STANDARD-OBJECTs nor STRUCTURE-OBJECTs.  WITH-SLOTS "
+"and\n"
+"   SLOT-VALUE may not be used on condition objects."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Keyword slot name indicates probable syntax error:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Malformed condition slot spec:~%  ~S."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "More than one :INITFORM in:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "More than one slot :DOCUMENTATION in~%  ~s"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Slot :DOCUMENTATION is not a string in~%  ~s"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Unknown slot option:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Bad option:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Unknown option: ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"(HANDLER-BIND ( {(type handler)}* )  body)\n"
+"   Executes body in a dynamic context where the given handler bindings are\n"
+"   in effect.  Each handler must take the condition being signalled as an\n"
+"   argument.  The bindings are searched first to last in the event of a\n"
+"   signalled condition."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Ill-formed handler bindings."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~&~@<Error in function ~S:  ~3i~:_~?~:>"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Control stack overflow"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Heap (dynamic space) overflow"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~@<Type-error in ~S:  ~3i~:_~S is not of type ~S~:>"
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Layout-invalid error in ~S:~@\n"
+"		     Type test of class ~S was passed obsolete instance:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~@<~S fell through ~S expression.  ~:_Wanted one of ~:S.~:>"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "End-of-File on ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~&~@<File-error in function ~S:  ~3i~:_~?~:>"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Error in ~S:  the variable ~S is unbound."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Error in ~S:  the function ~S is undefined."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"~@<Destructive function ~S called on ~\n"
+"                         constant data.~@:>"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Arithmetic error ~S signalled."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~%Operation was ~S, operands ~S."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"(HANDLER-CASE form\n"
+"   { (type ([var]) body) }* )\n"
+"   Executes form in a context with handlers established for the condition\n"
+"   types.  A peculiar property allows type to be :no-error.  If such a "
+"clause\n"
+"   occurs, and form returns normally, all its values are passed to this "
+"clause\n"
+"   as if by MULTIPLE-VALUE-CALL.  The :no-error clause accepts more than "
+"one\n"
+"   var specification."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Executes forms after establishing a handler for all error conditions that\n"
+"   returns from this form nil and the condition signalled."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Transfers control to a restart named abort, signalling a control-error if\n"
+"   none exists."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Transfers control to a restart named muffle-warning, signalling a\n"
+"   control-error if none exists."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Transfer control to a restart named continue, returning nil if none exists."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Transfer control and value to a restart named store-value, returning nil if\n"
+"   none exists."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Transfer control and value to a restart named use-value, returning nil if\n"
+"   none exists."
+msgstr ""
+
 #: target:code/class.lisp
 msgid "Layout for ~S~@[, Invalid=~S~]"
 msgstr ""
@@ -1342,6 +1655,238 @@
 "  NIL if no such character exists."
 msgstr ""
 
+#: target:code/extensions.lisp
+msgid ""
+"This function can be used as the default value for keyword arguments that\n"
+"  must be always be supplied.  Since it is known by the compiler to never\n"
+"  return, it will avoid any compile-time type warnings that would result "
+"from a\n"
+"  default value inconsistent with the declared type.  When this function is\n"
+"  called, it signals an error indicating that a required keyword argument "
+"was\n"
+"  not supplied.  This function is also useful for DEFSTRUCT slot defaults\n"
+"  corresponding to required arguments."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "A required keyword argument was not supplied."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"FILE-COMMENT String\n"
+"  When COMPILE-FILE sees this form at top-level, it places the constant "
+"string\n"
+"  in the run-time source location information.  DESCRIBE will print the "
+"file\n"
+"  comment for the file that a function was defined in.  The string is also\n"
+"  textually present in the FASL, so the RCS \"ident\" command can find it,\n"
+"  etc."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "See listen.  Any whitespace in the input stream will be flushed."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Does what one might expect, saving the old values and setting the generalize"
+"d\n"
+"  variables to the new values in sequence.  Unwind-protects and get-setf-met"
+"hod\n"
+"  are used to preserve the semantics one might expect in analogy to let*,\n"
+"  and the once-only evaluation of subforms."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Like letf*, but evaluates all the implicit subforms and new values of all\n"
+"  the implied setfs before altering any values.  However, the store forms\n"
+"  (see get-setf-method) must still be evaluated in sequence.  Uses unwind-\n"
+"  protects to protect the environment."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Causes the output of the indenting Stream to indent More spaces.  More is\n"
+"  evaluated twice."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Just like dolist, but with one-dimensional arrays."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Iterate Name ({(Var Initial-Value)}*) Declaration* Form*\n"
+"  This is syntactic sugar for Labels.  It creates a local function Name "
+"with\n"
+"  the specified Vars as its arguments and the Declarations and Forms as its\n"
+"  body.  This function is then called with the Initial-Values, and the "
+"result\n"
+"  of the call is return from the macro."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Malformed iterate variable spec: ~S."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Collect ({(Name [Initial-Value] [Function])}*) {Form}*\n"
+"  Collect some values somehow.  Each of the collections specifies a bunch "
+"of\n"
+"  things which collected during the evaluation of the body of the form.  "
+"The\n"
+"  name of the collection is used to define a local macro, a la MACROLET.\n"
+"  Within the body, this macro will evaluate each of its arguments and "
+"collect\n"
+"  the result, returning the current value after the collection is done.  "
+"The\n"
+"  body is evaluated as a PROGN; to get the final values when you are done, "
+"just\n"
+"  call the collection macro with no arguments.\n"
+"\n"
+"  Initial-Value is the value that the collection starts out with, which\n"
+"  defaults to NIL.  Function is the function which does the collection.  It "
+"is\n"
+"  a function which will accept two arguments: the value to be collected and "
+"the\n"
+"  current collection.  The result of the function is made the new value for "
+"the\n"
+"  collection.  As a totally magical special-case, the Function may be "
+"Collect,\n"
+"  which tells us to build a list in forward order; this is the default.  If "
+"an\n"
+"  Initial-Value is supplied for Collect, the stuff will be rplacd'd onto "
+"the\n"
+"  end.  Note that Function may be anything that can appear in the functional"
+"\n"
+"  position, including macros and lambdas."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Malformed collection specifier: ~S."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Once-Only ({(Var Value-Expression)}*) Form*\n"
+"  Create a Let* which evaluates each Value-Expression, binding a temporary\n"
+"  variable to the result, and wrapping the Let* around the result of the\n"
+"  evaluation of Body.  Within the body, each Var is bound to the correspondi"
+"ng\n"
+"  temporary variable."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Malformed Once-Only binding spec: ~S."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Ill-formed ~S -- possibly illegal old style DO?"
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "~S step variable is not a symbol: ~S"
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "~S is an illegal form for a ~S varlist."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"DO-ANONYMOUS ({(Var [Init] [Step])}*) (Test Exit-Form*) Declaration* Form*\n"
+"  Like DO, but has no implicit NIL block.  Each Var is initialized in "
+"parallel\n"
+"  to the value of the specified Init form.  On subsequent iterations, the "
+"Vars\n"
+"  are assigned the value of the Step form (if any) in paralell.  The Test "
+"is\n"
+"  evaluated before each evaluation of the body Forms.  When the Test is "
+"true,\n"
+"  the Exit-Forms are evaluated as a PROGN, with the result being the value\n"
+"  of the DO."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"DO-HASH (Key-Var Value-Var Table [Result]) Declaration* Form*\n"
+"   Iterate over the entries in a hash-table."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"DEFINE-HASH-CACHE Name ({(Arg-Name Test-Function)}*) {Key Value}*\n"
+"  Define a hash cache that associates some number of argument values to a\n"
+"  result value.  The Test-Function paired with each Arg-Name is used to "
+"compare\n"
+"  the value for that arg in a cache entry with a supplied arg.  The\n"
+"  Test-Function must not error when passed NIL as its first arg, but need "
+"not\n"
+"  return any particular value.  Test-Function may be any thing that can be\n"
+"  place in CAR position.\n"
+"\n"
+"  Name is used to define functions these functions:\n"
+"\n"
+"  <name>-CACHE-LOOKUP Arg*\n"
+"      See if there is an entry for the specified Args in the cache.  The if "
+"not\n"
+"      present, the :DEFAULT keyword (default NIL) determines the result(s).\n"
+"\n"
+"  <name>-CACHE-ENTER Arg* Value*\n"
+"      Encache the association of the specified args with Value.\n"
+"\n"
+"  <name>-CACHE-FLUSH-<arg-name> Arg\n"
+"      Flush all entries from the cache that have the value Arg for the "
+"named\n"
+"      arg.\n"
+"\n"
+"  <name>-CACHE-CLEAR\n"
+"      Reinitialize the cache, invalidating all entries and allowing the\n"
+"      arguments and result values to be GC'd.\n"
+"\n"
+"  These other keywords are defined:\n"
+"\n"
+"  :HASH-BITS <n>\n"
+"      The size of the cache as a power of 2.\n"
+"\n"
+"  :HASH-FUNCTION function\n"
+"      Some thing that can be placed in CAR position which will compute a "
+"value\n"
+"      between 0 and (1- (expt 2 <hash-bits>)).\n"
+"\n"
+"  :VALUES <n>\n"
+"      The number of values cached.\n"
+"\n"
+"   :INIT-FORM <name>\n"
+"      The DEFVAR for creating the cache is enclosed in a form with the\n"
+"      specified name.  Default PROGN."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Number of default values ~S differs from :VALUES ~D."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Bad arg spec: ~S."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"DEFUN-CACHED (Name {Key Value}*) ({(Arg-Name Test-Function)}*) Form*\n"
+"  Some syntactic sugar for defining a function whose values are cached by\n"
+"  DEFINE-HASH-CACHE."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Return an EQ hash of X.  The value of this hash for any given object can "
+"(of\n"
+"  course) change at arbitary times."
+msgstr ""
+
 #: target:code/commandline.lisp
 msgid "A list of all the command line arguments after --"
 msgstr ""
@@ -1411,6 +1956,75 @@
 msgid "a symbol or function"
 msgstr ""
 
+#: target:code/env-access.lisp
+msgid ""
+"Returns information about the symbol VAR in the lexical environment ENV.\n"
+"Three values are returned:\n"
+"  1) Type or binding of VAR.\n"
+"     NIL           No definition or binding\n"
+"     :special      VAR is special\n"
+"     :lexical      VAR is lexical\n"
+"     :symbol-macro VAR refers to a SYMBOL-MACROLET binding\n"
+"     :constant     VAR refers to a named constant or VAR is a keyword\n"
+"  2) non-NIL if there is a local binding\n"
+"  3) An a-list containing information about any declarations that apply."
+msgstr ""
+
+#: target:code/env-access.lisp
+msgid ""
+"Returns information about declarations named by the symbol DECLARATION-NAME"
+".\n"
+"Supported DECLARATION-NAMES are\n"
+"  1) OPTIMIZE\n"
+"     A list whose entries are of the form (QUALITY VALUE) is returned,\n"
+"     where QUALITY and VALUE are standard optimization qualities and\n"
+"     values.\n"
+"  2) EXT:OPTIMIZE-INTERFACE\n"
+"     Like OPTIMIZE, but for the EXT:OPTIMIZE-INTERFACE declaration.\n"
+"  3) DECLARATION.\n"
+"     A list of the declaration names the have been proclaimed as valid."
+msgstr ""
+
+#: target:code/env-access.lisp
+msgid "Unsupported declaration ~S."
+msgstr ""
+
+#: target:code/env-access.lisp
+msgid ""
+"Process a macro in the same way that DEFMACRO or MACROLET would.\n"
+"Three values are returned:\n"
+"  1) A lambda-expression that accepts two arguments\n"
+"  2) A form\n"
+"  3) An environment"
+msgstr ""
+
+#: target:code/env-access.lisp
+msgid ""
+"Returns information about the function name FUNCTION in the lexical environm"
+"ent ENV.\n"
+"Three values are returned:\n"
+"  1) Type of definition or binding:\n"
+"     NIL          No apparent definition\n"
+"    :function    FUNCTION refers to a function\n"
+"    :macro        FUNCTION refers to a macro\n"
+"    :special-form FUNCTION is a special form\n"
+"  2) non-NIL if definition is local\n"
+"  3) An a-list containing information about the declarations that apply."
+msgstr ""
+
+#: target:code/env-access.lisp
+msgid ""
+"Return a new environment containing information in ENV that is augmented\n"
+"by the specified parameters:\n"
+"  :VARIABLE     a list of symbols visible as bound variables in the new\n"
+"                environemnt\n"
+"  :SYMBOL-MACRO a list of symbol macro definitions\n"
+"  :FUNCTION     a list of function names that will be visible as local\n"
+"                functions\n"
+"  :MACRO        a list of local macro definitions\n"
+"  :DECLARE      a list of declaration specifiers"
+msgstr ""
+
 #: target:code/dfixnum.lisp
 msgid "increments dfixnum v by dfixnum i"
 msgstr ""
@@ -1670,6 +2284,313 @@
 msgid "### illegal dotted backquote form ###"
 msgstr ""
 
+#: target:code/extfmts.lisp
+msgid "Attempting unimplemented external-format I/O."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "Nonsensical argument (~S) to DEFINE-EXTERNAL-FORMAT."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "Bad entry in external-format aliases file: ~S => ~S."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "External-format aliases file ends early."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "External-format aliasing depth exceeded."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "~S is a Composing-External-Format."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "~S is not a Composing-External-Format."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "~S is not a valid external format name."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "External format ~S not found."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "Attempting I/O through void external-format."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid ""
+"Convert String to octets using the specified External-format.  The\n"
+"   string is bounded by Start (defaulting to 0) and End (defaulting to\n"
+"   the end of the string.  If Buffer is given, the octets are stored\n"
+"   there.  If not, a new buffer is created."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid ""
+"Octets-to-string converts an array of octets in Octets to a string\n"
+"  according to the specified External-format.  The array of octets is\n"
+"  bounded by Start (defaulting ot 0) and End (defaulting to the end of\n"
+"  the array.  If String is not given, a new string is created.  If\n"
+"  String is given, the converted octets are stored in String, starting\n"
+"  at S-Start (defaulting to the 0) and ending at S-End (defaulting to\n"
+"  the length of String).  If the string is not large enough to hold\n"
+"  all of characters, then some octets will not be converted.  A State\n"
+"  may also be specified; this is used as the state of the external\n"
+"  format.\n"
+"\n"
+"  Four values are returned: the string, the number of characters read,\n"
+"  the number of octets actually consumed and the new state of the\n"
+"  external format."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid ""
+"Encode the given String using External-Format and return a new\n"
+"  string.  The characters of the new string are the octets of the\n"
+"  encoded result, with each octet converted to a character via\n"
+"  code-char.  This is the inverse to String-Decode"
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid ""
+"Decode String using the given External-Format and return the new\n"
+"  string.  The input string is treated as if it were an array of\n"
+"  octets, where the char-code of each character is the octet.  This is\n"
+"  the inverse of String-Encode."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid ""
+"Change the external format of the standard streams to Terminal.\n"
+"  The standard streams are sys::*stdin*, sys::*stdout*, and\n"
+"  sys::*stderr*, which are normally the input and/or output streams\n"
+"  for *standard-input* and *standard-output*.  Also sets sys::*tty*\n"
+"  (normally *terminal-io* to the given external format.  If the\n"
+"  optional argument Filenames is gvien, then the filename encoding is\n"
+"  set to the specified format."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "Can't find external-format ~S."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "Change it anyway."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "The external-format for encoding filenames is already set."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Keywords that you can put in a lambda-list, supposing you should want\n"
+"  to do such a thing."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"The exclusive upper bound on the number of arguments which may be passed\n"
+"  to a function, including rest args."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"The exclusive upper bound on the number of parameters which may be specifed\n"
+"  in a given lambda list.  This is actually the limit on required and "
+"optional\n"
+"  parameters.  With &key and &aux you can get more."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"The exclusive upper bound on the number of multiple-values that you can\n"
+"  have."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"This variable controls whether assignments to unknown variables at top-level"
+"\n"
+"   (or in any other call to EVAL of SETQ) will implicitly declare the "
+"variable\n"
+"   SPECIAL.  These values are meaningful:\n"
+"     :WARN  -- Print a warning, but declare the variable special (the "
+"default.)\n"
+"      T     -- Quietly declare the variable special.\n"
+"      NIL   -- Never declare the variable, giving warnings on each use."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Evaluates its single arg in a null lexical environment, returns the\n"
+"  result or results."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Wrong number of args to FUNCTION:~% ~S."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "~S is a macro."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "~S is a special operator."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Wrong number of args to QUOTE:~% ~S."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Odd number of args to SETQ:~% ~S."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Declaring ~S special."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Bad Eval-When situation list: ~S."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Attempt to evaluation a complex expression:~%     ~S~@\n"
+"	  This expression must be compiled, but the compiler is not loaded."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"EVAL called on #'(lambda (x) ...) when the compiler isn't loaded:~\n"
+"	  ~%     ~S~%"
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Given a function, return three values:\n"
+"   1] A lambda expression that could be used to define the function, or NIL "
+"if\n"
+"      the definition isn't available.\n"
+"   2] NIL if the function was definitely defined in a null lexical environme"
+"nt,\n"
+"      and T otherwise.\n"
+"   3] Some object that \"names\" the function.  Although this is allowed to "
+"be\n"
+"      any object, CMU CL always returns a valid function name or a string."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "If the symbol globally names a special form, returns T, otherwise NIL."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"The value of this variable must be a function that can take three\n"
+"  arguments, a macro expander function, the macro form to be expanded,\n"
+"  and the lexical environment to expand in.  The function should\n"
+"  return the expanded form.  This function is called by MACROEXPAND-1\n"
+"  whenever a runtime expansion is needed.  Initially this is set to\n"
+"  FUNCALL."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Invoke *MACROEXPAND-HOOK* on FUN, FORM, and ENV after coercing it to\n"
+"   a function."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"If SYMBOL names a macro in ENV, returns the expansion function,\n"
+"   else returns NIL.  If ENV is unspecified or NIL, use the global\n"
+"   environment only."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "~S names a special form."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Cannot funcall macro functions."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"If form is a macro (or symbol macro), expands it once.  Returns two values,\n"
+"   the expanded form and a T-or-NIL flag indicating whether the form was, "
+"in\n"
+"   fact, a macro.  Env is the lexical environment to expand in, which "
+"defaults\n"
+"   to the null environment."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Repetitively call MACROEXPAND-1 until the form can no longer be expanded.\n"
+"   Returns the final resultant form, and T if it was expanded.  ENV is the\n"
+"   lexical environment to expand in, or NIL (the default) for the null\n"
+"   environment."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"If NAME names a compiler-macro, returns the expansion function,\n"
+"   else returns NIL.  Note: if the name is shadowed in ENV by a local\n"
+"   definition, or declared NOTINLINE, NIL is returned.  Can be\n"
+"   set with SETF."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"If FORM is a function call for which a compiler-macro has been defined,\n"
+"   invoke the expander function using *macroexpand-hook* and return the\n"
+"   results and T.  Otherwise, return the original form and NIL."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Repetitively call COMPILER-MACROEXPAND-1 until the form can no longer be\n"
+"   expanded.  ENV is the lexical environment to expand in, or NIL (the\n"
+"   default) for the null environment."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"True of any Lisp object that has a constant value: types that eval to\n"
+"  themselves, keywords, constants, and list whose car is QUOTE."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Applies FUNCTION to a list of arguments produced by evaluating ARGS in\n"
+"  the manner of LIST*.  That is, a list is made of the values of all but "
+"the\n"
+"  last argument, appended to the value of the last argument, which must be "
+"a\n"
+"  list."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Calls Function with the given Arguments."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Returns all of its arguments, in order, as values."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Returns all of the elements of List, in order, as values."
+msgstr ""
+
 #: target:code/debug-int.lisp
 msgid ""
 "All debug-conditions inherit from this type.  These are serious conditions\n"
Index: src/i18n/locale/ko/LC_MESSAGES/cmucl.po
diff -u src/i18n/locale/ko/LC_MESSAGES/cmucl.po:1.1.2.4 src/i18n/locale/ko/LC_MESSAGES/cmucl.po:1.1.2.5
--- src/i18n/locale/ko/LC_MESSAGES/cmucl.po:1.1.2.4	Tue Feb  9 09:56:38 2010
+++ src/i18n/locale/ko/LC_MESSAGES/cmucl.po	Tue Feb  9 10:18:21 2010
@@ -72,6 +72,319 @@
 msgid "_@ is a reserved reader macro prefix."
 msgstr ""
 
+#: target:code/error.lisp
+msgid "&rest keyword is ~:[missing~;misplaced~]."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Return a list of all the currently active restarts ordered from most\n"
+"   recently established to less recently established.  If Condition is\n"
+"   specified, then only restarts associated with Condition (or with no\n"
+"   condition) will be returned."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Returns the name of the given restart object."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"WITH-CONDITION-RESTARTS Condition-Form Restarts-Form Form*\n"
+"   Evaluates the Forms in a dynamic environment where the restarts in the "
+"list\n"
+"   Restarts-Form are associated with the condition returned by Condition-"
+"Form.\n"
+"   This allows FIND-RESTART, etc., to recognize restarts that are not "
+"related\n"
+"   to the error currently being debugged.  See also RESTART-CASE."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Executes forms in a dynamic context where the given restart bindings are\n"
+"   in effect.  Users probably want to use RESTART-CASE.  When clauses "
+"contain\n"
+"   the same restart name, FIND-RESTART will find the first such clause."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Unnamed restart does not have a ~\n"
+"\t\t\t\t\treport function -- ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Returns the first restart named name.  If name is a restart, it is returned\n"
+"   if it is currently active.  If no such restart is found, nil is "
+"returned.\n"
+"   It is an error to supply nil as a name.  If Condition is specified and "
+"not\n"
+"   NIL, then only restarts associated with that condition (or with no\n"
+"   condition) will be returned."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Calls the function associated with the given restart, passing any given\n"
+"   arguments.  If the argument restart is not a restart or a currently "
+"active\n"
+"   non-nil restart name, then a control-error is signalled."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Restart ~S is not active."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Calls the function associated with the given restart, prompting for any\n"
+"   necessary arguments.  If the argument restart is not a restart or a\n"
+"   currently active non-nil restart name, then a control-error is signalled."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"(RESTART-CASE form\n"
+"   {(case-name arg-list {keyword value}* body)}*)\n"
+"   The form is evaluated in a dynamic context where the clauses have "
+"special\n"
+"   meanings as points to which control may be transferred (see INVOKE-"
+"RESTART).\n"
+"   When clauses contain the same case-name, FIND-RESTART will find the "
+"first\n"
+"   such clause.  If Expression is a call to SIGNAL, ERROR, CERROR or WARN "
+"(or\n"
+"   macroexpands into such) then the signalled condition will be associated "
+"with\n"
+"   the new restarts."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"(WITH-SIMPLE-RESTART (restart-name format-string format-arguments)\n"
+"   body)\n"
+"   If restart-name is not invoked, then all values returned by forms are\n"
+"   returned.  If control is transferred to this restart, it immediately\n"
+"   returns the values nil and t."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Condition ~S was signalled."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "No REPORT?  Shouldn't happen!"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Condition slot is not bound: ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Slot ~S of ~S missing."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Make an instance of a condition object using the specified initargs."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~S is not a condition class."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Bad thing for class arg:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Condition already names a declaration: ~S."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"DEFINE-CONDITION Name (Parent-Type*) (Slot-Spec*) Option*\n"
+"   Define NAME as a condition type.  This new type inherits slots and its\n"
+"   report function from the specified PARENT-TYPEs.  A slot spec is either\n"
+"   a symbol denoting the name of the slot, or a list of the form:\n"
+"\n"
+"     (slot-name {slot-option value}*)\n"
+"\n"
+"   where slot-option is one of :READER, :WRITER, :ACCESSOR, :ALLOCATION,\n"
+"   :INITARG, :INITFORM, :DOCUMENTATION, and :TYPE.\n"
+"\n"
+"   Each overall option is of the form\n"
+"\n"
+"     (option-name {value}*)\n"
+"\n"
+"   where option-name is one of :DEFAULT-INITARGS, :DOCUMENTATION,\n"
+"   and :REPORT.\n"
+"\n"
+"   The :REPORT option is peculiar to DEFINE-CONDITION.  Its argument is "
+"either\n"
+"   a string or a two-argument lambda or function name.  If a function, the\n"
+"   function is called with the condition and stream to report the "
+"condition.\n"
+"   If a string, the string is printed.\n"
+"\n"
+"   Condition types are classes, but (as allowed by ANSI and not as described "
+"in\n"
+"   CLtL2) are neither STANDARD-OBJECTs nor STRUCTURE-OBJECTs.  WITH-SLOTS "
+"and\n"
+"   SLOT-VALUE may not be used on condition objects."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Keyword slot name indicates probable syntax error:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Malformed condition slot spec:~%  ~S."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "More than one :INITFORM in:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "More than one slot :DOCUMENTATION in~%  ~s"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Slot :DOCUMENTATION is not a string in~%  ~s"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Unknown slot option:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Bad option:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Unknown option: ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"(HANDLER-BIND ( {(type handler)}* )  body)\n"
+"   Executes body in a dynamic context where the given handler bindings are\n"
+"   in effect.  Each handler must take the condition being signalled as an\n"
+"   argument.  The bindings are searched first to last in the event of a\n"
+"   signalled condition."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Ill-formed handler bindings."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~&~@<Error in function ~S:  ~3i~:_~?~:>"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Control stack overflow"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Heap (dynamic space) overflow"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~@<Type-error in ~S:  ~3i~:_~S is not of type ~S~:>"
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Layout-invalid error in ~S:~@\n"
+"\t\t     Type test of class ~S was passed obsolete instance:~%  ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~@<~S fell through ~S expression.  ~:_Wanted one of ~:S.~:>"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "End-of-File on ~S"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~&~@<File-error in function ~S:  ~3i~:_~?~:>"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Error in ~S:  the variable ~S is unbound."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Error in ~S:  the function ~S is undefined."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"~@<Destructive function ~S called on ~\n"
+"                         constant data.~@:>"
+msgstr ""
+
+#: target:code/error.lisp
+msgid "Arithmetic error ~S signalled."
+msgstr ""
+
+#: target:code/error.lisp
+msgid "~%Operation was ~S, operands ~S."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"(HANDLER-CASE form\n"
+"   { (type ([var]) body) }* )\n"
+"   Executes form in a context with handlers established for the condition\n"
+"   types.  A peculiar property allows type to be :no-error.  If such a "
+"clause\n"
+"   occurs, and form returns normally, all its values are passed to this "
+"clause\n"
+"   as if by MULTIPLE-VALUE-CALL.  The :no-error clause accepts more than "
+"one\n"
+"   var specification."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Executes forms after establishing a handler for all error conditions that\n"
+"   returns from this form nil and the condition signalled."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Transfers control to a restart named abort, signalling a control-error if\n"
+"   none exists."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Transfers control to a restart named muffle-warning, signalling a\n"
+"   control-error if none exists."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Transfer control to a restart named continue, returning nil if none exists."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Transfer control and value to a restart named store-value, returning nil if\n"
+"   none exists."
+msgstr ""
+
+#: target:code/error.lisp
+msgid ""
+"Transfer control and value to a restart named use-value, returning nil if\n"
+"   none exists."
+msgstr ""
+
 #: target:code/class.lisp
 msgid "Layout for ~S~@[, Invalid=~S~]"
 msgstr ""
@@ -1341,6 +1654,238 @@
 "  NIL if no such character exists."
 msgstr ""
 
+#: target:code/extensions.lisp
+msgid ""
+"This function can be used as the default value for keyword arguments that\n"
+"  must be always be supplied.  Since it is known by the compiler to never\n"
+"  return, it will avoid any compile-time type warnings that would result "
+"from a\n"
+"  default value inconsistent with the declared type.  When this function is\n"
+"  called, it signals an error indicating that a required keyword argument "
+"was\n"
+"  not supplied.  This function is also useful for DEFSTRUCT slot defaults\n"
+"  corresponding to required arguments."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "A required keyword argument was not supplied."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"FILE-COMMENT String\n"
+"  When COMPILE-FILE sees this form at top-level, it places the constant "
+"string\n"
+"  in the run-time source location information.  DESCRIBE will print the "
+"file\n"
+"  comment for the file that a function was defined in.  The string is also\n"
+"  textually present in the FASL, so the RCS \"ident\" command can find it,\n"
+"  etc."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "See listen.  Any whitespace in the input stream will be flushed."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Does what one might expect, saving the old values and setting the "
+"generalized\n"
+"  variables to the new values in sequence.  Unwind-protects and get-setf-"
+"method\n"
+"  are used to preserve the semantics one might expect in analogy to let*,\n"
+"  and the once-only evaluation of subforms."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Like letf*, but evaluates all the implicit subforms and new values of all\n"
+"  the implied setfs before altering any values.  However, the store forms\n"
+"  (see get-setf-method) must still be evaluated in sequence.  Uses unwind-\n"
+"  protects to protect the environment."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Causes the output of the indenting Stream to indent More spaces.  More is\n"
+"  evaluated twice."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Just like dolist, but with one-dimensional arrays."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Iterate Name ({(Var Initial-Value)}*) Declaration* Form*\n"
+"  This is syntactic sugar for Labels.  It creates a local function Name "
+"with\n"
+"  the specified Vars as its arguments and the Declarations and Forms as its\n"
+"  body.  This function is then called with the Initial-Values, and the "
+"result\n"
+"  of the call is return from the macro."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Malformed iterate variable spec: ~S."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Collect ({(Name [Initial-Value] [Function])}*) {Form}*\n"
+"  Collect some values somehow.  Each of the collections specifies a bunch "
+"of\n"
+"  things which collected during the evaluation of the body of the form.  "
+"The\n"
+"  name of the collection is used to define a local macro, a la MACROLET.\n"
+"  Within the body, this macro will evaluate each of its arguments and "
+"collect\n"
+"  the result, returning the current value after the collection is done.  "
+"The\n"
+"  body is evaluated as a PROGN; to get the final values when you are done, "
+"just\n"
+"  call the collection macro with no arguments.\n"
+"\n"
+"  Initial-Value is the value that the collection starts out with, which\n"
+"  defaults to NIL.  Function is the function which does the collection.  It "
+"is\n"
+"  a function which will accept two arguments: the value to be collected and "
+"the\n"
+"  current collection.  The result of the function is made the new value for "
+"the\n"
+"  collection.  As a totally magical special-case, the Function may be "
+"Collect,\n"
+"  which tells us to build a list in forward order; this is the default.  If "
+"an\n"
+"  Initial-Value is supplied for Collect, the stuff will be rplacd'd onto "
+"the\n"
+"  end.  Note that Function may be anything that can appear in the "
+"functional\n"
+"  position, including macros and lambdas."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Malformed collection specifier: ~S."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Once-Only ({(Var Value-Expression)}*) Form*\n"
+"  Create a Let* which evaluates each Value-Expression, binding a temporary\n"
+"  variable to the result, and wrapping the Let* around the result of the\n"
+"  evaluation of Body.  Within the body, each Var is bound to the "
+"corresponding\n"
+"  temporary variable."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Malformed Once-Only binding spec: ~S."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Ill-formed ~S -- possibly illegal old style DO?"
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "~S step variable is not a symbol: ~S"
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "~S is an illegal form for a ~S varlist."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"DO-ANONYMOUS ({(Var [Init] [Step])}*) (Test Exit-Form*) Declaration* Form*\n"
+"  Like DO, but has no implicit NIL block.  Each Var is initialized in "
+"parallel\n"
+"  to the value of the specified Init form.  On subsequent iterations, the "
+"Vars\n"
+"  are assigned the value of the Step form (if any) in paralell.  The Test "
+"is\n"
+"  evaluated before each evaluation of the body Forms.  When the Test is "
+"true,\n"
+"  the Exit-Forms are evaluated as a PROGN, with the result being the value\n"
+"  of the DO."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"DO-HASH (Key-Var Value-Var Table [Result]) Declaration* Form*\n"
+"   Iterate over the entries in a hash-table."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"DEFINE-HASH-CACHE Name ({(Arg-Name Test-Function)}*) {Key Value}*\n"
+"  Define a hash cache that associates some number of argument values to a\n"
+"  result value.  The Test-Function paired with each Arg-Name is used to "
+"compare\n"
+"  the value for that arg in a cache entry with a supplied arg.  The\n"
+"  Test-Function must not error when passed NIL as its first arg, but need "
+"not\n"
+"  return any particular value.  Test-Function may be any thing that can be\n"
+"  place in CAR position.\n"
+"\n"
+"  Name is used to define functions these functions:\n"
+"\n"
+"  <name>-CACHE-LOOKUP Arg*\n"
+"      See if there is an entry for the specified Args in the cache.  The if "
+"not\n"
+"      present, the :DEFAULT keyword (default NIL) determines the result(s).\n"
+"\n"
+"  <name>-CACHE-ENTER Arg* Value*\n"
+"      Encache the association of the specified args with Value.\n"
+"\n"
+"  <name>-CACHE-FLUSH-<arg-name> Arg\n"
+"      Flush all entries from the cache that have the value Arg for the "
+"named\n"
+"      arg.\n"
+"\n"
+"  <name>-CACHE-CLEAR\n"
+"      Reinitialize the cache, invalidating all entries and allowing the\n"
+"      arguments and result values to be GC'd.\n"
+"\n"
+"  These other keywords are defined:\n"
+"\n"
+"  :HASH-BITS <n>\n"
+"      The size of the cache as a power of 2.\n"
+"\n"
+"  :HASH-FUNCTION function\n"
+"      Some thing that can be placed in CAR position which will compute a "
+"value\n"
+"      between 0 and (1- (expt 2 <hash-bits>)).\n"
+"\n"
+"  :VALUES <n>\n"
+"      The number of values cached.\n"
+"\n"
+"   :INIT-FORM <name>\n"
+"      The DEFVAR for creating the cache is enclosed in a form with the\n"
+"      specified name.  Default PROGN."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Number of default values ~S differs from :VALUES ~D."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid "Bad arg spec: ~S."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"DEFUN-CACHED (Name {Key Value}*) ({(Arg-Name Test-Function)}*) Form*\n"
+"  Some syntactic sugar for defining a function whose values are cached by\n"
+"  DEFINE-HASH-CACHE."
+msgstr ""
+
+#: target:code/extensions.lisp
+msgid ""
+"Return an EQ hash of X.  The value of this hash for any given object can "
+"(of\n"
+"  course) change at arbitary times."
+msgstr ""
+
 #: target:code/commandline.lisp
 msgid "A list of all the command line arguments after --"
 msgstr ""
@@ -1410,6 +1955,75 @@
 msgid "a symbol or function"
 msgstr ""
 
+#: target:code/env-access.lisp
+msgid ""
+"Returns information about the symbol VAR in the lexical environment ENV.\n"
+"Three values are returned:\n"
+"  1) Type or binding of VAR.\n"
+"     NIL           No definition or binding\n"
+"     :special      VAR is special\n"
+"     :lexical      VAR is lexical\n"
+"     :symbol-macro VAR refers to a SYMBOL-MACROLET binding\n"
+"     :constant     VAR refers to a named constant or VAR is a keyword\n"
+"  2) non-NIL if there is a local binding\n"
+"  3) An a-list containing information about any declarations that apply."
+msgstr ""
+
+#: target:code/env-access.lisp
+msgid ""
+"Returns information about declarations named by the symbol DECLARATION-"
+"NAME.\n"
+"Supported DECLARATION-NAMES are\n"
+"  1) OPTIMIZE\n"
+"     A list whose entries are of the form (QUALITY VALUE) is returned,\n"
+"     where QUALITY and VALUE are standard optimization qualities and\n"
+"     values.\n"
+"  2) EXT:OPTIMIZE-INTERFACE\n"
+"     Like OPTIMIZE, but for the EXT:OPTIMIZE-INTERFACE declaration.\n"
+"  3) DECLARATION.\n"
+"     A list of the declaration names the have been proclaimed as valid."
+msgstr ""
+
+#: target:code/env-access.lisp
+msgid "Unsupported declaration ~S."
+msgstr ""
+
+#: target:code/env-access.lisp
+msgid ""
+"Process a macro in the same way that DEFMACRO or MACROLET would.\n"
+"Three values are returned:\n"
+"  1) A lambda-expression that accepts two arguments\n"
+"  2) A form\n"
+"  3) An environment"
+msgstr ""
+
+#: target:code/env-access.lisp
+msgid ""
+"Returns information about the function name FUNCTION in the lexical "
+"environment ENV.\n"
+"Three values are returned:\n"
+"  1) Type of definition or binding:\n"
+"     NIL          No apparent definition\n"
+"    :function    FUNCTION refers to a function\n"
+"    :macro        FUNCTION refers to a macro\n"
+"    :special-form FUNCTION is a special form\n"
+"  2) non-NIL if definition is local\n"
+"  3) An a-list containing information about the declarations that apply."
+msgstr ""
+
+#: target:code/env-access.lisp
+msgid ""
+"Return a new environment containing information in ENV that is augmented\n"
+"by the specified parameters:\n"
+"  :VARIABLE     a list of symbols visible as bound variables in the new\n"
+"                environemnt\n"
+"  :SYMBOL-MACRO a list of symbol macro definitions\n"
+"  :FUNCTION     a list of function names that will be visible as local\n"
+"                functions\n"
+"  :MACRO        a list of local macro definitions\n"
+"  :DECLARE      a list of declaration specifiers"
+msgstr ""
+
 #: target:code/dfixnum.lisp
 msgid "increments dfixnum v by dfixnum i"
 msgstr ""
@@ -1684,6 +2298,313 @@
 msgid "### illegal dotted backquote form ###"
 msgstr ""
 
+#: target:code/extfmts.lisp
+msgid "Attempting unimplemented external-format I/O."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "Nonsensical argument (~S) to DEFINE-EXTERNAL-FORMAT."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "Bad entry in external-format aliases file: ~S => ~S."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "External-format aliases file ends early."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "External-format aliasing depth exceeded."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "~S is a Composing-External-Format."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "~S is not a Composing-External-Format."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "~S is not a valid external format name."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "External format ~S not found."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "Attempting I/O through void external-format."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid ""
+"Convert String to octets using the specified External-format.  The\n"
+"   string is bounded by Start (defaulting to 0) and End (defaulting to\n"
+"   the end of the string.  If Buffer is given, the octets are stored\n"
+"   there.  If not, a new buffer is created."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid ""
+"Octets-to-string converts an array of octets in Octets to a string\n"
+"  according to the specified External-format.  The array of octets is\n"
+"  bounded by Start (defaulting ot 0) and End (defaulting to the end of\n"
+"  the array.  If String is not given, a new string is created.  If\n"
+"  String is given, the converted octets are stored in String, starting\n"
+"  at S-Start (defaulting to the 0) and ending at S-End (defaulting to\n"
+"  the length of String).  If the string is not large enough to hold\n"
+"  all of characters, then some octets will not be converted.  A State\n"
+"  may also be specified; this is used as the state of the external\n"
+"  format.\n"
+"\n"
+"  Four values are returned: the string, the number of characters read,\n"
+"  the number of octets actually consumed and the new state of the\n"
+"  external format."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid ""
+"Encode the given String using External-Format and return a new\n"
+"  string.  The characters of the new string are the octets of the\n"
+"  encoded result, with each octet converted to a character via\n"
+"  code-char.  This is the inverse to String-Decode"
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid ""
+"Decode String using the given External-Format and return the new\n"
+"  string.  The input string is treated as if it were an array of\n"
+"  octets, where the char-code of each character is the octet.  This is\n"
+"  the inverse of String-Encode."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid ""
+"Change the external format of the standard streams to Terminal.\n"
+"  The standard streams are sys::*stdin*, sys::*stdout*, and\n"
+"  sys::*stderr*, which are normally the input and/or output streams\n"
+"  for *standard-input* and *standard-output*.  Also sets sys::*tty*\n"
+"  (normally *terminal-io* to the given external format.  If the\n"
+"  optional argument Filenames is gvien, then the filename encoding is\n"
+"  set to the specified format."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "Can't find external-format ~S."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "Change it anyway."
+msgstr ""
+
+#: target:code/extfmts.lisp
+msgid "The external-format for encoding filenames is already set."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Keywords that you can put in a lambda-list, supposing you should want\n"
+"  to do such a thing."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"The exclusive upper bound on the number of arguments which may be passed\n"
+"  to a function, including rest args."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"The exclusive upper bound on the number of parameters which may be specifed\n"
+"  in a given lambda list.  This is actually the limit on required and "
+"optional\n"
+"  parameters.  With &key and &aux you can get more."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"The exclusive upper bound on the number of multiple-values that you can\n"
+"  have."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"This variable controls whether assignments to unknown variables at top-"
+"level\n"
+"   (or in any other call to EVAL of SETQ) will implicitly declare the "
+"variable\n"
+"   SPECIAL.  These values are meaningful:\n"
+"     :WARN  -- Print a warning, but declare the variable special (the "
+"default.)\n"
+"      T     -- Quietly declare the variable special.\n"
+"      NIL   -- Never declare the variable, giving warnings on each use."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Evaluates its single arg in a null lexical environment, returns the\n"
+"  result or results."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Wrong number of args to FUNCTION:~% ~S."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "~S is a macro."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "~S is a special operator."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Wrong number of args to QUOTE:~% ~S."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Odd number of args to SETQ:~% ~S."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Declaring ~S special."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Bad Eval-When situation list: ~S."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Attempt to evaluation a complex expression:~%     ~S~@\n"
+"\t  This expression must be compiled, but the compiler is not loaded."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"EVAL called on #'(lambda (x) ...) when the compiler isn't loaded:~\n"
+"\t  ~%     ~S~%"
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Given a function, return three values:\n"
+"   1] A lambda expression that could be used to define the function, or NIL "
+"if\n"
+"      the definition isn't available.\n"
+"   2] NIL if the function was definitely defined in a null lexical "
+"environment,\n"
+"      and T otherwise.\n"
+"   3] Some object that \"names\" the function.  Although this is allowed to "
+"be\n"
+"      any object, CMU CL always returns a valid function name or a string."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "If the symbol globally names a special form, returns T, otherwise NIL."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"The value of this variable must be a function that can take three\n"
+"  arguments, a macro expander function, the macro form to be expanded,\n"
+"  and the lexical environment to expand in.  The function should\n"
+"  return the expanded form.  This function is called by MACROEXPAND-1\n"
+"  whenever a runtime expansion is needed.  Initially this is set to\n"
+"  FUNCALL."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Invoke *MACROEXPAND-HOOK* on FUN, FORM, and ENV after coercing it to\n"
+"   a function."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"If SYMBOL names a macro in ENV, returns the expansion function,\n"
+"   else returns NIL.  If ENV is unspecified or NIL, use the global\n"
+"   environment only."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "~S names a special form."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Cannot funcall macro functions."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"If form is a macro (or symbol macro), expands it once.  Returns two values,\n"
+"   the expanded form and a T-or-NIL flag indicating whether the form was, "
+"in\n"
+"   fact, a macro.  Env is the lexical environment to expand in, which "
+"defaults\n"
+"   to the null environment."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Repetitively call MACROEXPAND-1 until the form can no longer be expanded.\n"
+"   Returns the final resultant form, and T if it was expanded.  ENV is the\n"
+"   lexical environment to expand in, or NIL (the default) for the null\n"
+"   environment."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"If NAME names a compiler-macro, returns the expansion function,\n"
+"   else returns NIL.  Note: if the name is shadowed in ENV by a local\n"
+"   definition, or declared NOTINLINE, NIL is returned.  Can be\n"
+"   set with SETF."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"If FORM is a function call for which a compiler-macro has been defined,\n"
+"   invoke the expander function using *macroexpand-hook* and return the\n"
+"   results and T.  Otherwise, return the original form and NIL."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Repetitively call COMPILER-MACROEXPAND-1 until the form can no longer be\n"
+"   expanded.  ENV is the lexical environment to expand in, or NIL (the\n"
+"   default) for the null environment."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"True of any Lisp object that has a constant value: types that eval to\n"
+"  themselves, keywords, constants, and list whose car is QUOTE."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid ""
+"Applies FUNCTION to a list of arguments produced by evaluating ARGS in\n"
+"  the manner of LIST*.  That is, a list is made of the values of all but "
+"the\n"
+"  last argument, appended to the value of the last argument, which must be "
+"a\n"
+"  list."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Calls Function with the given Arguments."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Returns all of its arguments, in order, as values."
+msgstr ""
+
+#: target:code/eval.lisp
+msgid "Returns all of the elements of List, in order, as values."
+msgstr ""
+
 #: target:code/debug-int.lisp
 msgid ""
 "All debug-conditions inherit from this type.  These are serious conditions\n"



More information about the cmucl-commit mailing list