[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eev 3120922 1/9: Changed the declaration of `ee-anchor-
From: |
Stefan Monnier |
Subject: |
[elpa] externals/eev 3120922 1/9: Changed the declaration of `ee-anchor-format'. |
Date: |
Thu, 25 Apr 2019 09:40:23 -0400 (EDT) |
branch: externals/eev
commit 31209226ea26fbf568ccb43c34ed64b3248a3265
Author: Eduardo Ochs <address@hidden>
Commit: Eduardo Ochs <address@hidden>
Changed the declaration of `ee-anchor-format'.
---
eev-anchors.el | 4 +-
eev-blinks.el | 1 -
eev-code.el | 1 -
eev-edit.el | 1 -
eev-elinks.el | 1 -
eev-env.el | 1 -
eev-eval.el | 1 -
eev-intro.el | 121 +++++++++++++++++++++++++++++++++++--------------------
eev-mode.el | 1 -
eev-plinks.el | 1 -
eev-prepared.el | 1 -
eev-template0.el | 1 -
eev-tlinks.el | 1 -
13 files changed, 80 insertions(+), 56 deletions(-)
diff --git a/eev-anchors.el b/eev-anchors.el
index cd5d1ae..81710af 100644
--- a/eev-anchors.el
+++ b/eev-anchors.el
@@ -76,7 +76,8 @@
;;;
(defvar ee-anchor-format "«%s»" "See `ee-goto-anchor'.")
-(put 'ee-anchor-format 'safe-local-variable 'stringp)
+;;;###autoload
+(put 'ee-anchor-format 'safe-local-variable #'stringp)
;; A paranoid setting would be:
;; (defvar ee-anchor-format nil "See `ee-goto-anchor'.")
@@ -165,6 +166,5 @@ See `ee-goto-anchor'."
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
diff --git a/eev-blinks.el b/eev-blinks.el
index f3bad84..752fdc0 100644
--- a/eev-blinks.el
+++ b/eev-blinks.el
@@ -950,6 +950,5 @@ Hint: install the Debian package \"unicode-data\".")
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
diff --git a/eev-code.el b/eev-code.el
index be2f727..e7bd337 100644
--- a/eev-code.el
+++ b/eev-code.el
@@ -350,6 +350,5 @@ Note: the POS-SPEC-LIST arguments are currently not used."
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
diff --git a/eev-edit.el b/eev-edit.el
index 4f0dc62..6a37593 100644
--- a/eev-edit.el
+++ b/eev-edit.el
@@ -226,6 +226,5 @@ then just delete the current line."
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
diff --git a/eev-elinks.el b/eev-elinks.el
index 9ba2af3..5423656 100644
--- a/eev-elinks.el
+++ b/eev-elinks.el
@@ -1436,6 +1436,5 @@ Use this when point is over a manpage name and you want
links to that page."
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
diff --git a/eev-env.el b/eev-env.el
index 7da01ff..2e5af38 100644
--- a/eev-env.el
+++ b/eev-env.el
@@ -139,6 +139,5 @@ See the source for details, examples, and tests."
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
diff --git a/eev-eval.el b/eev-eval.el
index 80d0ab2..945cd93 100644
--- a/eev-eval.el
+++ b/eev-eval.el
@@ -217,6 +217,5 @@ See: (find-eval-intro)"
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
diff --git a/eev-intro.el b/eev-intro.el
index f5a92ca..06600b4 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -1961,28 +1961,49 @@ incompatible with our convention of creating a script
called
5. Eev as an ELPA/MELPA package
===============================
-In march 2019 I prepared a first version of an \"emacs package\"
-for eev to make it installable by `M-x list-packages' - see:
+In march 2019 I prepared a first version of an emacs package for
+eev to make it installable by `M-x list-packages' - see:
(find-enode \"Packages\")
(find-efaqnode \"Packages that do not come with Emacs\")
-and sent it to the emacs-devel mailing list. Apparently it could
-go into GNU ELPA, but the developers requested several changes in
-the code, and some of them go against some important design
-decisions. I will discuss them here.
+and submitted it to the emacs-devel mailing list:
+
+ http://lists.gnu.org/archive/html/emacs-devel/2019-03/msg00433.html
+
+Stefan Monnier answered, and the rest of the discussion happened
+off-list. Apparently eev could go into GNU ELPA, but some changes
+and clean-ups were needed. I implemented most of what he
+proposed/requested, but three of the things that he asked for
+would demand changes that would make eev far less elegant and far
+less useful for beginners... in rough terms, the code should 1)
+be byte-compilable, 2) be compatible with lexical binding, and 3)
+have all the autoloads. My reasons for not complying - or for not
+complying NOW - are explained in the subsections below.
+
+I will try to submit eev to MELPA in the next few days - in
+mid-april 2019. I have the feeling that the issues blocking it
+from going into ELPA will take a few years to be solved.
+
+Btw: except for Stefan's e-mails ***100%*** the feedback that I
+received about eev in the last three years came from beginners.
+I am not willing to make changes that will make eev
+beginner-UNfriendly.
+
5.1. Byte-compilation
---------------------
-All eev source files have a \"no-byte-compile: t\" in their local
-variables section. See:
+In standard packages all elisp files should be byte-compilable
+unless there is a very strong reason - but all eev source files
+have a \"no-byte-compile: t\" in their local variables section.
+See:
(find-eevgrep \"grep --color -nH -e no-byte-compile: *.el\")
(find-elnode \"Byte Compilation\" \"no-byte-compile: t\")
-Here is the reason. Each call to a `code-*' function defines some
+Here is why. Each call to a `code-*' function defines some
functions dynamically - for example, `(code-c-d \"e\" ...)'
defines `find-efile' - and the best way to inspect a function
defined in this way is by using `find-functionpp'. Try:
@@ -2018,46 +2039,59 @@ have a reasonable corpus of functions for which
`find-efunctionpp' shows something readable, which is good to
help them understand the innards of Emacs.
-My view is that we have a \"new\" Emacs, that enforces
-byte-compilation and uses several data structures that are
-relatively opaque, built on top on an \"old\" Emacs that uses lots
-of simpler data structures, but in which many things are messier
-and more error-prone. I would love to add to eev functions to
-inspect these new data structures, but the \"old\" Emacs is the one
-that made me fell in love with Free Software and that made me
-spend years trying to convert people... and one of the underlying
-messages of eev is \"look, you can still use these simpler
-things\". Maybe I'm using \"simpler\" in a sense that is not very
-usual, so let me quote a paragraph from an article that I wrote
-about implementing a Forth in Lua:
-
- \"I've met many people over the years who have been Forth
- enthusiasts in the past, and we often end up discussing what
- made Forth so thrilling to use at that time - and what we can
- do to adapt its ideas to the computers of today. My personal
- impression is that Forth's main points were not the ones that I
- listed at the beginning of this section, and that I said that
- were easy to quantify; rather, what was most important was that
- nothing was hidden, there were no complex data structures
- around with \"don't-look-at-this\" parts (think on garbage
- collection in Lua, for example, and Lua's tables - beginners
- need to be convinced to see these things abstractly, as the
- concrete details of the implementation are hard), and
- everything - code, data, dictionaries, stacks - were just
- linear sequences of bytes, that could be read and modified
- directly if we wished to. We had total freedom, defining new
- words was quick, and experiments were quick to make; that gave
- us a sense of power that was totally different from, say, the
- one that a Python user feels today because he has huge
- libraries at his fingertips.\"
+Here is an excerpt of one of my e-mails to Stefan:
+
+ I have the impression - please correct me if I'm wrong - that
+ you're proposing to replace the `find-efunctionpp' by something
+ more modern. My view is that we have a \"new\" Emacs, that
+ enforces byte-compilation and uses several data structures that
+ are relatively opaque, built on top on an \"old\" Emacs that
+ uses lots of simpler data structures, but in which many things
+ are messier and more error-prone. I would love to add to eev
+ functions to inspect these new data structures, but the \"old\"
+ Emacs is the one that made me fell in love with Free Software
+ and that made me spend years trying to convert people... and
+ one of the underlying messages of eev is \"look, you can still
+ use these simpler things\". Maybe I'm using \"simpler\" in a
+ sense that is not very usual, so let me quote a paragraph from
+ an article that I wrote about implementing a Forth in Lua:
+
+ \"I've met many people over the years who have been Forth
+ enthusiasts in the past, and we often end up discussing what
+ made Forth so thrilling to use at that time - and what we can
+ do to adapt its ideas to the computers of today. My personal
+ impression is that Forth's main points were not the ones that
+ I listed at the beginning of this section, and that I said
+ that were easy to quantify; rather, what was most important
+ was that nothing was hidden, there were no complex data
+ structures around with \"don't-look-at-this\" parts (think on
+ garbage collection in Lua, for example, and Lua's tables -
+ beginners need to be convinced to see these things
+ abstractly, as the concrete details of the implementation are
+ hard), and everything - code, data, dictionaries, stacks -
+ were just linear sequences of bytes, that could be read and
+ modified directly if we wished to. We had total freedom,
+ defining new words was quick, and experiments were quick to
+ make; that gave us a sense of power that was totally
+ different from, say, the one that a Python user feels today
+ because he has huge libraries at his fingertips.\"
(From: http://angg.twu.net/miniforth-article.html)
+
5.2. Dynamic binding
--------------------
-See the comments in:
+Dependency on dynamic binding should be avoided - see:
+
+ (find-elnode \"Dynamic Binding\")
+ (find-elnode \"Dynamic Binding Tips\")
+ (find-elnode \"Lexical Binding\")
+
+but the main function that eev uses for template strings is
+intrinsically incompatible with lexical binding. See the comments
+in its source file:
(find-eev \"eev-template0.el\")
@@ -2066,7 +2100,8 @@ See the comments in:
5.3. Autoloads
--------------
I decided to mark only one function in eev as autoloadable -
-instead of hundreds. See the comments in:
+instead of hundreds - and this is very non-standard. See the
+comments in:
(find-eev \"eev-load.el\")
diff --git a/eev-mode.el b/eev-mode.el
index a3f7ad4..c448857 100644
--- a/eev-mode.el
+++ b/eev-mode.el
@@ -315,6 +315,5 @@ Other commands:
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
diff --git a/eev-plinks.el b/eev-plinks.el
index cb92f4c..2a5e31a 100644
--- a/eev-plinks.el
+++ b/eev-plinks.el
@@ -287,6 +287,5 @@
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
diff --git a/eev-prepared.el b/eev-prepared.el
index bdf77f4..1dd80e9 100644
--- a/eev-prepared.el
+++ b/eev-prepared.el
@@ -250,6 +250,5 @@ See `eev' for more about $EE and the temporary script file."
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
diff --git a/eev-template0.el b/eev-template0.el
index 52339e2..d8a2d48 100644
--- a/eev-template0.el
+++ b/eev-template0.el
@@ -126,6 +126,5 @@ Example: (ee-template0 \"{<} a{(+ 2 3)} {>}\")
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
diff --git a/eev-tlinks.el b/eev-tlinks.el
index 178b512..fc56a44 100644
--- a/eev-tlinks.el
+++ b/eev-tlinks.el
@@ -1874,6 +1874,5 @@ dofile \"{fname0}\"
;; Local Variables:
;; coding: utf-8-unix
-;; ee-anchor-format: "«%s»"
;; no-byte-compile: t
;; End:
- [elpa] externals/eev updated (9e6d5bc -> ca979de), Stefan Monnier, 2019/04/25
- [elpa] externals/eev 7b07d96 2/9: Added the files "eev.el" and ".gitignore"., Stefan Monnier, 2019/04/25
- [elpa] externals/eev 84883f6 3/9: Added the files "eev.el" and ".gitignore"., Stefan Monnier, 2019/04/25
- [elpa] externals/eev 509c7f2 5/9: Changed the copyrights from "(not yet?) part of GNU eev" to "part of GNU eev"., Stefan Monnier, 2019/04/25
- [elpa] externals/eev 5f60818 6/9: Changed the copyrights from "(not yet?) part of GNU eev" to "part of GNU eev"., Stefan Monnier, 2019/04/25
- [elpa] externals/eev 3120922 1/9: Changed the declaration of `ee-anchor-format'.,
Stefan Monnier <=
- [elpa] externals/eev 340be0a 8/9: Rewrote `find-rcirc-intro' and all comments in eev-rcirc.el., Stefan Monnier, 2019/04/25
- [elpa] externals/eev 19bfd61 7/9: Added sections about functions and byte-compilation to `find-eval-intro'., Stefan Monnier, 2019/04/25
- [elpa] externals/eev 9b210eb 4/9: Changed the copyrights from "(not yet?) part of GNU eev" to "part of GNU eev"., Stefan Monnier, 2019/04/25
- [elpa] externals/eev ca979de 9/9: Merge remote-tracking branch 'eev/UTF-8' into externals/eev, Stefan Monnier, 2019/04/25