赞(+1) On Thu, Mar 2, 2017 at 3:49 PM Nala Ginrut wrote: > 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. > >