From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Philipp Stephani
Philipp Stephani <p.stephani2@gmail.com> writes:<= br>
>=C2=A0 Also, the error message saying loading `nil'
>=C2=A0 failed is confusing, it took me a while to find out where I trie= d to
>=C2=A0 load `nil' (nowhere).
>
> It would be reasonable and easy to remove the "Loading `nil'&= quot; part in
> the case where no file is being loaded.
Yes, I think that would be good.
>=C2=A0 Finally, let me say that `read' raising such errors about ol= d-style
>=C2=A0 backquotes, may it be justified or not, breaks "el-search&q= uot; which relies
>=C2=A0 heavily on `read' at diverse buffer positions to succeed.
>
> That's a bummer. It means that el-search currently relies on an
> underspecified legacy feature. Could el-search be changed to always
> include reading the initial ` in such cases?
Not really.=C2=A0 It would mean that the "construct" after any ba= ckquote
can't be matched or replaced.
E.g. if you have a function `foo' accepting three arguments, and you
decide to change the definition of `foo' so that the meaning of the
second and third arguments are interchanged, you want to replace all
calls in your code with the rule
=C2=A0 `(foo ,a ,b ,c) -> `(foo ,a ,c ,b)
to adopt to the new signature.
(Note that the backquote here is part of `pcase' pattern semantics and<= br> there is no relation with this issue).
But in this occurrence:
#+begin_src emacs-lisp
(defmacro bar (form)
=C2=A0 `(foo 1 1 ,@form))
#+end_src
this replacement rule would fail because the according form would be
unmatchable (and the backquoted thing doesn't match).=C2=A0 One could w= ork
around this...there are always workarounds.=C2=A0 To need to do that would = be
very bad.