From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Alfred M. Szmidt" Newsgroups: gmane.emacs.devel Subject: Re: Shrinking the C core Date: Mon, 21 Aug 2023 07:02:24 -0400 Message-ID: References: <20230809094655.793FC18A4654@snark.thyrsus.com> <87jztqdw2l.fsf@localhost> <87msym9i4r.fsf@dataswamp.org> <877cpp914t.fsf@localhost> <83fs4dwwdo.fsf@gnu.org> <874jkt90a5.fsf@localhost> <87y1i57jqi.fsf@localhost> <87pm3h7h8k.fsf@localhost> <87h6ot7cf3.fsf@localhost> <87350d78j1.fsf@localhost> <87msyk6hhs.fsf@localhost> <878ra46ekc.fsf@localhost> <87sf8cfza4.fsf@localhost> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14456"; mail-complaints-to="usenet@ciao.gmane.io" Cc: eliz@gnu.org, incal@dataswamp.org, emacs-devel@gnu.org To: Ihor Radchenko Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Aug 21 13:03:12 2023 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 1qY2gh-0003VB-RH for ged-emacs-devel@m.gmane-mx.org; Mon, 21 Aug 2023 13:03:11 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qY2g3-00037W-LC; Mon, 21 Aug 2023 07:02:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qY2fz-00035F-Fs for emacs-devel@gnu.org; Mon, 21 Aug 2023 07:02:28 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qY2fz-0007bG-7G; Mon, 21 Aug 2023 07:02:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=4t7FG/XFokvZmTavSqUJl7YxT4EY5hqZunaR8nmv1Ho=; b=hkt+iGQgAwSm Ue7NgdDti906aihBp4gYiLaR7LeZzKbkDujtY/v6ZHs9oj5nWMxXBh6oaKBNxXC3OCdAxuD2eQr8z AOlVC4MnuPSVg/pz+s7I3QUNI+Pg3AKFeydfsd3FUl6S8SdonqeImDg2O/SdlpEjHPXXsdZmQDk4q HZWTxdlbHQ3JZM9umeQmj5483ijM2p4EfOzHz7u3tVNjzWLDc44Q//oAb2pBk3lolyzRCQ4s9qBlf XpxyWbmPQK/SFt2/kN72wUveWIPvckDFwYCt/2tBIeQkdjI72meqO9wLL0thUYAJ1NMwaaqJhO0YM FmcWlOB27py0aHtP5A5aDA==; Original-Received: from ams by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1qY2fw-0000s8-V2; Mon, 21 Aug 2023 07:02:26 -0400 In-Reply-To: <87sf8cfza4.fsf@localhost> (message from Ihor Radchenko on Mon, 21 Aug 2023 10:46:59 +0000) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:309053 Archived-At: >> I am talking about the end result (native code) we achieve after >> converting source Elisp into byte-code and then into native code. Not >> about the byte code. > > The end result depends on what the Emacs Lisp compiler produces, > Native compilation will not figure out that using ASSQ is better when > calling ASSOC has fixnums in it (see byte-opt.el for example of the > required Lisp wrangling that is required -- and something that SBCL > does in a much larger scale). > > That is the type of optimizations that matter more than JIT. Native compilation can actually do it. And it can (AFAIU) do it more efficiently compared to what we have in byte-opt.el, because it uses more sophisticated data flow analysis to derive type information. I said _figure out_ -- that is something for a human to do. You can put the optimization where ever you want, native compilation cannot figure out things magically. It is what you are essentially arguing, that native compilation fixes every problem. Native compilation depends on what the Emacs compiler produces at the end of the day more than what simple optimizations you can do. If the Emacs compiler produces good code, which it does not do today, then native compilation will also produce better code.