Hello
Here is the latest Caml Weekly News, for the week of May 15 to 22, 2007.
This is just to remind you about the closing date for offers of talks at the 2007 Commercial Users of Functional Programming workshop http://cufp.galois.com/ The closing date is 1st June, in a couple of weeks. The workshop itself is on Oct 4, co-located with ICFP at Freiburg, Germany. CUFP is a workshop for people who use functional programming (in some guise), because it's the best way to get the job done, rather than because it's a cool research topic. It's a very informal workshop. No papers, no proceedings -- just stand up and tell us how it is for you. But you have to tell us in advance so we can plan the day. Please get in touch with me or Kathleen Fisher (details at the URL above). You can also nominate someone else. That's even easier. (But ask them first.) And plan to come, too!
I'm happy to announce the release of version 3.10.0 of Objective Caml (the "ascension day" release). The main novelties in this release include: * Instance variables in classes can be declared virtual and implemented in subclasses. Syntax is val virtual v : t. * Printing of stack backtraces on uncaught exceptions, previously available only for bytecode-compiled programs, is now supported for native-code programs as well. (Supported on Intel/AMD and PPC, in 32 and 64 bits). * New ports: MacOS X, PowerPC, 64 bits; Microsoft Windows 64 bits (x64) using the Microsoft PSDK toolchain; Microsoft Windows 32 bits using the Visual Studio 2005 toolchain. * The Camlp4 preprocessor was partially reimplemented and offers a new, more modular API for syntax extensions. (Users of third-party syntax extensions may wish to stay with OCaml 3.09 until these extensions are ported to the new API.) * A new experimental tool, ocamlbuild: a compilation manager that automates the building of OCaml applications and libraries. A more detailed list of changes is appended. Sources, documentation and Windows binary distributions are available from the usual place: http://caml.inria.fr/ocaml/release.html MacOS X binaries are not yet available. Enjoy, - Xavier Leroy ---------------------------------------------------------------------- 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.Joel Reymont asked and Xavier Leroy answered:
> Does it mean sources can be retrieved from CVS and just built, without > needing the 3.10 release tag? No. The CVS trunk is most probably broken, as all recent bug-fixing was done within the release branch. A quick guide to tags and branches in the OCaml CVS: - Releases have tags of the form "ocamlNNNN", e.g. "ocaml3100" for 3.10.0 - Release branches (where bug-fixing takes place) have tags of the form "releaseNNN", e.g. "release310" for the 3.10 branch As of today, if you're tracking the CVS, I recommend using the branch "release310", or "release309" if you need the old Camlp4.
The new version of ODT has been released this morning. It is ready for OCaml 3.10 and its new AST (e.g. virtual fields). Everything is available on the ODT website: http://ocamldt.free.fr. The "overview" page explains its current main features, and the "install notes" page details some requirements and incompatibilities with older versions of OCaml. Some screenshots are also available to show the GUI. Please, don't hesitate to try ODT (for personal or professional use) and forward this mail to anyone which could be interested in.
Real-time 2D rigid body simulation with OpenGL visualization in under 400 lines of OCaml code: http://www.ffconsultancy.com/ocaml/balls/ Handles 100 balls with sub-centisecond accuracy on my machine.Ken Rose asked and Mathias Kende answered:
> I'm using a 2GHz AMD64x2, > and getting about 2fps from it. Anybody have any idea what might be > going wrong? Contrary to what is (was in fact) written on the web site, you should compile the software with ocamlopt rather than with ocamlc. I don't think that it relies heavily on the graphic card's driver.
Here is a quick trick to help you read this CWN if you are viewing it using vim (version 6 or greater).
:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~'^=\\{78}$'?'<1':1
zM
If you know of a better way, please let me know.
If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.
If you also wish to receive it every week by mail, you may subscribe online.