caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* OCaml version 3.11.0 released.
@ 2008-12-04 14:52 Damien Doligez
  2008-12-05  3:15 ` [Caml-list] " Rich Neswold
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Damien Doligez @ 2008-12-04 14:52 UTC (permalink / raw)
  To: caml users

Dear OCaml users,

It is our pleasure to celebrate the 51st birthday of Eric S. Raymond
by releasing OCaml version 3.11.0.

This release brings you many bug fixes and a few much-wanted
features such as dynamic linking in native code (not available
on all architectures, though).  See below for the complete
list of changes from the previous version.

It is available here: < http://caml.inria.fr/download.en.html >

Please note: at this time it is only available as source and as
binary for Mac OS X on Intel processors.  Other binary versions
will be added to the Web site next week.

Happy hacking,

-- Damien Doligez for the OCaml team.



Objective Caml 3.11.0:
----------------------

(Changes that can break existing programs are marked with a "*"  )

Language features:
- Addition of lazy patterns: "lazy <pat>" matches suspensions whose  
values,
   after forcing, match the pattern <pat>.
- Introduction of private abbreviation types "type t = private <type- 
expr>",
   for abstracting the actual manifest type in type abbreviations.
- Subtyping is now allowed between a private abbreviation and its  
definition,
   and between a polymorphic method and its monomorphic instance.

Compilers:
- The file name for a compilation unit should correspond to a valid
   identifier (Otherwise dynamic linking and other things can fail, and
   a warning is emitted.)
* Revised -output-obj: the output name must now be provided; its
   extension must be one of .o/.obj, .so/.dll, or .c for the
   bytecode compiler. The compilers can now produce a shared library
   (with all the needed -ccopts/-ccobjs options) directly.
- -dtypes renamed to -annot, records (in .annot files) which function  
calls
   are tail calls.
- All compiler error messages now include a file name and location, for
   better interaction with Emacs' compilation mode.
- Optimized compilation of "lazy e" when the argument "e" is
   already evaluated.
- Optimized compilation of equality tests with a variant constant  
constructor.
- The -dllib options recorded in libraries are no longer ignored when
   -use_runtime or -use_prims is used (unless -no_auto_link is
   explicitly used).
- Check that at most one of -pack, -a, -shared, -c, -output-obj is
   given on the command line.
- Optimized compilation of private types as regular manifest types
   (e.g. abbreviation to float, float array or record types with only
    float fields).

Native-code compiler:
- New port: Mac OS X / Intel in 64-bit mode (configure with -cc "gcc - 
m64").
- A new option "-shared" to produce a plugin that can be dynamically
   loaded with the native version of Dynlink.
- A new option "-nodynlink" to enable optimizations valid only for code
   that is never dynlinked (no-op except for AMD64).
- More aggressive unboxing of floats and boxed integers.
- Can select which assembler and asm options to use at configuration  
time.

Run-time system:
- New implementation of the page table describing the heap (two-level
   array in 32 bits, sparse hashtable in 64 bits), fixes issues with  
address
   space randomization on 64-bit OS (PR#4448).
- New "generational" API for registering global memory roots with the  
GC,
   enables faster scanning of global roots.
   (The functions are caml_*_generational_global_root in <caml/ 
memory.h>.)
- New function "caml_raise_with_args" to raise an exception with several
   arguments from C.
- Changes in implementation of dynamic linking of C code:
   under Win32, use Alain Frisch's flexdll implementation of the dlopen
   API; under MacOSX, use dlopen API instead of MacOSX bundle API.
- Programs may now choose a first-fit allocation policy instead of
   the default next-fit.  First-fit reduces fragmentation but is
   slightly slower in some cases.

Standard library:
- Parsing library: new function "set_trace" to programmatically turn
   on or off the printing of a trace during parsing.
- Printexc library: new functions "print_backtrace" and "get_backtrace"
   to obtain a stack backtrace of the most recently raised exception.
   New function "record_backtrace" to turn the exception backtrace  
mechanism
   on or off from within a program.
- Scanf library: fine-tuning of meta format implementation;
   fscanf behaviour revisited: only one input buffer is allocated for  
any
   given input channel;
   the %n conversion does not count a lookahead character as read.

Other libraries:
- Dynlink: on some platforms, the Dynlink library is now available in
   native code. The boolean Dynlink.is_native allows the program to
   know whether it has been compiled in bytecode or in native code.
- Bigarrays: added "unsafe_get" and "unsafe_set"
   (non-bound-checking versions of "get" and "set").
- Bigarrays: removed limitation "array dimension < 2^31".
- Labltk: added support for TK 8.5.
- Num: added conversions between big_int and int32, nativeint, int64.
   More efficient implementation of Num.quo_num and Num.mod_num.
- Threads: improved efficiency of mutex and condition variable  
operations;
   improved interaction with Unix.fork (PR#4577).
- Unix: added getsockopt_error returning type Unix.error.
   Added support for TCP_NODELAY and IPV6_ONLY socket options.
- Win32 Unix: "select" now supports all kinds of file descriptors.
   Improved emulation of "lockf" (PR#4609).

Tools:
- ocamldebug now supported under Windows (MSVC and Mingw ports),
   but without the replay feature.  (Contributed by Dmitry Bely
   and Sylvain Le Gall at OCamlCore with support from Lexifi.)
- ocamldoc: new option -no-module-constraint-filter to include functions
   hidden by signature constraint in documentation.
- ocamlmklib and ocamldep.opt now available under Windows ports.
- ocamlmklib no longer supports the -implib option.
- ocamlnat: an experimental native toplevel (not built by default).

Camlp4:
* programs linked with camlp4lib.cma now also need dynlink.cma.

Bug fixes:
- Major GC and heap compaction: fixed bug involving lazy values and
   out-of-heap pointers.
- PR#3915: updated most man pages.
- PR#4261: type-checking of recursive modules
- PR#4308: better stack backtraces for "spontaneous" exceptions such as
   Stack_overflow, Out_of_memory, etc.
- PR#4338: Str.global_substitute, Str.global_replace and the Str.*split*
   functions are now tail-recursive.
- PR#4503: fixed bug in classify_float on ARM.
- PR#4512: type-checking of recursive modules
- PR#4517: crash in ocamllex-generated lexers.
- PR#4542: problem with return value of Unix.nice.
- PR#4557: type-checking of recursive modules.
- PR#4562: strange %n semantics in scanf.
- PR#4564: add note "stack is not executable" to object files  
generated by
   ocamlopt (Linux/x86, Linux/AMD64).
- PR#4566: bug in Ratio.approx_ratio_fix and Num.approx_num_fix.
- PR#4582: clarified the documentation of functions in the String  
module.
- PR#4583: stack overflow in "ocamlopt -g" during closure conversion  
pass.
- PR#4585: ocamldoc and "val virtual" declarations.
- PR#4587: ocamldoc and escaped @ characters.
- PR#4605: Buffer.add_substitute was sometime wrong when target string  
had
            backslashes.
- PR#4614: Inconsistent declaration of CamlCBCmd in LablTk library.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] OCaml version 3.11.0 released.
  2008-12-04 14:52 OCaml version 3.11.0 released Damien Doligez
@ 2008-12-05  3:15 ` Rich Neswold
  2008-12-05 10:10   ` Damien Doligez
  2008-12-06 14:56 ` OCaml version 3.11.0 now in Fedora 11 Richard Jones
  2008-12-11 15:35 ` [Caml-list] OCaml version 3.11.0 released Xavier Leroy
  2 siblings, 1 reply; 5+ messages in thread
From: Rich Neswold @ 2008-12-05  3:15 UTC (permalink / raw)
  To: Damien Doligez; +Cc: caml users

[-- Attachment #1: Type: text/plain, Size: 623 bytes --]

On Thu, Dec 4, 2008 at 8:52 AM, Damien Doligez <damien.doligez@inria.fr>wrote:

> It is available here: < http://caml.inria.fr/download.en.html >
>
> Please note: at this time it is only available as source and as
> binary for Mac OS X on Intel processors.  Other binary versions
> will be added to the Web site next week.


The link to the Mac .dmg, on your web page, file appears to be incorrect. It
should be http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.0.dmg.

Many thanks to the development team! I'm looking forward to using 3.11...

-- 
Rich

LOI: https://www.google.com/reader/shared/00900594587109808626

[-- Attachment #2: Type: text/html, Size: 1153 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] OCaml version 3.11.0 released.
  2008-12-05  3:15 ` [Caml-list] " Rich Neswold
@ 2008-12-05 10:10   ` Damien Doligez
  0 siblings, 0 replies; 5+ messages in thread
From: Damien Doligez @ 2008-12-05 10:10 UTC (permalink / raw)
  To: caml users; +Cc: Rich Neswold

Hello,

On 2008-12-05, at 04:15, Rich Neswold wrote:

> The link to the Mac .dmg, on your web page, file appears to be  
> incorrect. It should be http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.0.dmg 
> .


Thanks.  It is fixed now.  I'm taking over part of the management of  
the Web
site, so this kind of problem is not entirely unexpected at this point.

-- Damien


^ permalink raw reply	[flat|nested] 5+ messages in thread

* OCaml version 3.11.0 now in Fedora 11
  2008-12-04 14:52 OCaml version 3.11.0 released Damien Doligez
  2008-12-05  3:15 ` [Caml-list] " Rich Neswold
@ 2008-12-06 14:56 ` Richard Jones
  2008-12-11 15:35 ` [Caml-list] OCaml version 3.11.0 released Xavier Leroy
  2 siblings, 0 replies; 5+ messages in thread
From: Richard Jones @ 2008-12-06 14:56 UTC (permalink / raw)
  To: caml-list


Fedora Rawhide [the experimental/development version of Fedora] has
been completely rebuilt with OCaml 3.11.0, and all library and
application problems that were found have been patched.

List of packages:

  http://cocan.org/fedora#Package_status

You can get Fedora Rawhide from:

  http://fedoraproject.org/wiki/Releases/Rawhide

but you may prefer to use stable Fedora 10 which was released last
week and includes OCaml 3.10.2.

I should have sent upstream any patches that I had to add, but in case
I missed anyone out you can grab the patches we are using from here:

  http://cvs.fedoraproject.org/viewvc/devel/

Rich.

-- 
Richard Jones
Red Hat


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] OCaml version 3.11.0 released.
  2008-12-04 14:52 OCaml version 3.11.0 released Damien Doligez
  2008-12-05  3:15 ` [Caml-list] " Rich Neswold
  2008-12-06 14:56 ` OCaml version 3.11.0 now in Fedora 11 Richard Jones
@ 2008-12-11 15:35 ` Xavier Leroy
  2 siblings, 0 replies; 5+ messages in thread
From: Xavier Leroy @ 2008-12-11 15:35 UTC (permalink / raw)
  To: caml users

> It is our pleasure to celebrate the 51st birthday of Eric S. Raymond
> by releasing OCaml version 3.11.0. [...]
> Please note: at this time it is only available as source and as
> binary for Mac OS X on Intel processors.  Other binary versions
> will be added to the Web site next week.

Binary distributions for Windows (MSVC and Mingw toolchains) are now
available from the usual place:

          http://caml.inria.fr/download.html

Enjoy,

- Xavier Leroy


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-12-11 15:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-04 14:52 OCaml version 3.11.0 released Damien Doligez
2008-12-05  3:15 ` [Caml-list] " Rich Neswold
2008-12-05 10:10   ` Damien Doligez
2008-12-06 14:56 ` OCaml version 3.11.0 now in Fedora 11 Richard Jones
2008-12-11 15:35 ` [Caml-list] OCaml version 3.11.0 released Xavier Leroy

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).