Previous week   Up   Next week

Here is the latest Caml Weekly News, weeks 10 September to 8 October, 2002.
(Sorry for not publishing the cwn during the last few weeks ... I've
just moved with my wife and baby boy from Paris to Philadelphia and was
too busy ;-)

1)  Significant Ocaml commercial applications
2)  building web services using oCaml
3)  OcamlSpread 0.0.1 released
4)  Berkeley DB wrapper
5)  OCamake Release
6)  Visual ML Release
7)  Objective CAML oreilly book
8)  OCaml-SOAP library
9)  debian woody rebuilt packages
10) Toolpage 0.9
11) Pocket PC?
13) ICFP 2002 programming contest
14) Fourth shared patch 

1)  Significant Ocaml commercial applications
Matt Boyd described:

Now that it's no longer viable (we're out of business)
:-(, I figure it's safe to list ALVE Recorder among
the significant OCaml commercial applications.  It's a
product I developed which digitally records telephone
calls.  We sold a few to a few local Austin
businesses, but that's about it.  It's now to be sold
at a bankruptcy auction.  Anyway, if you guys are
still keeping a list, feel free to list my ALVE
Recorder application if you think it significant. We
may decide to open source it, but it isn't my
decision.  Also, anybody looking for a decent Ocaml
programmer with commercial application experience :-)?

ALVE Recorder specifications:
- Attaches to any ODBC database (using my CamlDB
- Plug-in Agent status information.
- SOAP-based message passing (using my streams-based
- Plug-in digital sound file conversion.
- Deployed on multiple PBX's (including Siemens and
- Enhanced capabilities through linkage with NorTel
- Interacts with varous PBX systems using a variety of
  telehony API's including:
  - Brooktrout Vantage VPS digitizing cards.
  - Intel VoiceBridge-PC phone emulator card.
  - Dialogic D/82JCT-U phone emulator card.
  - A large portion of the Dialogic system release
  - Dialogic CT-Connect.
  - Siemens Open-Real-Time-Link (ORTL).
  - NorTel's Symposium system.
  - NorTel's Meridian MAX interface.

2)  building web services using oCaml
Arnaud Sahuguet asked:

I am looking for ways to build web services using oCaml.  (* this effort
is part of the GALAX project at Bell-Labs. See for more info. *)

First I would like to point that out this includes two different aspects:

1- building the web services themselves (e.g. putting a SOAP interface
on top of a database and spitting XML)
This is the server side, if you will.

2- glueing together web services
This is more the client side.

For 1-, it is not clear to me that oCaml has a competitive edge compared
to other approaches, mainly because 1- requires a lot of "legacy"
libraries not necessarily available for oCaml.
For 2-, however, the main components needed are an HTTP stack (HTTP,
TCP, SSL, etc.) and an XML stack (XML parser, etc.). And this is where a
functional language can really show its value.

I was looking at:
- ocamlNet  
- cgi
and they support some aspects but not all that is needed like SSL,
cookies, etc.  Are there other libraries that would do that for me?

As a more general question, shouldn't we (meaning of "we" to be defined
:-) implement these stacks in oCaml?
Is there any value in doing it (except for the experience and fun of
doing it)?  Is there any advantage in having the stack (and whatever is
underneath) available as oCaml constructs?   

These protocols are complex and keep evolving. Taking a reference
implementation (like libwww which is complete, maintained, supported and
updated) and adding oCaml wrapper on top would make more sense to me.
Our value added would be in the design of a nice API on top.

I am not saying that this should be done for everything, but when there
is no (or little) value in having the low-level implementation details
available as oCaml constructs, this is -- from my point of view -- the
way to go.

I would like to raise the same question for XML libraries where
namespaces, entity resolution, XML schemas (and God knows what they are
going to invent) need to be  supported. Should everything be done in
oCaml? What is the value of having the low-level implementation details
of XML trees available as oCaml objects?

As mentioned on various previous postings, the oCaml community is
smaller than the Perl or Python ones. We need to be smarter and nimbler
in our efforts.

and Jerome Simeon added:

Since Arnaud bite the bullet already, let me give a few infos about

Galax is an implementation of the XPath 2.0 / XQuery 1.0 family of
working drafts. (See It is a complete
implementation of those two languages. People on this list will probably
be interested to know it also comes with (alpha) support for XML Schema
and static type inference.

Galax is open-source and implemented in Caml. The development is
(mostly) done by Mary Fernandez from AT&T and myself.

We are planning for an official release by the end of the month (which
is the reason we did not advertise it yet), but people interested can
find a very early prototype and more details on the Galax Web site.

Stay tuned for more in a couple of weeks :)

3)  OcamlSpread 0.0.1 released
Yurii Rashkovskii announced:

OcamlSpread, a wrapper for a Spread ( group 
communication toolkit has a first release today.

It is quite inmature (it doesn't implement all of the kinds of
functions provided by Spread now) and probably has a couple of bugs.

At this moment OcamlSpread is distributed under the terms of GNU GPL   
but will be GNU LGPL later (with notice of Spread license, too)

WARNING: This release should not be used in production.

BTW, I don't spend a lot of time to code it now (last change was about
a month ago) so contributors and/or new maintainer are welcome.

Homepage URL:

4)  Berkeley DB wrapper
Yaron Minsky announced:

It took me a while, but I just posted a version of my Berkeley DB
wrapper.  Here's the URL:

There are currently problems with the transactional support (it
segfaults and I don't know why), but other than that seems to work
pretty well.  There is currently good-but-not-complete support for
dbenvs, dbs, cursors and transactions.

then added:

Now that I realize that custom blocks and finalized blocks don't
actually have the same format, I was able to resolve the problems with
my berkeley DB wrapper.  If anyone is interested, the new version is now
available here.  The fixed version is now available in the same place as

Still no promises that it's bugless, but it seems to work for me.

5)  OCamake Release
Nicolas Cannasse announced:

I'm pleased to announce the first release of OCamake.

OCamake is an automatic compiler for the OCaml language.
It can be used as :
- a standalone application which compile and link
- a Makefile generator from a given set of files   

One of its better usage should be in education where teaching
how-to write a Makefile is sometimes painful ( for both students &
teacher ). Note that OCamake as also special features for integration under
MS Visual Studio.

Examples of usages:

ocamake *.ml *.mli -o myapp.exe
- will compile and link all the sources files in the current directory. 

ocamake -clean *.ml *.mli -o myapp.exe
- will delete all the intermediate files produced by the compilation

ocamake -mak *.ml *.mli -o myapp.exe
- will create a Makefile which can be user either by MAKE or NMAKE to
compile the project.

More informations are available in the HTML documentation of the
distribution, which is available at :

OCamake is distributed under the GPL.
I would like to thanks Lexifi for its support in this project.

6)  Visual ML Release
Nicolas Cannasse announced:

I'm pleased to announce the release of Visual ML.

VisualML is an OCaml project wizard for Microsoft Visual Studio.
It enables easy creation, compilation and errors corrections of OCaml
under Visual Studio.

Visual ML require OCamake. Both can be downloaded at :

7)  Objective CAML oreilly book
Scott asked, Anders Selander answered (and it's a good occasion to
remind everyone of the translation of the oreilly book):

> I was just wondering if you could tell me whether or not the solutions for 
> the exercises have been translated yet?  I was curious to see the lexical 
> tree exercise in chapter 2.

I do not know if all solutions in the book are translated yet, but the
ones in chapter 2 is. However, they are not yet included in the pdf
version, but you can find them in the web version on the following page:

The solutions should appear in pop-up windows when you move the pointer
over the orange words. Though in some browsers, like the one I ordinary
use, all pop-ups appear on top of each others, covering most of the
exercises. If that happens, try another browser.

8)  OCaml-SOAP library
Michel Mauny announced:

We are pleased to announce the first release of the OCaml-SOAP
library, a prototype implementation of a small subset of SOAP. The
author is Gaurav Chanda.

The distribution and online (rather terse) documentation are available  

Comments and contributions are welcome!

9)  debian woody rebuilt packages
Stefano Zacchiroli announced:

I've set up an apt-gettable repository of Objective Caml related
packages rebuilt for debian woody, because almost all sid package (or at
least all of them that contains dynamic loading stuff) aren't
installable on woody due to dependencies unsatisfiablity.

The repository contains only binary packages (sources are the same of
the sid packages) and is accessible with this apt-get line:

  deb unstable main contrib non-free

Currently the repository contains these binary packages rebuilt for

   fort, libconfigwin-ocaml-dev, libgdome2-cpp-smart-dev,
   libgdome2-cpp-smart0, libgdome2-ocaml, libgdome2-ocaml-dev,
   libgdome2-xslt-ocaml, libgdome2-xslt-ocaml-dev, liblablgl-ocaml,
   liblablgl-ocaml-dev, liblablgtk-ocaml, liblablgtk-ocaml-dev,
   liblablgtkmathview-ocaml, liblablgtkmathview-ocaml-dev,
   libnetclient-ocaml-dev, libocamlnet-ocaml-dev, libpcre-ocaml,
   libpcre-ocaml-dev, libpgsql-ocaml-dev, libpxp-ocaml-dev,
   libshell-ocaml, libshell-ocaml-dev, libxstr-ocaml-dev, ocaml,
   ocaml-base, ocaml-findlib, ocaml-native-compilers, ocaml-source,

More packages will be added, hopely all ocaml relateds ones, and I will
try to keep the repository up to date with the new version of packages;
please let me know if something that you need is missing and/or not up
to date.

The old repository (located at ...)
will be no longer containing packages rebuilt for woody, but only sid
ones, so please remove it from your sources.list if you are running a
woody machine.

10) Toolpage 0.9
Maxence Guesdon announced:

I'm glad to announce the release 0.9 of my new clic-o-matic tool, Toolpage.
This release contains:
- toolpage, which lets you describe the sotware you want to distrib and
  generates the HTML distribution pages. It comes with a gimp script to
  create fancy images for titles.
- faquin, which lets you define FAQs, sub-FAQs, sub-sub-FAQS, ... and
  generates the HTML pages. By now, two simple generators are included
  but you can use your own custom generator,  la ocamldoc.
- Toolhtml, a library to easily create HTML pages and some HTML elements
  like list in tables, double lists, frames, ... This library will be
  extended in the future.

You will find Toolpage here :
These pages have been generated by Toolpage.
A faquin output example can be found here :

11) Pocket PC?
David McClain asked:

I just got an IPAQ Pocket PC. Unfortunately these are not intended for
people who need to program. There are some anemic offerings in VBScript, and
M$'s embedded VBasic and VC++. What this thing sorely needs is a good little

Is anyone out there working on such a thing? (...and I don't mean

and Stefano Zacchiroli answered:

Damn! I was going to tell you Linux/Python indeed :-)))

Seriously, you can also try Linux/OCaml on the iPAQ, just grab OCaml
executables from the debian distribution built for arm architecture and
install it on the iPAQ running some linux distribution like "familiar".

Pierre Weis announced:

New software: Htmlc, an HTML pages ``compiler''

I am pleased to announce the 1.0 version of Htmlc, a convenient little
tool to manage a set of WEB pages, to maintain the common look of
those pages and to factorize the repetive parts of their HTML code. 
Htmlc encourages the usage of simple HTML templates that lowerize the  
burden of writing your HTML pages.

Htmlc is still evolving from its initial satus of SSI static resolver
to the plain HTML page compiler we are all dreaming of. So, please,
don't hesitate to send your constructive remarks and contributions !

Htmlc home page is

Htmlc source files can be found at

13) ICFP 2002 programming contest
Xavier Leroy announced:

The results of the ICFP 2002 programming contest have just been
announced, see  To my great delight,
the first prize went to a program written in (guess what?) OCaml by
Yutaka Oiwa, Eijiro Sumii, and Tatsurou Sekiguchi from Tokyo
University.  Three cheers to them!

- Xavier Leroy, reporting live from ICFP in Pittsburgh, PA

14) Fourth shared patch 
malc announced:

Fourth shared patch is released. Highlights:
 * Patch is now against OCaml 3.06
 * Win32 support
 * Many bugs where fixed
 * Some sort of backtracing support for native code
 * Added examples

Oh yeah, it can be found at

Old cwn

If you happen to miss a cwn, you can send me a message
( and I'll mail it to you. If you also wish to
receive it every week by mail, just tell me so.


Alan Schmitt