0.8.16.2: TYPE-ERROR for ERROR
[sbcl.git] / src / code / target-misc.lisp
index 37bb400..4203f4f 100644 (file)
@@ -54,8 +54,7 @@
   (case (widetag-of fun)
     (#.sb!vm:closure-header-widetag
      (%simple-fun-name (%closure-fun fun)))
-    ((#.sb!vm:simple-fun-header-widetag
-      #.sb!vm:closure-fun-header-widetag)
+    (#.sb!vm:simple-fun-header-widetag
      ;; KLUDGE: The pun that %SIMPLE-FUN-NAME is used for closure
      ;; functions is left over from CMU CL (modulo various renaming
      ;; that's gone on since the fork).
@@ -68,8 +67,7 @@
   (aver nil) ; since this is unsafe 'til bug 137 is fixed
   (let ((widetag (widetag-of fun)))
     (case widetag
-      ((#.sb!vm:simple-fun-header-widetag
-       #.sb!vm:closure-fun-header-widetag)
+      (#.sb!vm:simple-fun-header-widetag
        ;; KLUDGE: The pun that %SIMPLE-FUN-NAME is used for closure
        ;; functions is left over from CMU CL (modulo various renaming
        ;; that's gone on since the fork).
@@ -153,6 +151,24 @@ are running on, or NIL if we can't find any useful information."
   "Return a string with the long form of the site name, or NIL if not known."
   *long-site-name*)
 \f
+;;;; ED
+(defvar *ed-functions* nil
+  "See function documentation for ED.")
+
+(defun ed (&optional x)
+  "Starts the editor (on a file or a function if named).  Functions
+from the list *ED-FUNCTIONS* are called in order with X as an argument
+until one of them returns non-NIL; these functions are responsible for
+signalling a FILE-ERROR to indicate failure to perform an operation on
+the file system."
+  (dolist (fun *ed-functions*
+          (error 'extension-failure
+                 :format-control "Don't know how to ~S ~A"
+                 :format-arguments (list 'ed x)
+                 :references (list '(:sbcl :variable *ed-functions*))))
+    (when (funcall fun x)
+      (return t))))
+\f
 ;;;; dribble stuff
 
 ;;; Each time we start dribbling to a new stream, we put it in
@@ -207,3 +223,16 @@ are running on, or NIL if we can't find any useful information."
 
 (defun %byte-blt (src src-start dst dst-start dst-end)
   (%byte-blt src src-start dst dst-start dst-end))
+
+;;;; some *LOAD-FOO* variables
+
+(defvar *load-print* nil
+  #!+sb-doc
+  "the default for the :PRINT argument to LOAD")
+
+(defvar *load-verbose* nil
+  ;; Note that CMU CL's default for this was T, and ANSI says it's
+  ;; implementation-dependent. We choose NIL on the theory that it's
+  ;; a nicer default behavior for Unix programs.
+  #!+sb-doc
+  "the default for the :VERBOSE argument to LOAD")