From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: "Daniel Colascione" Newsgroups: gmane.emacs.devel Subject: Re: Predicate for true lists Date: Tue, 9 Apr 2019 09:54:48 -0700 Message-ID: <8ba914d2c3c78dbcd6e1ff559b53808b.squirrel@dancol.org> 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> <87mukzb173.fsf@tcd.ie> Mime-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="38318"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: SquirrelMail/1.4.23 [SVN] Cc: emacs-devel@gnu.org To: "Stefan Monnier" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Apr 09 18:55:39 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 1hDu27-0009pp-0k for ged-emacs-devel@m.gmane.org; Tue, 09 Apr 2019 18:55:39 +0200 Original-Received: from localhost ([127.0.0.1]:46468 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hDu25-0006Gn-PG for ged-emacs-devel@m.gmane.org; Tue, 09 Apr 2019 12:55:37 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:39977) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hDu1V-0006GQ-NH for emacs-devel@gnu.org; Tue, 09 Apr 2019 12:55:02 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hDu1U-0007Xo-MX for emacs-devel@gnu.org; Tue, 09 Apr 2019 12:55:01 -0400 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:43654) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hDu1U-0007UX-0w for emacs-devel@gnu.org; Tue, 09 Apr 2019 12:55:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:To:From:Subject:Date:References:In-Reply-To:Message-ID; bh=OAfU9dkPJM2svBh0g7l3zWRmJWcLszlzNe9dZwPJi2g=; b=rF5i/qEODMWFDDFCuwKmPjNUS670XKcsamEo4NpUfIn4biGJdAVnlvDpNNcJNouYLVQh50oX78crmpid1ZoezDqMbNFYeuobpKWm3sR0B0qYINhlNorkGYTpGzAGWhUd4z3t8PDaxNRN2BOqHEF055n7CAn+rjxMsrYe+Z1eVsBkTEW6tNRDJ3nrzeTJ/85iNOKbkJOCbpo8cKDHhpceyN9SSHYGATSmoNb8wISh783c/+Vy7+zSG8bcsj9pZhV7iru0FrbLqkWTPUVMCQAEMHrxqiHVzP3tOlWsVUY3INW9mX9rJPPIM3NktlhiGISnsgQhuDJk00pnYUlwBvBpOg==; Original-Received: from localhost ([127.0.0.1] helo=dancol.org) by dancol.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hDu1H-0006xr-U3; Tue, 09 Apr 2019 09:54:48 -0700 Original-Received: from 127.0.0.1 (SquirrelMail authenticated user dancol) by dancol.org with HTTP; Tue, 9 Apr 2019 09:54:48 -0700 In-Reply-To: X-Priority: 3 (Normal) Importance: Normal X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2600:3c01::f03c:91ff:fedf:adf3 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:235171 Archived-At: >> --- a/src/fns.c >> +++ b/src/fns.c >> @@ -5326,6 +5326,12 @@ syms_of_fns (void) >> DEFSYM (Qcursor_in_echo_area, "cursor-in-echo-area"); >> DEFSYM (Qwidget_type, "widget-type"); >> >> + DEFSYM (Qpure, "pure"); >> + DEFSYM (Qside_effect_free, "side-effect-free"); >> + DEFSYM (Qproper_list_p, "proper-list-p"); >> + Fput (Qproper_list_p, Qpure, Qt); >> + Fput (Qproper_list_p, Qside_effect_free, Qt); > > I think you can set the side-effect-free property to `error-free`, which > is stronger. Other than that, it looks OK (tho I personally find doing it > in C to be too painful, so I prefer moving this kind of code to subr.el). > >> I also attach a second patch which moves the proper-list-p tests to the >> correct file following the function's rewriting in C. WDYT? I'd also prefer to put new functionality in lisp when possible. We're going to get a JIT one day, and when we do, lisp functionality may very well end up *faster* than C stuff anyway due to specialization and tracing. In the meantime, lisp performance is adequate, and if we can keep the C core small, we should.