unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: larsh@math.ku.dk, Luc Teirlinck <teirllm@dms.auburn.edu>,
	emacs-devel@gnu.org
Subject: Re: void variable
Date: 19 Aug 2004 15:33:53 -0400	[thread overview]
Message-ID: <jwv8ycbdixm.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <E1Bpqqq-0004cL-MZ@fencepost.gnu.org>

>     Maybe we could arrange for defvar to burp a warning if the var is
>     currently let-bound?
> That sounds like a good idea.  It should be possible to do this
> by searching the specpdl.

The patch below seems to work well.  Any objection (or suggestion of
a better message)?


        Stefan


--- orig/src/eval.c
+++ mod/src/eval.c
@@ -747,6 +747,20 @@
 	XSYMBOL (sym)->constant = 0;
       if (NILP (tem))
 	Fset_default (sym, Feval (Fcar (tail)));
+      else
+	{ /* Check if there is really a global binding rather than just a let
+	     binding that shadows the global unboundness of the var.  */
+	  struct specbinding *pdl = specpdl_ptr;
+	  while (--pdl >= specpdl)
+	    {
+	      if (!pdl->func && EQ (pdl->symbol, sym) && EQ (pdl->old_value, Qunbound))
+		{
+		  message_with_string ("%s is still globally unbound",
+				       SYMBOL_NAME (sym), 1);
+		  pdl = specpdl; /* Don'tlook further.  */
+		}
+	    }
+	}
       tail = Fcdr (tail);
       tem = Fcar (tail);
       if (!NILP (tem))

  parent reply	other threads:[~2004-08-19 19:33 UTC|newest]

Thread overview: 46+ 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
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 [this message]
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

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwv8ycbdixm.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=larsh@math.ku.dk \
    --cc=teirllm@dms.auburn.edu \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).