The Objective Label Trilogy, version 2.00

From: Jacques GARRIGUE (garrigue@kurims.kyoto-u.ac.jp)
Date: Thu Sep 03 1998 - 08:24:20 MET DST


To: caml-list@pauillac.inria.fr
Subject: The Objective Label Trilogy, version 2.00
Message-Id: <19980903152420V.garrigue@kurims.kyoto-u.ac.jp>
Date: Thu, 03 Sep 1998 15:24:20 +0900
From: Jacques GARRIGUE <garrigue@kurims.kyoto-u.ac.jp>

Sorry for the unusual delay, but the release of Objective Caml 2.00
caught me just before my holydays, and there were many conflicts
induced by the new class systems.

Anyway, this is our pleasure to announce

              The Objective Label Trilogy, version 2.00

                Objective Label / LablTk / LablBrowser

Objective Label is an extension of Objective Caml with labeled and
optional arguments, polymorphic variants and polymorphic methods.

LablTk uses these extensions to provide an almost type safe interface
to Tcl/Tk, such that you can write application in a style very close
to Tcl.

LablBrowser is a programming environment, allowing one to browse code,
both source and compiled, and navigate through it on the basis of
types and compiled interfaces. It also includes an editor, and a
language shell.

The combination of these three elements is a system

  * easy to program, thanks to the libraries and tools

  * producing more readable programs, thanks to labels

  * allowing more precise and lighter typing, thanks to variants

  * supporting a smoother form of functional object-oriented programming,
    thanks to polymorphic methods

These advantages are not limited to functional programming hackers.
Our experience is that it provides a particularly good environment for
students and beginners, who enjoy the added comfort of the GUI, and
the improved readability of their own programs.

There were at least 3 recent threads in the caml-list related with
Objective Label's functionality:

  * automatic subtyping in method arguments: this is possible through
    polymorphic methods. Similarly the stack2 example in Objective
    Caml reference manual is typable in Objective Label.

  * extensible datatypes: polymorphic variants allow that, and much
    more.

  * documentation browsing: not only LablBrowser allows you to browse
    the interfaces of all your compiled modules, but it can also bring
    you to their implentations or textual interfaces, pinpoint on the
    defintion needed. Textual interfaces are the standard place to
    document functions in Objective Caml.

The port is complete: all the functionality and tools of Objective
Caml are available.

It is source compatible with O'Caml: any program or library written in
O'Caml can be compiled without modification, and you may even add
labels to interfaces to your taste.

This release should work on any Unix/X windows based system, producing
native code on architectures supported by Objective Caml.

Changes since version 1.07 are:

* full support of the new object system.

* added polymorphic typing for methods (see the manual).

* full support of optional arguments in class definitions.

* changes in the internal representation of polymorphic variants,
  and bug fixes for variants.

* label st: was systematically changed to acc:, some labels name: were
  removed, and some other replaced by file:.

* updated ocaml-mode for the new object syntax.

You may get the O'Labl trilogy (and more information) at

        http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/
        ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/olabl-2.00.tar.gz

Comments to

        Jacques Garrigue <garrigue@kurims.kyoto-u.ac.jp>
        Jun Furuse (LablTk) <Jun.Furuse@inria.fr>



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