From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: On elisp running native Date: Thu, 28 Nov 2019 11:04:18 -0500 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="8343"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Andrea Corallo Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Nov 28 18:31:00 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.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iaNd6-0001xV-1m for ged-emacs-devel@m.gmane.org; Thu, 28 Nov 2019 18:31:00 +0100 Original-Received: from localhost ([::1]:51336 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iaNd4-0004th-Fu for ged-emacs-devel@m.gmane.org; Thu, 28 Nov 2019 12:30:58 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:52546) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iaMHa-000103-8H for emacs-devel@gnu.org; Thu, 28 Nov 2019 11:04:47 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iaMHQ-0001xK-EY for emacs-devel@gnu.org; Thu, 28 Nov 2019 11:04:37 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:60130) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iaMHQ-0001iO-3y for emacs-devel@gnu.org; Thu, 28 Nov 2019 11:04:32 -0500 Original-Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 544221007B5; Thu, 28 Nov 2019 11:04:29 -0500 (EST) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 7CA8F1004B3; Thu, 28 Nov 2019 11:04:27 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1574957067; bh=JpH8AmFa/edUwUNqJ8XJWWYWzOgYtdmKYIKAxwAMxfY=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=nn7FAwB/73nVvZIk81LO0SzcNSKpuBl72QXLdfVSxYMjGPYwuhgpjpr2ANtc2VrPa lHyWVaGOikogGRu8dxcitpIPHb2op09aOdqEWjIreb7xwY5ExtanaVMnWChwXuinZJ Cq09JW29r2sN93nuH8bKxbhc3WXDJ4W1ELaYExosVwvph82m5xkKDsv+xTxTLmm5L2 JzNhVORWQujqkpOVfyey/h06xWCOFkKjL0eSBI0do2EvAzwFah+Otu386TAGJwcYQa hYbRe6ltQ32qjifKuAJfDKNm/PJAE+5rOD/wPRq2xWgUieO4vhXJEwCunAtHAiySRa MZWLTIc37C7AA== Original-Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 295DE1203C3; Thu, 28 Nov 2019 11:04:27 -0500 (EST) In-Reply-To: (Andrea Corallo's message of "Thu, 28 Nov 2019 06:54:10 +0000") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 132.204.25.50 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:242838 Archived-At: > Hi all. I'd like share the investigation I've been working on to give > Emacs the ability to compile and run elisp as native code. This looks great, thanks. [ I wasn't able to follow all the explanations at http://akrl.sdf.org/gccemacs.html, such as the one around "function frames", with which I'm not familiar. Are these like activation frames? ] A few questions: - How did you get there? I see some "we" in the web page, which makes it sound like you weren't completely alone. - AFAICT most of the new compilation code is in comp.el and comp.c focuses on "code generation", right? Can you say something about the time it takes to compile files? What does the time break down looks like (i.e. percentage spent in bytecompiler, comp.el, comp.c, libgccjit)? - Have you tried to use the compiler as benchmark (i.e. how much faster can Emacs compile (either byte-compile or native-compile)) if the compiler code is native-compiled (since it's all using lexical-binding already)? -- Stefan