From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.bugs Subject: bug#27016: possible bug in `defsetf' Date: Fri, 26 May 2017 01:40:16 +0200 Message-ID: <87d1awmrof.fsf@drachen> References: <87poex5igx.fsf@users.sourceforge.net> <87vaood6nz.fsf@drachen> <87o9ugd3oe.fsf@drachen> <87mva05ykw.fsf@users.sourceforge.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1495755699 29565 195.159.176.226 (25 May 2017 23:41:39 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 25 May 2017 23:41:39 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) Cc: 27016@debbugs.gnu.org, Rafael D Sorkin , Stefan Monnier To: npostavs@users.sourceforge.net Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri May 26 01:41:34 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 1dE2Np-0007aT-VB for geb-bug-gnu-emacs@m.gmane.org; Fri, 26 May 2017 01:41:34 +0200 Original-Received: from localhost ([::1]:34131 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dE2Nt-0002WG-H0 for geb-bug-gnu-emacs@m.gmane.org; Thu, 25 May 2017 19:41:37 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55377) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dE2NQ-0002O0-9D for bug-gnu-emacs@gnu.org; Thu, 25 May 2017 19:41:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dE2NL-00080m-01 for bug-gnu-emacs@gnu.org; Thu, 25 May 2017 19:41:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:35684) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dE2NK-00080e-OL for bug-gnu-emacs@gnu.org; Thu, 25 May 2017 19:41:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dE2NK-0007Pt-Eq for bug-gnu-emacs@gnu.org; Thu, 25 May 2017 19:41:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 25 May 2017 23:41:02 +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: wontfix Original-Received: via spool by 27016-submit@debbugs.gnu.org id=B27016.149575565328488 (code B ref 27016); Thu, 25 May 2017 23:41:02 +0000 Original-Received: (at 27016) by debbugs.gnu.org; 25 May 2017 23:40:53 +0000 Original-Received: from localhost ([127.0.0.1]:38361 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dE2N9-0007PP-Nj for submit@debbugs.gnu.org; Thu, 25 May 2017 19:40:52 -0400 Original-Received: from mout.web.de ([212.227.17.12]:50326) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dE2N7-0007PB-P4 for 27016@debbugs.gnu.org; Thu, 25 May 2017 19:40:50 -0400 Original-Received: from drachen.dragon ([94.216.140.150]) by smtp.web.de (mrweb102 [213.165.67.124]) with ESMTPSA (Nemesis) id 0MbyIM-1dTv3V1ihq-00JLMO; Fri, 26 May 2017 01:40:19 +0200 In-Reply-To: <87mva05ykw.fsf@users.sourceforge.net> (npostavs's message of "Thu, 25 May 2017 19:03:11 -0400") X-Provags-ID: V03:K0:2BZPfkDVP1HIPSXNVMvbkEFVEtC2Th0sS5jOgqxCWcu4c1frAQt GYKzAYGO26r/DhDTo93yiF0Z33ZnEdwmCjnrkPpG8hGUBRiwIFpYs7xoE3n/TUXMuGAmuvW D91nnVo2Y0RgsUu56YCyD87is/VuqOrCtrlDCoSPvZlAjpk7/R6t+LjC4dFw7j7CLioeaqU jdHN3R7CaqOIMJ4bX2FWA== X-UI-Out-Filterresults: notjunk:1;V01:K0:6i7t91+O9x4=:OqkTU0lBINMr2zLOAmz6ao PlyQ7QjjSq0EsI451uuc5FFq/MSy2u8g+bE9q2r1y5rjtRIuvpc77mVMm5MDw73LaxTI82pKB GIoMLMk5GpP4Rr6ACNnZd3Eml1pbCmZnr3ayZjAslVErJKV9NLYaUY4Bfx0M0gsUudkKkqEAb Jqx4T8u+curWCDilyig1wJx6KSMF58NUlNhfDXm+Dca8igVDr6G3ZtdCZvRl3LtThT0vRgJjr 8+aP29Y4ioYDS//06MpvPBWq46jTJt28wiQPH+130yng2SuqFxWg3Qy+2YFaXxa/XK6kwxzy8 on/QOirbjdmhg7OQu48d8HbWriN9RoYMveIAQLw9lEMfQC9H9yk8xUb+2ju64NgFfXw/h0PeV cmfcukJmomjabZhigVW+1UnIAQuixIOnqHmQ4t0U/4sZ7nBOYAsm38GMndgnKRhGVPQI6tcmK E11i8zkimCskUQwGixt9kPdMoMcsJs0AtHsDmTRa7Moey7PCWn82PtW/3CU/FLt4SJ+hrmvsl YhZI/W8mKT/Nlz0zJ75FiC0EqvJfnpE7dAx5H6seDGxCfz+qaBhx103mtXaFiulVW/4uMokhi 2FkYss29eeZj/P0fJSt2OlfhQ/ypOTdKB/hzCDoAdZ/7OAlEe/9ulfHsyUGgJZKX2os+sMlOF deWinUeX7Qz/+ZqjJys1IEQZ6Gtc9dxglFHXOEeKNe5I1ffdkjkfOFm/HXDF52AriMSjMh+Zg FgC4mHLmY3kZHco34iVwygCwkKHFQYynj8S1GFG9/yTOUOS60RHUYf0gQ0lrZydXNjiI1Um2 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:132869 Archived-At: Hello, I wonder now if the definition of `eval-and-compile' as defmacro is correct. Maybe Stefan can help (I CC'd him), he may also want to look at the rest of the report... npostavs@users.sourceforge.net writes: > > #+begin_src emacs-lisp > > (macroexpand '(defsetf foo bar)) > > ==> > > '(lambda > > (do &rest args) > > (gv--defsetter 'foo > > (lambda > > (val &rest args) > > `(,'bar ,@args ,val)) > > do args)) > > #+end_src > > I don't understand where that quote comes from. The `defsetf' expands to an `eval-and-compile'. The `eval-and-compile' expands to a quoted constant, see its definition (as defmacro). > > When you compile a file with this content: > > > > #+begin_src emacs-lisp > > (eval-and-compile > > (unless nil > > (defsetf foo bar))) > > #+end_src > > > > you get an empty .elc. > > > > Isn't that strange? > > Yeah, even stranger... AFAIU, when compiled, `eval-and-compile' macroexpands its body (see the defconst of `byte-compile-initial-macro-environment'). So what is compiled is essentially #+begin_src emacs-lisp (if nil nil '(closure (t) (do &rest args) (gv--defsetter 'foo (lambda (val &rest args) `(,'bar ,@args ,val)) do args))) #+end_src and that's just discarded. Michael.