unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Nala Ginrut <nalaginrut@gmail.com>
To: Guile User <guile-user@gnu.org>, guile-devel <guile-devel@gnu.org>
Cc: Atsuro Hoshino <hoshinoatsuro@gmail.com>
Subject: The status of JIT compiler of Guile (was: Guile benchmark)
Date: Thu, 2 Mar 2017 15:49:19 +0800	[thread overview]
Message-ID: <CAPjoZocB90-ZneA8LRk6vC1hcMq7eTH44muD5QnwfPxvmQN7TA@mail.gmail.com> (raw)

Hi folks!
It's been a long time for me to be inactive here. ;-)

I saw there's thread to discuss Guile benchmark, I think it's better
to mention the JIT compiler of Guile. It exists and real, and of
course, very fast.

Thanks Atsuro Hoshino, who is the author of Guile JIT compiler.  We've
met on ICFP2016 in Nara. And I'm great impressed by this work. I'm
enjoying the contribution very much, especially when yesterday I made
it work successfully!

I think Atsuro is very busy these months, so that he has no time to
take a look on my patches. After waited half a year, I decide to take
the responsibility to maintain this project. I have to mention that
JIT compiler is not in Guile upstream repo at present, it's maintained
on GitHub.

I've forked the repo and patched it to make it work, and rebased it to
our latest master branch (2.1.7.980-f5904-dirty). Now it works on the
latest Guile code base. I'lI keep on maintaining it before Atsuro come
back to take it.
My plan is to keep it updating with the latest Guile master branch,
and try to fix problems, respond the issues, finally, when it becomes
mature, I'll send patches-set to Guile upstream.
Please come back soon, we need you, Atsuro ;-)

Here's my repo, reports and patches are welcome, I prefer maintain it
on GitHub, this will be easier for most of folks:
==============================
https://github.com/NalaGinrut/guile-tjit
==============================
Please follow nala-tjit branch which is maintaining by me.

To build it , you need gnu-lightning, and you should add
--enable-lightning when configure:
==============
./configure --enable-lightning
==============

To run it with JIT, please add --tjit option:
=================
guile --tjit
=================

The JIT is still experimental, so please report if you encounter any
problem, I'll try to help to fix it, and I'm here to invite
contributors to help this significant project. Atsuro's paper is here:
===================
http://scheme2016.snow-fort.org/static/scheme16-paper3.pdf
===================

About the performance, I tried a poor test:
========code========
 (define (fib n)
   (define (iter a b c)
     (cond ((= c 0) b)
           (#t (iter (+ a b) a (- c 1)))))
   (iter 1 0 n))

 (define a (fib 1000000))
=========end========

It's not a fair test, and I'm a bad benchmarker, but it shows
interesting result on my machine:
Chez: 15s
guile-master: 28s
guile-jit: 15s

Now you know it's different, huh?
Come to get involved please, try it on your code, and report
something, find bugs as possible. And let's pray it could be fixed
automatically. ;-P

Best regards.



             reply	other threads:[~2017-03-02  7:49 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-02  7:49 Nala Ginrut [this message]
2017-03-02  8:31 ` The status of JIT compiler of Guile Andy Wingo
2017-03-07 13:23   ` Ludovic Courtès
2017-03-09  6:59   ` Nala Ginrut
2017-03-09 14:27     ` Andy Wingo
2017-03-10  6:19       ` Nala Ginrut
2017-03-10  8:14         ` Andy Wingo
2017-03-02  9:10 ` The status of JIT compiler of Guile (was: Guile benchmark) Chaos Eternal
2017-03-06 11:19   ` Nala Ginrut
2017-03-14  2:35     ` Nala Ginrut
2017-03-14  2:37       ` Nala Ginrut

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=CAPjoZocB90-ZneA8LRk6vC1hcMq7eTH44muD5QnwfPxvmQN7TA@mail.gmail.com \
    --to=nalaginrut@gmail.com \
    --cc=guile-devel@gnu.org \
    --cc=guile-user@gnu.org \
    --cc=hoshinoatsuro@gmail.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).