guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Guile virtual machine targets


From: Ewan Higgs
Subject: Re: Guile virtual machine targets
Date: Wed, 20 Apr 2011 11:57:38 +0100 (BST)

Hello again,
 
Ludovic, those were interesting reads. Thanks for sending them my way. For 
those 
reading along, however, it should be noted that vmkit is part of the broader 
llvm project[1]. So I found the report read as a rationalization for the vmkit 
sub project and it's likely that vmkit is what any jit language would use 
should 
it chose llvm as a back end.

With regards to libJit, I tried to download it and go through the tutorial 
code, 
but it appears to have been deserted. The link to download the source[2] is 
dead 
though there is a package on the gnu ftp for version 0.1.0[3]. Unfortunately, 
that package doesn't appear to compile (using gcc 4.4 on x86_64 GNU/Linux)[4]. 
The most recent git source I found is for version 0.0.1 when I build it[4]. 
Unfortunately, when I try to run the first tutorial program[5], I get a 
segfault 
in jit_value_get_param (though it's likely I've done something wrong). 

Looking through the mailing list, it appears to have gone silent since 2010/11 
(incidentally, Noah's the second last person to mail it)[6]. Interestingly 
enough, I found Chris Lattner invited libJit to be merged into llvm in 2004[7]. 
This was before vmkit was pulled into llvm (in 2008).

So it appears libJit has out of date documentation, the source hasn't changed 
since 2010/10/28, the latest stable package I found doesn't build, and the 
mailing list is all but dead. If libJit is the way to go, maybe it's worth 
forking it and adopting it. Otherwise, if this is to become a dependency for 
Guile and it maintains it's current profile, it will likely become a pain point 
for Guile.

I tried to read around the topic and do my research, but I can't help but feel 
that I'm missing something here. Please let me know if I've misunderstood 
anything.

Thanks,
Ewan

[1] http://vmkit.llvm.org/
[2] http://www.gnu.org/software/dotgnu/libjit-doc/libjit_1.html#SEC1 links to 
http://www.southern-storm.com.au/libjit.html
[3] ftp://ftp.gnu.org/gnu/dotgnu/pnet/libjit-0.1.0.tar.gz
[4] http://www.gnu.org/software/dotgnu/pnet-git.html
[5] http://www.gnu.org/software/dotgnu/libjit-doc/libjit_3.html#SEC6
[6] http://lists.gnu.org/archive/html/dotgnu-libjit/
[7] http://lists.gnu.org/archive/html/dotgnu-libjit/2004-05/index.html



----- Original Message ----
From: Ludovic Courtès <address@hidden>
To: address@hidden
Sent: Mon, 18 April, 2011 22:12:47
Subject: Re: Guile virtual machine targets

Hello,

There are experience reports suggesting that LLVM is not well suited for
JIT: it’s relatively slow because the main goal is AOT, not JIT, and has
a large memory footprint.

For example, from <http://vmkit.llvm.org/publications/vmkit.html>,
Section 4.3 (“Startup Time”):

  Although LLVM has the advantage of being language-independent and
  generating efficient code, it only performs aggressive optimizations.
  A Java HelloWorld program thus takes 8 seconds to run without any
  optimization activated.

Likewise, from
<http://qinsb.blogspot.com/2011/03/unladen-swallow-retrospective.html>:

  Unfortunately, LLVM in its current state is really designed as a
  static compiler optimizer and back end. LLVM code generation and
  optimization is good but expensive.

Thanks,
Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]