From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: Predicate for true lists Date: Wed, 17 Apr 2019 11:55:07 -0700 (PDT) Message-ID: <89b0d471-80cf-4b70-a1e7-ab65024ed461@default> References: <87fu3vdjjk.fsf@tcd.ie> <87bmcqhhsf.fsf@tcd.ie> <87in6xgtpb.fsf@tcd.ie> <2af892df-26cb-60b2-4fd8-067fcb3d32e9@cs.ucla.edu> <87r2kh9uwx.fsf@tcd.ie> <83h8lcnbxb.fsf@gnu.org> <87sh4s9poo.fsf@tcd.ie> <87k1q49p0i.fsf@tcd.ie> <87efgbbq2p.fsf@tcd.ie> <87a7gz8hp2.fsf@tcd.ie> <875zrn9bum.fsf@tcd.ie> <835zrm7fow.fsf@gnu.org> <878swivtcr.fsf@gmail.com> <87r2aayln2.fsf@tcd.ie> <87lg0hyidf.fsf@tcd.ie> <87tvew7bxj.fsf@tcd.ie> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="215287"; mail-complaints-to="usenet@blaine.gmane.org" Cc: Eli Zaretskii , Alex Branham , monnier@iro.umontreal.ca, emacs-devel@gnu.org To: "Basil L. Contovounesios" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Apr 17 20:56:03 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hGpiz-000toR-9b for ged-emacs-devel@m.gmane.org; Wed, 17 Apr 2019 20:56:01 +0200 Original-Received: from localhost ([127.0.0.1]:58037 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hGpiy-0005Cq-8K for ged-emacs-devel@m.gmane.org; Wed, 17 Apr 2019 14:56:00 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:58544) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hGpiL-0005AX-TT for emacs-devel@gnu.org; Wed, 17 Apr 2019 14:55:22 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hGpiK-0003xB-UT for emacs-devel@gnu.org; Wed, 17 Apr 2019 14:55:21 -0400 Original-Received: from userp2130.oracle.com ([156.151.31.86]:34400) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hGpiE-0003tS-08; Wed, 17 Apr 2019 14:55:14 -0400 Original-Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x3HIiLxt156440; Wed, 17 Apr 2019 18:55:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : cc : subject : references : in-reply-to : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=7SobnYEONDX905cbusfaOBGrPD8aEBmqd4Eid16Di7s=; b=R6EVTTYw/C7R3/Olyp0LwrgNTvbXc2KzUm3jkesS5xpvDYktL+8CBGvNeIR4JNR59UgN wR4qcTgdSuMTlQohRLwdAe2GolPjtextB4goPFJqIILbTkLOPM11WzDXSc48svcEeilH HO+cmip0na2y8OuXhbaIsqpb7aWfqwVL7sTOtH17dueWbTx4ptCwl+f/k2KOnLL27pnm UcfplGwnJCKEmLyfzmh6+d7xrOLcqdUD9SemlyWP8ifVTR8p9kpuYEM0I3MpkKcY8aoP 1PUAC6hk5neeJQIsUIt0Qi1cIz0mrU/JeIEg4QoZzXgJft3tL8EG84C2kcyWSqvPUyY8 LQ== Original-Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by userp2130.oracle.com with ESMTP id 2rvwk3vxrs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Apr 2019 18:55:12 +0000 Original-Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x3HIt1jG062860; Wed, 17 Apr 2019 18:55:11 GMT Original-Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userp3030.oracle.com with ESMTP id 2ru4vtyt8y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Apr 2019 18:55:11 +0000 Original-Received: from abhmp0014.oracle.com (abhmp0014.oracle.com [141.146.116.20]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x3HIt8Ct013370; Wed, 17 Apr 2019 18:55:08 GMT In-Reply-To: <87tvew7bxj.fsf@tcd.ie> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.4834.0 (x86)] X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9230 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=2 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=995 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904170124 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9230 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=2 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904170124 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 156.151.31.86 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:235604 Archived-At: > this seems to be a near-identical case of bug#13823. Indeed it does. > I attach two patches. The first updates the Elisp manual as discussed, > and the second moves all side-effect-free property setting from > unsafep.el to subr.el, as declarations of the relevant functions. WDYT? Thanks for working on this. Some minor comments, in case they help (if not= , ignore): 1. Wrt this proposed addition: +A @dfn{pure function} is a function which, in addition to having no +side effects, always returns the same value for the same combination +of arguments, regardless of external factors such as machine type. You might want to add something like this at the end: ", current time/date, or state of the system or Emacs session." "Machine type" is not the first thing I'd think of in this regard, and it doesn't emphasize current state in the context of dynamic changes. The result does not depend on any state. 2. It's usually better to just write "or" instead of "and/or". 3. I'd say "not encouraged" instead of "no longer encouraged". There's no need here to suggest that it was encouraged in the past. 4. "side-effect free and pure" should just be "pure", given that the xref'd node will now say that "pure" includes "side-effect free". 5. "ignore calls whose value is unused" is maybe clearer as "ignore a call whose value is unused" or "ignore calls whose values are unused". (I prefer the former.) 6. I'd use "can" instead of "may" for things like "the byte compiler may...". (Not very important, though.) It's more about possibility than permission.