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
Scripting in ocaml
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2006-12-27 (19:20)
From: Aleksey Nogin <nogin@m...>
Subject: Re: [Caml-list] Scripting in ocaml
On 27.12.2006 10:39, Richard Jones wrote:

> This is the syntax, right?
> It looks remarkably shell-like.

The above link only covers the "proper shell" parts of the OMake/osh
language (i.e. parts related to calling external commands).

Some features of the general language are outlined in

> For those (like me) too lazy to
> download the source, can you give us an idea of how this is
> implemented?  Is it an alternate syntax for OCaml or an interpreter
> written using ocamllex, etc.?
The OMake/osh language is fairly different from OCaml. The language was
designed specifically to work nicely in build specifications and shell
scriplets,  which is a quite different set of constraints than the ones
OCaml is designed for. The result is a functional language with dynamic
typing and dynamic scoping.

OMake is implemented in OCaml (with a bit of C -
fam/gamin/kqueue/inotify bindings, Windows-specific code, etc). It can
be characterized as an interpreter (although before a file is executed,
there is a small compilation-like translation step) implemented using
ocamllex, ocamlyacc, etc. The parsed+translated version of each file is
cached to avoid the penalty of having to do it on every run.