Previous week Up Next week


Here is the latest Caml Weekly News, for the week of May 20 to 27, 2008.

  1. [Job] Ingénieur associé at Inria Rennes
  2. Introducing Frama-C
  3. OCaml-Java project: 1.0 release

[Job] Ingénieur associé at Inria Rennes


Frédéric Besson announced:
Interested in static program analysis? A passionate Caml developer ?

For several years, the Inria Lande project-team located in Rennes has been
developing static analyses targeting Java byte code. We are now looking for a
talented Caml Programmer who wants to be the cornerstone of this development
effort aimed at producing a tool that provides a number of cooperating
analyses, including control flow, relational numerical domains, alias and null

The formal job announcement  (in French) can be found on the Inria  website at

The succesful candidate will join the Lande project-team and interact with the
permanent academic staff as well as the PhD students working in the project.
* The position is for one year with the possibility of a one year extension
  based upon achievements
* The position is open to junior software engineers with a Master's degree (or
* The gross salary is 2495€ per month.

For more information, contact

Introducing Frama-C


Virgile Prevosto announced:
The Frama-C development team is proud to announce the availability
of Frama-C, the framework for the development of collaborating
static analyzers for the C language. Many analyzers are provided in the
distribution, including a value analysis plug-in that provides variation
domains for the variables of the program, and Jessie, a plug-in
for computing Hoare style weakest preconditions.

Frama-C is Open Source software. It is written in Ocaml and relies
on the CIL (C Intermediate Language) library.

Additional information, source code and documentation for Frama-C
are available now at Binary distributions for
various popular environments will be forthcoming.

For the Frama-C development team,
Pascal Cuoq and Virgile Prevosto

OCaml-Java project: 1.0 release


Xavier Clerc announced:
This post announces the 1.0 release of the OCaml-Java project.
The goal of the OCaml-Java project is to allow seamless integration of OCaml
and Java.
Home page:

This version features a new source distribution which includes the standard
distribution of Objective Caml 3.10.2, and all the libraries needed to build
the whole OCaml-Java project.

Main changes since beta:
 - source distribution
 - support for OCaml 3.10.2
 - support for camlp4
 - better handling of Java errors
 - ocamllex, ocamldoc, and ocamldep added to the binary distribution
 - bug fixes

I am still looking for testers, particularly concerning the source
distribution. So far, this distribution has been tested on two platforms:
MacOS X.5 (32-bit), and Fedora 8 (64-bit). I will be thankful to developers
reporting success or failure on other platforms.
Jon Harrop asked and Xavier Clerc answered:
> I would love to test this but I do have some questions: 
> 1. Do threads run in parallel, i.e. does it leverage the concurrent GC in 
> the JVM? 

No. This is in fact not possible as some parts of the OCaml runtime work only 
under the assumption that there is only one thread in the runtime at once. 
However, as soon as this assumption is lifted it will be possible to use 
the concurrent GC of the JVM (the OCaml summer of code is supposed to deliver 
such a patch to be integrated in the official Caml distribution if I remember 

> 2. What is the performance like? 

As of today, performance is not good. My objective for the 1.x branch is to 
work on compatibility with the original implementation. Performance issues 
are postponed to the 2.x branch. In the meantime, OCaml-Java has proved fast 
enough to program lightweight GUI applications. Moreover, the very early (and 
unconclusive) tests I run seem to show that it compete with so-called script 

> 3. Is anyone working on Debian packages for OCamlJava? 

Well, Richard Jones provided a Fedora package for alpha/beta. 
It should not be very hard to adapt to 1.0 final, or to Debian. 

> 4. Are tail calls fully implemented and, if not, when exactly do they work? 

Tail calls are fully implemented for direct recursion, but not for calls to 
other functions (it is not possible to "jump" out of a method in Java). 

Using folding to read the cwn in vim 6+

Here is a quick trick to help you read this CWN if you are viewing it using vim (version 6 or greater).

:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~'^=\\{78}$'?'<1':1

If you know of a better way, please let me know.

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