Hello
Here is the latest Caml Weekly News, for the week of December 28, 2010 to January 04, 2011.
Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2010-12/msg00267.html
Markus Mottl asked and Jacques Garrigue replied:> please consider the following code: > > ------------------- > module M = struct type t = A | B end > > module X : sig > (* type t = M.t = A | B *) > include module type of M > (* include module type of M with type t = M.t = A | B *) > end = struct include M end > > let () = assert (M.A = X.A) > ------------------- > > This will fail, because M.A is not of the same type as X.A. But I > would really like to make the types equivalent. > > Using the first commented out line instead of the module type > inclusion will succeed, but then I would not be able to automatically > include any functions potentially contained in module M. The last > commented out line won't work, because one cannot establish a type > equivalence via a manifest type definition after "with type". Even > if, I don't think one could override anything else but an abstract > type that way, and we are including a sum type here already. > > Does anybody have any suggestions for a workaround? I suspect this > may be a missing feature. Unfortunately there is no easy workaround using 3.12.0. Intuitively at least the 3rd line should work, but a bug prevents this. In 3.12.1, you should be able to write either the 3rd, or the simpler following version: include module type of M with type t = M.t This should solve your problem. Side note: the choice to make "include M" define "type t = A | B" rather than "type t = M.t = A | B" was done to allow more implementations (any module defining the same operations as M is allowed, rather than modules sharing the same representation for types.) But it resulted in not allowing the code you write here, which was not intentional.
Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2010-12/msg00298.html
Adrien Nader announced:I am pleased to announce the first public release of yypkg (Yellow Yeti Pkg), a fast, cross-platform package manager (yes, this includes windows). I am also pleased to announce the "mingw-builds" project, a port of the Slackware Linux build scripts (shell scripts) to allow cross-compilation to mingw(-w64) (gcc on windows). The most notable features of yypkg are portability, the ability to install anywhere in the filesystem hierarchy and the edition of libtool (.la) and pkg-config (.pc) files to make packages relocatable. Currently, all the packages are made with the mingw-builds. The list currently is: atk, cairo, expat, gdk-pixbuf, gettext, glib2, gtk+2, iconv, libjpeg, libpng, libtiff, pango, pcre, pixman, wget and zlib. All are 32bit libraries. There are no ocaml packages currently unfortunately. The corresponding triplet for these libraries is i686-w64-mingw32 and probably requires some explanations: "mingw32" doesn't imply 32bit and "w64" doesn't imply 64bit. The "32" from "mingw32" doesn't matter and "w64" means the toolchain has some features that have been brought by the mingw-w64 project as opposed to the mingw.org project. Only the first component matters for the bitness but do it's better not to mix packages with different triplets. And one warning: the packages aren't currently perfect. There are known issues and one in libgthread in particular. They're in beta but you can definitely try yypkg, help test, and complain about all the missing and broken features. ;-) You can get in touch through IRC: * on irc.freenode.net: #yypkg, #ocaml, #ocaml-fr * on irc.oftc.net: #mingw-w64 Homepage: http://yypkg.forge.ocamlcore.org/ Introduction tutorial: http://yypkg.forge.ocamlcore.org/tutorial/tutorial.html Screenshots: http://yypkg.forge.ocamlcore.org/screenshots/index.html Downloads: http://forge.ocamlcore.org/project/showfiles.php?group_id=145 mingw-builds' gitweb: http://gitweb.notk.org/ example build script: http://gitweb.notk.org/?p=slackware64-current.git;a=blob;f=slackware64-current/source/l/atk/atk.SlackBuild;hb=HEAD PS: Dependencies are: sexplib, fileutils, bsdtar with xz-support, wget, and lablgtk2 for the gui. PS: If you're wondering why not port apt/dpkg or rpm, compare writing ocaml to porting decade-old C (perl, sh, ...) code to a completely different platform. And the packages wouldn't magically become available. PS: But you can find good packages for cross-compilation to windows in fedora and opensuse, I think debian is a bit lagging but there is an effort. That doesn't really help other distributions and windows itself however.
Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2010-12/msg00299.html
Yaron Minsky announced:Jane Street is looking to hire functional programmers for our offices in New York, London and Hong Kong. We're looking for both interns for this upcoming summer as well as full-time hires. Jane Street has the largest team of OCaml developers in any industrial setting, and probably the world's largest OCaml codebase. We use OCaml for running our entire business, supporting everything from research to systems administration to automated trading systems. If you're interested in using OCaml to solve real-world problems, there's no better place. Compensation is more than competitive, and no prior experience with finance is required. Follow this link to apply: http://janestreet.com/apply And here are some resources you can use to learn more about Jane Street and what we do. - A talk I gave at CMU about how and why we use OCaml http://ocaml.janestreet.com/?q=node/61 - Our technical blog http://ocaml.janestreet.com - Our website http://janestreet.com
Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2010-12/msg00306.html
Sylvain Le Gall announced:Just a short message to inform you that the OCaml Forge is now using a brand new FusionForge version (5.1, not yet stable). There is a bunch of changes, described here: http://www.ocamlcore.com/wp/2010/12/ocaml-forge-has-been-upgraded/ Another big change, that I just have published, is an unified theme for: http://forge.ocamlcore.org http://planet.ocamlcore.org http://www.ocamlcore.org Feel free to report bugs and comments!
Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2010-12/msg00314.html
Xavier Clerc announced:This post announces the 1.0-alpha release of the Argot project. Argot is an enhanced HTML generator for ocamldoc, released under the GPL v3. Features: - stroked, underlined, and highlighted styles - image data inclusion - full table support (caption, headers, rows, and data) - token substitution - @typevar tag to document type variable - @unimplemented, @todo, @todoc, @docme, @fixme, @tofix tags for remaining work - @threadsafe, @threadunsafe tags for thread compatibility - @stateful tag for state-based functions - @attention, @bug, @error, @info, @new, @note, @remark, @warning tags Home page: http://argot.x9c.fr
Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2010-12/msg00315.html
Xavier Clerc announced:This post announces the 1.0-alpha release of the Mascot project. Mascot is a style-checker for Objective Caml sources, released under the GPL v3. Features: - customization of activated checks (and exceptions) by configuration files - code checks: overloading of builtin elements, useless constructs, deeply nested constructs, 'open' statements, magic numbers, complex conditions - documentation checks: presence of comments, and spellcheck - interface checks: empty interface, and number of exported elements - metrics checks: coupling, Halstead, and McCabe - miscellaneous checks: matching of regular expressions - typographic checks: spaces, tabulations, headers, and file/line lengths - support for CheckStyle, CSV, HTML, JDepend, bare text, and XML outputs - support for plugins (custom checks and outputs) Home page: http://mascot.x9c.fr
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/. The Dialectica interpertation in Coq: http://math.andrej.com/2011/01/03/the-dialectica-interpertation-in-coq/ ocaml-http-0.1.5 released: https://forge.ocamlcore.org/forum/forum.php?forum_id=762 filib: https://forge.ocamlcore.org/projects/filib/ okahep: https://forge.ocamlcore.org/projects/okahep/ yypkg 1.0.0-beta1 released: https://forge.ocamlcore.org/forum/forum.php?forum_id=761 Packrat parser with left recursion: http://rwmj.wordpress.com/2010/12/29/packrat-parser-with-left-recursion/ OCaml Forge has been upgraded: http://www.ocamlcore.com/wp/2010/12/ocaml-forge-has-been-upgraded/
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.