From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Miles Bader Newsgroups: gmane.emacs.devel Subject: Re: byte-code optimizations Date: Tue, 21 Sep 2004 17:15:27 -0400 Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Message-ID: <20040921211527.GA3394@fencepost> References: <200409181152.15364.pogonyshev@gmx.net> <200409191412.50820.pogonyshev@gmx.net> <200409212242.47848.pogonyshev@gmx.net> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1095801360 21866 80.91.229.6 (21 Sep 2004 21:16:00 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 21 Sep 2004 21:16:00 +0000 (UTC) Cc: emacs-devel@gnu.org, rms@gnu.org, Paul Pogonyshev Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Sep 21 23:15:54 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1C9rzO-0006nu-00 for ; Tue, 21 Sep 2004 23:15:54 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1C9s5K-0007H1-M0 for ged-emacs-devel@m.gmane.org; Tue, 21 Sep 2004 17:22:02 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1C9s5C-0007Gj-Qo for emacs-devel@gnu.org; Tue, 21 Sep 2004 17:21:54 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1C9s5C-0007GX-Cx for emacs-devel@gnu.org; Tue, 21 Sep 2004 17:21:54 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1C9s5C-0007GT-Ap for emacs-devel@gnu.org; Tue, 21 Sep 2004 17:21:54 -0400 Original-Received: from [199.232.76.164] (helo=fencepost.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.34) id 1C9rz3-00061k-LS for emacs-devel@gnu.org; Tue, 21 Sep 2004 17:15:34 -0400 Original-Received: from miles by fencepost.gnu.org with local (Exim 4.34) id 1C9ryx-00013i-7W; Tue, 21 Sep 2004 17:15:27 -0400 Original-To: Stefan Monnier Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.28i Blat: Foop X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 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.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:27398 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:27398 On Tue, Sep 21, 2004 at 05:05:30PM -0400, Stefan Monnier wrote: > What defsubst* does is treat the argument as a kind of "lexically scoped" > variable, but only in very limited ways. I.e. the ... > (defsubst* foo (x) (symbol-value x)) > > (foo y) => (symbol-value y) > > whereas our optimization won't be able to do that because it can't assume > a "somewhat lexically scoped" semantics. I vote for saying "you're not allowed to treat defsubst argument bindings as normal dynamic bindings, and if you have tons of code that does, well screw you, you're probably a crappy programmer anyway." Maybe a bit more diplomatically. -Miles -- My spirit felt washed. With blood. [Eli Shin, on "The Passion of the Christ"]