* beta-test of OCaml 3.10.0 @ 2007-03-07 13:10 Xavier Leroy 2007-03-07 14:08 ` [Caml-list] " micha ` (6 more replies) 0 siblings, 7 replies; 21+ messages in thread From: Xavier Leroy @ 2007-03-07 13:10 UTC (permalink / raw) To: Caml List Hello, The long-awaited release 3.10 of Objective Caml is making good progress and is now ready for beta-testing. A source-only beta distribution can be downloaded from http://caml.inria.fr/pub/distrib/ocaml-3.10/ocaml-3.10.0+beta.tar.gz We would be grateful if some of you could compile it, give it a good workout on your favorite Caml programs, and report any problems you might encounter via the Caml bug tracker. The main novelties in 3.10 are: - A new tool: ocamlbuild, a compilation manager for OCaml projects. - Much work on Camlp4, including a new API. - A long-awaited feature: stack backtraces on uncaught exceptions that work for native-code as well as for bytecode. - Two new 64-bit ports: to Windows 64/AMD64 and MacOS X/PowerPC 64. Other changes are listed below. The documentation is not up to date yet, but some preliminary documentation on ocamlbuild and the new Camlp4 can be found on Nicolas Pouillard's Web page, http://gallium.inria.fr/~pouillar/ Enjoy, - Xavier Leroy, for the Caml development team ---------------------------------------------------------------------- Objective Caml 3.10.0: ---------------------- (Changes that can break existing programs are marked with a "*" ) Language features: - Added virtual instance variables in classes "val virtual v : t" * Changed the behaviour of instance variable overriding; the new definition replaces the old one, rather than creating a new variable. New tools: - ocamlbuild: compilation manager for OCaml applications and libraries. See draft documentation at http://gallium.inria.fr/~pouillar/ * Camlp4: heavily revised implementation, new API. New ports: - MacOS X PowerPC 64 bits. - MS Windows 64 bits (x64) using the Microsoft PSDK toolchain. - MS Windows 32 bits using the Visual Studio 2005 toolchain. Compilers: - Faster type-checking of functor applications. - Referencing an interface compiled with -rectypes from a module not compiled with -rectypes is now an error. - Revised the "fragile matching" warning. Native-code compiler: - Print a stack backtrace on an uncaught exception. (Compile and link with ocamlopt -g; execute with OCAMLRUNPARAM=b.) Supported on Intel/AMD in 32 and 64 bits, PPC in 32 and 64 bits. - Stack overflow detection on MS Windows 32 bits (courtesy O. Andrieu). - Stack overflow detection on MacOS X PPC and Intel. - Intel/AMD 64 bits: generate position-independent code by default. - Fixed bug involving -for-pack and missing .cmx files (PR#4124). - Fixed bug causing duplication of literals (PR#4152). Run-time system: - C/Caml interface functions take "char const *" arguments instead of "char *" when appropriate. - Faster string comparisons (fast case if strings are ==). Standard library: - Refined typing of format strings (type format6). - Printf, Format: new function ifprintf that consumes its arguments and prints nothing (useful to print conditionally). - Scanf: new function format_from_string to convert a string to a format string; new %r conversion to accomodate user defined scanners. - Filename: improved Win32 implementation of Filename.quote. - List: List.nth now tail-recursive. - Sys: added Sys.is_directory. Some functions (e.g. Sys.command) that could incorrectly raise Sys_io_blocked now raise Sys_error as intended. Other libraries: - Bigarray: mmap_file takes an optional argument specifying the start position of the data in the mapped file. - Dynlink: now defines only two modules, Dynlink and Dynlinkaux (internal), reducing risks of name conflicts with user modules. - Labltk under Win32: now uses Tcl/Tk 8.4 instead of 8.3 by default. - VM threads: improved performance of I/O operations (less polling). - Unix: new function Unix.isatty. - Unix emulation under Win32: fixed incorrect error reporting in several functions (PR#4097); better handling of channels opened on sockets (PR#4098); fixed GC bug in Unix.system (PR#4112). Documentation generator (OCamldoc): - correctly handle '?' in value names (PR#4215) - new option -hide-warnings not to print ocamldoc warnings Lexer generator (ocamllex): improved error reporting. License: fixed a typo in the "special exception" to the LGPL. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 13:10 beta-test of OCaml 3.10.0 Xavier Leroy @ 2007-03-07 14:08 ` micha 2007-03-07 14:12 ` Joel Reymont 2007-03-07 15:39 ` Vu Ngoc San ` (5 subsequent siblings) 6 siblings, 1 reply; 21+ messages in thread From: micha @ 2007-03-07 14:08 UTC (permalink / raw) To: Xavier Leroy, Caml List Am Wed, 07 Mar 2007 14:10:38 +0100 schrieb Xavier Leroy <Xavier.Leroy@inria.fr>: > > - A new tool: ocamlbuild, a compilation manager for OCaml projects. building with "./build/fastworld.sh" doesn't work here (Etch, 2.6.20.1, Athlon XP) > ./configure -cc "gcc -march=athlon-xp -O3" > make world .. > ./build/fastworld.sh after some compilation gives errors: ... + cd yacc + make make: Für das Ziel »all« ist nichts zu tun. + ./boot/ocamlrun boot/myocamlbuild.boot boot/stdlib.cma boot/std_exit.cmo SANITIZE: a total of 664 files that should probably not be in your source tree has been found. A script shell file "sanitize.sh" is being created. Check this script and run it to remove unwanted files or use other options (such as defining hygiene exceptions or using the -no-hygiene option). IMPORTANT: I cannot work with leftover compiled files. ERROR: Leftover Ocaml compilation files: File lambda.cmo in bytecomp has suffix .cmo File printlambda.cmo in bytecomp has suffix .cmo File typeopt.cmo in bytecomp has suffix .cmo File switch.cmo in bytecomp has suffix .cmo ... many more... ERROR: Leftover ocamllex-generated files: Files lexer.mll and lexer.ml should not be together in debugger ERROR: Leftover ocamlyacc-generated files: Files parser.mly and parser.ml should not be together in debugger Files parser.mly and parser.mli should not be together in debugger ERROR: Leftover Ocaml compilation files: File dynlink.cmo in debugger has suffix .cmo ...many more... Exiting due to hygiene violations. cheers, Michael ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 14:08 ` [Caml-list] " micha @ 2007-03-07 14:12 ` Joel Reymont 2007-03-07 14:54 ` micha 2007-03-07 15:01 ` Nicolas Pouillard 0 siblings, 2 replies; 21+ messages in thread From: Joel Reymont @ 2007-03-07 14:12 UTC (permalink / raw) To: micha; +Cc: Xavier Leroy, Caml List On Mar 7, 2007, at 2:08 PM, micha wrote: > building with "./build/fastworld.sh" doesn't work here (Etch, > 2.6.20.1, > Athlon XP) You need to do 'make clean' beforehand but I still get this on Mac OSX 10.4.8 Intel: Error while linking bytecomp/symtable.cmo: Reference to undefined global `Runtimedef' Exit code 2 while executing this command: boot/ocamlrun ./ocamlc -nostdlib -g -I stdlib myocamlbuild_config.cmo utils/config.cmo bytecomp/bytesections.cmo utils/misc.cmo bytecomp/dll.cmo parsing/linenum.cmo utils/ terminfo.cmo utils/warnings.cmo parsing/location.cmo parsing/ longident.cmo typing/ident.cmo typing/path.cmo typing/primitive.cmo typing/types.cmo typing/btype.cmo typing/predef.cmo typing/ datarepr.cmo utils/tbl.cmo typing/subst.cmo utils/clflags.cmo utils/ consistbl.cmo typing/env.cmo bytecomp/lambda.cmo bytecomp/ instruct.cmo bytecomp/opcodes.cmo bytecomp/meta.cmo bytecomp/ symtable.cmo utils/ccomp.cmo bytecomp/bytelink.cmo bytecomp/ bytelibrarian.cmo bytecomp/switch.cmo bytecomp/bytegen.cmo bytecomp/ printlambda.cmo typing/ctype.cmo typing/typedtree.cmo bytecomp/ typeopt.cmo typing/parmatch.cmo bytecomp/matching.cmo bytecomp/ translobj.cmo bytecomp/translcore.cmo bytecomp/translclass.cmo typing/ mtype.cmo typing/oprint.cmo typing/printtyp.cmo bytecomp/ translmod.cmo bytecomp/emitcode.cmo typing/includeclass.cmo typing/ includecore.cmo typing/includemod.cmo typing/stypes.cmo typing/ typetexp.cmo typing/typecore.cmo typing/typedecl.cmo typing/ typeclass.cmo typing/typemod.cmo bytecomp/bytepackager.cmo bytecomp/ printinstr.cmo bytecomp/simplif.cmo driver/pparse.cmo parsing/ syntaxerr.cmo parsing/parser.cmo parsing/lexer.cmo parsing/parse.cmo parsing/printast.cmo typing/unused_var.cmo driver/compile.cmo driver/ errors.cmo driver/main_args.cmo driver/main.cmo -o driver/main.byte -- http://wagerlabs.com/ ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 14:12 ` Joel Reymont @ 2007-03-07 14:54 ` micha 2007-03-07 15:00 ` Nicolas Pouillard 2007-03-07 15:01 ` Nicolas Pouillard 1 sibling, 1 reply; 21+ messages in thread From: micha @ 2007-03-07 14:54 UTC (permalink / raw) To: Caml List Am Wed, 7 Mar 2007 14:12:32 +0000 schrieb Joel Reymont <joelr1@gmail.com>: > > On Mar 7, 2007, at 2:08 PM, micha wrote: > > > building with doesn't work here (Etch, > > 2.6.20.1, > > Athlon XP) > > You need to do 'make clean' beforehand but I still get this on Mac > OSX 10.4.8 Intel: so make clean and then "./build/fastworld.sh" gives this error: + boot/ocamlrun boot/myocamlbuild.boot -just-plugin -install-lib-dir _build/ocamlbuild -byte-plugin boot/ocamlrun boot/ocamlc -I boot -nostdlib -I /home/micha/ocaml-3.10.0+beta/_build/ocamlbuild /home/micha/ocaml-3.10.0+beta/_build/ocamlbuild/ocamlbuildlightlib.cma myocamlbuild_config.mli myocamlbuild_config.ml myocamlbuild.ml /home/micha/ocaml-3.10.0+beta/_build/ocamlbuild/ocamlbuildlight.cmo -o myocamlbuild >> Fatal error: cannot open pervasives.cmi Fatal error: exception Misc.Fatal_error (Program not linked with -g, cannot print stack backtrace) Exit code 2 while executing this command: boot/ocamlrun boot/ocamlc -I boot -nostdlib -I /home/micha/ocaml-3.10.0+beta/_build/ocamlbuild /home/micha/ocaml-3.10.0+beta/_build/ocamlbuild/ocamlbuildlightlib.cma myocamlbuild_config.mli myocamlbuild_config.ml myocamlbuild.ml /home/micha/ocaml-3.10.0+beta/_build/ocamlbuild/ocamlbuildlight.cmo -o myocamlbuild ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 14:54 ` micha @ 2007-03-07 15:00 ` Nicolas Pouillard 0 siblings, 0 replies; 21+ messages in thread From: Nicolas Pouillard @ 2007-03-07 15:00 UTC (permalink / raw) To: micha; +Cc: Caml List On 3/7/07, micha <micha-1@fantasymail.de> wrote: > Am Wed, 7 Mar 2007 14:12:32 +0000 > schrieb Joel Reymont <joelr1@gmail.com>: > > > > > On Mar 7, 2007, at 2:08 PM, micha wrote: > > > > > building with doesn't work here (Etch, > > > 2.6.20.1, > > > Athlon XP) > > > > You need to do 'make clean' beforehand but I still get this on Mac > > OSX 10.4.8 Intel: > Switching from one mode to another require this: $ make clean $ ./build/distclean.sh Then running configure is required. -- Nicolas Pouillard ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 14:12 ` Joel Reymont 2007-03-07 14:54 ` micha @ 2007-03-07 15:01 ` Nicolas Pouillard 2007-03-07 15:17 ` Joel Reymont 1 sibling, 1 reply; 21+ messages in thread From: Nicolas Pouillard @ 2007-03-07 15:01 UTC (permalink / raw) To: Joel Reymont; +Cc: micha, Caml List, Xavier Leroy On 3/7/07, Joel Reymont <joelr1@gmail.com> wrote: > > On Mar 7, 2007, at 2:08 PM, micha wrote: > > > building with "./build/fastworld.sh" doesn't work here (Etch, > > 2.6.20.1, > > Athlon XP) > > You need to do 'make clean' beforehand but I still get this on Mac > OSX 10.4.8 Intel: You have this problem even after a full clean (make clean && ./build/distclean.sh) ? > > Error while linking bytecomp/symtable.cmo: > Reference to undefined global `Runtimedef' > Exit code 2 while executing this command: > boot/ocamlrun ./ocamlc -nostdlib -g -I stdlib > myocamlbuild_config.cmo utils/config.cmo bytecomp/bytesections.cmo > utils/misc.cmo bytecomp/dll.cmo parsing/linenum.cmo utils/ > terminfo.cmo utils/warnings.cmo parsing/location.cmo parsing/ > longident.cmo typing/ident.cmo typing/path.cmo typing/primitive.cmo > typing/types.cmo typing/btype.cmo typing/predef.cmo typing/ > datarepr.cmo utils/tbl.cmo typing/subst.cmo utils/clflags.cmo utils/ > consistbl.cmo typing/env.cmo bytecomp/lambda.cmo bytecomp/ > instruct.cmo bytecomp/opcodes.cmo bytecomp/meta.cmo bytecomp/ > symtable.cmo utils/ccomp.cmo bytecomp/bytelink.cmo bytecomp/ > bytelibrarian.cmo bytecomp/switch.cmo bytecomp/bytegen.cmo bytecomp/ > printlambda.cmo typing/ctype.cmo typing/typedtree.cmo bytecomp/ > typeopt.cmo typing/parmatch.cmo bytecomp/matching.cmo bytecomp/ > translobj.cmo bytecomp/translcore.cmo bytecomp/translclass.cmo typing/ > mtype.cmo typing/oprint.cmo typing/printtyp.cmo bytecomp/ > translmod.cmo bytecomp/emitcode.cmo typing/includeclass.cmo typing/ > includecore.cmo typing/includemod.cmo typing/stypes.cmo typing/ > typetexp.cmo typing/typecore.cmo typing/typedecl.cmo typing/ > typeclass.cmo typing/typemod.cmo bytecomp/bytepackager.cmo bytecomp/ > printinstr.cmo bytecomp/simplif.cmo driver/pparse.cmo parsing/ > syntaxerr.cmo parsing/parser.cmo parsing/lexer.cmo parsing/parse.cmo > parsing/printast.cmo typing/unused_var.cmo driver/compile.cmo driver/ > errors.cmo driver/main_args.cmo driver/main.cmo -o driver/main.byte > > -- > http://wagerlabs.com/ > > > > > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > -- Nicolas Pouillard ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 15:01 ` Nicolas Pouillard @ 2007-03-07 15:17 ` Joel Reymont 0 siblings, 0 replies; 21+ messages in thread From: Joel Reymont @ 2007-03-07 15:17 UTC (permalink / raw) To: Nicolas Pouillard; +Cc: micha, Caml List, Xavier Leroy On Mar 7, 2007, at 3:01 PM, Nicolas Pouillard wrote: > You have this problem even after a full clean (make clean && > ./build/distclean.sh) ? That works fine, thanks! -- http://wagerlabs.com/ ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 13:10 beta-test of OCaml 3.10.0 Xavier Leroy 2007-03-07 14:08 ` [Caml-list] " micha @ 2007-03-07 15:39 ` Vu Ngoc San 2007-03-07 15:47 ` Nicolas Pouillard 2007-03-10 21:24 ` Paul Snively ` (4 subsequent siblings) 6 siblings, 1 reply; 21+ messages in thread From: Vu Ngoc San @ 2007-03-07 15:39 UTC (permalink / raw) To: Xavier Leroy; +Cc: Caml List I've noticed that standard compilation (make world.opt) uses 333 Mb of hard disk, while ./build/fastworld.sh uses much more: 443 Mb anyhow both work :) (Linux debian 2.6.18-4-686) ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 15:39 ` Vu Ngoc San @ 2007-03-07 15:47 ` Nicolas Pouillard 0 siblings, 0 replies; 21+ messages in thread From: Nicolas Pouillard @ 2007-03-07 15:47 UTC (permalink / raw) To: Vu Ngoc San; +Cc: Xavier Leroy, Caml List On 3/7/07, Vu Ngoc San <san.vu-ngoc@ujf-grenoble.fr> wrote: > I've noticed that standard compilation (make world.opt) uses 333 Mb of > hard disk, while ./build/fastworld.sh uses much more: 443 Mb Yep that's due to copying into the build directory. -- Nicolas Pouillard ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 13:10 beta-test of OCaml 3.10.0 Xavier Leroy 2007-03-07 14:08 ` [Caml-list] " micha 2007-03-07 15:39 ` Vu Ngoc San @ 2007-03-10 21:24 ` Paul Snively 2007-03-12 11:17 ` Sven Luther ` (3 subsequent siblings) 6 siblings, 0 replies; 21+ messages in thread From: Paul Snively @ 2007-03-10 21:24 UTC (permalink / raw) To: Xavier Leroy; +Cc: Caml List [-- Attachment #1: Type: text/plain, Size: 1365 bytes --] Dr. Leroy: First, my deepest thanks to you and your colleagues for your excellent, hard work on the Objective Caml system and its related tools. I'm simultaneously learning a tremendous amount from programming in O'Caml and having great fun doing so. I'm curious as to whether there's any chance of having (some variant of) the attached patch applied to the O'Caml 3.10.0 codebase. The attached patch was provided to me by Alon Kama, maintainer of the Ensemble process group communication system, in support of enabling Ensemble 2.01 to work correctly on Mac OS X. As you know, Mac OS X is a BSD-derived platform, hence makes the distinction between SO_REUSEADDR and SO_REUSEPORT in socket options related socket rebinding--a distinction that affects much server-oriented socket code. So this patch should benefit any BSD-derived platform, not only Mac OS X. Having said that, I cannot honestly say that I fully understand what changes, particularly conditionalization, might be necessary to ensure its proper use on all supported O'Caml platforms; nor, of course, can I say whether making that determination with your available staff, hardware, OS, and time resources is realistic at all, let alone in the time remaining to deliver O'Caml 3.10.0. So I appreciate your forbearance. Many thanks and best regards, Paul Snively [-- Attachment #2: ocaml-3.08.3.the_patch.txt --] [-- Type: text/plain, Size: 2831 bytes --] diff -Naur ocaml-3.08.3.orig/otherlibs/threads/unix.ml ocaml-3.08.3.patched/otherlibs/threads/unix.ml --- ocaml-3.08.3.orig/otherlibs/threads/unix.ml Sat Nov 6 11:14:58 2004 +++ ocaml-3.08.3.patched/otherlibs/threads/unix.ml Sun Jul 10 17:54:35 2005 @@ -544,6 +544,7 @@ SO_DEBUG | SO_BROADCAST | SO_REUSEADDR + | SO_REUSEPORT | SO_KEEPALIVE | SO_DONTROUTE | SO_OOBINLINE diff -Naur ocaml-3.08.3.orig/otherlibs/unix/sockopt.c ocaml-3.08.3.patched/otherlibs/unix/sockopt.c --- ocaml-3.08.3.orig/otherlibs/unix/sockopt.c Mon Jan 17 19:10:36 2005 +++ ocaml-3.08.3.patched/otherlibs/unix/sockopt.c Sun Jul 10 17:56:34 2005 @@ -35,6 +35,9 @@ #ifndef SO_REUSEADDR #define SO_REUSEADDR (-1) #endif +#ifndef SO_REUSEPORT +#define SO_REUSEPORT (-1) +#endif #ifndef SO_KEEPALIVE #define SO_KEEPALIVE (-1) #endif @@ -76,7 +79,7 @@ #endif static int sockopt_bool[] = { - SO_DEBUG, SO_BROADCAST, SO_REUSEADDR, SO_KEEPALIVE, + SO_DEBUG, SO_BROADCAST, SO_REUSEADDR, SO_REUSEPORT, SO_KEEPALIVE, SO_DONTROUTE, SO_OOBINLINE, SO_ACCEPTCONN }; static int sockopt_int[] = { diff -Naur ocaml-3.08.3.orig/otherlibs/unix/unix.ml ocaml-3.08.3.patched/otherlibs/unix/unix.ml --- ocaml-3.08.3.orig/otherlibs/unix/unix.ml Sat Nov 6 11:14:58 2004 +++ ocaml-3.08.3.patched/otherlibs/unix/unix.ml Sun Jul 10 17:57:40 2005 @@ -436,6 +436,7 @@ SO_DEBUG | SO_BROADCAST | SO_REUSEADDR + | SO_REUSEPORT | SO_KEEPALIVE | SO_DONTROUTE | SO_OOBINLINE diff -Naur ocaml-3.08.3.orig/otherlibs/unix/unix.mli ocaml-3.08.3.patched/otherlibs/unix/unix.mli --- ocaml-3.08.3.orig/otherlibs/unix/unix.mli Wed Dec 22 17:11:13 2004 +++ ocaml-3.08.3.patched/otherlibs/unix/unix.mli Sun Jul 10 18:05:16 2005 @@ -988,6 +988,7 @@ SO_DEBUG (** Record debugging information *) | SO_BROADCAST (** Permit sending of broadcast messages *) | SO_REUSEADDR (** Allow reuse of local addresses for bind *) + | SO_REUSEPORT | SO_KEEPALIVE (** Keep connection active *) | SO_DONTROUTE (** Bypass the standard routing algorithms *) | SO_OOBINLINE (** Leave out-of-band data in line *) diff -Naur ocaml-3.08.3.orig/otherlibs/unix/unixLabels.mli ocaml-3.08.3.patched/otherlibs/unix/unixLabels.mli --- ocaml-3.08.3.orig/otherlibs/unix/unixLabels.mli Fri Jul 2 11:37:17 2004 +++ ocaml-3.08.3.patched/otherlibs/unix/unixLabels.mli Sun Jul 10 17:58:36 2005 @@ -1003,6 +1003,7 @@ SO_DEBUG (** Record debugging information *) | SO_BROADCAST (** Permit sending of broadcast messages *) | SO_REUSEADDR (** Allow reuse of local addresses for bind *) + | SO_REUSEPORT | SO_KEEPALIVE (** Keep connection active *) | SO_DONTROUTE (** Bypass the standard routing algorithms *) | SO_OOBINLINE (** Leave out-of-band data in line *) [-- Attachment #3: Type: text/plain, Size: 4787 bytes --] On Mar 7, 2007, at 5:10 AM, Xavier Leroy wrote: > Hello, > > The long-awaited release 3.10 of Objective Caml is making good > progress and is now ready for beta-testing. A source-only > beta distribution can be downloaded from > > http://caml.inria.fr/pub/distrib/ocaml-3.10/ocaml-3.10.0 > +beta.tar.gz > > We would be grateful if some of you could compile it, give it a > good workout on your favorite Caml programs, and report any problems > you might encounter via the Caml bug tracker. > > The main novelties in 3.10 are: > > - A new tool: ocamlbuild, a compilation manager for OCaml projects. > - Much work on Camlp4, including a new API. > - A long-awaited feature: stack backtraces on uncaught exceptions > that work for native-code as well as for bytecode. > - Two new 64-bit ports: to Windows 64/AMD64 and MacOS X/PowerPC 64. > > Other changes are listed below. > > The documentation is not up to date yet, but some preliminary > documentation on ocamlbuild and the new Camlp4 can be found on > Nicolas Pouillard's Web page, http://gallium.inria.fr/~pouillar/ > > Enjoy, > > - Xavier Leroy, for the Caml development team > > ---------------------------------------------------------------------- > > Objective Caml 3.10.0: > ---------------------- > > (Changes that can break existing programs are marked with a "*" ) > > Language features: > - Added virtual instance variables in classes "val virtual v : t" > * Changed the behaviour of instance variable overriding; the new > definition replaces the old one, rather than creating a new > variable. > > New tools: > - ocamlbuild: compilation manager for OCaml applications and > libraries. > See draft documentation at http://gallium.inria.fr/~pouillar/ > * Camlp4: heavily revised implementation, new API. > > New ports: > - MacOS X PowerPC 64 bits. > - MS Windows 64 bits (x64) using the Microsoft PSDK toolchain. > - MS Windows 32 bits using the Visual Studio 2005 toolchain. > > Compilers: > - Faster type-checking of functor applications. > - Referencing an interface compiled with -rectypes from a module > not compiled with -rectypes is now an error. > - Revised the "fragile matching" warning. > > Native-code compiler: > - Print a stack backtrace on an uncaught exception. > (Compile and link with ocamlopt -g; execute with OCAMLRUNPARAM=b.) > Supported on Intel/AMD in 32 and 64 bits, PPC in 32 and 64 bits. > - Stack overflow detection on MS Windows 32 bits (courtesy O. > Andrieu). > - Stack overflow detection on MacOS X PPC and Intel. > - Intel/AMD 64 bits: generate position-independent code by default. > - Fixed bug involving -for-pack and missing .cmx files (PR#4124). > - Fixed bug causing duplication of literals (PR#4152). > > Run-time system: > - C/Caml interface functions take "char const *" arguments > instead of "char *" when appropriate. > - Faster string comparisons (fast case if strings are ==). > > Standard library: > - Refined typing of format strings (type format6). > - Printf, Format: new function ifprintf that consumes its arguments > and prints nothing (useful to print conditionally). > - Scanf: > new function format_from_string to convert a string to a format > string; > new %r conversion to accomodate user defined scanners. > - Filename: improved Win32 implementation of Filename.quote. > - List: List.nth now tail-recursive. > - Sys: added Sys.is_directory. Some functions (e.g. Sys.command) that > could incorrectly raise Sys_io_blocked now raise Sys_error as > intended. > > Other libraries: > - Bigarray: mmap_file takes an optional argument specifying > the start position of the data in the mapped file. > - Dynlink: now defines only two modules, Dynlink and Dynlinkaux > (internal), > reducing risks of name conflicts with user modules. > - Labltk under Win32: now uses Tcl/Tk 8.4 instead of 8.3 by default. > - VM threads: improved performance of I/O operations (less polling). > - Unix: new function Unix.isatty. > - Unix emulation under Win32: > fixed incorrect error reporting in several functions (PR#4097); > better handling of channels opened on sockets (PR#4098); > fixed GC bug in Unix.system (PR#4112). > > Documentation generator (OCamldoc): > - correctly handle '?' in value names (PR#4215) > - new option -hide-warnings not to print ocamldoc warnings > > Lexer generator (ocamllex): improved error reporting. > > License: fixed a typo in the "special exception" to the LGPL. > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 13:10 beta-test of OCaml 3.10.0 Xavier Leroy ` (2 preceding siblings ...) 2007-03-10 21:24 ` Paul Snively @ 2007-03-12 11:17 ` Sven Luther 2007-03-16 8:54 ` Mike Lin ` (2 subsequent siblings) 6 siblings, 0 replies; 21+ messages in thread From: Sven Luther @ 2007-03-12 11:17 UTC (permalink / raw) To: Xavier Leroy; +Cc: Caml List On Wed, Mar 07, 2007 at 02:10:38PM +0100, Xavier Leroy wrote: > - Two new 64-bit ports: to Windows 64/AMD64 and MacOS X/PowerPC 64. What about 64bit support for linux/powerpc64 ? Friendly, Sven Luther ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 13:10 beta-test of OCaml 3.10.0 Xavier Leroy ` (3 preceding siblings ...) 2007-03-12 11:17 ` Sven Luther @ 2007-03-16 8:54 ` Mike Lin 2007-03-16 8:58 ` Nicolas Pouillard ` (2 more replies) 2007-03-17 17:46 ` Peter Halacsy 2007-03-20 20:00 ` Oliver Bandel 6 siblings, 3 replies; 21+ messages in thread From: Mike Lin @ 2007-03-16 8:54 UTC (permalink / raw) To: Caml List [-- Attachment #1: Type: text/plain, Size: 296 bytes --] On 3/7/07, Xavier Leroy <Xavier.Leroy@inria.fr> wrote: > > > - Much work on Camlp4, including a new API. Has this broken a lot of stuff?? e.g. ocamlgsl has a camlp4 extension inside it and will not compile under 3.10 ('Unbound value Quotation.add'). what are we to do with existing extensions? [-- Attachment #2: Type: text/html, Size: 590 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-16 8:54 ` Mike Lin @ 2007-03-16 8:58 ` Nicolas Pouillard 2007-03-16 9:06 ` Gabriel Kerneis 2007-03-16 9:19 ` Olivier Andrieu 2 siblings, 0 replies; 21+ messages in thread From: Nicolas Pouillard @ 2007-03-16 8:58 UTC (permalink / raw) To: Mike Lin; +Cc: Caml List On 3/16/07, Mike Lin <mikelin@mit.edu> wrote: > > On 3/7/07, Xavier Leroy <Xavier.Leroy@inria.fr> wrote: > > > > - Much work on Camlp4, including a new API. > > Has this broken a lot of stuff?? e.g. ocamlgsl has a camlp4 extension inside > it and will not compile under 3.10 ('Unbound value Quotation.add'). what are > we to do with existing extensions? When Camlp4 is used as a library yes. The API is completly different. -- Nicolas Pouillard ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-16 8:54 ` Mike Lin 2007-03-16 8:58 ` Nicolas Pouillard @ 2007-03-16 9:06 ` Gabriel Kerneis 2007-03-16 9:19 ` Olivier Andrieu 2 siblings, 0 replies; 21+ messages in thread From: Gabriel Kerneis @ 2007-03-16 9:06 UTC (permalink / raw) To: caml-list [-- Attachment #1: Type: text/plain, Size: 692 bytes --] Le Fri, 16 Mar 2007 04:54:28 -0400, "Mike Lin" <mikelin@mit.edu> a écrit : > On 3/7/07, Xavier Leroy <Xavier.Leroy@inria.fr> wrote: > > - Much work on Camlp4, including a new API. > Has this broken a lot of stuff?? Yes, but once you understand the changes, it's much easier to use. > e.g. ocamlgsl has a camlp4 extension > inside it and will not compile under 3.10 ('Unbound value > Quotation.add'). what are we to do with existing extensions? Rewrite them. See http://gallium.inria.fr/~pouillar/camlp4-changes.html for the common pitfalls, it helps a lot in moving from old to new camlp4. I guess Nicolas Pouillard will give you more details. Regards, -- Gabriel [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-16 8:54 ` Mike Lin 2007-03-16 8:58 ` Nicolas Pouillard 2007-03-16 9:06 ` Gabriel Kerneis @ 2007-03-16 9:19 ` Olivier Andrieu 2 siblings, 0 replies; 21+ messages in thread From: Olivier Andrieu @ 2007-03-16 9:19 UTC (permalink / raw) To: Mike Lin; +Cc: Caml List On 3/16/07, Mike Lin <mikelin@mit.edu> wrote: > On 3/7/07, Xavier Leroy <Xavier.Leroy@inria.fr> wrote: > > > > - Much work on Camlp4, including a new API. > > > Has this broken a lot of stuff?? e.g. ocamlgsl has a camlp4 extension inside > it and will not compile under 3.10 ('Unbound value Quotation.add'). what are > we to do with existing extensions? I'll be rewriting this part soon. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 13:10 beta-test of OCaml 3.10.0 Xavier Leroy ` (4 preceding siblings ...) 2007-03-16 8:54 ` Mike Lin @ 2007-03-17 17:46 ` Peter Halacsy 2007-03-17 17:54 ` Nicolas Pouillard 2007-03-20 20:00 ` Oliver Bandel 6 siblings, 1 reply; 21+ messages in thread From: Peter Halacsy @ 2007-03-17 17:46 UTC (permalink / raw) To: Caml List [-- Attachment #1: Type: text/plain, Size: 371 bytes --] On Mar 7, 2007, at 2:10 PM, Xavier Leroy wrote: > - A new tool: ocamlbuild, a compilation manager for OCaml projects. Hi, I've downloaded and succesfuly compiled and installed 3.10 (on Intel MacBook Pro). Ocamlbuild is a great tool! I only wonder how I can build a cmxa file from several ml files. Should I define a custom target or something like that? peter [-- Attachment #2: Type: text/html, Size: 928 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-17 17:46 ` Peter Halacsy @ 2007-03-17 17:54 ` Nicolas Pouillard 2007-03-18 7:57 ` ocamlbuild and ocamlfind / was: " Peter Halacsy 0 siblings, 1 reply; 21+ messages in thread From: Nicolas Pouillard @ 2007-03-17 17:54 UTC (permalink / raw) To: Peter Halacsy; +Cc: Caml List On 3/17/07, Peter Halacsy <peter@halacsy.com> wrote: > > > On Mar 7, 2007, at 2:10 PM, Xavier Leroy wrote: > > > - A new tool: ocamlbuild, a compilation manager for OCaml projects. > Hi, > I've downloaded and succesfuly compiled and installed 3.10 (on Intel MacBook > Pro). Ocamlbuild is a great tool! > > I only wonder how I can build a cmxa file from several ml files. Should I > define a custom target or something like that? Just write a .mllib file with the contents of your library. $ cat foo.mllib Bar Baz $ ocamlbuild foo.cma foo.cmxa If you have a main module (Foo) and want a library from it, it will make a library with the sorted transitive closure from Foo. $ ocamlbuild foo.cma foo.cmxa -- Nicolas Pouillard ^ permalink raw reply [flat|nested] 21+ messages in thread
* ocamlbuild and ocamlfind / was: [Caml-list] beta-test of OCaml 3.10.0 2007-03-17 17:54 ` Nicolas Pouillard @ 2007-03-18 7:57 ` Peter Halacsy 2007-03-18 10:04 ` Nicolas Pouillard 0 siblings, 1 reply; 21+ messages in thread From: Peter Halacsy @ 2007-03-18 7:57 UTC (permalink / raw) To: Caml List [-- Attachment #1: Type: text/plain, Size: 414 bytes --] On Mar 17, 2007, at 6:54 PM, Nicolas Pouillard wrote: >> I only wonder how I can build a cmxa file from several ml files. >> Should I >> define a custom target or something like that? > > Just write a .mllib file with the contents of your library. > Thanks, it works. I was stupid, sorry for the question. Is there any support in official ocaml to install libraries? Or ocamlfind is the right tool? peter [-- Attachment #2: Type: text/html, Size: 1264 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: ocamlbuild and ocamlfind / was: [Caml-list] beta-test of OCaml 3.10.0 2007-03-18 7:57 ` ocamlbuild and ocamlfind / was: " Peter Halacsy @ 2007-03-18 10:04 ` Nicolas Pouillard 0 siblings, 0 replies; 21+ messages in thread From: Nicolas Pouillard @ 2007-03-18 10:04 UTC (permalink / raw) To: Peter Halacsy; +Cc: Caml List On 3/18/07, Peter Halacsy <peter@halacsy.com> wrote: > > > On Mar 17, 2007, at 6:54 PM, Nicolas Pouillard wrote: > > Is there any support in official ocaml to install libraries? Not yet (not in 3.10) -- Nicolas Pouillard ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 13:10 beta-test of OCaml 3.10.0 Xavier Leroy ` (5 preceding siblings ...) 2007-03-17 17:46 ` Peter Halacsy @ 2007-03-20 20:00 ` Oliver Bandel 6 siblings, 0 replies; 21+ messages in thread From: Oliver Bandel @ 2007-03-20 20:00 UTC (permalink / raw) To: caml-list On Wed, Mar 07, 2007 at 02:10:38PM +0100, Xavier Leroy wrote: [...] > - Unix: new function Unix.isatty. [...] Yes, that's nice. I waited for this function for a longer time; is good for a lot of things. For I tool I just write, it would be good to have this function available. :) When will OCaml 3.10 be available as a well tested, stable release? Ciao, Oliver ^ permalink raw reply [flat|nested] 21+ messages in thread
* ocamlbuild is VERY nifty @ 2007-03-07 15:53 Joel Reymont 2007-03-07 20:55 ` [Caml-list] beta-test of OCaml 3.10.0 Jon Harrop 0 siblings, 1 reply; 21+ messages in thread From: Joel Reymont @ 2007-03-07 15:53 UTC (permalink / raw) To: Caml List I asked around before settling on a build system since I'm new to OCaml. I looked at OMake, OCamlMakefile and found them complex and confusing. Then William Neuman pointed me to ocamlbuild and Nicolas Pouillard helped me hook it up to external libraries via a plugin. Deep into my first project I confirm that ocamlbuild is VERY nifty. I can automatically rebuild when any parts of my project change and then run my unit tests. All I need to do is: ocamlbuild test.byte -- *** my project *** 189 easy.mli 282 easy_lexer.mll 420 easy_parser.mly 17 myocamlbuild.ml 14 parser_util.ml 30 symtab.ml 8 test.ml 284 parser_test.ml 1355 total *** test.ml *** open OUnit let suite = "Morpher" >::: [Parser_test.suite] let _ = run_test_tt_main suite *** myocamlbuild.ml *** open Ocamlbuild_plugin;; open Command;; let packages = "ounit" (* "pkg1,pkg2,..." *);; let ocamlfind cmd = S[A"ocamlfind"; A cmd; A"-package"; A packages];; flag ["ocaml"; "link"] (A"-linkpkg");; dispatch begin function | After_options -> Options.ocamlc := ocamlfind "ocamlc"; Options.ocamlopt := ocamlfind "ocamlopt"; | _ -> () end -- http://wagerlabs.com/ ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] beta-test of OCaml 3.10.0 2007-03-07 15:53 ocamlbuild is VERY nifty Joel Reymont @ 2007-03-07 20:55 ` Jon Harrop 0 siblings, 0 replies; 21+ messages in thread From: Jon Harrop @ 2007-03-07 20:55 UTC (permalink / raw) To: caml-list On Wednesday 07 March 2007 15:53, Joel Reymont wrote: > Deep into my first project I confirm that ocamlbuild is VERY nifty. Excellent news. Make just can't hack it when things get non-trivial and I'm bored of recompiling everything all the time, even if ocamlopt is a million times faster than gcc. :-) Here are my results (timings are old vs new) for my 2.2GHz AMD64x2: OCaml itself still doesn't parallel build but serial builds in around 4mins. Ray tracer builds fine: 3.963s vs 4.000s run time n-th nearest neighbour example from OFS builds and runs fine: 8.142s vs 8.320s Smoke builds fine and runs fine: 12.39s vs 11.56s build time, 68.5fps vs 72.5fps running speed Presenta builds fine: 39.354s vs 39.524s I've only had one problem and I'm not sure if that is due to the new version of ocamlopt: Presenta screws up font rendering when using the experimental stencil buffer code instead of the usual GLU tesselator code. So my conclusion is that 3.10 looks fine. Compile times are slightly faster in some cases. Running times are basically indifferent. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. OCaml for Scientists http://www.ffconsultancy.com/products/ocaml_for_scientists ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2007-03-20 20:00 UTC | newest] Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-03-07 13:10 beta-test of OCaml 3.10.0 Xavier Leroy 2007-03-07 14:08 ` [Caml-list] " micha 2007-03-07 14:12 ` Joel Reymont 2007-03-07 14:54 ` micha 2007-03-07 15:00 ` Nicolas Pouillard 2007-03-07 15:01 ` Nicolas Pouillard 2007-03-07 15:17 ` Joel Reymont 2007-03-07 15:39 ` Vu Ngoc San 2007-03-07 15:47 ` Nicolas Pouillard 2007-03-10 21:24 ` Paul Snively 2007-03-12 11:17 ` Sven Luther 2007-03-16 8:54 ` Mike Lin 2007-03-16 8:58 ` Nicolas Pouillard 2007-03-16 9:06 ` Gabriel Kerneis 2007-03-16 9:19 ` Olivier Andrieu 2007-03-17 17:46 ` Peter Halacsy 2007-03-17 17:54 ` Nicolas Pouillard 2007-03-18 7:57 ` ocamlbuild and ocamlfind / was: " Peter Halacsy 2007-03-18 10:04 ` Nicolas Pouillard 2007-03-20 20:00 ` Oliver Bandel 2007-03-07 15:53 ocamlbuild is VERY nifty Joel Reymont 2007-03-07 20:55 ` [Caml-list] beta-test of OCaml 3.10.0 Jon Harrop
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox