On 12/09/2011 04:05 PM, Benedikt Meurer wrote:
> 
> On Dec 9, 2011, at 13:37 , Gabriel Scherer wrote:
> 
>>> You can follow the progress here: https://github.com/colinbenner/ocamlllvm
>>
>> - there are two different repos, ocamlllvm and ocaml-llvm (which has a
>> commit history that make it looks like it is where the real
>> development happen); which one should one follow? A wild guess after
>> only a quick look is that the ocaml-llvm repo did not build upon your
>> ocamlnat changes, and ocamllvm is about merging the changes on top of
>> it; but I really have no idea.
> 
> ocaml-llvm was the initial attempt, based on the upstream OCaml sources. But 
> we decided to ditch the surrounding OCaml stuff, esp. the broken make-based 
> build system in favor of something simple, based on oasis and ocamlbuild 
> (just like I did with ocamlnat). So the one to follow is ocamlllvm.
> 
>> - you mention a "patched" LLVM; where can the patches be fetched?
> 
> Just drop Colin a mail and ask him for the current patch (should be for 2.7 
> or 2.8, IIRC).

FWIW 3.0 has some fixes in the OCaml bindings that may (or may not) be useful 
for you, like:
findlib support, string_of_lltype not dieing on recursive structs, bindings to 
ipo.h,
bindings to some additional C APIs that were missing from the OCaml ones,
support for creating landing pads.

3.0 changes how structs work fundamentally though (they are not merged based on 
structure anymore),
so it may not be an easy change to move from 2.8 to 3.0, and I see why you 
would want to stay with 2.8 for now.

> 
>> Do
>> you plan to present changes in such a way that it can be submitted
>> upstream?
> 
> Yes, the long time goal (maybe impossible to reach with just one bachelor 
> thesis) is to have a simple set of patches for LLVM (mostly calling 
> conventions, maybe some additional intrinsics for the weird OCaml exception 
> model), which can be merged upstream.
> 
>> I think it is natural that you have to make changes to LLVM,
>> the GHC people (which now have an experimental LLVM backend) also did,
>> and I was under the impression that the LLVM people where quite
>> welcoming of their changes, they are glad to see LLVM being used in a
>> non-Clang-centric project. I think your patches could bring value to
>> LLVM, independently of the success of the ambitious ocaml backend
>> attempt.
> 
> Hm, I'm not sure. It's really easy to generate LLVM code for OCaml in 
> general, the problem is getting things to interact with legacy OCaml code, 
> with exception handling being one of the most important issue. The required 
> stuff will be very platform specific and very specific to OCaml, and we don't 
> even know if it's going to work.

Is binary compatibility with a specific version of ocamlopt necessary?
I think that ocaml-llvm could detect the mismatch and print an error, like you 
get for an ABI mismatch.

Sure it'd be nice to be able to try out ocaml-llvm without rebuilding all OCaml 
packages,
but such a rebuilt is required when new OCaml releases come out anyway, as they 
are usually not ABI compatible with each-other.

Best regards,
--Edwin

-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa-roc.inria.fr/wws/info/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Reply via email to