Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
CamlIDL 1.01 released
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2000-08-22 (09:09)
From: Xavier Leroy <Xavier.Leroy@i...>
Subject: CamlIDL 1.01 released
CamlIDL is a stub code generator and COM binding for OCaml.  It
generates the stub code required to use C libraries and
COM components in Caml, based on an IDL specification for the library,
thus automating many of the low-level details of the OCaml/C interface.

Version 1.01 is now available from

The documentation can also be browsed at

A detailed list of changes from version 1.00 is included below. In
summary: fewer bugs, and support for OCaml 3.00 new features (int32
and int64 types, big arrays).

CamlIDL is still an experimental design, with new features being added
when the need arises, so experience reports and feature wishes are
most welcome.


- Xavier Leroy

CamlIDL 1.01:

* Added support for Caml boxed int types (int32, int64, nativeint)
  and for big arrays (module Bigarray)
* Fixed bug in allocation of working space for out parameters
  of array types.
* Disambiguation of record labels that belong to several struct types.
* Support for [unique] attribute on strings and arrays, turned into
  option types in the Caml interface.
* Fixed bug with anonymous enum types (forgot to define the
  corresponding translation table).
* Fixed bug with dependent parameters depending on out parameters
  (these must not be omitted in the Caml function declaration).
* "in,out" parameters of type string or big array are now presented
  as an "in,out" parameter of the Caml function and modified in place,
  rather than presented as a parameter and a result.
* Added minimal support for COM dispatch interfaces.
* Fixed lack of initialization of ignored pointers for structs with
  only one significant field.
* Relicensed under the QPL (for the compiler) and the LGPL (for
  everything else).