Previous week Up Next week


Here is the latest Caml Weekly News, for the week of 16 to 23 December, 2003.

As I am travelling tomorrow, this edition is out a day early. Merry Christmas to everyone.

  1. SWIG-1.3.20
  2. ChartPak 1.0a2 -- an OCaml-based Web graphics tool
  3. Automake support for OCaml


The SWIG Developers announced:
*** ANNOUNCE: SWIG 1.3.20 ***

December 17, 2003

We're pleased to announce SWIG 1.3.20, the latest installment in the
SWIG development effort.  SWIG-1.3.20 includes a number of bug fixes
and large number of enhancements throughout.

What is SWIG?
SWIG is a software development tool that reads C/C++ header files and
generates the wrapper code needed to make C and C++ code accessible
from other languages including Perl, Python, Tcl, Ruby, PHP, Java,
Guile, Mzscheme, Ocaml, Chicken Scheme, and C#.  Major applications of
SWIG include generation of scripting language extension modules, rapid
prototyping, testing, and user interface development for large C/C++

The release is available for download on Sourceforge at

Within the next day, a Windows version will also be made available at

Release numbers
With SWIG1.3, we are adopting an odd/even version numbering scheme for
SWIG.  Odd version numbers (1.3, 1.5, 1.7, etc...) are considered to
be development releases.  Even numbers (1.4,1.6,1.8) are stable
releases.  The current 1.3 effort is working to produce a stable 2.0
release.  A stable 2.0 release will not be made until it can
accompanied by fully updated documentation.  In the meantime, we will
continue to make periodic 1.3.x releases.

We need your help!
Even if you are perfectly happy with SWIG1.1, we can still use your
feedback.  First, we like to know about compilation problems and other
issues concerning the building of SWIG.  Second, if SWIG1.3 is unable
to compile your old interface files, we would like to get information
about the features you are using.  This information will help us find
bugs in the SWIG1.3 release, develop techniques for supporting
backwards compatibility, and write documentation that addresses
specific issues related to migrating from SWIG1.1 to SWIG1.3.

We are also looking for volunteers who would like to work on various
aspects of SWIG development.  SWIG is an unfunded project that would
not exist without volunteers.  We are also looking for the developers
of other SWIG language modules.  If you have developed a SWIG module
and would like to see it incorporated into the new release, please
contact us to obtain SWIG-CVS access.  We are also more than willing
to help port your module from SWIG1.1 to SWIG1.3.  Please send email
to for further information.

Please report problems with this release to

ChartPak 1.0a2 -- an OCaml-based Web graphics tool

Matt Gushee announced:
I am pleased to announce the second alpha release of ChartPak, an
advanced Web graphics engine. From the README:

  The primary goal of this project is to provide an easy-to-use library
  for dynamically generating statistical and financial charts for the
  Web.  It will include a wide variety of common chart types (pie
  charts, bar charts, etc.), and may eventually provide support for more
  specialized types of graphics.

For downloads, documentation, and a live demo, please visit:

As always, comments, questions, and bug reports are welcome!

Automake support for OCaml

Tom Murray announced:
I've been working on a patch to automake to support packages with Caml

Current features include compilation of programs and libraries,
possibly with mixed Caml and C code, automatic dependency generation,
and both bytecode and native code compilation. To get an idea, here is  
a sample

CAML_INCLUDES = -I ../ -pp "camlp4o pa_extend.cmo"
CAML_LDADD    = unix.cma

bin_MLPROGRAMS = myprog
lib_MLLIBRARIES = mylib.cma

myprog_SOURCES = myprog.mli myprog_c.c

mylib_cma_SOURCES =
mylib_cma_LIBADD  = otherlib.cma

This defines a program and a library to be built. Typing "make all"
will build myprog and mylib.cma. Typing "make opt" will build
myprog.opt and mylib.cmxa. The CAML_INCLUDES variable applies the -I
flag and an invocation of Camlp4 to all targets. The CAML_LDADD links
in unix.cma with bytecode targets, unix.cmxa with native code. Also
note that myprog includes an interface file myprog.mli that is compiled
to myprog.cmi, but of course excluded from the link. The mylib.cma
library also links in otherlib.cma (or otherlib.cmxa).

The main things left to do are:
* install support (I plan to use ocamlfind)
* m4 macros to ease searching for Caml libraries on the system
* support for more tools such as ocamllex/ocamlyacc (you _can_ do this
manually now, of course)
* improved integration with C

A little page and download are at

Your comments and suggestions are appreciated.
Stefano Zacchiroli said:
You plan to use ocamlfind only at install time, right? Why not
supporting it also at compile time? I'm thinking about something like:  

CAML_PACKAGES = unix pcre

Surely you can do the same using yours CAML_LDADD in conjunction with
"ocamlfind query", but it will be harder to use and less intuitive.

It shouldn't be a major change, should it?

Thanks for your work
from an ocaml user that
has fought a lot with
automake in the past :-(

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