From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Andrea Corallo Newsgroups: gmane.emacs.devel Subject: Re: "Bringing GNU Emacs to Native Code" at the European Lisp Symposium Date: Mon, 04 May 2020 10:07:34 +0000 Message-ID: References: <69d8b48d-bd09-41c1-a89d-ed76fe0284a4@default> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="12893"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) Cc: stefan@marxist.se, drew.adams@oracle.com, emacs-devel@gnu.org To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon May 04 12:08:40 2020 Return-path: Envelope-to: ged-emacs-devel@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 1jVY1g-0003Fl-Rg for ged-emacs-devel@m.gmane-mx.org; Mon, 04 May 2020 12:08:40 +0200 Original-Received: from localhost ([::1]:40086 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jVY1f-0006sn-S2 for ged-emacs-devel@m.gmane-mx.org; Mon, 04 May 2020 06:08:39 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36628) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVY0n-00054w-2H for emacs-devel@gnu.org; Mon, 04 May 2020 06:07:45 -0400 Original-Received: from mx.sdf.org ([205.166.94.20]:59919) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVY0l-0002fS-Lg; Mon, 04 May 2020 06:07:44 -0400 Original-Received: from sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 044A7YbR028842 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Mon, 4 May 2020 10:07:35 GMT Original-Received: (from akrl@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 044A7Ygu014898; Mon, 4 May 2020 10:07:34 GMT In-Reply-To: (Richard Stallman's message of "Sat, 02 May 2020 23:44:51 -0400") Received-SPF: pass client-ip=205.166.94.20; envelope-from=akrl@sdf.org; helo=mx.sdf.org X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/04 06:07:35 X-ACL-Warn: Detected OS = ??? X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:248801 Archived-At: Richard Stallman writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > This the point. I think we could at best make this assumption only on > > calls to C primitives (that we assume cannot be redefined) that are > > known to be side effect free and not to use global variable bindings in > > general. Any other call must have all variables spilled first. > > You're concerned about the possibility of redefining Lisp functions > defined in other files, and that the new function definitions might > touch variables bound in your file. Also in the same file. The native compiler as the byte-compiler can compile files as a whole or single functions too. If one of these gets redefined the assumptions used to compile all the others could become wrong. I suspect the assumption in discussion would be too weak and likely to cause bugs that are very difficult to track down. > I think it is legitimate to compile assuming they don't do that. How > about seeing where you can get, that way? > > > Given the discussed > > suspect of poor performance I intentionally left this task aside to work > > on more urgent tasks. Nothing prevents to have a try on this later if > > we think is really important. > > That seems right to me. I am not saying this particular issue is urgent. > Only that it should get done by and by. _I'm in favor_ of giving dynamic scope compilation a shot on day and see how it runs (with the right prioritization). But I'm not in favor of designing and implementing complex passes that are dynamic scoped code specific, especially if based on dangerous assumptions. Is my believe that there are other tasks inside the compiler but also outside of it in Emacs that deserves sooner man power I'd like to help with. This is just my optinion obviously. Regards Andrea -- akrl@sdf.org