From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id 31486BB81 for ; Wed, 28 Sep 2005 17:40:56 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j8SFetcA029935 for ; Wed, 28 Sep 2005 17:40:55 +0200 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id RAA19215 for ; Wed, 28 Sep 2005 17:40:54 +0200 (MET DST) Received: from smtp1.adl2.internode.on.net (smtp1.adl2.internode.on.net [203.16.214.181]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j8SFeqHV029927 for ; Wed, 28 Sep 2005 17:40:53 +0200 Received: from rosella (ppp16-174.lns2.syd7.internode.on.net [59.167.16.174]) by smtp1.adl2.internode.on.net (8.12.9/8.12.6) with ESMTP id j8SFefGX067838; Thu, 29 Sep 2005 01:10:41 +0930 (CST) (envelope-from skaller@users.sourceforge.net) Subject: Re: [Caml-list] Looking for a configuration file library From: skaller To: David MENTRE Cc: brogoff , caml-list In-Reply-To: <3d13dcfc050928000613f42ed@mail.gmail.com> References: <3d13dcfc05092706091acdb72a@mail.gmail.com> <3d13dcfc050928000613f42ed@mail.gmail.com> Content-Type: text/plain Date: Thu, 29 Sep 2005 01:40:41 +1000 Message-Id: <1127922041.7743.65.camel@rosella> Mime-Version: 1.0 X-Mailer: Evolution 2.2.1.1 Content-Transfer-Encoding: 7bit X-Miltered: at nez-perce with ID 433AB987.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 433AB984.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 c--:01 config:01 noweb:01 noweb:01 literate:01 ocamldoc:01 ocamldoc:01 literate:01 ocaml:01 lexer:01 parser:01 invade:98 wrote:01 sourceforge:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 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 Felix, successor to C++: http://felix.sf.net