English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
interest in a much simpler, but modern, Caml?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2010-08-06 (04:04)
From: Jeremy Bem <jeremy1@g...>
Subject: interest in a much simpler, but modern, Caml?
Dear caml-list,

To support my research, I've developed an implementation ("Llama Light") of
the core Caml language. Modules, objects, labels etc are not supported
(except for file-level modules). The system strongly resembles OCaml,
however the completely rewritten typechecker is not only much smaller in
terms of lines-of-code; it has a genuinely simpler design owing especially
to the lack of first-class modules.  This wasn't obtained by stripping down
OCaml, but rather by integrating OCaml features into Caml Light (although
this history isn't visible in the end result).  In a strict type-theoretic
sense, the system is even simpler than Caml Light; I'll postpone the

The system is fully self-hosting; all the main tools have been ported to the
smaller language, e.g. "llamadoc" replaces ocamldoc, etc. The standard
library has been ported as well, such as non-functorial versions of the Map
and Set modules.  Only the native-code compiler is missing, and that doesn't
look like more than a day's work or so.

My plans now call for adding features to replace the ones I've removed,
namely experimental ones related to assisted theorem proving and inductive
programming. However, it occurs to me that others might find the
stripped-down "base system" to be useful for their own experiments.
 Obtaining it was a non-trivial amount of work, and I've tried to write the
code clearly and carefully.  So -- this posting is intended as a gauge of
interest.  How much effort should I expend to package what I've got, before
adding my own experimental features?  With community support (and a good
approach to the Q License), maybe I could manage something fairly polished.