Here is the latest Caml Weekly News, for the week of November 10 to 17, 2009.
Archive: http://groups.google.com/group/fa.caml/browse_thread/thread/3e20a122f8ac6d9d#Damien Doligez said:
I've been compiling OCaml programs and libraries lately, and I've seen this kind of things in make output: ocamlc -w A -warn-error A .... or even: ocamlc -w Ael -warn-error Ael .... You should not do that, because it means your build will break with the next version of OCaml that adds a new warning, even if that warning is disabled by default for compatibility reasons, as soon as your code triggers the new warning (which it will do, due to Murphy's law). What you should do instead: ocamlc -w ELZ -warn-error A .... and ocamlc -w Z -warn-error A .... Or completely refrain from using -warn-error A and only activate the error option on explicit sets of warnings. Better yet, you could remove the -warn-error option from your released Makefiles, and reserve it for development.
A new version of Xmlm is available. It's a security update. All users are recommended to upgrade. http://erratique.ch/software/xmlm A call to List.map crept into my implementation of namespaces. A maliciously crafted xml file with a very large amount of attributes on a single tag can crash your (native code) program by stack overflow. The fix doesn't affect performance -- a rev and a map makes a t.r. rev_map.
Archive: http://groups.google.com/group/fa.caml/browse_thread/thread/e989cfe69bf529c5#Yaron Minsky announced:
People have been asking for this since our last release, and now we've finally got it done. Here's the link: http://www.janestreet.com/ocaml/janestreet-ocamldocs/
Archive: http://groups.google.com/group/fa.caml/browse_thread/thread/759329ea99d7f7ac#Till Varoquaux announced:
Build systems are not fun and most of us would rather be dancing with high order type than fidgeting with them. Ocamlbuild is nice but it doesn't allow you to define re-usable components and lugging code around between projects feels a bit... wrong. I am pleased to announce ocamlbuild-plus: Ocamlbuild-plus is an extension of ocamlbuild that enables to use findlib packages in its build plugins. Ocamlbuild is an ocaml specific build system that is bundled with the ocaml compiler. Ocamlbuild is can be extended via plugins to add functionalities. In ocamlbuild these plugin's code are written within a single file with project. The imported Findlib packages can also be linked against ocamlbuildlib extending ocamlbuild exactly as the main plugin would. Thus enabling to have shared reusable plugins. Grab it while its hot: https://forge.ocamlcore.org/projects/ocamlbuildplus/
Archive: http://groups.google.com/group/fa.caml/browse_thread/thread/c2c8d40125d0c8e9#Vincent Rahli and Joe Wells announced:
We are happy to announce the release of the version 0.4 of our type error slicing software for the SML programming language. Major improvements over the previous release: * Overloaded operators can now be specified. * Special comments can now inform the type error slicer about identifiers in the top-level environment with their types/signatures. (This allows handling things like "use" and "CM.autoload" and working around the fact that we do not yet support "open".) * We provide a larger basis including more of the standard SML basis and some SML/NJ-specific declarations. * We fixed many cases where the Emacs interface failed silently. Other less important changes/improvements are: * We improved the error slices for record clashes. * We improved the pretty printing of error slices. * We improved the highlighting of white spaces. * We improved our error slice minimisation algorithm. * We improved the communication between our type error slicer and its Emacs interface. * We provide new error messages on status clashes (for example between an exception constructor and a datatype constructor). * Our test case database is much bigger, so there are fewer problems in general. * And we solved many bugs. Even more changes are documented in the ChangeLog file. The aim of our type error slicer is to provide useful type error reports for pieces of code written in SML: * It identifies all of the program points that contribute to a type error, including the spot with the actual programming error that caused the type error. * It highlights these program points in the original, unchanged source code. * It avoids showing internal details of the operation of the type inference machinery. A new compiled package of our type error slicer can be found at this URL: http://www2.macs.hw.ac.uk/~rahli/cgi-bin/slicer/downloads.html Known limitations: * We have not yet built the software for other operating systems than Linux. * The only currently supported user interface is via GNU Emacs (or our web demo). * Some features of the SML language are not parsed (the user will be notified if this is the case), and some type errors are not yet discovered (the user will need to rely on their usual type checker in these cases). Notable spots where the implementation is incomplete are functors (you can work around this by including signatures on functor applications), equality types, and fixity declarations. * We don't yet handle overloaded constants (for example 1 is always of type int). * The details of the SML basis library are incomplete (fortunately the user can add any additional details they are using). * The software does not currently scale well to very large programs (we are still improving this). It is currently suitable for small programs and use in teaching. * We have some known issues with context dependencies on long identifiers which yields wrong error reports.
Archive: http://groups.google.com/group/fa.caml/browse_thread/thread/a5f764b4b8f298b6#Gerd Stolpmann announced:
A first testing version of Ocamlnet 3 has been released: Ocamlnet-3.0test1 (download: http://download.camlcity.org/download/ocamlnet-3.0test1.tar.gz) The idea of this release is to make this version available to a larger audience for testing, and to allow everybody to check whether code using this library still works. It is not yet ready for production environments. List of major changes: * Port to Win32 (as outlined in the blog article http://blog.camlcity.org/blog/ocamlnet3_win32.html) * The new Rpc_proxy layer (as described in http://blog.camlcity.org/blog/ocamlnet3_ha.html) * Extensions of Netplex * New implementation of the Shell library for starting subprocesses * Uniform debugging with Netlog.Debug * Exception printers (Netexn) * Introduction of pollsets (Netsys_pollset); removal of Unix.select (i.e. more than 1024 file descriptors) * The netcgi1 library has been dropped in favor of netcgi2 There are also a lot of minor changes. Some of the changes are incompatible with code written for Ocamlnet 2. Testers are especially encouraged to check whether Ocamlnet 3 still works on all platforms, because a lot of new platform-specific code has been added. I mainly tested with Linux and the MinGW port for Win32. The library is not yet available via GODI. I'm working on this. More blog postings will follow describing the highlights. Please report results to firstname.lastname@example.org
Archive: http://groups.google.com/group/fa.caml/browse_thread/thread/1972c95b67cbb588#Pierre Weis announced:
The Caml Examples package is a large set of Caml example programs. Most of the programs are provided both in Objective Caml and in Caml Light. This new enhanced version of the Caml Examples package contains the complete set of examples from the book ``Le langage Caml'' in Objective Caml (and obviously also in Caml Light). You will also find numerous examples of GUI programs, in addition to a collection of games such as ``Le solitaire'', ``Sudoku'', ``Hanoi'', ``Showsort'', ``KB'' ... The package home page is at http://cristal.inria.fr/caml_examples/eng.html The tar balls are available here: http://cristal.inria.fr/caml_examples/ocaml-examples-3.11.tar.gz http://cristal.inria.fr/caml_examples/camllight-examples-0.82.tar.gz All constructive criticisms and propositions are warmly welcomed.
Archive: http://groups.google.com/group/fa.caml/browse_thread/thread/e56a35000893f2b8#Pierre Weis announced:
I'm glad to announce the availability of the 3.0.2 version of the CamlImages library, by Jun Furuse, François Pessaux, and Pierre Weis. This is a bug fix release. The software home page is: http://cristal.inria.fr/camlimages/eng.html Sources and documentation are available from: http://cristal.inria.fr/camlimages/camlimages-3.0.2.tgz ftp://ftp.inria.fr/INRIA/Projects/cristal/caml-light/bazar-ocaml/camlimages-3.0.2.tgz Contributions and comments are welcome. Pierre Weis & June Furuse CamlImages is an image processing library, which provides to the objective Caml programmer a lot of image processing functionality. CamlImages provides to the objective Caml programmer: ** basic functions for image processing and loading/saving various image file formats (hence providing a translation facility from format to format), ** an interface with the Caml graphics library allows to display images in the Graphics module screen and to mix them with Caml drawings, ** a freetype interface, integrated into the library: you can draw texts into images using any truetype fonts, ** a set of example programs, including gif animation, slide show, and a postscript converter to print images.
Thanks to Alp Mestan, we now include in the Caml Weekly News the links to the recent posts from the ocamlcore planet blog at http://planet.ocamlcore.org/. Hacking DDC.: http://www.mega-nerd.com/erikd/Blog/CodeHacking/DDC/hacking_ddc.html Ocamlnet-3.0test1: http://blog.camlcity.org/blog/ocamlnet3_test1.html jane street core 0.6.0 has arrived: http://upsilon.cc/~zack/blog/posts/2009/11/jane_street_core_0.6.0_has_arrived/ Change OCaml Graphics module to use modern X fonts: http://rwmj.wordpress.com/2009/11/12/change-ocaml-graphics-module-to-use-modern-x-fonts/ Jane Street OCamldocs now available: http://ocaml.janestcapital.com/?q=node/74
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.