Previous week Up Next week


Here is the latest Caml Weekly News, for the week of June 07 to 14, 2011.

  1. OCaml cheat sheets
  2. ocaml-data-notation v0.0.5: Store data using OCaml notation
  3. Call for Participation: Mancoosi International Solver Competition
  4. Deadline June 17: ACM SIGPLAN Workshop on ML
  5. Ocamlnet-3.3.1
  6. OCaml on iPhone/iPad Simulator
  7. Other Caml News

OCaml cheat sheets


Continuing the thread from last week, Stefano Zacchiroli asked and Fabrice Le Fessant replied:
> Any chance you can specify a license for the cheatsheets? At present,
> they only say "(C) ..." meaning that one can do very little with them,
> e.g. printing them for persona use and little more.  An interesting
> usage pattern which is forbidden in present form is distributing them to
> students of a university class which on OCaml.

The files have been updated to display a Creative Common icon, BY+SA,
allowing free distribution for any usage.

We cannot really release the sources yet, as the formatting is pretty
simple, and we want to use better formatting/coloration tools for the
next versions.

ocaml-data-notation v0.0.5: Store data using OCaml notation


Sylvain Le Gall announced:
This library uses `type-conv` to dump OCaml data structures using OCaml data

This kind of data dumping helps to write OCaml code generator, like OASIS.

This release compiles with latest type-conv version (2.3.0).


Get source code:
$ darcs get

Browse source code:;a=summary

Call for Participation: Mancoosi International Solver Competition


Ralf Treinen announced:
       The Mancoosi International Solver Competition (MISC)
                   Call for Participation

The Mancoosi project ( calls for the second
international competition of solvers for package/component
installation and upgrade problems. Instances of these problems are
given by a set of currently installed or available software packages,
with complex relations between them like dependencies, conflicts, and
features. The problem instances used in the competition are expressed
in a language called CUDF that allows to express relationships between
components like they are known for instance in GNU/Linux
distributions, or for Eclipse plugins. We are not only interested in
finding some solution to such a problem, but in finding the best
solution according to different optimization criteria. For a detailed
description please look at the competition web page


Participating solvers will be judged by the correctness of the
solution, the quality of the solution according to the respective
optimization criteria, and speed. The results of the competition will
be announced on September, 12, at the LoCoCo workshop at CP 2011

- August, 1: Registration of participants by email to
misc-committee AT
- August, 12: Submission of solvers
- September, 12: announcement of the results

Organization Committee:
Pietro Abate, University Paris-Diderot, France
Roberto Di Cosmo, University Paris-Diderot, France (co-chair)
Ralf Treinen, University Paris-Diderot, France (co-chair)
Stefano Zacchiroli, University Paris-Diderot, France

Deadline June 17: ACM SIGPLAN Workshop on ML


Chung-chieh Shan announced:
ACM SIGPLAN Workshop on ML
Sunday, 18 September 2011, Tokyo, Japan (co-located with ICFP)


The ML family of programming languages includes dialects known as
Standard ML, Objective Caml, and F#.  These languages have inspired
a large amount of computer-science research, both practical and
theoretical.  This workshop aims to provide a forum for discussion and
research on ML and related technology (higher-order, typed, or strict

The format of ML 2011 will continue the return in 2010 to a more
informal model: a workshop with presentations selected from submitted
abstracts.  Presenters will be invited to submit working notes, source
code, and extended papers for distribution to the attendees, but the
workshop will not publish proceedings, so any contributions may be
submitted for publication elsewhere.  We hope that this format will
encourage the presentation of exciting (if unpolished) research and
deliver a lively workshop atmosphere.


We seek research presentations on topics related to ML, including but
not limited to

  * applications: case studies, experience reports, pearls, etc.
  * extensions: higher forms of polymorphism, generic programming,
    objects, concurrency, distribution and mobility, semi-structured
    data handling, etc.
  * type systems: inference, effects, overloading, modules, contracts,
    specifications and assertions, dynamic typing, error reporting, etc.
  * implementation: compilers, interpreters, type checkers, partial
    evaluators, runtime systems, garbage collectors, etc.
  * environments: libraries, tools, editors, debuggers, cross-language
    interoperability, functional data structures, etc.
  * semantics: operational, denotational, program equivalence,
    parametricity, mechanization, etc.

Research presentations should describe new ideas, experimental results,
significant advances in ML-related projects, or informed positions
regarding proposals for next-generation ML-style languages.  We
especially encourage presentations that describe work in progress, that
outline a future research agenda, or that encourage lively discussion.

In addition to research presentations, we seek both Status Reports
and Demos that emphasize the practical application of ML research and

Status Reports:  Status reports are intended as a way of informing
others in the ML community about the status of ML-related research or
implementation projects, as well as communicating insights gained from
such projects.  Status reports need not present original research, but
should deliver new information.  In the abstract submission, describe
the project and the specific technical content to be presented.

Demos:  Live demonstrations or tutorials should show new developments,
interesting prototypes, or work in progress, in the form of tools,
libraries, or applications built on or related to ML.  In the abstract
submission, describe the demo and its technical content, and be sure
to include the demo's title, authors, collaborators, references, and
acknowledgments.  (Please note that you will need to provide all the
hardware and software required for your demo; the workshop organizers
are only able to provide a projector.)

Each presentation should take 20-25 minutes, except demos, which should
take 10-15 minutes.  The exact time will be decided based on the number
of accepted submissions.  We plan to make videos of the presentations
available on ACM Digital Library.


Email submissions to ccshan AT  Submissions should be
at most two pages, in PDF format, and printable on US Letter or A4
sized paper.  Persons for whom this poses a hardship should contact the
program chair.  Submissions longer than a half a page should include a
one-paragraph synopsis suitable for inclusion in the workshop program.


  * 2011-06-17: Submission
  * 2011-07-22: Notification
  * 2011-09-18: Workshop


    Amal Ahmed (Indiana University)
    Andrew Tolmach (Portland State University)
    Anil Madhavapeddy (University of Cambridge)
    Chung-chieh Shan (chair) (Rutgers University)
    Joshua Dunfield (Max Planck Institute for Software Systems)
    Julia Lawall (University of Copenhagen)
    Keisuke Nakano (University of Electro-Communications)
    Martin Elsman (SimCorp)
    Walid Taha (Halmstad University)


    Eijiro Sumii (chair) (Tohoku University)
    Andreas Rossberg (Google)
    Jacques Garrigue (Nagoya University)
    Matthew Fluet (Rochester Institute of Technology)
    Robert Harper (Carnegie Mellon University)
    Yaron Minsky (Jane Street)



Gerd Stolpmann announced:
I'm quite proud to announce the availability of a new Ocamlnet version:
Ocamlnet-3.3.1 adds a number of exciting new features, focusing on
multicore and security.

In particular:

- Netmulticore is a working implementation of the multi-process
  approach to get multicore capabilities with explicit shared
- GSS-API is an industry standard security framework. It is
  accompanied with an implementation of SCRAM, and an authentication
  module for SunRPC. This allows secure SunRPC, and covers
  strong authentication, integrity, and confidentiality.
- The HTTP client has learned TLS (SSL), i.e. "https" URLs work
  now. There are a number of smaller improvements in this client:
  One can now request compressed downloads. SOCKS proxies are
  supported (in addition to web proxies).
- The FTP client could be finished, finally. The FTP client
  is accompanied by Ftp_fs, an incarnation of the protocol-
  independent filesystem API stream_fs.
- Uq_resolver provides infrastructure for plugging in name
  resolvers. This module is now used everywhere in Ocamlnet.
  (This work is not yet complete.)
- Uq_lwt allows it to run Lwt programs with the Ocamlnet event
  queue (experimental; thanks to the Lwt team for opening their
- Ocamlnet can be built without PCRE (configure option -disable-pcre).
  In this case, Str is used instead. There might be interferences
  between threads in multi-threaded programs, though.
- Adding access to the secure random number generator provided by the
- Ocamlnet describes itself now as "an enhanced system platform library 
  for Ocaml", and no longer as a random collection of protocol
  interpreters. Key applications are now the web, client/server 
  programs, and compute jobs. Plus all the little things you need
  in a network-aware system environment.

Special thanks goes to Mylife who sponsored the HTTPS extension.

The project page with all relevant links (manual, download, etc):

GODI for Ocaml-3.12 is already updated. If you also need PXP, the XML
parser, be sure you update to version 1.2.2 (for a trivial fix).
Later on, Gerd Stolpmann added:
So, with the help of users, three bugs were quickly discovered, and are
now fixed in ocamlnet-3.3.3 (same URL).

OCaml on iPhone/iPad Simulator


Jeffrey Scofield announced:
I've been working for a while with OCaml on iOS devices (iPhone and
iPad).  Just recently I've also gotten OCaml working on the iOS
Simulator.  This is an easy way to try out OCaml on iOS, as you just
need Apple's free (or inexpensive) development tools, Xcode.  You
don't need a device, or to register as an iOS developer.  I've put
sources and binaries for everything on our website.

For those interested, here are some links:

    [How to make OCaml 3.12.0 generate code for iOS Simulator][1]
    [Amusing sample app named Gamut that runs in the Simulator][2]
    [General page of OCaml-on-iOS resources][3]


Compiling and running under the iOS Simulator works with all recent
Xcode versions (3 and 4).  However, you currently need to use Xcode
3 to build a 32-bit OCaml compiler (Mantis bug # 5268).

OCaml on iPhone is working in production (we sell an iPhone app).  I'm
finding that the iOS Simulator is a pretty nice development environment.
For most things it's a lot quicker than testing on an actual device.

I'd be happy to hear from anybody interested in OCaml on iOS.

Other Caml News

From the ocamlcore planet blog:
Thanks to Alp Mestan, we now include in the Caml Weekly News the links to the
recent posts from the ocamlcore planet blog at

Jack of all trades - Master of Disaster.:

OCI*ML: Ref Cursors and Raw Messages:

Ocaml binding to crypt():

OCaml Irrlicht:

Logic programming in Scala, part 3: unification and state:

Building Ajax Sites With Snap - Imagining Heist-Async:

Listing Opa applications:

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