projects
/
jscl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove references to non-symbol literals
[jscl.git]
/
src
/
boot.lisp
diff --git
a/src/boot.lisp
b/src/boot.lisp
index
845b601
..
9378a8a
100644
(file)
--- a/
src/boot.lisp
+++ b/
src/boot.lisp
@@
-191,11
+191,13
@@
clausules)))))
(defmacro ecase (form &rest clausules)
clausules)))))
(defmacro ecase (form &rest clausules)
- `(case ,form
- ,@(append
- clausules
- `((t
- (error "ECASE expression failed."))))))
+ (let ((g!form (gensym)))
+ `(let ((,g!form ,form))
+ (case ,g!form
+ ,@(append
+ clausules
+ `((t
+ (error "ECASE expression failed for the object `~S'." ,g!form))))))))
(defmacro and (&rest forms)
(cond
(defmacro and (&rest forms)
(cond
@@
-493,7
+495,7
@@
((symbolp x)
(symbol-function x))
(t
((symbolp x)
(symbol-function x))
(t
- (error "Invalid function"))))
+ (error "Invalid function `~S'." x))))
(defun disassemble (function)
(write-line (lambda-code (fdefinition function)))
(defun disassemble (function)
(write-line (lambda-code (fdefinition function)))
@@
-507,7
+509,7
@@
(oget func "docstring")))
(variable
(unless (symbolp x)
(oget func "docstring")))
(variable
(unless (symbolp x)
- (error "Wrong argument type! it should be a symbol"))
+ (error "The type of documentation `~S' is not a symbol." type))
(oget x "vardoc"))))
(defmacro multiple-value-bind (variables value-from &body body)
(oget x "vardoc"))))
(defmacro multiple-value-bind (variables value-from &body body)
@@
-531,7
+533,7
@@
`(,value)
`(setq ,place ,value)
place))
`(,value)
`(setq ,place ,value)
place))
- (let ((place (ls-macroexpand-1 place)))
+ (let ((place (!macroexpand-1 place)))
(let* ((access-fn (car place))
(expander (cdr (assoc access-fn *setf-expanders*))))
(when (null expander)
(let* ((access-fn (car place))
(expander (cdr (assoc access-fn *setf-expanders*))))
(when (null expander)
@@
-540,7
+542,7
@@
(defmacro define-setf-expander (access-fn lambda-list &body body)
(unless (symbolp access-fn)
(defmacro define-setf-expander (access-fn lambda-list &body body)
(unless (symbolp access-fn)
- (error "ACCESS-FN must be a symbol."))
+ (error "ACCESS-FN `~S' must be a symbol." access-fn))
`(progn (push (cons ',access-fn (lambda ,lambda-list ,@body))
*setf-expanders*)
',access-fn))
`(progn (push (cons ',access-fn (lambda ,lambda-list ,@body))
*setf-expanders*)
',access-fn))
@@
-552,7
+554,7
@@
((null (cdr pairs))
(error "Odd number of arguments to setf."))
((null (cddr pairs))
((null (cdr pairs))
(error "Odd number of arguments to setf."))
((null (cddr pairs))
- (let ((place (ls-macroexpand-1 (first pairs)))
+ (let ((place (!macroexpand-1 (first pairs)))
(value (second pairs)))
(multiple-value-bind (vars vals store-vars writer-form)
(get-setf-expansion place)
(value (second pairs)))
(multiple-value-bind (vars vals store-vars writer-form)
(get-setf-expansion place)
@@
-613,3
+615,6
@@
(defun values (&rest args)
(values-list args))
(defun values (&rest args)
(values-list args))
+
+(defun error (fmt &rest args)
+ (%throw (apply #'format nil fmt args)))