unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: "Lluís Vilanova" <vilanova@ac.upc.edu>
To: ludo@gnu.org (Ludovic Courtès)
Cc: Andy Wingo <wingo@igalia.com>, Mark H Weaver <mhw@netris.org>,
	Atsuro Hoshino <hoshinoatsuro@gmail.com>,
	guile-devel@gnu.org
Subject: Re: Experimental JIT for Guile (???!)
Date: Tue, 04 Oct 2016 00:21:09 +0200	[thread overview]
Message-ID: <87d1jh13ca.fsf@fimbulvetr.bsc.es> (raw)
In-Reply-To: <87mvilnp7b.fsf@gnu.org> ("Ludovic Courtès"'s message of "Mon, 03 Oct 2016 22:38:00 +0200")

Ludovic Courtès writes:

> Hello Guilers!
> Nala Ginrut <nalaginrut@gmail.com> 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 looked
>> back to Ludo and thought "oh you guys are making a new weapon secretly huh?"
>> I thought this work must be encouraged and helped by Ludo or Wingo or Mark, but
>> finally I realized that I was wrong, the author Atsuro 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 project, but
>> anyway he did it bravely and the result seems good according to the paper.
>> After the meeting, I and Ludo tried to convince him to get involved into our
>> community to get more help and feedback. 

> Yes, that’s really crazy stuff I must say.  I was really blown when I
> listened to the talk—the Mandelbrot demo, the benchmarks!

> I cannot see the video at
> <https://www.youtube.com/playlist?list=PLoH3jteqsb2jcsSe4Ve1TDeLL5fCCiwzC>
> but I hope it’ll 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’s 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’t cost us anything.  That way, Nash 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 applying
the existing compiler optimizations, later generate a procedure/trace version
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, though
(depending on the memory consistency model provided by guile).


Cheers,
  Lluis



  reply	other threads:[~2016-10-03 22:21 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-27 17:30 Experimental JIT for Guile (???!) Christopher Allan Webber
2016-09-28  4:11 ` Nala Ginrut
2016-09-28  7:45   ` Christopher Allan Webber
2016-09-28 12:17     ` Amirouche Boubekki
2016-10-03 20:38   ` Ludovic Courtès
2016-10-03 22:21     ` Lluís Vilanova [this message]
2016-10-04  7:58       ` Ludovic Courtès
2016-10-04  9:57         ` Lluís Vilanova
2016-10-04 12:52           ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87d1jh13ca.fsf@fimbulvetr.bsc.es \
    --to=vilanova@ac.upc.edu \
    --cc=guile-devel@gnu.org \
    --cc=hoshinoatsuro@gmail.com \
    --cc=ludo@gnu.org \
    --cc=mhw@netris.org \
    --cc=wingo@igalia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).