[ocaml-platform] A reminder of goals [Was: Is this mandatory to continue this discussion]

Anil Madhavapeddy avsm2 at cl.cam.ac.uk
Tue Feb 26 11:16:50 GMT 2013


Hi Sylvain,

I requested Gabriel to send out the latest namespaces proposal so that
we could get a better understanding of the subtleties around the separation
of compilation units and namespaces.  The discussion so far as been very
enlightening indeed.  However, we do *not* need to put anything to a vote
at this stage, or indeed ever.

As  I described in a previous mail, our initial stakeholders for the
Platform are a small, targeted set of Consortium users who have described
their requirements, and we will expand this set once the first three (JS,
Citrix and Lexifi) are satisfied.  A vote among a small set of self-selected
participants doesn't help meet those goals.

Package selection should also be driven from this criteria. There is
real work to be done here --- all three users have different standard
libraries that need to converge if we're going to have a Platform that's
actually used by anyone else.  This is also what's driving the desire for
"namespaces":

- how do we switch between different standard libraries, but avoid very
  large binaries and the loss of ocamldoc (which doesn't support pack).

- how do we mix and match code across them without having to functorise
  everything across stdlib modules.  This is why Fabrice cooked up the
  'big functor' patch.

- more open namespaces are particularly useful when pulling in libraries
  such as Lwt, which exports modules such as Lwt_list or Lwt_sequence.
  It would be *much* nicer if I could access some of the blocking functions
  directly within the List module.  Core solves this by overriding the
  entire namespace within Async.Std, at a big compilation-time cost.

Here's what OCL and OCamlPro are doing while we figure this out:

- building a more flexible OCamldoc that can combine compilation units
  into a single, cross-referenced documentation repository.  This will let
  us publish a single docset for a combination of libraries, crucially
  including packed ones.  The current OCamldoc doesn't support packed units,
  which has been a serious problem for years.  Leo almost has a working
  prototype and will mail out to this list shortly.

- We've started work on a continuous test infrastructure for OPAM, which
  Amir will send out details on shortly when we have a base prototype. 
  We've demonstrated mockups to JS and Citrix already, and have a basic
  idea that it matches the workflow needs for the open-source releases of
  JS and Xen well.  This system also uses several major OCaml components
  as an exercise in "eating our own dogfood", such as Core/Async and
  OCamlmq/STOMP and Cohttp.

- large-scale build systems remain a problem, and there are several
  projects ongoing for dealing with 10k+ compilation units, and the
  workflow to operate over portions of those.  Both Citrix and JS have
  complementary work ongoing here, and we just had a meeting last week
  to demo early versions to each other.  More to follow when the writeup
  is done, and how it fits into the existing ecosystem.

All of the above will deliver good, useful value without any language
modifications ever seeing the light of day, but I still don't think we
have a good handle on how to attack the base problem of manipulating
modules more flexibly at compile time. A vote however, won't help bring
this understanding.  More prototyping and experimentation (and Gabriel's
*extremely* useful roundups) really help crystallise this work though.

(I hope that much of this thinking will make its way to the OCaml Workshop
at ICFP later this year for broader dissemination and archival too.)

best,
Anil

On 26 Feb 2013, at 10:26, Sylvain Le Gall <sylvain+ocaml at le-gall.net> wrote:

> As you started this discussion and you write a nice summary in your
> last email, can you setup a vote form?
> 
> The most simple way is to use a Google Form. If you don't feel
> confident, send me the text of each proposal (like the proposals I
> write in the forwarded email) + link to your summary + relevant post
> (a la weekly ocaml news) and I will setup a form for you.
> 
> I think it would be even better that all proposal get an implementor
> name attached to it, so we know who will be in charge of the next
> action...
> 
> Regards
> Sylvain
> 
> 
> 
> ---------- Forwarded message ----------
> From: Alain Frisch <alain.frisch at lexifi.com>
> Date: 2013/2/26
> Subject: Re: [ocaml-platform] Is this mandatory to continue this
> discussion [was: on the need and design of OCaml namespaces]
> To: Sylvain Le Gall <sylvain+ocaml at le-gall.net>
> Cc : Wojciech Meyer <wojciech.meyer at gmail.com>, Didier Remy
> <didier.remy at inria.fr>, "platform at lists.ocaml.org"
> <platform at lists.ocaml.org>
> 
> 
> On 02/26/2013 01:11 AM, Sylvain Le Gall wrote:
>> 
>> My 2nd take on this:
>> Put this to vote !
>> With the following proposals:
>> A. Implement rich namespace
>> B. Implement simple flat namespace
>> C. Fix -pack issue rather than implementing namespace
>> D. Postpone discussion
> 
> 
> E. Advertize a naming convention for modules to avoid clashes, and
> provide very light support in the language/compiler/tools to reduce
> the syntactic overhead of using long names for users of "standard
> libraries".
> 
> 
> Alain
> _______________________________________________
> Platform mailing list
> Platform at lists.ocaml.org
> http://lists.ocaml.org/listinfo/platform
> 



More information about the Platform mailing list