From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#8415: 23.3.50; Extensible Emacs Registers Date: Wed, 06 Apr 2011 11:38:43 -0400 Message-ID: References: <4D9A45CD.4030808@gmail.com> <4D9A7537.5030005@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1302106059 27297 80.91.229.12 (6 Apr 2011 16:07:39 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 6 Apr 2011 16:07:39 +0000 (UTC) Cc: Davis Herring , Daniel Colascione , 8415@debbugs.gnu.org To: Leo Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Apr 06 18:07:33 2011 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.69) (envelope-from ) id 1Q7VGV-0008M6-4E for geb-bug-gnu-emacs@m.gmane.org; Wed, 06 Apr 2011 18:07:31 +0200 Original-Received: from localhost ([127.0.0.1]:49103 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q7VGT-0000D4-MG for geb-bug-gnu-emacs@m.gmane.org; Wed, 06 Apr 2011 12:07:29 -0400 Original-Received: from [140.186.70.92] (port=49556 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q7VGI-0000C1-Sn for bug-gnu-emacs@gnu.org; Wed, 06 Apr 2011 12:07:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q7VGG-00089H-RC for bug-gnu-emacs@gnu.org; Wed, 06 Apr 2011 12:07:18 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:53833) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q7VGG-000897-Ph for bug-gnu-emacs@gnu.org; Wed, 06 Apr 2011 12:07:16 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1Q7Uow-0003fI-81; Wed, 06 Apr 2011 11:39:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 06 Apr 2011 15:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 8415 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 8415-submit@debbugs.gnu.org id=B8415.130210433314057 (code B ref 8415); Wed, 06 Apr 2011 15:39:02 +0000 Original-Received: (at 8415) by debbugs.gnu.org; 6 Apr 2011 15:38:53 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Q7Uom-0003ef-9l for submit@debbugs.gnu.org; Wed, 06 Apr 2011 11:38:52 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.181] helo=ironport2-out.pppoe.ca) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Q7Uoj-0003eN-AJ for 8415@debbugs.gnu.org; Wed, 06 Apr 2011 11:38:50 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEALuInE1FpZU1/2dsb2JhbACld3iIebhkhWwElFmCEg X-IronPort-AV: E=Sophos;i="4.63,310,1299474000"; d="scan'208";a="103426173" Original-Received: from 69-165-149-53.dsl.teksavvy.com (HELO pastel.home) ([69.165.149.53]) by ironport2-out.pppoe.ca with ESMTP/TLS/ADH-AES256-SHA; 06 Apr 2011 11:38:43 -0400 Original-Received: by pastel.home (Postfix, from userid 20848) id 0DCF858C65; Wed, 6 Apr 2011 11:38:43 -0400 (EDT) In-Reply-To: (Leo's message of "Wed, 06 Apr 2011 13:00:04 +0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Wed, 06 Apr 2011 11:39:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org 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:45665 Archived-At: >>>>> "Leo" == Leo writes: > On 2011-04-05 21:50 +0800, Stefan Monnier wrote: >>>> The end point is pretty much the same, but all the intermediate steps >>>> are safe and easy to check. >>> I think a structure still is a better approach. >> >> I already agreed in the previous message. >> >> >> Stefan > Sorry if I have missed that. > The alternative you propose, i.e. making the value a structure is > actually the first approach I attempted in > http://article.gmane.org/gmane.emacs.devel/137781. I think that's a better approach, yes (tho I'd pass the register object to the functions, so instead of: (let* ((object (register-get register)) (val (if (register-p object) (register-info object) object)) (jump (and (register-p object) (register-jump-func object)))) (cond (jump (funcall jump val)) you just have (let* ((object (register-get register)) (jump (and (register-p object) (register-jump-func object)))) (cond (jump (funcall jump object)) or (let* ((object (register-get register))) (cond ((register-p object) (funcall (or (register-jump-func object) (error "Don't know how to jump")) object)) > 1. all existing register-creating commands need to use the new > implementation, so the patch won't be any smaller. That's for subsequent patches. > 2. needs explicitly creating a register-value struct i.e. > (register-set ?a (register-value-make ....)). I see that as a feature. Stefan