Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Building large and portable projects
[ 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@p...
Subject: Re: [Caml-list] Building large and portable projects
On Sun, Nov 23, 2003 at 01:34:22AM +1100, skaller wrote:
> On Sat, 2003-11-22 at 06:04, sylvain.le-gall@polytechnique.org wrote:
> 
> > I don't want to reproduce make bugs... I just want to do something
> > simple where you can type :
> > 
> > let my_prog = {
> > 	name : "my_prog";
> > 	compile_target : [Opt;Byte];
> > 	toplevel_files : [ "my_prog.ml" ;
> > 	"something_ocamldep_dont_recognize_as_toplevel.ml" ];
> > 	package : "all_my_life" ;
> > 	target_tag : Binary; ( or Documentation or Custom of string )
> > 	}
> > 
> > let _ =
> > 	add_target my_prog
> > 
> > Ie, it is not makefile syntax.
> 
> My guess is that the 'object oriented design
> paradigm' has something to say here -- 
> do it bottom up. The first step is to define
> things like
> 
> 	compare_time_stamp(f1, f2)
> 
> a module for 'dependency graph', and
> other tools that may be useful.

Yeah, you are right, i was just showing you the final step... Ie what
the user will have to write to compile...

I don't want to specify a full language schemes... Too much complicated.
I just want to make it in ocaml in order to ease ocaml user to write
ocaml script to compile ocaml ( i repeat a lot of time ocaml because i
still think that it is enough expressive to describe a makefile process
and i don't want people to learn 10 language to create : a configure.in,
a Makefile.am... ). 
> 
> Then just write plain Ocaml code using these tools.
> 
> This may be a bit long winded, so check out camlp4
> to sweeten it up.
> 
> The advantage of this approach is that a make script
> is an arbitrary caml script.
> 
> Which means: it can do anything easily (since caml
> is so expressive), it is also type checked (hey,
> why shouldn't build scripts be type checked?)
> 
> etc etc etc ...
> 
> Finally after all that if you still think a language
> translator is needed to express the build conditions
> above and beyond caml with camlp4 ... then one
> can be written, plugged into the front, invoked
> by the caml build script, compiled and executed ..
> all without requiring ME or anyone else
> to use your language (you can just embed the
> translator in your package).
> 
> This is basically what interscript does only
> its hooks Python and it's aimed at packaging
> software components (meaning source codes and
> documentation) in a more general fashion
> than merely building them would require.
> It actually has a language translator,
> but it's a pretty brain dead one that basically
> allows code, doco, and executable script to be
> mixed together in a single source file.
> 
Maybe i miss one step : where can i found interscript ( i am not an
expert, i am sorry ).

thanks
Regard
Sylvain LE GALL

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners