Previous week Up Next week


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

  1. Technical Presentation Software written in OCaml
  2. Bindings for ODE (Open Dynamics Engine), and a small "game"
  3. OC-SOAP 0.3.1 - a proper SOAP interface for OCaml
  4. Making something similar to format[4]
  5. Wyrd 1.0.0

Technical Presentation Software written in OCaml


Jon Harrop announced:
For anyone who is interested in commercial exploits using OCaml, we are 
releasing our first stand-alone sofware package, Presenta.

Presenta is an OpenGL-based slideshow presentation program with support for 
animated points, typeset mathematics, 2D and 3D graphics:

The whole program is just under 10,000 LOC, entirely OCaml. The core of the 
program is a general purpose 2D vector graphics library (Smoke) which we've 
been developing for the past six years and which was translated from C++ into 
OCaml 2 years ago, with great success.

We currently support only x86 and AMD64 Linux but we are also considering 
supporting Mac OS X as well.

Let me know what you think! :)
Gerd Stolpmann then announced:
> For anyone who is interested in commercial exploits using OCaml, we are 
> releasing our first stand-alone sofware package, Presenta.

Looks very cool! Btw, you don't need nVidia drivers, the free DRI-based
ones work very well (e.g. on my Intel i850 laptop).

I have now also a commercial product written in O'Caml: UMLMON, a
monitor for User Mode Linux. As I am mainly targeting the German market,
there is currently only documentation in German: . An international version may follow
if there is enough interest.

UMLMON is a classic multiplexing daemon that starts and stops User Mode
Linux instances, manages a communications path with them, and does a
number of other nice things. Thanks O'Caml it has been developed within
six weeks, and is now practically bug-free. Show me another system
software developed that quickly.

Bindings for ODE (Open Dynamics Engine), and a small "game"


Richard Jones announced:

You will need: ocamlsdl, lablgl, extlib and of course the ODE library
itself.  There's a (not very good) toy game in there too!
He later added:
There's a web page for this now:

OC-SOAP 0.3.1 - a proper SOAP interface for OCaml


Richard Jones announced:
There's a web page for OC-SOAP now:

The 0.3.1 version includes a patch to support <all> types in XML
Schema, supplied by Jesse D. Guardiani.

Making something similar to format[4]


Jonathan Roewen asked and Richard Jones answered:
> I'd like to create something that works like the format type for
> format strings with Printf/Scanf. What I want to do is take a
> one-dimensional bigarray, and a format string of all the sizes of the
> fields corresponding to a struct, and return the typed results.
> So sizes of 1 = bool, <= 8 char/int (format specifier to choose char),
> <= 31 int/int32, = 32 int32, > 32, int64.

The OCaml printf/scanf functions are basically hacks done in the
compiler.  Whereas it is possible to write a new function which takes
precisely the same string format as printf/scanf, it's not possible to
modify the format without changing the compiler.  However, see below ...

> The idea is to make reading/writing C-like structs painless &
> automated. I'm just not sure where to begin in making this type-safe
> format string. Does it require modding the ocaml parser & libraries?
> Cause I'm really confused how ocaml can statically parse the string
> and enforce type safety without some hack in the compiler at some
> stage.

It's actually a really good idea.

I can't see any immediate reason why it couldn't be done trivially
with camlp4.  For a good start, read Martin Jambon's camlp4 tutorial
( and then have
a look at the code for tywith
( and my old
simplesoap library ( which
both manipulate types from camlp4.

Wyrd 1.0.0


Paul Pelzl announced:
The xterm addicts in the audience may be interested in my calendar
application written in OCaml:

"Wyrd is a curses front-end for Remind, a powerful calendar and alarm
application. The display features a scrollable day calendar suitable for
visualizing your schedule at a glance. Wyrd integrates with an external
editor of your choice to make manual editing of reminder files more
efficient. Other features include significant configurability and
Mutt-like interface design."

As a side note, email to the Hump has been bouncing for a couple of
months now, as noted here:
Would be nice if someone looked into that...

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