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
Re: [Caml-list] Future of labels
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2001-04-02 (15:25)
From: kahl@h...
Subject: Re: [Caml-list] Future of labels, and ideas for library labelling

Judicael Courant <> wrote:

> I think beginners are not the problem. Explaining that you have labels
> and that arguments may commute seems quite easy to me [...]


> You should not sacrifice the Right Way (tm) for compatibility. I mean,
> the default way to write a program should be the Right Way (i.e. with
> labels): you should encourage people writing a new program/module to use
> labels

I second this.

Now let me be a bit extreme: ;-)

Since labels are recognised as the way to go,
the next release will most likely have different labellings and
different label semantics (at least for previous classic mode users)
than the last release.

The situation is then very simple: ;-)

Everybody has the coice to continue to use the old version,
or to upgrade their source code to the new version.  ;-)

I have had this choice about ten times,
and I made the same decision every time!
(Project size: growing from about 30 to about 50 modules,
 10 to 30 thousand lines.)
(I hesitated only once, but that was exclusively for the change
 in the license conditions.)

Even when I needed to adapt a classic-mode third-party application
(for purposes not connected with the above-mentioned project),
my first move was to labelise it so it compiled in label mode
(or was it still OLabl at that time? I don't remember).

Given the average enthusiasm of the OCaml commnunity,
I am sure that the every OCaml user will immediately follow suit!
(In multi-person projects, this might be an excellent way
 to have the latest newcomer become acquainted with the whole source code
 in a single day ;-)

More seriously: JudicaŽl continues:

> So I think this is the Wrong Approach (tm). Instead, you should provide
> an CompatLib (or WithoutLabels) compatibility module for old code and a
> possibly a flag for compiling code with an implicit "open CompatLib". As
> for other libraries, the Right Way is to have the default libraries with
> labels also. Then either you suggest them to move to the Right Way, or
> you provide them the needed CompatLibs.

I think Jacques' proposal with the '-names is viable,
but I agree that from the design perspective, JudicaŽl's Right Way
should be preferred --- it may even be slightly more ``user-friendly''
than my extreme proposal.


To unsubscribe, mail  Archives: