English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
Objective Label Trilogy, summer edition
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 1999-07-15 (22:12)
From: Jacques GARRIGUE <garrigue@k...>
Subject: Objective Label Trilogy, summer edition
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
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:



  * 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>