all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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
  
============================================================

  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.