all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#7986: 23.2.91; Remove unwise advice from manual
@ 2011-02-04 23:26 Reuben Thomas
  2011-02-04 23:57 ` Lennart Borgman
  2011-02-09  0:28 ` Chong Yidong
  0 siblings, 2 replies; 4+ messages in thread
From: Reuben Thomas @ 2011-02-04 23:26 UTC (permalink / raw)
  To: 7986

In “Hooks for Loading” the manual says:

   But it is OK to use `eval-after-load' in your personal
customizations if you don't feel that they must meet the design
standards for programs meant for wider use.

This sort of advice tends to be unwise to give, because people write
code for their own use, then later distribute it and forget to clean it
up. In any case, the solutions in this case, as explained in the
previous paragraph:

   Normally, well-designed Lisp programs should not use
`eval-after-load'.  If you need to examine and set the variables
defined in another library (those meant for outside use), you can do it
immediately--there is no need to wait until the library is loaded.  If
you need to call functions defined by that library, you should load the
library, preferably with `require' (*note Named Features::).

are easier to write than the bad code. Hence, I suggest the offending
paragraph (the first one I quoted above) be removed.


In GNU Emacs 23.2.91.4 (i686-pc-linux-gnu, GTK+ Version 2.22.0)
 of 2011-01-13 on canta
Windowing system distributor `The X.Org Foundation', version 11.0.10900000
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Info

Minor modes in effect:
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  show-paren-mode: t
  savehist-mode: t
  minibuffer-electric-default-mode: t
  iswitchb-mode: t
  icomplete-mode: t
  global-whitespace-mode: t
  global-auto-revert-mode: t
  desktop-save-mode: t
  yas/global-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
C-n C-n C-n C-n C-p C-p C-f <return> C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-s ; ; ; C-a C-s c u s t o m <backspace> 
<backspace> o m C-s C-s C-a C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-SPC C-n C-n C-n C-w M-x r e p o r t - e m 
a c s - b u g <return>

Recent messages:
Mark set
Quit
Type "q" to restore this window.
Mark set
Mark saved where search started
Making completion list... [5 times]
Note: file is write protected
Mark saved where search started [3 times]
Mark set
Read only text copied to kill ring

Load-path shadows:
/home/rrt/.emacs.d/elpa/ruby-mode-1.1/ruby-mode hides /usr/share/emacs-snapshot/site-lisp/ruby1.8-elisp/ruby-mode
/home/rrt/local/share/emacs/site-lisp/popup hides /usr/local/share/emacs/23.2.91/site-lisp/auto-complete/popup
/home/rrt/local/share/emacs/site-lisp/fuzzy hides /usr/local/share/emacs/23.2.91/site-lisp/auto-complete/fuzzy
/home/rrt/.emacs.d/elpa/css-mode-1.0/css-mode hides /usr/local/share/emacs/23.2.91/site-lisp/css-mode/css-mode
/home/rrt/.emacs.d/elpa/dictionary-1.8.7/link hides /usr/local/share/emacs/23.2.91/site-lisp/dictionary-el/link
/home/rrt/.emacs.d/elpa/dictionary-1.8.7/connection hides /usr/local/share/emacs/23.2.91/site-lisp/dictionary-el/connection
/home/rrt/.emacs.d/elpa/dictionary-1.8.7/dictionary-init hides /usr/local/share/emacs/23.2.91/site-lisp/dictionary-el/dictionary-init
/home/rrt/.emacs.d/elpa/dictionary-1.8.7/dictionary hides /usr/local/share/emacs/23.2.91/site-lisp/dictionary-el/dictionary
/home/rrt/local/share/emacs/site-lisp/dict hides /usr/local/share/emacs/23.2.91/site-lisp/emacs-goodies-el/dict
/home/rrt/.emacs.d/elpa/css-mode-1.0/css-mode hides /usr/local/share/emacs/23.2.91/lisp/textmodes/css-mode
/home/rrt/.emacs.d/elpa/ruby-mode-1.1/ruby-mode hides /usr/local/share/emacs/23.2.91/lisp/progmodes/ruby-mode
/home/rrt/.emacs.d/elpa/css-mode-1.0/css-mode hides /usr/share/emacs/site-lisp/css-mode/css-mode
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-info hides /usr/share/emacs/site-lisp/auctex/tex-info
/usr/local/share/emacs/23.2.91/site-lisp/auctex/context-nl hides /usr/share/emacs/site-lisp/auctex/context-nl
/usr/local/share/emacs/23.2.91/site-lisp/auctex/context-en hides /usr/share/emacs/site-lisp/auctex/context-en
/usr/local/share/emacs/23.2.91/site-lisp/auctex/latex hides /usr/share/emacs/site-lisp/auctex/latex
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-mik hides /usr/share/emacs/site-lisp/auctex/tex-mik
/usr/local/share/emacs/23.2.91/site-lisp/dictionary-el/lpath hides /usr/share/emacs/site-lisp/auctex/lpath
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-buf hides /usr/share/emacs/site-lisp/auctex/tex-buf
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-jp hides /usr/share/emacs/site-lisp/auctex/tex-jp
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex hides /usr/share/emacs/site-lisp/auctex/tex
/usr/local/share/emacs/23.2.91/site-lisp/auctex/multi-prompt hides /usr/share/emacs/site-lisp/auctex/multi-prompt
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-fptex hides /usr/share/emacs/site-lisp/auctex/tex-fptex
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-font
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-fold hides /usr/share/emacs/site-lisp/auctex/tex-fold
/usr/local/share/emacs/23.2.91/site-lisp/auctex/texmathp hides /usr/share/emacs/site-lisp/auctex/texmathp
/usr/local/share/emacs/23.2.91/site-lisp/auctex/context hides /usr/share/emacs/site-lisp/auctex/context
/usr/local/share/emacs/23.2.91/site-lisp/auctex/font-latex hides /usr/share/emacs/site-lisp/auctex/font-latex
/usr/local/share/emacs/23.2.91/site-lisp/auctex/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite
/usr/local/share/emacs/23.2.91/site-lisp/auctex/toolbar-x hides /usr/share/emacs/site-lisp/auctex/toolbar-x
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-style hides /usr/share/emacs/site-lisp/auctex/tex-style

Features:
(pc-select cua-base vcursor table reveal picture hl-line gnus-msg
gnus-art mm-uu mml2015 epg-config mm-view smime dig gnus-sum nnoo
gnus-group gnus-undo nnmail mail-source format-spec gnus-start gnus-spec
gnus-int gnus-range gnus-win gnus gnus-ems shadow sort mail-extr message
sendmail ecomplete rfc822 mml mml-sec password-cache mm-decode mm-bodies
mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums
mailabbrev nnheader gnus-util netrc time-date mm-util mail-prsvr
gmm-utils mailheader canlock hashcash mail-utils emacsbug cl-specs
edebug debug find-func grep compile dired log-view pcvs-util add-log
diff-git diff-mode vc-sccs vc-svn vc-rcs vc-dir ewoc vc vc-dispatcher
nroff-mode newcomment multi-isearch ansi-color shell pp dictionary link
connection gud help-mode cus-edit m4-mode make-mode autoconf
autoconf-mode view noutline outline tex-info texinfo tex sh-script
executable longlines vc-git inform-mode parse-time vc-cvs vc-bzr sha1
hex-util face-remap filladapt flyspell jka-compr info completing-help
recentf tree-widget wid-edit uniquify paren savehist minibuf-eldef
iswitchb icomplete whitespace autorevert time cus-start cus-load desktop
server php-mode etags cc-langs cc-mode cc-fonts cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs speedbar sb-image ezimage
dframe lua-mode regexp-opt comint ring ropemacs pymacs etags-update
smart-quotes ffap ispell auto-dictionary-autoloads css-mode-autoloads
dictionary-autoloads diff-git-autoloads dired-isearch-autoloads
full-ack-autoloads guess-style-autoloads js2-mode-autoloads
kill-ring-search-autoloads lambdacalc-autoloads magit-autoloads
mv-shell-autoloads ruby-mode-autoloads tumble-autoloads
http-post-simple-autoloads package reporter advice advice-preload
yasnippet help-fns derived edmacro kmacro easymenu assoc cl cl-19
muse-autoloads emacs-goodies-el emacs-goodies-custom
emacs-goodies-loaddefs easy-mmode bbdb-autoloads preview-latex tex-site
auto-loads tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win
x-dnd font-setting tool-bar dnd fontset image fringe lisp-mode register
page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock
font-lock syntax facemenu font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind system-font-setting
font-render-setting gtk x-toolkit x multi-tty emacs)

-- 
http://rrt.sc3d.org/





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#7986: 23.2.91; Remove unwise advice from manual
  2011-02-04 23:26 bug#7986: 23.2.91; Remove unwise advice from manual Reuben Thomas
@ 2011-02-04 23:57 ` Lennart Borgman
  2011-02-04 23:59   ` Reuben Thomas
  2011-02-09  0:28 ` Chong Yidong
  1 sibling, 1 reply; 4+ messages in thread
From: Lennart Borgman @ 2011-02-04 23:57 UTC (permalink / raw)
  To: Reuben Thomas; +Cc: 7986

On Sat, Feb 5, 2011 at 12:26 AM, Reuben Thomas <rrt@sc3d.org> wrote:
>
>   Normally, well-designed Lisp programs should not use
> `eval-after-load'.  If you need to examine and set the variables
> defined in another library (those meant for outside use), you can do it
> immediately--there is no need to wait until the library is loaded.  If
> you need to call functions defined by that library, you should load the
> library, preferably with `require' (*note Named Features::).

You can't do that. Just imagine you write a library with one single
purpose: doing something after another library is loaded.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#7986: 23.2.91; Remove unwise advice from manual
  2011-02-04 23:57 ` Lennart Borgman
@ 2011-02-04 23:59   ` Reuben Thomas
  0 siblings, 0 replies; 4+ messages in thread
From: Reuben Thomas @ 2011-02-04 23:59 UTC (permalink / raw)
  To: Lennart Borgman; +Cc: 7986

On 4 February 2011 23:57, Lennart Borgman <lennart.borgman@gmail.com> wrote:
> On Sat, Feb 5, 2011 at 12:26 AM, Reuben Thomas <rrt@sc3d.org> wrote:
>>
>>   Normally, well-designed Lisp programs should not use
>> `eval-after-load'.  If you need to examine and set the variables
>> defined in another library (those meant for outside use), you can do it
>> immediately--there is no need to wait until the library is loaded.  If
>> you need to call functions defined by that library, you should load the
>> library, preferably with `require' (*note Named Features::).
>
> You can't do that. Just imagine you write a library with one single
> purpose: doing something after another library is loaded.

I don't think that is at odds with the advice "Normally, well-designed
Lisp programs should not use `eval-after-load'." But if it is, then
the manual should be corrected.

However, that does not affect my suggestion that the advice about
writing code for "personal customizations" be removed.

-- 
http://rrt.sc3d.org





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#7986: 23.2.91; Remove unwise advice from manual
  2011-02-04 23:26 bug#7986: 23.2.91; Remove unwise advice from manual Reuben Thomas
  2011-02-04 23:57 ` Lennart Borgman
@ 2011-02-09  0:28 ` Chong Yidong
  1 sibling, 0 replies; 4+ messages in thread
From: Chong Yidong @ 2011-02-09  0:28 UTC (permalink / raw)
  To: Reuben Thomas; +Cc: 7986

Reuben Thomas <rrt@sc3d.org> writes:

>    But it is OK to use `eval-after-load' in your personal
> customizations if you don't feel that they must meet the design
> standards for programs meant for wider use.
>
> This sort of advice tends to be unwise to give, because people write
> code for their own use, then later distribute it and forget to clean it
> up.

Fair enough.  Removed.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-02-09  0:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-04 23:26 bug#7986: 23.2.91; Remove unwise advice from manual Reuben Thomas
2011-02-04 23:57 ` Lennart Borgman
2011-02-04 23:59   ` Reuben Thomas
2011-02-09  0:28 ` Chong Yidong

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.