|
[Sbcl-commits] CVS: sbcl/src/compiler ir1tran.lisp,1.130,1.131 main.lisp,1.101,1.102 parse-lambda-list.lisp,1.13,1.14
From: Nikodemus Siivola <demoss@us...> - 2004-11-30 11:21
|
Update of /cvsroot/sbcl/sbcl/src/compiler
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16521/src/compiler
Modified Files:
ir1tran.lisp main.lisp parse-lambda-list.lisp
Log Message:
0.8.17.4: Stricter lambda list parsing
* Order of &AUX vs. &KEY/&REST in destructuring
lambda lists, check for multiple &optional, etc.
* Resignal errors from macroexpansion before converting
to COMPILED-PROGRAM-ERROR so that user code that
wants to handle them can.
Index: ir1tran.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/ir1tran.lisp,v
retrieving revision 1.130
retrieving revision 1.131
diff -u -d -r1.130 -r1.131
--- ir1tran.lisp 6 Nov 2004 04:45:06 -0000 1.130
+++ ir1tran.lisp 30 Nov 2004 11:21:44 -0000 1.131
@@ -749,6 +749,7 @@
(wherestring) hint c)
(muffle-warning-or-die)))
(error (lambda (c)
+ (signal c)
(compiler-error "~@<~A~:@_~A~@:_~A~:>"
(wherestring) hint c))))
(funcall sb!xc:*macroexpand-hook* fun form *lexenv*)))))
Index: main.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/main.lisp,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -d -r1.101 -r1.102
--- main.lisp 6 Nov 2004 07:11:26 -0000 1.101
+++ main.lisp 30 Nov 2004 11:21:45 -0000 1.102
@@ -846,6 +846,7 @@
(defun preprocessor-macroexpand-1 (form)
(handler-case (sb!xc:macroexpand-1 form *lexenv*)
(error (condition)
+ (signal condition)
(compiler-error "(during macroexpansion of ~A)~%~A"
(let ((*print-level* 1)
(*print-length* 2))
Index: parse-lambda-list.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/parse-lambda-list.lisp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- parse-lambda-list.lisp 16 Jun 2004 22:39:32 -0000 1.13
+++ parse-lambda-list.lisp 30 Nov 2004 11:21:45 -0000 1.14
@@ -100,6 +100,8 @@
(&aux
(when (member state '(:rest :more-context :more-count))
(compiler-error "misplaced &AUX in lambda list: ~S" list))
+ (when auxp
+ (compiler-error "multiple &AUX in lambda list: ~S" list))
(setq auxp t
state :aux))
(t (bug "unknown LAMBDA-LIST-KEYWORD in lambda list: ~S." arg)))
|
| Thread | Author | Date |
|---|---|---|
| [Sbcl-commits] CVS: sbcl/src/compiler ir1tran.lisp,1.130,1.131 main.lisp,1.101,1.102 parse-lambda-list.lisp,1.13,1.14 | Nikodemus Siivola <demoss@us...> |