From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.bugs Subject: bug#42919: 27.1; Strange byte compile error with `cond' involving cons Date: Wed, 19 Aug 2020 15:29:29 +0200 Message-ID: References: <1304.1597777216@localhost> <87r1s3vahw.fsf@tcd.ie> Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.15\)) Content-Type: multipart/mixed; boundary="Apple-Mail=_906006B0-036B-4B69-833A-01F76C193222" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38928"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Ikumi Keita , Stefan Monnier , 42919@debbugs.gnu.org To: "Basil L. Contovounesios" Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Aug 19 15:30:23 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k8OAZ-0009zl-8X for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 19 Aug 2020 15:30:23 +0200 Original-Received: from localhost ([::1]:43228 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k8OAV-00036D-Ul for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 19 Aug 2020 09:30:20 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57334) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k8OAF-000361-8K for bug-gnu-emacs@gnu.org; Wed, 19 Aug 2020 09:30:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:55276) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k8OAE-0000cF-Ua for bug-gnu-emacs@gnu.org; Wed, 19 Aug 2020 09:30:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1k8OAE-0003Qc-RZ for bug-gnu-emacs@gnu.org; Wed, 19 Aug 2020 09:30:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 19 Aug 2020 13:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 42919 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: confirmed Original-Received: via spool by 42919-submit@debbugs.gnu.org id=B42919.159784378613121 (code B ref 42919); Wed, 19 Aug 2020 13:30:02 +0000 Original-Received: (at 42919) by debbugs.gnu.org; 19 Aug 2020 13:29:46 +0000 Original-Received: from localhost ([127.0.0.1]:38589 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k8O9x-0003PZ-MC for submit@debbugs.gnu.org; Wed, 19 Aug 2020 09:29:45 -0400 Original-Received: from mail1463c50.megamailservers.eu ([91.136.14.63]:43438 helo=mail268c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k8O9u-0003PI-Fw for 42919@debbugs.gnu.org; Wed, 19 Aug 2020 09:29:44 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1597843775; bh=+w6WlHiiBupLLF/cY8h16NyObmAoKyB+TDqDRLivpAw=; h=From:Subject:Date:In-Reply-To:Cc:To:References:From; b=k06vc+rr/XeyOd4659vcx6Gi4tkXu+xdlulOBkta7oDh48ujz2wBsaEw1HUzBvBWJ /cvSCO0dTJgDRTzqOPn4EXaErLg9UPfeSrIkts09aN3eXtH3l3JyecRUycltBE+18r 8OUAXoA3nINueZfIqGXhNYlcVwu0fgzrQaUUFGTE= Feedback-ID: mattiase@acm.or Original-Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se [188.150.171.71]) (authenticated bits=0) by mail268c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 07JDTUJ8027056; Wed, 19 Aug 2020 13:29:31 +0000 In-Reply-To: <87r1s3vahw.fsf@tcd.ie> X-Mailer: Apple Mail (2.3445.104.15) X-CTCH-RefID: str=0001.0A782F1D.5F3D293F.0087, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=BZ+mLYl2 c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=M51BFTxLslgA:10 a=lvwbVptzyWg6aod_BjYA:9 a=CjuIK1q_8ugA:10 a=vs5J70OrCyeR1ToPUfIA:9 a=B2y7HmGcmWMA:10 X-Origin-Country: SE X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:185601 Archived-At: --Apple-Mail=_906006B0-036B-4B69-833A-01F76C193222 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii I'm so sorry about this stupid error, and am very grateful that you found it. Would you try this patch (applicable to Emacs 27.1)? --Apple-Mail=_906006B0-036B-4B69-833A-01F76C193222 Content-Disposition: attachment; filename=0001-Fix-cond-jump-table-compilation-bug-42919.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Fix-cond-jump-table-compilation-bug-42919.patch" Content-Transfer-Encoding: quoted-printable =46rom=205fcb97dabd3f7b00ebc574d6be4bad16a64482de=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= =0ADate:=20Wed,=2019=20Aug=202020=2014:59:29=20+0200=0A= Subject:=20[PATCH]=20Fix=20cond=20jump=20table=20compilation=20= (bug#42919)=0A=0AThis=20bug=20affected=20compilation=20of=0A=0A=20(cond=20= ((member=20'(some=20list)=20variable)=20...)=20...)=0A=0AWhile=20equal=20= is=20symmetric,=20member=20is=20not;=20in=20the=20latter=20case=20the=0A= arguments=20must=20be=20a=20variable=20and=20a=20constant=20list,=20in=20= that=20order.=0A=0AReported=20by=20Ikumi=20Keita.=0A=0A*=20= lisp/emacs-lisp/bytecomp.el=20(byte-compile--cond-switch-prefix):=0A= Don't=20treat=20equality=20and=20member=20predicates=20in=20the=20same=20= way;=20only=0Athe=20former=20are=20symmetric=20in=20their=20arguments.=0A= *=20test/lisp/emacs-lisp/bytecomp-tests.el=0A= (byte-opt-testsuite-arith-data):=20Add=20test=20cases.=0A---=0A=20= lisp/emacs-lisp/bytecomp.el=20=20=20=20=20=20=20=20=20=20=20=20|=2052=20= ++++++++++++++------------=0A=20test/lisp/emacs-lisp/bytecomp-tests.el=20= |=2015=20+++++++-=0A=202=20files=20changed,=2042=20insertions(+),=2025=20= deletions(-)=0A=0Adiff=20--git=20a/lisp/emacs-lisp/bytecomp.el=20= b/lisp/emacs-lisp/bytecomp.el=0Aindex=205479e6536a..90745a3a2f=20100644=0A= ---=20a/lisp/emacs-lisp/bytecomp.el=0A+++=20= b/lisp/emacs-lisp/bytecomp.el=0A@@=20-4172,40=20+4172,44=20@@=20= byte-compile--cond-switch-prefix=0A=20=20=20=20=20=20=20=20=20= (switch-var=20nil)=0A=20=20=20=20=20=20=20=20=20(switch-test=20'eq))=0A=20= =20=20=20=20(while=20(pcase=20(car=20clauses)=0A-=20=20=20=20=20=20=20=20= =20=20=20=20=20(`((,fn=20,expr1=20,expr2)=20.=20,body)=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20(`((,(and=20fn=20(or=20'eq=20'eql=20'equal))=20= ,expr1=20,expr2)=20.=20,body)=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(let*=20((vars=20(byte-compile--cond-vars=20expr1=20expr2))=0A=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(var=20(car=20= vars))=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (value=20(cdr=20vars)))=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(and=20var=20(or=20(eq=20var=20switch-var)=20(not=20switch-var))=0A-=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(cond=0A-=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20((memq=20fn=20= '(eq=20eql=20equal))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(progn=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20(setq=20switch-var=20var)=0A=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(setq=20switch-test=0A=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(byte-compile--common-test=20switch-test=20fn))=0A=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(unless=20= (member=20value=20keys)=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(push=20value=20keys)=0A=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(push=20(cons=20= (list=20value)=20(or=20body=20'(t)))=20cases))=0A-=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20t)=0A-=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20((and=20(memq=20fn=20'(memq=20= memql=20member))=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(listp=20value)=0A-=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20;;=20Require=20= a=20non-empty=20body,=20since=20the=20member=0A-=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20;;=20function=20= value=20depends=20on=20the=20switch=0A-=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20;;=20argument.=0A-=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= body)=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(setq=20switch-var=20var)=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(setq=20switch-test=0A-=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (byte-compile--common-test=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20switch-test=20(cdr=20(assq=20= fn=20'((memq=20=20=20.=20eq)=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(memql=20=20.=20= eql)=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(member=20.=20equal))))))=0A-=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let=20((vals=20= nil))=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(dolist=20(elem=20value)=0A-=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(unless=20(funcall=20fn=20= elem=20keys)=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(push=20elem=20vals)))=0A-=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(when=20vals=0A= -=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(setq=20keys=20(append=20vals=20keys))=0A-=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(push=20(cons=20= (nreverse=20vals)=20body)=20cases)))=0A-=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20t))))))=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20t))))=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20(`((,(and=20fn=20(or=20'memq=20'memql=20'member))=20,var=20= ,expr)=20.=20,body)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20(and=20= (symbolp=20var)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(or=20(eq=20var=20switch-var)=20(not=20switch-var))=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(macroexp-const-p=20expr)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20;;=20Require=20a=20= non-empty=20body,=20since=20the=20member=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20;;=20function=20value=20depends=20on=20the=20= switch=20argument.=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20body=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (let=20((value=20(eval=20expr)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(and=20(proper-list-p=20value)=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(progn=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(setq=20switch-var=20var)=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(setq=20switch-test=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(byte-compile--common-test=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20switch-test=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(cdr=20(assq=20= fn=20'((memq=20=20=20.=20eq)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20(memql=20=20.=20eql)=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(member=20= .=20equal))))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(let=20((vals=20nil))=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (dolist=20(elem=20value)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(unless=20(funcall=20= fn=20elem=20keys)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(push=20elem=20vals)))=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20(when=20vals=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(setq=20keys=20= (append=20vals=20keys))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(push=20(cons=20= (nreverse=20vals)=20body)=20cases)))=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20t))))))=0A=20=20=20=20= =20=20=20(setq=20clauses=20(cdr=20clauses)))=0A=20=20=20=20=20;;=20= Assume=20that=20a=20single=20switch=20is=20cheaper=20than=20two=20or=20= more=20discrete=0A=20=20=20=20=20;;=20compare=20clauses.=20=20This=20= could=20be=20tuned,=20possibly=20taking=20into=0Adiff=20--git=20= a/test/lisp/emacs-lisp/bytecomp-tests.el=20= b/test/lisp/emacs-lisp/bytecomp-tests.el=0Aindex=20= a16adfedfb..3aba9af3e7=20100644=0A---=20= a/test/lisp/emacs-lisp/bytecomp-tests.el=0A+++=20= b/test/lisp/emacs-lisp/bytecomp-tests.el=0A@@=20-347,7=20+347,20=20@@=20= byte-opt-testsuite-arith-data=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20((eq=20x=20't)=20= 99)=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(t=20999))))=0A=20=20=20=20=20=20=20=20=20=20= =20=20=20'((a=20c)=20(b=20c)=20(7=20c)=20(-3=20c)=20(nil=20nil)=20(t=20= c)=20(q=20c)=20(r=20c)=20(s=20c)=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(t=20c)=20(x=20"a")=20(x=20"c")=20(x=20c)=20(x=20d)=20(x=20e))))=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(t=20c)=20(x=20"a")=20(x=20"c")=20= (x=20c)=20(x=20d)=20(x=20e)))=0A+=0A+=20=20=20=20(mapcar=20(lambda=20(x)=20= (cond=20((member=20'(a=20.=20b)=20x)=201)=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20((equal=20x=20= '(c))=202)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20'(((a=20.=20b))=20a=20= b=20(c)=20(d)))=0A+=20=20=20=20(mapcar=20(lambda=20(x)=20(cond=20((memq=20= '(a=20.=20b)=20x)=201)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20((equal=20x=20'(c))=202)))=0A+=20= =20=20=20=20=20=20=20=20=20=20=20'(((a=20.=20b))=20a=20b=20(c)=20(d)))=0A= +=20=20=20=20(mapcar=20(lambda=20(x)=20(cond=20((member=20'(a=20b)=20x)=20= 1)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20((equal=20x=20'(c))=202)))=0A+=20=20=20=20=20=20=20=20= =20=20=20=20'(((a=20b))=20a=20b=20(c)=20(d)))=0A+=20=20=20=20(mapcar=20= (lambda=20(x)=20(cond=20((memq=20'(a=20b)=20x)=201)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= ((equal=20x=20'(c))=202)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20'(((a=20= b))=20a=20b=20(c)=20(d))))=0A=20=20=20"List=20of=20expression=20for=20= test.=0A=20Each=20element=20will=20be=20executed=20by=20interpreter=20= and=20with=0A=20bytecompiled=20code,=20and=20their=20results=20= compared.")=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=0A= --Apple-Mail=_906006B0-036B-4B69-833A-01F76C193222--