[ocaml-platform] The OCaml Platform

Anil Madhavapeddy anil at recoil.org
Tue Feb 12 17:02:43 GMT 2013


On 12 Feb 2013, at 15:23, Sylvain Le Gall <sylvain+ocaml at le-gall.net> wrote:
> 
> In the case of Lwt, the solution is pretty straight forward, you just
> use a thread (Thread) to wrap 1. and produce 2.
> 
> I think the overall question is "do we wish to have a common style for
> non-stdlib features", e.g. monads, file descriptor et al. I don't
> think this is mandatory but can be a nice long term goal.
> 
> But maybe I am going too far, and the point of OCaml Platform is just
> to have  a "set of libraries", tested, packaged together and released
> every 6 months (which is already an ambitious goal). If this is the
> case, please ignore my question -- I'll be already extermly happy to
> see an OCaml Platform in 6 months.

You raise a good question, but there's no easy answer without basics
in place first. After a discussion with JSC/Citrix folks, the very first
focus of the platform is on filling in the blanks on some basic things:

- unified documentation: a cross-referenced documentation set across
multiple libraries, that can be output in different formats. Leo has a
prototype for this based on the new bin-annot files, and will release
it shortly.

- test harness: something that combines unit tests (oUnit) with coverage
and fuzz tests (QuickCheck), and benchmarks (like Criterion in Haskell).
This is something we hope to work with Xavier Clerc on, as he has made
some excellent contributions here.  The test harness should also encode
dependencies on an environment, so that we can run them automatically
in a virtual environment (absolutely required by Citrix, who have an
incredible test suite for Xen that they want to extend to the OCaml code). 

- build: most of the existing build solutions only scale up to small
code bases, so investigating a more unified approach based on compiler-libs
to write an integrated compiler front end that can auto-download
dependencies at the configuration phase, do smart incremental build,
and hook in the test frameworks.

This is all tooling, and can be done independently of the process of
selecting libraries.  For that selection, we need to think of this a bit
like a microkernel: pick the absolute smallest set of libraries we need
(including stripping down the OCaml standard library), and then working
our way up from there into a usable set of package.  Along the way, we'll
need to define 'platform tiers' to determine which ones absolutely have
to supported.

An important note is that there'll be a reward for adapting your code
to run on the Platform.  The test system will regularly run *your* unit
tests on all the support platforms and send you reports.  Don't have a
FreeBSD/mips box, or a Raspberry Pi?  Opamalot will take care of that
for you and let you know if it comes and passes tests.

Amir and Leo are currently writing up the results of the various recent
meetings and will publish it soon.

-anil


More information about the Platform mailing list