From: Luc Teirlinck <teirllm@dms.auburn.edu>
Cc: larsh@math.ku.dk, emacs-devel@gnu.org
Subject: Re: void variable
Date: Wed, 28 Jul 2004 21:31:47 -0500 (CDT) [thread overview]
Message-ID: <200407290231.i6T2Vlk24222@raven.dms.auburn.edu> (raw)
In-Reply-To: <E1BpWWv-0008L3-Q4@fencepost.gnu.org> (message from Richard Stallman on Tue, 27 Jul 2004 14:18:25 -0400)
Richard Stallman wrote:
2. Manual explain the same a bit more elaborate and direct people to
autoload relevant variables to avoid the pitfall.
That could mean too many things, so I have no opinion.
I have committed my _original_ patches for def{var,const,custom}.
In as far as the Elisp manual is concerned, what about the following patch?
===File ~/variables-diff====================================
*** variables.texi 23 Jun 2004 10:23:55 -0500 1.52
--- variables.texi 28 Jul 2004 21:15:39 -0500
***************
*** 1,6 ****
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
! @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999,
@c 2000, 2003, 2004
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
--- 1,6 ----
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
! @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004,
@c 2000, 2003, 2004
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
***************
*** 588,593 ****
--- 588,606 ----
a file, where normally no local binding is in effect, and make sure to
load the file before making a local binding for the variable.
+ If you make a local binding for a variable defined with @code{defvar}
+ or @code{defcustom} in another non-preloaded file, and if anything in
+ the scope of the binding loads that file, for instance through
+ autoloading, then this may fail to properly initialize the variable.
+ If the @code{defvar} or @code{defcustom} itself is autoloaded through
+ a magic comment (@pxref{Autoload}), then there is nothing to worry
+ about: it is already initialized. Otherwise, there are two ways to
+ prevent trouble. You can precede the @code{defvar} or
+ @code{defcustom} with a magic comment, or you can @code{require} the
+ file before making the binding (@pxref{Named Features}). The same
+ applies to variables defined with @code{defconst}, but you should
+ normally not bind such variables anyway.
+
@node Tips for Defining
@section Tips for Defining Variables Robustly
============================================================
next prev parent reply other threads:[~2004-07-29 2:31 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-25 6:32 void variable Lars Hansen
2004-07-25 7:56 ` Adrian Aichner
2004-07-25 19:25 ` Lars Hansen
2004-07-25 20:46 ` Luc Teirlinck
2004-07-25 21:54 ` Lars Hansen
2004-07-25 23:39 ` Luc Teirlinck
2004-07-25 23:54 ` Luc Teirlinck
2004-07-26 1:52 ` Luc Teirlinck
2004-07-26 2:13 ` Luc Teirlinck
2004-07-26 14:30 ` Richard Stallman
2004-07-26 15:12 ` Lars Hansen
2004-07-27 18:18 ` Richard Stallman
2004-07-29 2:31 ` Luc Teirlinck [this message]
2004-07-29 7:19 ` Lars Hansen
2004-07-30 3:21 ` Luc Teirlinck
2004-07-30 6:56 ` Lars Hansen
2004-07-30 4:55 ` Richard Stallman
2004-07-26 15:21 ` Luc Teirlinck
2004-07-27 18:18 ` Richard Stallman
2004-07-26 16:05 ` Kai Grossjohann
2004-07-26 18:40 ` Lars Hansen
2004-07-27 18:18 ` Richard Stallman
2004-07-26 3:13 ` Richard Stallman
2004-07-26 19:23 ` Stefan Monnier
2004-07-26 19:46 ` Lars Hansen
2004-07-26 19:46 ` David Kastrup
2004-07-26 20:41 ` Luc Teirlinck
2004-07-26 21:13 ` Stefan Monnier
2004-07-27 2:59 ` Luc Teirlinck
2004-07-27 3:07 ` Luc Teirlinck
2004-07-27 3:09 ` Luc Teirlinck
2004-07-28 16:00 ` Richard Stallman
2004-07-29 2:00 ` Luc Teirlinck
2004-08-19 19:33 ` Stefan Monnier
2004-08-19 20:12 ` Adrian Aichner
2004-08-19 20:45 ` Davis Herring
2004-08-20 21:08 ` Richard Stallman
2004-08-20 22:08 ` Stefan Monnier
2004-08-19 21:54 ` Andreas Schwab
2004-08-19 22:20 ` Stefan Monnier
2004-08-19 22:25 ` David Kastrup
2004-08-20 1:27 ` Luc Teirlinck
2004-08-20 14:54 ` Stefan Monnier
2004-08-21 16:49 ` Richard Stallman
2004-08-20 21:08 ` Richard Stallman
2004-07-26 1:29 ` Richard Stallman
-- strict thread matches above, loose matches on Subject: below --
2008-04-17 19:54 J. David Boyd
2008-04-18 8:03 ` Carsten Dominik
2008-04-18 14:34 ` J. David Boyd
2008-04-18 15:02 ` J. David Boyd
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200407290231.i6T2Vlk24222@raven.dms.auburn.edu \
--to=teirllm@dms.auburn.edu \
--cc=emacs-devel@gnu.org \
--cc=larsh@math.ku.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.