Version française
Home     About     Download     Resources     Contact us    
Browse thread
Ocaml back-end
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Sylvain Le Gall <sylvain@l...>
Subject: Re: [Caml-list] Re: Ocaml back-end
Hello,

On Tue, Jan 13, 2009 at 07:09:16PM +0000, Gilles Pirio wrote:
> Greetings all..
> 
> Following up on an idea explored few weeks ago, I've now implemented the
> dynamic back-end mechanism on ocamlopt.
> 
> What would be the way to go for ocamlopt.opt? I don't think we want to have
> this dynamic back-end thingie with opt.opt as native dynlink isn't supported on
> all platforms. My approach at the momemt is to have different files for the
> back-end loader (depending on whether it is an opt or opt.opt build). So the
> makefile is a bit messier than before. Would that be ok anyway, any better way
> to do that that I'm not aware of? If this is fine, I'll submit my patch.
> 

You can play a little bit with camlp4 and pa_macro to disable certain
part of your opt.opt (like replacing dynlink call by nothing/empty
list...).

I think you can try doing this kind of conditional compilation well
enough if your changes are located in an almost central place

> On Tue, Dec 9, 2008 at 7:31 PM, Sylvain Le Gall <sylvain@le-gall.net> wrote:
> 
>     On 09-12-2008, Gilles Pirio <gilles.pirio@gmail.com> wrote:
>     >> To my mind, the best way is to provide a patch through the bug tracking
>     >> system of INRIA. This is highly probable that INRIA team doesn't accept
>     >> it directly but ask you to justify/modify it in order to fit the whole
>     >> compiler -- which could be quiet a long process in fact.
>     >
>     > It would greatly help to know what the INRIA team would consider as
>     > acceptable ahead of doing the work. What kind of guidlines would you
>     > advise me to follow? I guess I can add new passes but can I modify
>     > existing ones?
>     >
>     > The ideal solution would be to open the back-end using the dynlink
>     > library. I've done it with 3.11 to speed up development. The back-end is
>     now
>     > a cmo file. I separately compile copt0.cmo, copt1.cmo... with different
>     > back-ends. Then I can use command like: ocamlopt -copt copt0.cmo
>     myfile.ml
>     > to compile with my back-end.
>     > But even though that's a small change I'm not sure the INRIA guys would
>     > like it, right?
>     >
>     >
> 
>     This idea rocks! The best way is to begin by providing a basic patch and
>     follow this explanation:
>     http://et.redhat.com/~rjones/how-to-supply-code-to-open-source-projects/
>     (even if it is not said, half of the people involved are OCaml
>     developers).
> 
>     The other idea is that the smallest is the best. That's why your idea
>     rocks. If the possibility to dynamically load backend is small, it will
>     be a very good first step.
> 
>     When you will have made this first step (that can profit to all), you
>     can either submit your backend or provide it by any other mean.
> 
>     Regards
>     Sylvain Le Gall
> 
>     ps: consider fecthing a copy of the CVS

Regards
Sylvain Le Gall