From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lennart Borgman Newsgroups: gmane.emacs.bugs Subject: bug#3467: 23.0.94; let + make-local-variable => let value made global Date: Sun, 7 Jun 2009 03:11:23 +0200 Message-ID: References: Reply-To: Lennart Borgman , 3467@emacsbugs.donarmstrong.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1244337455 4537 80.91.229.12 (7 Jun 2009 01:17:35 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 7 Jun 2009 01:17:35 +0000 (UTC) Cc: 3467@emacsbugs.donarmstrong.com To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jun 07 03:17:31 2009 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1MD70s-00017O-Th for geb-bug-gnu-emacs@m.gmane.org; Sun, 07 Jun 2009 03:17:31 +0200 Original-Received: from localhost ([127.0.0.1]:44829 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MD70s-0006lA-9q for geb-bug-gnu-emacs@m.gmane.org; Sat, 06 Jun 2009 21:17:30 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MD70o-0006l5-6z for bug-gnu-emacs@gnu.org; Sat, 06 Jun 2009 21:17:26 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MD70j-0006kt-Lg for bug-gnu-emacs@gnu.org; Sat, 06 Jun 2009 21:17:25 -0400 Original-Received: from [199.232.76.173] (port=40024 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MD70j-0006kq-Eh for bug-gnu-emacs@gnu.org; Sat, 06 Jun 2009 21:17:21 -0400 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:57011) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MD70j-0003g9-0S for bug-gnu-emacs@gnu.org; Sat, 06 Jun 2009 21:17:21 -0400 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n571HImJ022881; Sat, 6 Jun 2009 18:17:18 -0700 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.14.3/8.14.3/Submit) id n571F4ku022259; Sat, 6 Jun 2009 18:15:04 -0700 X-Loop: owner@emacsbugs.donarmstrong.com Resent-From: Lennart Borgman Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Sun, 07 Jun 2009 01:15:04 +0000 Resent-Message-ID: Resent-Sender: owner@emacsbugs.donarmstrong.com X-Emacs-PR-Message: followup 3467 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by 3467-submit@emacsbugs.donarmstrong.com id=B3467.124433709422115 (code B ref 3467); Sun, 07 Jun 2009 01:15:04 +0000 Original-Received: (at 3467) by emacsbugs.donarmstrong.com; 7 Jun 2009 01:11:34 +0000 X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. Original-Received: from mail-fx0-f208.google.com (mail-fx0-f208.google.com [209.85.220.208]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n571BTUJ022105 for <3467@emacsbugs.donarmstrong.com>; Sat, 6 Jun 2009 18:11:30 -0700 Original-Received: by fxm4 with SMTP id 4so2652939fxm.1 for <3467@emacsbugs.donarmstrong.com>; Sat, 06 Jun 2009 18:11:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=YFNduFLK2PggwQcZeRyKbgOp5XU74K66RwcWGlBZc0I=; b=WjFuIUeVrZnrb3M+M/fSpCUj9BxNNBFuC5kmSoAVHUPDsZdzcwgSdFVBvfV4l7eO++ Vl6i+dqrF0RtLJZoRaP5BNExwIUi60tNPxr3bzu9Ck9iHCo6vtuV5gHUIEpdCENDIhiy qccCeqWnDIlUkOwUajMVYDnSY4MleYJpu2xhg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=OlWEDpk2rhd0WX+z3P1OlvCEUzo+o8wj0Co/30WiqL3/AOke+Vv0/CO1ewbqJ3VGdS tx2kyHbFJIFr7q2yJIXzjDQUL7/uqoe6Afy4BUZ+AnlLyeVTnp8zhtbqq+ASu6VerIjW xBHFmbGsR8WugMCofwn4l5qPXRYRsaz9dbDkw= Original-Received: by 10.239.167.212 with SMTP id h20mr408737hbe.68.1244337083292; Sat, 06 Jun 2009 18:11:23 -0700 (PDT) In-Reply-To: X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) Resent-Date: Sat, 06 Jun 2009 21:17:25 -0400 X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:28533 Archived-At: Rethinking. Everything is wrong in my solution and suggestion. Coming back. On Sat, Jun 6, 2009 at 10:11 PM, Lennart Borgman wrote: > On Sat, Jun 6, 2009 at 12:48 AM, Lennart > Borgman wrote: >> >> Sigh, and my suggestion was of course unnecessary stupid. What is >> needed is of course to record values and frame+buffer localness and >> dito values and reset them. Nothing less than this will ever work >> correctly, or? >> >> And does not this apply to all uses of specbind + unbind_to? >> >> Can it be sufficient to just change specbind and unbind_to? Is there >> anything else that will be affected by changes in the specbind stack? >> Since info about buffer+frame is alwas needed should specbinding be >> changed to the below form? >> >> struct specbinding >> =C2=A0{ >> =C2=A0 =C2=A0Lisp_Object symbol; >> =C2=A0 =C2=A0Lisp_Object old_value; >> =C2=A0 =C2=A0Lisp_Object old_buffer_value; >> =C2=A0 =C2=A0Lisp_Object old_frame_value; >> =C2=A0 =C2=A0specbinding_func func; >> =C2=A0 =C2=A0Lisp_Object unused; =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* Dividing= by 16 is faster than by 12 */ >> =C2=A0 =C2=A0Lisp_Object unused; >> =C2=A0 =C2=A0Lisp_Object unused; >> =C2=A0}; > > Here is a bit modified suggestion and some code where I try to > implement it. Please notice that I have not tested the code. It is > very possible that I have misunderstood something so please look at > the code. > > struct specbinding > =C2=A0{ > =C2=A0 =C2=A0Lisp_Object symbol; > =C2=A0 =C2=A0Lisp_Object old_value; > =C2=A0 =C2=A0specbinding_func func; > =C2=A0 =C2=A0// total 8 fields > =C2=A0 =C2=A0Lisp_Object need_test_local; > =C2=A0 =C2=A0Lisp_Object old_buffer; > =C2=A0 =C2=A0Lisp_Object old_buffer_value; > =C2=A0 =C2=A0Lisp_Object old_frame; > =C2=A0 =C2=A0Lisp_Object old_frame_value; > =C2=A0 =C2=A0//Lisp_Object unused; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 /* Dividing by 16 is faster than by 12 */ > =C2=A0}; >