From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#27016: possible bug in `defsetf' Date: Thu, 13 Jul 2017 10:25:38 -0400 Message-ID: References: <87h9075j12.fsf@users.sourceforge.net> <87injak1lj.fsf@users.sourceforge.net> <877ezp4v96.fsf@drachen> <871sppgyhb.fsf@users.sourceforge.net> <8760eyfp7s.fsf@users.sourceforge.net> <87a849djvp.fsf@users.sourceforge.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1499956823 31506 195.159.176.226 (13 Jul 2017 14:40:23 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 13 Jul 2017 14:40:23 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) Cc: Michael Heerdegen , 27016@debbugs.gnu.org, Rafael D Sorkin To: npostavs@users.sourceforge.net Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Jul 13 16:40:17 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVfHs-0007nu-73 for geb-bug-gnu-emacs@m.gmane.org; Thu, 13 Jul 2017 16:40:16 +0200 Original-Received: from localhost ([::1]:60433 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dVfHx-00073z-Kc for geb-bug-gnu-emacs@m.gmane.org; Thu, 13 Jul 2017 10:40:21 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51716) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dVf4A-0001ek-4h for bug-gnu-emacs@gnu.org; Thu, 13 Jul 2017 10:26:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dVf46-0003ua-3Z for bug-gnu-emacs@gnu.org; Thu, 13 Jul 2017 10:26:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:34541) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dVf45-0003sz-W3 for bug-gnu-emacs@gnu.org; Thu, 13 Jul 2017 10:26:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dVf45-0003Rq-K9 for bug-gnu-emacs@gnu.org; Thu, 13 Jul 2017 10:26:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Jul 2017 14:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27016 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 27016-submit@debbugs.gnu.org id=B27016.149995594313229 (code B ref 27016); Thu, 13 Jul 2017 14:26:01 +0000 Original-Received: (at 27016) by debbugs.gnu.org; 13 Jul 2017 14:25:43 +0000 Original-Received: from localhost ([127.0.0.1]:37218 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVf3n-0003RJ-GY for submit@debbugs.gnu.org; Thu, 13 Jul 2017 10:25:43 -0400 Original-Received: from chene.dit.umontreal.ca ([132.204.246.20]:35669) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVf3l-0003R6-S3 for 27016@debbugs.gnu.org; Thu, 13 Jul 2017 10:25:42 -0400 Original-Received: from ceviche.home (lechon.iro.umontreal.ca [132.204.27.242]) by chene.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id v6DEPcV3007572; Thu, 13 Jul 2017 10:25:39 -0400 Original-Received: by ceviche.home (Postfix, from userid 20848) id 496C4660B0; Thu, 13 Jul 2017 10:25:38 -0400 (EDT) In-Reply-To: <87a849djvp.fsf@users.sourceforge.net> (npostavs's message of "Thu, 13 Jul 2017 00:46:18 -0400") X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 2 Rules triggered EDT_SA_DN_PASS=0, RV6070=0 X-NAI-Spam-Version: 2.3.0.9418 : core <6070> : inlines <5978> : streams <1754016> : uri <2462062> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.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: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:134504 Archived-At: > Oh, I think I get it now. Looks about right. A few comments below. Stefan > @@ -4577,6 +4582,7 @@ (byte-defop-compiler-1 defvar) > (byte-defop-compiler-1 defconst byte-compile-defvar) > (byte-defop-compiler-1 autoload) > (byte-defop-compiler-1 lambda byte-compile-lambda-form) > +(byte-defop-compiler-1 function-put) > > ;; If foo.el declares `toto' as obsolete, it is likely that foo.el will > ;; actually use `toto' in order for this obsolete variable to still work I know it's not how it's done everywhere now, but I like to put the byte-defop-compiler-1 next to the handler function. > @@ -4725,6 +4731,18 @@ (put 'make-variable-buffer-local > 'byte-hunk-handler 'byte-compile-form-make-variable-buffer-local) > (defun byte-compile-form-make-variable-buffer-local (form) > (byte-compile-keep-pending form 'byte-compile-normal-call)) > + > +(defun byte-compile-function-put (form) > + (pcase form > + (`(,_ (,(or 'quote 'function) ,(and fun (guard (symbolp fun)))) > + ',prop ,(or `#',value (and value (guard (functionp value))))) The value doesn't have to be `functionp` (it is in the case of gv-expander, but it depends on the property). > + (let ((fplist (assq fun byte-compile-plist-environment))) > + (if fplist > + (setcdr fplist (plist-put (cdr fplist) prop value)) > + (push (cons fun (list prop value)) > + byte-compile-plist-environment))))) I'd just unconditionally use `push`: (push (cons fun `(,prop ,value . ,fplist)) byte-compile-plist-environment)))))