From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: npostavs@users.sourceforge.net Newsgroups: gmane.emacs.bugs Subject: bug#27718: 26.0.50; (cl-typep instance-ab 'class-a) gives wrong answer when compiled Date: Sat, 22 Jul 2017 13:51:22 -0400 Message-ID: <87tw248in9.fsf@users.sourceforge.net> References: <87tw2dcqtz.fsf@users.sourceforge.net> <87inim9dy0.fsf@users.sourceforge.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1500745818 24938 195.159.176.226 (22 Jul 2017 17:50:18 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 22 Jul 2017 17:50:18 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) Cc: 27718@debbugs.gnu.org, Alex To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Jul 22 19:50:14 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 1dYyXZ-0005zW-FX for geb-bug-gnu-emacs@m.gmane.org; Sat, 22 Jul 2017 19:50:09 +0200 Original-Received: from localhost ([::1]:47959 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dYyXf-0004Ky-57 for geb-bug-gnu-emacs@m.gmane.org; Sat, 22 Jul 2017 13:50:15 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48709) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dYyXX-0004J1-44 for bug-gnu-emacs@gnu.org; Sat, 22 Jul 2017 13:50:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dYyXS-0007rp-71 for bug-gnu-emacs@gnu.org; Sat, 22 Jul 2017 13:50:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:49910) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dYyXS-0007rW-2k for bug-gnu-emacs@gnu.org; Sat, 22 Jul 2017 13:50:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dYyXR-0008EY-JF for bug-gnu-emacs@gnu.org; Sat, 22 Jul 2017 13:50:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 22 Jul 2017 17:50:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27718 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 27718-submit@debbugs.gnu.org id=B27718.150074579531634 (code B ref 27718); Sat, 22 Jul 2017 17:50:01 +0000 Original-Received: (at 27718) by debbugs.gnu.org; 22 Jul 2017 17:49:55 +0000 Original-Received: from localhost ([127.0.0.1]:52587 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dYyXL-0008EA-I4 for submit@debbugs.gnu.org; Sat, 22 Jul 2017 13:49:55 -0400 Original-Received: from mail-it0-f52.google.com ([209.85.214.52]:34481) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dYyXJ-0008Dx-EN for 27718@debbugs.gnu.org; Sat, 22 Jul 2017 13:49:54 -0400 Original-Received: by mail-it0-f52.google.com with SMTP id v205so5977919itf.1 for <27718@debbugs.gnu.org>; Sat, 22 Jul 2017 10:49:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=vqU1eJVwmG7G35pcubb0Y5idE0o8ca1kIRwXXsObKEU=; b=Fj4QCHx24nDPrSf77P7DlmlafYHrgifZl3cMuUBTBf4Kr1zrXAOWKm7Is9AslaNOw7 U2HKeLTws3jpX0KhW8b18IRoorUkMJkD08PCl59P4hifpHsWjpkSvw7N1xr3jxGko7wM jlfpdaW6Jq25eTMCksU3gySXE9D4FP0FHAV+ru5AAebGpoVk4tj9MbNRpzlthdFJvBmz cIVTfsS4ji6DhGzTR1n/UVxg1asK69avRsc1rXk+8HEWUu6lR1LY7jw0qLlpbTJmxFFK JXMTagxOQ+DpX5kxDOqVBsjACO31p9j/QgoAOQOOm0NFdPOjvd8F3eGSPRwVMVFFyZLA O9sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=vqU1eJVwmG7G35pcubb0Y5idE0o8ca1kIRwXXsObKEU=; b=rfm4yTuOmVDwZHeTOHRIEpUNtS/lPMDcBBVKvfCw8719w0DRWCGG1MW3RkF68h17wJ YOvR36N54eSMLQqqoykPQgFMtg5wy6X3cQjxNCwig8otjNvnPrJA6ldQlSKLjt0alu6E evXZLRtbotQrRhSEHFKdosT82sDr9RdRN3qjfHda1JL4bhFBzTYFr/ehFsClaYgXODmU v2Q1u8aYc4Hncaii3F81bVUQzjrETIok9LlwR+YqHpeCRsKGTpcZfpKMyldXhutzieQi AQRmxlzyMrh4sgeT+j04+yPZE/N150jqm7IkvQ1Uwyc44KxaSX38JkDKGOGQldwnfwnq cbUw== X-Gm-Message-State: AIVw1117aEvPS8wowdfqqDXknpVhILudezxPrvCDhslMrzqhBwdU9RXy CqbRxMQVNSMnlQ== X-Received: by 10.36.92.77 with SMTP id q74mr2631057itb.24.1500745787675; Sat, 22 Jul 2017 10:49:47 -0700 (PDT) Original-Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id 5sm2171759iox.9.2017.07.22.10.49.46 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 22 Jul 2017 10:49:46 -0700 (PDT) In-Reply-To: (Stefan Monnier's message of "Fri, 21 Jul 2017 09:19:58 -0400") 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:134865 Archived-At: --=-=-= Content-Type: text/plain Stefan Monnier writes: > So maybe rather than hijack function-get/put in bug#27016, we should > introduce a new "definitional put" with a corresponding `get`, and then > use that here as well as in function-put/get. > > Maybe we could simply change put&get directly without introducing > yet-another slightly different get/put? Something like this? --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Let-put-take-effect-during-compilation-Bug-27718.patch Content-Description: patch >From 7645c7ff5078aa0bc937969fb1550b0f794d793e Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Sat, 22 Jul 2017 13:46:58 -0400 Subject: [PATCH] Let `put' take effect during compilation (Bug#27718) * lisp/emacs-lisp/bytecomp.el: Use `byte-compile-function-put' to handle `put' as well. * src/fns.c (Fget): Consult `byte-compile-plist-environment'. * lisp/subr.el (function-get): Let `get' take care of consuling `byte-compile-plist-environment'. --- lisp/emacs-lisp/bytecomp.el | 1 + lisp/subr.el | 7 +------ src/fns.c | 10 ++++++++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 4dda3bdc2b..3fead4229e 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -4719,6 +4719,7 @@ (defun byte-compile-form-make-variable-buffer-local (form) (byte-compile-keep-pending form 'byte-compile-normal-call)) (put 'function-put 'byte-hunk-handler 'byte-compile-function-put) +(put 'put 'byte-hunk-handler 'byte-compile-function-put) (defun byte-compile-function-put (form) (pcase form ((and `(,op ,fun ,prop ,val) diff --git a/lisp/subr.el b/lisp/subr.el index 3e4a3dedf5..42b4e1c211 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2971,12 +2971,7 @@ (defun function-get (f prop &optional autoload) if it's an autoloaded macro." (let ((val nil)) (while (and (symbolp f) - (null (setq val (or (plist-get - (alist-get - f (bound-and-true-p - byte-compile-plist-environment)) - prop) - (get f prop)))) + (null (setq val (get f prop))) (fboundp f)) (let ((fundef (symbol-function f))) (if (and autoload (autoloadp fundef) diff --git a/src/fns.c b/src/fns.c index d849618f2b..655422aa0f 100644 --- a/src/fns.c +++ b/src/fns.c @@ -1987,6 +1987,14 @@ DEFUN ("get", Fget, Sget, 2, 2, 0, (Lisp_Object symbol, Lisp_Object propname) { CHECK_SYMBOL (symbol); + Lisp_Object plist_env = find_symbol_value (Qbyte_compile_plist_environment); + if (CONSP (plist_env)) + { + Lisp_Object propval = Fplist_get (CDR (Fassq (symbol, plist_env)), + propname); + if (!NILP (propval)) + return propval; + } return Fplist_get (XSYMBOL (symbol)->plist, propname); } @@ -5125,6 +5133,8 @@ syms_of_fns (void) DEFSYM (Qkey_or_value, "key-or-value"); DEFSYM (Qkey_and_value, "key-and-value"); + DEFSYM (Qbyte_compile_plist_environment, "byte-compile-plist-environment"); + defsubr (&Ssxhash_eq); defsubr (&Ssxhash_eql); defsubr (&Ssxhash_equal); -- 2.11.1 --=-=-=--