[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "Emacs 21"

From: Robert J. Chassell
Subject: Re: "Emacs 21"
Date: Thu, 9 Nov 2006 17:13:19 +0000 (UTC)

   ... My patch kills [the "Complete zap-to-char"] node because it
   merges it with the "zap-to-char" node because it nearly blanks that
   node.  ...

I do not understand.  The "Complete zap-to-char" node adds 34 lines to
the previous node which contains a menu.  That is too many lines to
add.  As

    (texinfo)Menus says

    As a practical matter, it is best to locate a menu within 20 or so
    lines of the beginning of the node.

Moreover, the section title is within a @ifnottex ... @end ifnottex
environment, so it does not appear in the printed output.

(Actually, I relaxed the restriction a bit, to 30 lines.  The nodes
for `A Loop with an Incrementing Counter' and `Evaluation' were too
long.  I fixed them.  Gack!  I found others, too.  I think I have
found and fixed them all.  Please check!

(The reason for 20 lines is that some people view help on windows with
only 24 lines and the beginning of the menu should be visible.  My
relaxation presumes that the smallest window is now 30 lines or so; I
am not sure whether that is true or whether 24 lines still is a good
number.  I would hate to have to go over the document and make sure
every segment followed by a menu was 20 lines or fewer long.

(Obviously, most readers will use windows with many more lines, so
they are not the issue or they will listen and not care about the
number of visible lines at all.  So far I have not heard any

   It blanks it because the version update verbiage was deemed
   irrelevant and the discussion of `kill-region' was duplicated at
   its proper discussion later.

That makes more sense, except as far as I can see, the goal is to
mention `kill-region' twice (as well as `search-forward').  As the
node says,

    (eintr)Who You Are

    If you are a programmer, you may not be satisfied with this
    primer.  The reason is ...

    [the programmer says]

         When I get to the end of a paragraph, I assume that that
         subject is done, finished ...

Also, people do use earlier versions.  This is a side effect of having
code that was well written twenty years ago ... it does not die as
rapidly as badly written code.

More significantly, novices often find it easier to understand early
code.  Over the years, Emacs has become more complex.  This is to be
expected -- for one, we have introduced text properties -- but that
makes it is harder for the intended audience,

    (eintr)Who You Are

    people who are not programmers.

Indeed, increasingly, some Emacs programmers act as if you should not
study or modify Emacs when you are a regular user who is not a

As I see it, this is seen as a practical not legal matter.  People who
are not programmers should use the `customize' functions.  Certainly,
I use them sometimes, especially for fonts.  They are convenient.  But
the notion goes beyond that.  I am gaining the impression that regular
users are not expected to use `setq'.  In any case, it is becoming
harder and harder for a novice to browse

    through source code

a habit the node `On Reading this Text' recommends for `people who are
not programmers'.

Perhaps you can suggest a library, other than `simple.el', that I have
not gone into.  That would be good.  The criteria are two:  that
everyone, especially novices, use the code every day; and that the
library be as simple as `simple.el' was in the early days.  I don't
know of such a library and would find it wonderful.

   The Lisp reads

   (if (> 4 5)
       (message "5 is greater than 4!")
     (message "4 is not greater than 5!"))

   surely the else-branch shall always be taken, but if the then branch is
   taken it makes no sense to print a message counter to it.

Yes, the else-branch is always be taken, exactly as said.

    My patch recommends "4 is greater than 5?!", with the ? to
    indicate its unexpectedness.

But the result is not unexpected.  4 is never greater than 5.  The
`if' expression does not ever claim it is.  Indeed, we could consider
it a major bug for an `if' to reverse the results of a test or for a
test of `>' to give the opposite results.

   > (Review): use `emacs-major-version' instead of `emacs-version'.

   > emacs-major-version did not work as of a few days ago, but
   > emacs-version did, so kept emacs-version

Yes, now I have `emacs-major-version' working.  Several days ago I
committed revisions with both `emacs-major-version' and `when'.  I do
not know why `emacs-major-version' did not work.  I think it was
glitch caused by my .emacs file.


   Your changes there were actually minor; I combined the discussion
   of the new arguments into the principal discussion of the line and
   suppressed the mention of earlier versions.  I'd recommend using my
   text there.

I see your point, except that `push-mark' is an example of a function
that has grown more complex over the years.  It is easier to consider
it when it just required one argument.  The additional arguments make
sense -- the second whether the function should display a message and
the third regarding Transient Mark mode.  Unfortunately, they also
mean that a novice has to be led very carefully into the notion.

   > (search-forward): simplify discussion of character/string
   > rewrote for 22

   You haven't modified what I modified (which was unrelated to versions);
   that hunk of mine should apply without problem.

Please again show me your change.  The relevant part I see has to do
with the way computers are built, and as far as I know, that has more
or less stayed the same.

(eintr)search-forward  says

    Because of the way computers are built, the Lisp interpreter may
    treat a single character as being different from a string of

Maybe that is no longer true.  But if it is true, then it provides
people who never intend to become programmers with an image of a
machine.  Otherwise, they may not make enough of the connection
between the symbols of the computer language and the concrete solidity
of the machine which the code directs as if it were a human cook
operating a stove.  They may think of code as a magical incantation.

   > rewrote for 22

   You changed "21" to "22", but I actually merged two paragraphs to get rid
   of the version reference altogether, since other references were being

I have tried to remove references to version 22 altogether and replace
them with the phrase `more recent versions' but could not remove all
of them.  

And, I just see, I missed at least one change that should have been
made and did not get rid of a reference to version 21 Emacs ...
Thanks, I will make the changes.

   >    (Recursive Definition Parts): use `when' in recursive template.
   > Not done, but probably a good idea

It is a good idea and I switched to `when'.

   > (lengths-list-file)

   The 19 commentary is still there.

Yes, it is worth showing how much Emacs as grown -- a factor of three
in the number of source files.  That is why I kept the old
information.  It really is dramatic.

   > (Simple Extension): clean up testing of Emacs version and minor
   > mode calls, and rewrite motivation for version-specific

  ... I changed the tests to be ">= 21"

I added that as an alternative, so readers can see what to do both for
specific versions and for multiple versions.

   Please apply my remaining changes ...

Yes, I have applied quite a few.  Thank you!  Please do read the
latest revision, which I just committed.  I think it is pretty good,
but then, as I said, I am close to it!

    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    address@hidden                         address@hidden
    http://www.rattlesnake.com                  http://www.teak.cc

reply via email to

[Prev in Thread] Current Thread [Next in Thread]