* Objective Caml 1.00
@ 1996-05-09 14:27 Xavier Leroy
0 siblings, 0 replies; 3+ messages in thread
From: Xavier Leroy @ 1996-05-09 14:27 UTC (permalink / raw)
To: caml-list, comp-lang-ml
We are proud to announce the availability of Objective Caml version 1.00.
Objective Caml is an object-oriented extension of the Caml dialect of ML.
It is statically type-checked (no "message not understood" run-time errors)
and performs ML-style type reconstruction (no type declarations for function
parameters). This is arguably the first publically available
object-oriented language featuring ML-style type reconstruction.
Objective Caml is a class-based OO language, and offers pretty much
all standard features of these languages, including "self", single and
multiple inheritance, "super", and binary methods, plus a number of
less common features such as parametric classes.
The main limitation (due to type reconstruction) is that coercion from
an object type to a supertype is not automatic, and needs to be
written down explicitly. Message sending remains fully polymorphic,
though.
Objective Caml is based on (and supersedes) the Caml Special Light
system. It inherits from Caml Special Light a powerful module
calculus, Modula-style separate compilation, a fast-turnaround
bytecode compiler, and a high-performance native-code compiler.
Upward compatilibity with Caml Special Light is very high.
More information on Objective Caml, including tutorials and user's
manuals, is available on the Web, at
http://pauillac.inria.fr/ocaml/
Objective Caml is available for Unix (source) and Windows NT/95 (binaries).
The distribution resides at the usual place,
ftp://ftp.inria.fr/lang/caml-light
Bug reports should be mailed to caml-light@pauillac.inria.fr.
More general discussions on Objective Caml take place on the Caml
mailing list (caml-list@pauillac.inria.fr, subscriptions at
caml-list-request@pauillac.inria.fr) or the comp.lang.ml newsgroup.
- Xavier Leroy
Didier Rémy
Jérôme Vouillon
INRIA Rocquencourt, projet Cristal, B.P.105, 78153 Le Chesnay, France.
caml-light@pauillac.inria.fr
^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <199605091630.SAA19527@lips.cs.chalmers.se>]
* Re: Objective Caml 1.00
[not found] <199605091630.SAA19527@lips.cs.chalmers.se>
@ 1996-05-10 11:43 ` Xavier Leroy
0 siblings, 0 replies; 3+ messages in thread
From: Xavier Leroy @ 1996-05-10 11:43 UTC (permalink / raw)
To: Christophe Raffalli; +Cc: caml-list
> As "Upward compatibility with Caml Special Light is very high", I wonder if
> Objectif Caml will replace CSL or if newer versions of CSL will continue to
> come. Should every user of CSL move to Objective Caml ?
Objective Caml should really be viewed as the latest release of
CSL. It could very well have been called CSL 1.20. It's just that we
werent' completely happy with the name "Caml Special Light" (too long,
not catchy enough), and wanted to emphasize the new object stuff.
The only incompatibility between Objective Caml and Caml Special Light
is that there are a few extra reserved keywords in Objective Caml,
such as "new", "class", "inherit" and "constraint". Unfortunately,
several library functions were called "new" (e.g. Hashtbl.new) and had
to be renamed (e.g. Hashtbl.create).
The Objective Caml distribution contains a script (in tools/csl2ocaml)
to help convert to Objective Caml. It renames the library functions
and warns for each use of one of the now-reserved keywords as variable
names.
You may also have to change your Makefiles, because the compilers have
been renamed as well (cslc -> ocamlc, etc), but this is not even
necessary with a few extra symbolic links.
Apart from this, all CSL code should run in Objective Caml without
further modification.
Other improvements and bug fixes between CSL 1.15 and Objective Caml
1.00 include:
* Compilation of "or" patterns (pat1 | pat2) completely revised to
avoid code size explosion.
* Compiler support for preprocessing source files (-pp flag).
* Library construction: flag -linkall to force linking of all units in
a library.
* Native-code compiler: port to the Sparc under NetBSD.
* Toplevel: fixed bug when tracing several times the same function
under different names.
* New format for marshaling arbitrary data structures, allows
marshaling to/from strings.
* Standard library: new module Genlex (configurable lexer for streams)
* Thread library: much better support for I/O and blocking system calls.
* Graphics library: faster reclaimation of unused pixmaps.
* Unix library: new functions {set,clear}_nonblock,
{set,clear}_close_on_exec, {set,get}itimer, inet_addr_any,
{get,set}sockopt.
* Dynlink library: added support for linking libraries (.cma files).
> A more general question is:
>
> What is the future of the Caml family which now include :
> Caml-light (and two exotic compiler: camlot and camloo)
> Caml-Special-light
> Chameaux
> Objective Caml
> ... others ?
I can't say for those I'm not responsible for (camlot, camloo,
chamau); maybe their authors will like to comment.
Caml Special Light is completely superseded by Objective Caml, and no
new version of CSL will be released. All developments will continue on
Objective Caml. So, everybody is encouraged to switch from CSL to
Objective Caml just as they would switch to the latest release of CSL.
To support the use of Caml Light in programming courses, Caml Light is
still being maintained, though not actively developed. We make
bug-fix releases of Caml Light from time to time (though at a
considerably slower pace than Objective Caml releases), but no major
changes are forthcoming.
> The best way to answer would be to post regularly (once a month ?)
> on the mailing list a newsletter (You could call it "Some news from
> the Caravan" :-), telling us what's happening in the Caravan of CAML
> people.
I'm afraid there is not enough material for monthly publishing...
But don't hesitate to ask for clarification if our plans are not clear
enough.
- Xavier Leroy
^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <9605100813.AA11357@lsun169>]
* Re: Objective Caml 1.00
[not found] <9605100813.AA11357@lsun169>
@ 1996-05-15 17:13 ` Didier Remy
0 siblings, 0 replies; 3+ messages in thread
From: Didier Remy @ 1996-05-15 17:13 UTC (permalink / raw)
To: Jean-fr MONIN - FT.CNET/LAA/EIA/EVP; +Cc: caml-list
> What about the size of the semantics of ocaml ?
Keeping the langage close to Caml has been an important matter in the design
of Objective Caml. Of course, the language is bigger, and unavoidably, its
semanctics is more complicated. We have tried to put into the language the
essential OO-features only, so that the semantics of the language does not
get out of control.
In fact, the core object extension that does not include overriding of
instance variables nor the ability to bind super has a very
simple semantics. Adding those two features, makes the semantics a little
more complicated but not more difficult.
Type inference for Objective Caml is still based on ML polymorphism and first
order unification. Recursive types have been added too, but this is quite
standard. Type coercions are explicit and do not interfere with type
inference; they are based on subtyping without asumptions. This is much
simpler than type inference with type constraints (it is weaker too).
-Didier.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~1996-05-15 19:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-05-09 14:27 Objective Caml 1.00 Xavier Leroy
[not found] <199605091630.SAA19527@lips.cs.chalmers.se>
1996-05-10 11:43 ` Xavier Leroy
[not found] <9605100813.AA11357@lsun169>
1996-05-15 17:13 ` Didier Remy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).