From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Can't M-x compile-defun `edebug' because dynamic variables are falsely taken as lexical. Date: Thu, 13 Feb 2020 17:09:46 -0500 Message-ID: References: <20170103141444.GA4649@acm.fritz.box> <20170103213228.GB2085@acm.fritz.box> <20170104133948.GA7373@acm.fritz.box> <20170104200458.GA2052@acm.fritz.box> <29855ded-8607-4132-a80f-3204c06d74d9@default> <256f068f-5a0a-4127-aa7c-633eae24f15f@default> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="50127"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Alan Mackenzie , emacs-devel@gnu.org To: Drew Adams Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Feb 13 23:11:11 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1j2MhT-000Cvt-2S for ged-emacs-devel@m.gmane-mx.org; Thu, 13 Feb 2020 23:11:11 +0100 Original-Received: from localhost ([::1]:59758 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j2MhS-0008Re-42 for ged-emacs-devel@m.gmane-mx.org; Thu, 13 Feb 2020 17:11:10 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51080) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j2MgI-0007an-6m for emacs-devel@gnu.org; Thu, 13 Feb 2020 17:09:59 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j2MgD-0006vF-BT for emacs-devel@gnu.org; Thu, 13 Feb 2020 17:09:57 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:4313) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j2MgD-0006qi-2v for emacs-devel@gnu.org; Thu, 13 Feb 2020 17:09:53 -0500 Original-Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 9B43E81255; Thu, 13 Feb 2020 17:09:51 -0500 (EST) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id B2AC480DE5; Thu, 13 Feb 2020 17:09:48 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1581631788; bh=YUWO/BUMnog2PqojYc7AVOnHl/TOP2ugb2SshX3yh10=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=H+GOw0b2K5+nLXzllmsZ+DP1ZOSy92aNe4p7L2VQhNzxlDPN+pI+uJi+IGDwyTe2z 5mcULQiN9k/tqNk/fgeFD3jZQ+UHQH5QDHoqG1NV5wJJmb+ibOcsS9LbO5DC1gqDRU UlJ/poJjnr5C4NTlCZHdv9sIiVUPvjRKZPPkR7zQ3JDorq6gFC1qMBuG300UtXjvwR 15kmWEp96wX5hSFLb/xz6W5VnTUkIolAdi4X7w1NYbIAQO3AXRi1F4BKASiMc5Azzk 65BoA/qr+RKwqgT2NzYp8OPK4ORz1UKqjPBgVwfhyiHIsAts7aP/LKQRl3lvFxNCk+ 1GAsL6lmsCj/w== Original-Received: from alfajor (unknown [157.52.14.222]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 4FC961202FC; Thu, 13 Feb 2020 17:09:48 -0500 (EST) In-Reply-To: <256f068f-5a0a-4127-aa7c-633eae24f15f@default> (Drew Adams's message of "Thu, 13 Feb 2020 12:43:29 -0800 (PST)") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 132.204.25.50 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:244925 Archived-At: > But I'm afraid I don't know what a permanent versus > temporary special variable is. > And I haven't found > anything in the doc that has helped me with that. It's the term used in the part that describes `defvar`: Note that specifying a value, even @code{nil}, marks the variable as special permanently. Whereas if @var{value} is omitted then the variable is only marked special locally (i.e.@: within the current lexical scope, or file if at the top-level). This can be useful for suppressing byte compilation warnings, see @ref{Compiler Errors}. > AFAIK, in Common Lisp a variable is either special > or it's not. If it is then its binding by `let' > is dynamic, and if it's not then its let-binding > is lexical. (No?) Same for us. Does Common Lisp offer something like `special-variable-p`? Stefan