From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: scratch/accurate-warning-pos: next steps. Date: Mon, 10 Dec 2018 15:54:02 -0800 Organization: UCLA Computer Science Department Message-ID: References: <20181210180033.GC4188@ACM> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1544485930 28529 195.159.176.226 (10 Dec 2018 23:52:10 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 10 Dec 2018 23:52:10 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1 Cc: emacs-devel@gnu.org To: Alan Mackenzie Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Dec 11 00:52:06 2018 Return-path: Envelope-to: ged-emacs-devel@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 1gWVLJ-0007I1-U0 for ged-emacs-devel@m.gmane.org; Tue, 11 Dec 2018 00:52:06 +0100 Original-Received: from localhost ([::1]:35193 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gWVNQ-00082W-9h for ged-emacs-devel@m.gmane.org; Mon, 10 Dec 2018 18:54:16 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50612) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gWVNK-00082P-Cp for emacs-devel@gnu.org; Mon, 10 Dec 2018 18:54:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gWVNF-0007G8-Cw for emacs-devel@gnu.org; Mon, 10 Dec 2018 18:54:10 -0500 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:60744) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gWVNF-0007FU-3R for emacs-devel@gnu.org; Mon, 10 Dec 2018 18:54:05 -0500 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 735701608BD; Mon, 10 Dec 2018 15:54:03 -0800 (PST) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id dpwNAwU51jgB; Mon, 10 Dec 2018 15:54:02 -0800 (PST) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 54CCD1608BE; Mon, 10 Dec 2018 15:54:02 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id RyKvpeB2lQdD; Mon, 10 Dec 2018 15:54:02 -0800 (PST) Original-Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 3DB2216087A; Mon, 10 Dec 2018 15:54:02 -0800 (PST) Openpgp: preference=signencrypt Autocrypt: addr=eggert@cs.ucla.edu; prefer-encrypt=mutual; keydata= xsFNBEyAcmQBEADAAyH2xoTu7ppG5D3a8FMZEon74dCvc4+q1XA2J2tBy2pwaTqfhpxxdGA9 Jj50UJ3PD4bSUEgN8tLZ0san47l5XTAFLi2456ciSl5m8sKaHlGdt9XmAAtmXqeZVIYX/UFS 96fDzf4xhEmm/y7LbYEPQdUdxu47xA5KhTYp5bltF3WYDz1Ygd7gx07Auwp7iw7eNvnoDTAl KAl8KYDZzbDNCQGEbpY3efZIvPdeI+FWQN4W+kghy+P6au6PrIIhYraeua7XDdb2LS1en3Ss mE3QjqfRqI/A2ue8JMwsvXe/WK38Ezs6x74iTaqI3AFH6ilAhDqpMnd/msSESNFt76DiO1ZK QMr9amVPknjfPmJISqdhgB1DlEdw34sROf6V8mZw0xfqT6PKE46LcFefzs0kbg4GORf8vjG2 Sf1tk5eU8MBiyN/bZ03bKNjNYMpODDQQwuP84kYLkX2wBxxMAhBxwbDVZudzxDZJ1C2VXujC OJVxq2kljBM9ETYuUGqd75AW2LXrLw6+MuIsHFAYAgRr7+KcwDgBAfwhPBYX34nSSiHlmLC+ KaHLeCLF5ZI2vKm3HEeCTtlOg7xZEONgwzL+fdKo+D6SoC8RRxJKs8a3sVfI4t6CnrQzvJbB n6gxdgCu5i29J1QCYrCYvql2UyFPAK+do99/1jOXT4m2836j1wARAQABzSBQYXVsIEVnZ2Vy dCA8ZWdnZXJ0QGNzLnVjbGEuZWR1PsLBfgQTAQIAKAUCTIByZAIbAwUJEswDAAYLCQgHAwIG FQgCCQoLBBYCAwECH In-Reply-To: <20181210180033.GC4188@ACM> Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 131.179.128.68 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:231751 Archived-At: On 12/10/18 10:00 AM, Alan Mackenzie wrote: > lisp.h would be modified to define alternative versions of EQ, NILP, > SYMBOLP, and XSYMBOL, and alternative versions of the INLINE functions > which call them. These would be called BC_EQ, BC_NILP, BC_SYMBOLP, and > BC_XSYMBOL. > > Most of the C sources would, at build time, be fed to a preprocessor > which would analyse (almost every) C function, and write a temporary file > containing the functions foo and BC_foo next to eachother. This preprocessor would be a separate program that we'd write? If so, that sounds error-prone. C is notoriously tricky to preprocess, and Emacs already uses the C preprocessor aggressively. Instead, why not use the C preprocessor itself, rather than writing another preprocessor for C? In other words, compile each file twice, once with one -D option and once with another. Even with this suggestion, though, I'm leery of multiple interpreters. Although it'd be better to have multiple interpreters (one faster, one slower) than to have just a single, slower interpreter, it'd be better yet to have just a single, faster interpreter. Instead, I suggest looking into Stefan's suggestion to use edebug info , which should be a much less-drastic way to address the problem; for more info, see Gemini's followup . Alternatively, Yuri's suggestion of an opt-in property for macros also seems like a much-simpler approach that should work just as well in the long run as multiple interpreters would.