From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: =?utf-8?Q?Llu=C3=ADs_Vilanova?= Newsgroups: gmane.lisp.guile.devel Subject: Re: Experimental JIT for Guile (???!) Date: Tue, 04 Oct 2016 00:21:09 +0200 Message-ID: <87d1jh13ca.fsf@fimbulvetr.bsc.es> References: <87bmz91c9t.fsf@dustycloud.org> <1475035875.18187.50.camel@gmail.com> <87mvilnp7b.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1475533308 13549 195.159.176.226 (3 Oct 2016 22:21:48 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 3 Oct 2016 22:21:48 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) Cc: Andy Wingo , Mark H Weaver , Atsuro Hoshino , guile-devel@gnu.org To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Oct 04 00:21:44 2016 Return-path: Envelope-to: guile-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 1brBcB-0002WR-WE for guile-devel@m.gmane.org; Tue, 04 Oct 2016 00:21:40 +0200 Original-Received: from localhost ([::1]:39358 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brBc9-0001ts-Pm for guile-devel@m.gmane.org; Mon, 03 Oct 2016 18:21:37 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:56328) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brBbs-0001t9-22 for guile-devel@gnu.org; Mon, 03 Oct 2016 18:21:21 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1brBbp-0005HR-Js for guile-devel@gnu.org; Mon, 03 Oct 2016 18:21:19 -0400 Original-Received: from roura.ac.upc.es ([147.83.33.10]:57607) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brBbk-0005Cg-Hl; Mon, 03 Oct 2016 18:21:12 -0400 Original-Received: from gw-3.ac.upc.es (gw-3.ac.upc.es [147.83.30.9]) by roura.ac.upc.es (8.13.8/8.13.8) with ESMTP id u93ML93e009237; Tue, 4 Oct 2016 00:21:09 +0200 Original-Received: from localhost (unknown [84.88.51.85]) by gw-3.ac.upc.es (Postfix) with ESMTPSA id 8A8901FB; Tue, 4 Oct 2016 00:21:09 +0200 (CEST) Mail-Followup-To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=), Nala Ginrut , Andy Wingo , Mark H Weaver , Atsuro Hoshino , guile-devel@gnu.org In-Reply-To: <87mvilnp7b.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Mon, 03 Oct 2016 22:38:00 +0200") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 147.83.33.10 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.org gmane.lisp.guile.devel:18694 Archived-At: Ludovic Court=C3=A8s writes: > Hello Guilers! > Nala Ginrut skribis: >> Well, there's interesting story behind it. >> Few days ago this new JIT backend named Nash was introduced in ICFP2016 = (scheme >> workshop), I and Ludo are lecturers too. When I first saw the topic, I l= ooked >> back to Ludo and thought "oh you guys are making a new weapon secretly h= uh?" >> I thought this work must be encouraged and helped by Ludo or Wingo or Ma= rk, but >> finally I realized that I was wrong, the author=C2=A0Atsuro Hoshino was = hacking JIT >> backend for Guile all by himself. Ludo got surprised too. >> I have to say, lone hero pattern is not recommended for a community proj= ect, but >> anyway he did it bravely and the result seems good according to the pape= r. >> After the meeting, I and Ludo tried to convince him to get involved into= our >> community to get more help and feedback.=C2=A0 > Yes, that=E2=80=99s really crazy stuff I must say. I was really blown wh= en I > listened to the talk=E2=80=94the Mandelbrot demo, the benchmarks! > I cannot see the video at > > but I hope it=E2=80=99ll show up eventually. > Atsuro, Nala, and I discussed about all this. Atsuro did the right > thing IMO: the tracing JIT relies only on a couple of additional hooks > to the VM engine. Thus, Nash (that=E2=80=99s the name of the tracing JIT) > simply adds an additional VM engine with these extra hooks, alongside > the regular and debug engines we already have. > What I told Atsuro is that the next 2.1 release could provide this extra > VM engine; after all, it doesn=E2=80=99t cost us anything. That way, Nas= h could > be maintained separately as it matures, and everyone would be able to > try it out without having to recompile Guile. > WDYT? > Atsuro: I was hoping that you would introduce yourself here, but see, > everyone is already excited by your work (and rightfully so!). Feel > free to chime in, you are very much welcome here! :-) I'm not informed about guile's or nash's current state of affairs regarding JITting, so sorry if this has already been discussed (I just subscribed to = this list, but have been following guile's advancements through Wingo's blog). Still, this mail made me think if optimizations based on "tracing" (or any = kind of runtime-based profiling) could be nested. Then you could start by applyi= ng the existing compiler optimizations, later generate a procedure/trace versi= on dispatcher with unboxed operations (you can add new versions as they become hot), and only at the end generate native code. The version dispatcher is not so simple in a multi-threaded environment, th= ough (depending on the memory consistency model provided by guile). Cheers, Lluis