Re: The option -rectypes

From: Pascal Cuoq (Pascal.Cuoq@inria.fr)
Date: Wed Nov 24 1999 - 11:37:40 MET


Date: Wed, 24 Nov 1999 11:37:40 +0100
From: Pascal Cuoq <Pascal.Cuoq@inria.fr>
To: Gerd.Stolpmann@darmstadt.netsurf.de, caml-list@inria.fr
Subject: Re: The option -rectypes
In-Reply-To: <99112402223302.32002@ice>; from Gerd Stolpmann on Wed, Nov 24, 1999 at 01:59:36AM +0100

> I have some code that compiled in 2.02, but in 2.03 I need the new option
> -rectypes of the compilers.
>
> - What is the background of this change?

I can't say much about your example, but maybe I can say a few
words about the context. I was one of the people who lobbied
to have at least a compiler option to allow recursive types.

The application in which we needed recursive types in Caml is
Lucid Synchrone, a strongly typed, higher-order synchronous language
which uses Ocaml as its target language:
http://www-spi.lip6.fr/~pouzet/lucid-synchrone/

In this kind of application, the type system of Ocaml only can get in
the way, because Lucid Synchrone already type-checks the
Lucid Synchrone programs. It happens to be that (roughly) a well-typed
Lucid Synchrone program is compiled in an Ocaml program which
is well-typed if recursive types are accepted, and ill-typed if they
aren't.

The Caml implementors will probably tell you that the use of this
flag is discouraged for hand-written programs. This "feature" was
removed from Ocaml 1.05 for a good reason (the type-checker reports
errors too late) and it should not be used lightly.

This said, there must be another change in the objects systems
which explains that your program is rejected without -rectypes.

Pascal



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:28 MET