From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Enabling native compilation by default when libgccjit is present Date: Wed, 08 Dec 2021 08:52:01 -0500 Message-ID: References: <87czmdqpv9.fsf@web.de> <83h7bo7rvz.fsf@gnu.org> <87bl1tjage.fsf@web.de> <83fsr4zfl2.fsf@gnu.org> <87y24vvnnk.fsf@web.de> <875yrzg6o4.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21029"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: Michael Heerdegen , Eli Zaretskii , emacs-devel@gnu.org To: Po Lu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Dec 08 14:55:09 2021 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 1muxPT-00052c-Uy for ged-emacs-devel@m.gmane-mx.org; Wed, 08 Dec 2021 14:55:04 +0100 Original-Received: from localhost ([::1]:58040 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1muxPS-0008SE-PU for ged-emacs-devel@m.gmane-mx.org; Wed, 08 Dec 2021 08:55:02 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:54944) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1muxMn-0006QA-Mb for emacs-devel@gnu.org; Wed, 08 Dec 2021 08:52:18 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:1419) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1muxMj-0006zY-Gv; Wed, 08 Dec 2021 08:52:17 -0500 Original-Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id EE4ED80272; Wed, 8 Dec 2021 08:52:09 -0500 (EST) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 96F1A8049E; Wed, 8 Dec 2021 08:52:08 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1638971528; bh=E+sJRFAVi7shlwDCshvN50IsaToVszACKn2bs1I8vRo=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=cfIcHkGreXWtRF8gYgDC3Rpk/QuM1JNnbsv9gZE6tp9h1rUCOnuwtrdySxepfKN59 CKtqDytwNnQd6HAuEoE1x/deldORZ2YrQSPCYbXlDpXHzUcjbZ+qWvQGd/c1AYwF8i L9tuVbG3U0pCQFs58ENrnXS5pLrZb9huj9VBz7ULVwdDDM5zRYjqhZYJJkfpimYnj4 DVJkKVDYF7jOy5XVuPKY2dgo9O+Oue26OyTBn0a3KwvCB5smmyPj46eyUJ4hJbhsXS LApqXdBIThEwmZmOehCRII/Kzp0wbB90zrg+jzHTnbnHhc0pqL8IqtmzkwoVcetjIo LUkHAaYNXI8yw== Original-Received: from pastel (unknown [216.154.30.173]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 5F48C120177; Wed, 8 Dec 2021 08:52:08 -0500 (EST) In-Reply-To: <875yrzg6o4.fsf@yahoo.com> (Po Lu's message of "Wed, 08 Dec 2021 10:40:59 +0800") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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" Xref: news.gmane.io gmane.emacs.devel:281355 Archived-At: > But how are those warnings different from what the user will get if he > runs `package-install' on a package that causes warnings from the > byte-compiler? - By default, package-install compiles all the new files, one after the other, in the current Emacs session. So it tends to emit fewer warnings than the native compilation (which compiles each file in a fresh new process) because many more packages have already been loaded. This same difference can cause the native-compiled files to be miscompiled (because of a lack of `require`s) while the .elc files generated during `package-install` work properly. - Native compilation of a package kicks in when a package that has been byte-compiled gets loaded in an Emacs session. So the warnings emitted by native-compilation are always *in addition* to the warnings that were emitted during `package-install`. - `.eln` files are specific to a particular Emacs executable, so all the `.elc` files you use will be *re*compiled to `.eln` every time you start using a new Emacs executable. For "normal" users this means every time they upgrade to a new release. For people who track `master` it can mean "every other day". Stefan