Previous week Up Next week


Here is the latest Caml Weekly News, for the week of June 21 to 28, 2011.

  1. Post-doc position available at CEA Saclay, France
  2. Position available: Ocaml/Ocsigen research engineer
  3. ocaml async communications
  4. Ingénieur Caml pour l'analyse de Flash
  5. OCaml 3.12.1 compatibility report
  6. Other Caml News

Post-doc position available at CEA Saclay, France


Samuel Mimram announced:
The LMeASI laboratory is offering a 1-year post-doctoral position for
a post-doctoral researcher to work on verification of concurrent
programs, funded by the PANDA ANR. The activities of the laboratory
range from the implementation of program analyzers to theoretical
developments using tools originating in algebraic topology.

The candidate should have a PhD thesis in computer science or
mathematics and knowledge in one or more of the following areas:
* concurrency theory
* programming (especially in OCaml)
* algebraic topology
* category theory

The research subject shall be related to the activities of the
laboratory and will be discussed in details with applicants. The
post-doc will take place in the Saclay center of CEA (Commissariat à 
l'Énergie Atomique) in the LMeASI laboratory, and will be supervised
by Éric Goubault, Emmanuel Haucourt and Samuel Mimram.

Candidates should send a resume to Samuel Mimram
<samuel.mimram AT>.
 The deadline for application is September 1,

Position available: Ocaml/Ocsigen research engineer


Vincent Balat announced:
The IRILL [3] and the PPS laboratory [2] is hiring a Research Engineer
with good skills in (Ca)ML programming for 1 to 2 years.

Keywords: Ocsigen, Web applications, content management, OCaml

The engineer will join the Ocsigen [1] development team, as
member of the ANR national project PWD (Programmation du Web
Diffus). The work will take place in the new research center on
free/open source software (IRILL) [3] in Paris.

He will participate in the development of various components of
the Ocsigen framework:
 - implementation of higher level tools for creating Web site
   easily (content management, Ocsimore project)
 - extensions and improvements to the Web server
 - library for writing graphical interfaces in OCaml in a browser
 - Ocsigen on mobile phones
 - Ocsigen and cloud computing

About Ocsigen:

Ocsigen is an open source framework to develop client/server Web
applications fully in OCaml, as a single program.

About PPS:

PPS is an A-ranked CNRS laboratory of the University Paris
Diderot Paris 7.  One of its main research topics is the the
study of programming languages and distributed systems and their
logical foundations.  The research activity is associated with an
important software development activity, mainly in OCaml
(for example Menhir, Unison).  The main themes span from the
Web (Ocsigen, CDuce, Xduce, Polipo) to parallel programming (Lwt, OcamlP3L,
CPC), from networks (Babel) to the management of software packages
(Debian, Edos, Mancoosi) and proof assistants  (Coq).

About the IRILL:

The IRILL is a new international research centre on free/open source
software located in Paris. IRILL's objective is to become a reference
center for the research and development of stable and reliable free
software. By hosting development projects, IRILL also acts as an
observatory and experimental centre for transfer using free software.

Required skills:

- Expertise in OCaml programming
- Knowledge of Web standards
- Engineer or PhD degree (master may be sufficient under conditions)

Vincent Balat and Jérôme Vouillon:
{Vincent.Balat || Jerome.Vouillon}


ocaml async communications


Eray Ozkural announced:
I've implemented basic asynchronous communications in ocamlmpi. It's
in the svn version. I'd be glad if fellow ocaml parallel programmers
took a look and tested it out. Suggestions welcome, also, let me know
if there is an API call you need urgently. The objective is to
complete all the missing stuff from MPI-1 standard, eventually. It's
incredibly comfortable to use the generic interfaces of
ocamlmpi. Compared to C, it's a breeze. This addition was quite
helpful in my research code, I could easily program my own
all-to-all-personalized communication function :) And as you know, for
achieving communication/computation overlap this is the best way to
proceed, which I haven't exploited in my new parallel information
retrieval application yet, but I did verify that the async. calls

Ingénieur Caml pour l'analyse de Flash


Frédéric Besson announced:
L'équipe Inria Celtique recherche un programmeur OCaml (ingénieur
jeune diplômé) pour développer des analyses statiques de programmes

L'annonce  est consultable à l'adresse suivante:

Mots-clés   : compilation, vérification, analyse statique
Langages    : OCaml
Éligibilité : ingénieur jeune diplômé ( diplômé 2010 ou 2011)
Contrat     : un an (renouvelable une fois)
Lieu        : Rennes
Contact     : frederic.besson AT

OCaml 3.12.1 compatibility report


Continuing the thread from last week, Xavier Clerc said and Xavier Leroy replied:
> The tests are failing because a try is made to compare two big arrays with 
> different layouts.
> It used to be accepted by the big array compare function, but now only big 
> arrays with the
> same kind and layout can be compared [1].

Technically, bigarrays that differ in kind or layout can still be
compared safely (= without crashing), but in 3.12.1 and up they will
never compare equal.

This is really a corner case, because in classic Caml and not using
Obj.repr nor Obj.magic, the two bigarrays being compared must have the
same static type and therefore the same kind and layout.  With
first-class modules today, or GADTs tomorrow, it is possible to
compare two values having different representation types.  That's why
polymorphic comparison in 3.12.1 was hardened so that it would behave
better in this case.

I'd be interested to understand why bin_prot ends up comparing
bigarrays of different layouts: is this an oversight in the test suite
or a strong requirement?
Markus Mottl then replied:
I have traced down this problem to the C-bindings of the bin-prot
library.  When it is supposed to unmarshal bigarrays, it always
allocates them using Fortran-layout.  But this should be C-layout for
"bigstrings".  I will fix this in the next release.  The problem
should not have any noticable other impact.

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

Paving the way for the RC:

Dropping history with Mercurial:

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