OCaml Release 3.08.0

Objective Caml release 3.08.0 is official and incorporates many improvements. A big thank-you to the OCaml team for this stable release. Those on the bleeding edge of post-3.08 CVS work can follow Xavier's advice.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Won my heart right off the bat

The first two new features were both very welcome surprises to me: anonymous objects and lighter record syntax.
Language features:
- Support for immediate objects, i.e. objects defined without going
  through a class.  (Syntax is "object  end".)
The old way of doing this was to use "let module", as in "let module M = struct class c = object (self) ... end end in new M.c ...", which sort of made it useless as a way to create simple polymorphic records.
Type-checking:
- When typing record construction and record patterns, can omit
  the module qualification on all labels except one.  I.e.
  { M.l1 = ...; l2 = ... } is interpreted as { M.l1 = ...; M.l2 = ... }
This is a huge improvement, since it lets you achieve modularity without so much extra typing. Most of the time, I think record field names should live in their own namespaces; you shouldn't have to sacrifice modularity to save a few keystrokes. =)

Keep up the good work!

I loved this one


- Windows ports: many improvements in the OCamlWin toplevel application
(history, save inputs to file, etc). Contributed by Christopher A. Watford.

Last time I tried to learn OCaml, I threw my hands in frustration because of the poor state of OCamlWin. Now I'm looking at this tutorial found here a few days ago and liking it!

Emacs + tuareg mode

Well, if you use (X)Emacs, you can download tuareg mode. It is far better than the plain OCaml toplevel and even the new and improved windows interface.