[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-mac
From: |
Stefan Monnier |
Subject: |
bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch) |
Date: |
Tue, 05 Nov 2013 22:20:37 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
>> Good idea. Could you try and use macroexp--warn-and-return instead, so
>> we get a file&line location when byte-compiling?
> I'm not certain what you mean here. You seem to agree that this is an
> error, but `macroexp--warn-and-return' doesn't signal an error--it just
> prints a warning. If we do something like this:
> (let ((msg (format "Malformed `cl-symbol-macrolet' binding: %S"
> (car bindings))))
> (macroexp--warn-and-return msg `(error "%s" ,msg)))
> we'll get a warning at compile time and an error at run time. Is this
> what you have in mind? Shouldn't we signal the error as early as
> possible? Perhaps there is some Emacs convention that I'm not aware of
> in this regard.
Signaling an error stops the whole compilation, so you only get one
error at a time. Better make it a warning, even though it is indeed
a programming error.
>> BTW, the same holds for the "let" sanity checks you added to cconv
>> (which should probably be moved to macroexp, now that I think about it,
>> so we can remove them from bytecomp.el).
> I don't understand this either. By "moved to macroexp", do you just
> mean that the sanity checks should be performed using
> macroexp--warn-and-return in the manner given above?
No, I mean that they should be performed in macroexp--expand-all rather
than in cconv, so they're performed regardless of lexical-binding
(currently they're done once in cconv.el and once in bytecomp.el).
Stefan
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Nathan Trapuzzano, 2013/11/05
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Stefan Monnier, 2013/11/05
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Nathan Trapuzzano, 2013/11/05
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch),
Stefan Monnier <=
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Nathan Trapuzzano, 2013/11/06
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Stefan Monnier, 2013/11/06
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Nathan Trapuzzano, 2013/11/06
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Stefan Monnier, 2013/11/06
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Nathan Trapuzzano, 2013/11/06
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Stefan Monnier, 2013/11/06
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Nathan Trapuzzano, 2013/11/07
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Stefan Monnier, 2013/11/07
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Nathan Trapuzzano, 2013/11/07
- bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch), Stefan Monnier, 2013/11/07