Previous week Up Next week


Here is the latest Caml Weekly News, for the week of September 20 to 27, 2011.

  1. Ocsigen 2.0
  2. lablqt = OCaml + qt
  3. Job opportunities at Citrix Systems (Cambridge, UK)
  4. Other Caml News

Ocsigen 2.0


Vincent Balat announced:
We are very happy to announce the release of the version 2.0 of the
Ocsigen framework. After more than 6 years of development, we achieved
our goal to provide a complete framework to program Web sites and
client/server Web applications fully in OCaml.

More information and download from

Main features:
 - Powerful mechanisms to implement traditional Web interaction very easily
(links, forms, bookmarks, back button ...).
 - A compiler from OCaml to Javascript to write the client side parts
of your programs in OCaml.
 - Integrated client/server programming in one single program, with
automatic communication between server and client.
 - Validation of HTML at compile time.
 - Powerful session mechanism
 - Persistant client side programs: you can mix client side features
with traditional Web interaction. The program does not stop when you press
a link!

The documentation is now mostly complete. We are currently working on
adding the few missing parts and proof reading everything. Current
version is available online and a more polished version will be released
as a PDF book in a few weeks. The good starting point for learning
Ocsigen is the tutorial:

Please report any problem with current version or in documentation
through the bug tracking system, the mailing list or the IRC channel.

The Ocsigen framework combines many software projects (all open source),
that can be used independently:
 - Ocsigen server: an extensible Web server
 - Eliom: a framework for Web programming in OCaml
 - Js_of_ocaml: a compiler from OCaml bytecode to Javascript
 - Lwt: a cooperative threading library
 - Macaque: a library for type safe database queries
 - O'Closure: a binding for the Google closure widget library
 - etc. The full list of our projects is available here:

Ocsigen is a research project of the PPS laboratory (CNRS, université 
Paris-Diderot) (, hosted at IRILL 
( It receives funding from the ANR (PWD project)

We hope that you'll enjoy this version!

lablqt = OCaml + qt


Kakadu announced:
I'm working on Qt bindings for OCaml. You can browse my code at

Now qtjambi parses Qt's header files and generates an XML
representation of API. Then binding generator generates OCaml and C++
code of bindings.

Now a big part of Qt's API is stored in aaa.xml, so you don't need to
install qtjambi's generator. Big part of QtCore É QtGui is
incapsulated in this xml file.

You can use script to compile lablqt. Btw, lablqt depends on
janestreet's core_extended library.

You can see test examples in test_gen/test* directories. For examle:

I've implemented almost type-safe connections from signals to
slots. Also I've created tool
( to simplify
creating of user-defined slots: you can connect them like here
and write your code separately

Lablqt is compilable only on a few number of machines, so I'll be glad
if you test it on your computer.

It's difficult to me to decide in what direction Qt bindings should be
developed. I you have any ideas or recommendations, I'll be glad to
read them.

Job opportunities at Citrix Systems (Cambridge, UK)


Mike McClurg announced:
I just wanted to let everyone know that Citrix is hiring developers to
work on the OCaml-based XenAPI toolstack.

We are looking to recruit top-class engineers to work on the toolstack;
applicants must have a good knowledge of data structures and algorithms,
experience of programming in the context of large systems and general
aesthetic good taste when it comes to code and architecture.

Our code base is significant and varied: over 130,000 lines of OCaml,
solving problems ranging from the low-level (Xen hypercalls) to the
high-level (resource pool management), to the compiler-driven
(generating language bindings for our Xen datamodel).

Our ideal candidate will have:

* significant experience with applications programming in high-level
functional languages (such as OCaml)
* an aptitude for implementing (and reasoning about) complex concurrent
and distributed systems
* the skills required to contribute to both the architectural design and
day-to-day development of a large code-base
* strong communication skills and problem solving ability
* a determination to deliver clean and reliable solutions that meet our
customers' needs

So if you want to tackle interesting and challenging programming
problems and contribute to an innovative, fast-growing product that is
already used by tens of thousands of customers across the world, please
don't hesitate to send me your CV.


Mike McClurg

PS: Please note that you must have UK right to work. Here are the
official job postings, but if you apply please send me your CV directly.

* Req #11673 - Software Development Engineer:

* Req #11897 - Senior Software Developer:

And here are some links to our company, products and open source
projects and code.

* The Xen Hypervisor -
* Citrix XenServer -
* Our GitHub account -

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

Yield, Continue:

Tuareg mode is available through marmalade:

Ocsigen 2.0:

Calcul avec OCaml:

Which foreign function interface is the best?:

Ocsigen 2.0 released!:

A Small Patch for Bizarre but User Controllable Limited Overloading:



First release:

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