Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Looking for a configuration file library
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2005-09-28 (15:40)
From: skaller <skaller@u...>
Subject: Re: [Caml-list] Looking for a configuration file library
On Wed, 2005-09-28 at 09:06 +0200, David MENTRE wrote:
> Brian,
> 2005/9/27, brogoff <>:
> >     I like the Lua-ML package used in C--. Lua is just about right as a
> > configuration language, especially if you wish to do some computation in your
> > config  file. It should satisfy your listed requirements.
> I did not thought about this option but this is an interesting
> suggestion. In the long term, I also want to add scripting
> capabilities to my program so that might be done both at once.

You might consider Nicolas Cannasse's program Neko.

> >     On the minus side IMO (I hate to be negative about something free) it uses
> > noweb, and is not up to date with the latest version of Lua. In particular,
> > the  use of noweb is annoying, but with a bit of grunt work you can undo that.
> I'm already using noweb for my program, so this is not an issue for me[1].
> Yours,
> d.
> [1] Even if, in the long term, I want to remove noweb in order to use
> a literate programing style relying on language source code, like
> ocamldoc.

Ocamldoc is NOT a literate programming tool, but a document
generator. As such it is good for documenting the programming
interfaces to be used by developers of the Ocaml code of you
project.. and nothing else (since Demexp is an end user product,
not a programmers product such as, for example, ExtLib).

So, use of Ocamldoc is entirely independent of your LP tool
use -- in Felix I use both.

The real problem with tools like noweb is that, like all LP
tools, they invade and dominate the whole project structure,
but fail to provide enough power to actually manage a project.

This is why, if you choose to use LP, you should use Interscript,
since it is precisely the whole of standard Python plus a library,
all of which is accessed in your LP documents by executing
Python script.. therefore, you can provide arbitrary processing
in your documents, extending the system from within: there is
no need to write external plugins (although you can do that too).

Felix uses this power a bit: for example, the language has
certain keywords which are defined in a Python list.
The lexer, parser and man page are *generated* using that list,
so all three are guaranteed to be in synch at all times.
Certain build scripts are adapated the same way: a few lines
of interscript completely replaces the whole Autotools rubbish.

John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: