Previous week Up Next week


Here is the latest Caml Weekly News, for the week of July 23 to 30, 2013.

  1. GODI is shutting down
  2. ocaml-lua v1.1: OCaml binding of Lua library
  3. Writing Awk in OCaml
  4. Lecturer/Senior Lecturer
  5. Other Caml News

GODI is shutting down


Deep in the thread spawned last week, Andreas Hauptmann said:
My windows fork ( ) is independent
from Gerd's servers. It won't be affected by the shutdown in September.
If there will be a 4.01 release soon, I intend to publish updated
package informations and binary builds for Windows.

There are not many users. Therefore, I was too lazy to add an own
package release infrastructure (via github or similar). Up to now, the
packages were mainly auto-generated or synchronized from the mainline

ocaml-lua v1.1: OCaml binding of Lua library


Paolo Donadeo announced:
I'm happy to announce a fix release of ocaml-lua, the OCaml binding of the Lua
library. With ocaml-lua you can embed a Lua interpreter in an OCaml program in a
few lines of code, and use Lua for configuration or customization purposes.

Few changes from previous v1.0:

1. bug fixes;
2. support for LuaJIT (2.0.0 for Lua 5.1);
3. compiles on OSX (not much tested, I don't have a Mac at home);
4. support OPAM (package available soon in the official repository, pull request
   already sent);
5. now you can specify a memory limit allocable for the Lua state:

Here are some references:

The homepage of the project is hosted on OCaml Forge:

The complete library reference (ocamldoc generated) is here:

Source tarballs are on the download page on OCaml Forge:

The official GIT repository is here:

Bug reports and feature requests are on my page on GitHub:

Writing Awk in OCaml


Michael asked and Xavier Leroy replied:
> I am trying to write a Awk in OCaml and would like to write it as a  
> variadic function.  I have seen several examples of variadic functions  
> in OCaml, but I am still unsure if it is possible. Maybe can someone  
> help me to solve this?
> (Mini)-Awk is a module with the following (probably wrong) signature:
> sig
>    type 'a field
>    type row = string array
>    val make : int -> (string -> 'a) -> 'a field
>    val get : 'a field -> row -> 'a
>    val bind : (row -> 'a -> 'b) -> 'a field -> row -> 'b
> end
> With this signature [make 1 int_of_string] if a field [f] such that  
> [get f row = int_of_string (row.(1))].
> Now assume you have two fields f1 : int field and f2 : string field  
> and two functions u : int -> state -> state and v : int -> string ->  
> state -> state (where state is a random type).
> With the above signature, we can write (1)
> bind u f1: row -> state -> stat
> bind (bind v f1) f2 : row -> state -> stat
> But it would be quite nice to be able to write the following  
> expressions so that they are defined and correctly type (2):
> bind u f1 : row -> state -> state
> bind v f1 f2 : row -> state -> state
> Is there any way to rewrite things so that the cumbersome (1) can be  
> replaced by the slick (2) ?

Just use a left-associative infix symbol for "bind", it will be real slick:

    let (++) = bind

    v ++ f1 ++ f2     (* i.e. bind (bind  v f1) f2  *)

Lecturer/Senior Lecturer


Conor McBride announced:
The Department of Computer and Information Sciences within the University of
Strathclyde seeks to appoint a Lecturer or Senior Lecturer to enhance the
internationally leading Mathematically Structured Programming (MSP) research
group. The MSP group’s vision is to use mathematics to understand the nature
of computation, and to turn that understanding into the next generation of
programming languages, and the successful applicant will be expected to
further develop the Department’s reputation for excellence in this area. You
will have ambitious academic aspirations and an understanding of how to bring
in the grant income required to fund those aspirations. You will also be
expected to contribute to the Department’s teaching activities in the areas
of Computer Science and Software Engineering.

For consideration at Lecturer level you will demonstrate significant promise
in your research discipline as evidenced by a publications record in high
quality venues. To be considered at Senior Lecturer level you will have a
strong record of achievement in their career to date including success in
securing external funding and experience of teaching undergraduate and/or
postgraduate students.

Research Starter Grant: The Faculty of Science offers a Research Starter
Grant to all new full-time, non-professorial, academic staff within the
Faculty. The Grant may be used for any purpose that assists staff to
establish their Strathclyde research career and to assist in attracting
additional funding for research from external sources. Any grant awarded
will be to a maximum of £10,000, and the planned expenditure of the award is
normally for a period of 18 months.

For further information contact Prof Neil Ghani or Dr Conor McBride

Other Caml News

From the ocamlcore planet blog:
Thanks to Alp Mestan, we now include in the Caml Weekly News the links to the
recent posts from the ocamlcore planet blog at

New release: v1.1:

OCaml on FreeBSD Maintainer's Toolkit:

Old cwn

If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.

If you also wish to receive it every week by mail, you may subscribe online.

Alan Schmitt