To: caml-list@inria.fr
Subject: Objective Label Trilogy, summer edition
Message-Id: <19990715173116L.garrigue@kurims.kyoto-u.ac.jp>
Date: Thu, 15 Jul 1999 17:31:16 +0900
From: Jacques GARRIGUE <garrigue@kurims.kyoto-u.ac.jp>
It is my pleasure to annouce
The Objective Label Trilogy, Summer 1999 edition
Objective Label compiler
LablTk GUI
LablBrowser development tool
Objective Label extends Objective Caml with labeled and optional
parameters, polymorphic variants, and explicit polymorphism for
methods.
As Objective Label 2.02, this version is based on Objective Caml 2.00,
but it has profited from a few months of intensive use to correct many
bugs, and improve some details.
You can find it at:
http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/
ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/olabl-2.02-summer.tar.gz
Changes:
* many bug fixes in the type system
(one real hole, and many small problems)
* record fields can be inferred from context.
This is related to the recent message about field name overloading.
As long as you know its type, you can access a record's field
without giving its full module path. This also works if the field
name is hidden by another definition. Here is an extensive example.
# type point = { mutable x : int; y : int };;
type point = { mutable x: int; y : int }
# type box = { x : bool };;
type box = { x: bool }
# type 'a box = { x : 'a };;
type 'a box = { x: 'a }
# {x="hello"};;
- : string box = {x="hello"}
# {x=1;y=2};;
The label y belongs to the type point but is here mixed with
labels of type int box
# let p : point = {x=1;y=2};;
val p : point = {x=1; y=2}
# p.x;;
- : int = 1
# p.x <- 3;;
- : unit = ()
(This is an experimental feature, and may disappear in future versions)
* cleaned-up the type propagation semantics (needed for record
fields, labeled method calls, ...)
Application order is now relevant.
---------------------------------------------------------------------------
Jacques Garrigue Kyoto University garrigue at kurims.kyoto-u.ac.jp
<A HREF=http://wwwfun.kurims.kyoto-u.ac.jp/~garrigue/>JG</A>
This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:23 MET