Previous week Up Next week


Here is the latest Caml Weekly News, for the week of December 18, 2007 to January 01, 2008.

Happy New Year!

  1. Ocaml 3.10.1 release candidate
  2. OCaml meeting in Paris -- subscription is opened
  3. Objective C - Objective Caml bridge for Mac OS X
  4. OCaml-Ming
  5. glMLite
  6. OCaml-Allegro

Ocaml 3.10.1 release candidate


Damien Doligez announced:
It is my pleasure to announce that release 3.10.1 is imminent. 

At this time, I have made a release candidate available at

This is a source-only release intended for final testing.  Please try it 
and report your experiences to me <>.
If it works on your favorite architecture, tell me.  If it doesn't work, 
tell me too. 

The bug fixes included in this release are detailed in the Changes file.
Daniel de Rauglaudre then said:
For those who want to test it with Camlp5, I added the compatibility 
with OCaml 3.10.1 (which was missing, because I didn't know that this 
version number was in preparation). 

It is Camlp5 5.06 available at:

OCaml meeting in Paris -- subscription is opened


Sylvain Le Gall announced:
I hereby declare that we are looking for participants. 

The meeting will be in Paris at ENST on January, the 26th 2008. 

The proposed schedule is: 
* Begin at 10am 
* Short talks in the morning: GODI, ocamlbuild, Debian 
* Lunch 
* Workshops in the afternoon until 6pm 
* Dinner in Paris 

You can subscribe by editing the following page: 

If you want to come, you must subscribe, since the access will be 

I am also looking for people that wish to help the organization 

Objective C - Objective Caml bridge for Mac OS X


Francois Rouaix announced:
Folks,I've just opened up an svn on 
This is an alpha-level release of a bridge between OCaml and Objective C (or 
more precisely, Cocoa APIs) for MacOSX. 
It's been barely tested, only w/ ocamlc 3.09.3 and Tiger 10.4.11 and still 
lacks many features (e.g. invoking OCaml methods from ObjC). 
However, it gets an "Hello World" command-line program compiled and running, 
all from automatically generated stubs. 
Don't expect to understand much of the bridge's technical aspects unless 
you're expert-level in OCaml (objects, labels, C-interface) 
and intermediate in ObjectiveC (NSInvocation, Foundation, AppKit). 

At this point I'm looking for feedback on naming conventions, overall 
expectations on verbosity and utilization. 
Start w/ reading the Wiki if you're interested, and shoot me an email. 
License is (new) BSD style.



Florent Monnier announced:
OCaml bindings for the Ming library, 
a library to create Flash animations. 

(the state is still alpha) 

You can browse the interface ocamldoc: 

Several code samples are provided in the tar-ball. 

Here is an exemple of script with the object interface 
which is made to be as close as possible to the PHP interface: 
(the PHP interface is well documented)



Florent Monnier announced:
OCaml bindings for OpenGL. 

(Samples from the Red-Book translated to OCaml are provided.) 

You can have a look at the interface generated documentation here:
Stefano Zacchiroli and Jan Rehders asked, and Florent Monnier answered:
> > Can you please compare glMLite with LablGL [1]? 
> ... and glcaml [2] :) 

I can't since LablGL doesn't work on my computer (Mandriva and Mesa). 
That's the reason why I did my own binding. 
All I can say is that LablGL has a more camlize interface while my binding 
keeps the openGL function names unchanged. (but a wrapper module makes it 
possible to use glMLite with LablGL's interface, and by the way it is 
possible to run Lablgl scripts with glMLite.) 
When the problem with LablGL was uncountered I have mailed the author, but we 
have not been able to find the reason of the problem with LablGL, so... 

[Florent Monnier added in a later message]

I have never used glcaml. 
When I have begin my binding, glcaml was not release yet, so that's why I 
begun my own. 
What I can say as difference from reading the generated documentation is that 
each of the 3 openGL binding resolve the problem of the GLenum parameters 
(that often collide between several functions) in a different way. 
GLCaml provides one big glenum type that contains all the parameters for all 
the functions (so it seems there is no type check at all), LablGL uses 
polymorphic variants, and glMLite packs the problematic types in modules. 
So users have the choice :) 

Jon Harrop added:
While we're on the subject, perhaps I can productively compare LablGL and 

LablGL is by far the most widely used and, therefore, tested of the OpenGL 
bindings available for OCaml. According to the package popularity contests, 
LablGL has 412 registered installs on Debian and Ubuntu. This library is 
ideal for people who are less familiar with OpenGL because it provides a 
higher-level and safer API. However, LablGL only supports OpenGL 1. 

GLCaml are the most up-to-date bindings to OpenGL for OCaml, supporting the 
latest OpenGL 2 API. This library uses an OCaml program to generate the 
bindings automatically, which makes it much easier to keep up to date but 
lower-level. This library is ideal for people who require OpenGL 2 but is not 
as thoroughly tested as LablGL (no packages) and, consequently, contains 

I'm not quite sure where Florent's bindings fit in because they lack packages 
and users like GLCaml and lack support for OpenGL 2 like LablGL. 

I recently wrote several OpenGL 2 shader demos in OCaml using Elliott Oti's 
GLCaml bindings. I filed two bug reports in the process. I'm hoping the 
community can pull together to get these state-of-the-art bindings tested and 
shipped in deb packages. I'd like this to be the future of OpenGL for OCaml 
because the autogenerated bindings make the latest OpenGL features accessible 
to expert users and higher-level bindings can easily be written to help 
newbie users. 

We'll refrain from writing OCaml Journal articles about GLCaml until it has 
stabilized but several people have expressed an interest in a 3D scene graph 
library for OCaml which I can create for GLCaml easily from part of Smoke's 
source code.



Florent Monnier announced:
I have released OCaml-Allegro, an OCaml binding for Allegro. 
Allegro is a cross-platform library intended for use in computer games and 
other types of multimedia programming. 

It is available here: 

You can have a look at the interface generated documentation here: 

Some exemples from the original Allegro source package are provided converted 
in OCaml. (Feedback on the binding with these exemples is wellcome.) 

You can read an introduction of the library on Wikipedia: 
or more details, description and documentation on the official website:

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}$'?'&lt;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