Hello
Here is the latest Caml Weekly News, for the week of December 04 to 11, 2012.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2012-12/msg00014.html
Hendrik Tews announced:I would like to announce the first release of otags reloaded for OCaml 4.00. It is available at http://askra.de/software/otags/ Otags reloaded generates tags tables for emacs and vi/vim. This version supports GADT's and does not compile with OCaml 3.12. Otags reloaded is distributed under GPL v3.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2012-12/msg00015.html
Anil Madhavapeddy announced:The ocaml.org machine infrastructure has been settling into place, and http://lists.ocaml.org is now available. This runs GNU Mailman, and has a single "infrastructure" list at the moment. This list is where we can discuss setting up the other services such as the continuous build regression testing and website, and integrating other services such as . If you are interested in helping out or simply following activities, please join: http://lists.ocaml.org/listinfo/infrastructure The server will be hosting more lists in the near future, which I will announce here. If you have a list you'd like to move to this server for your project, please get in touch. We can create private lists also if needed, although publicly archived ones are preferred. The look and feel of the lists installation is quite barebones at the moment. We'll improve the integration with www.ocaml.org once the rest is up and running smoothly.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2012-12/msg00017.html
Jérôme Vouillon announced:I'm happy to announce release 1.3 of Js_of_ocaml, a compiler from OCaml bytecode to Javascript. This release is compatible with OCaml 4.x. It adds WebSocket bindings and fixes a number of bugs. LINKS Project home page http://ocsigen.org/js_of_ocaml/ Download http://ocsigen.org/download/js_of_ocaml-1.3.1.tar.gz Get source code darcs get http://ocsigen.org/darcs/js_of_ocaml/ Documentation http://ocsigen.org/js_of_ocaml/manual/ DETAILED CHANGES * Features/Changes ** Runtime and toplevel updates to support OCaml 4.0 ** Add WebSocket bindings ** Added -debuginfo option to output source code location information (patch by Kensuke Matsuzaki) ** Dom_html: added change, input and hashChange event bindings * Bugfixes ** Fix array and string blitting with overlapping regions ** Url module: fix encoding of '+' ** Library: use 'this' instead of 'window' for better portability ** Dom_html: fix creation of elements with type or name attribute under IE 9 ** Compiler: small fix to bytecode parsing that could result in incorrect generated code ** Dom_html: fix mouse wheel event bindings ** Dom: fix the type of item methods ** Deriving_json: tail-recursive serialisation of lists (by Hugo Heuzard) ** Deriving_json: fix parsing of float arrays and polymorphic variants (by Hugo Heuzard)
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2012-12/msg00018.html
Gerd Stolpmann announced:the GODI project has now set up an experimental OASIS-DB import. This means that packages submitted to OASIS-DB appear as normal GODI packages in godi_console, and can be managed in the normal way. We are now importing nightly into a separate repository that needs to be activated. Find the instructions (and a number of FAQ) here: http://godi.camlcity.org/godi/oasis.html Remember that OASIS packages are not QA-checked, and as a result many packages still fail to build. This often has trivial reasons (like that the build is ok, but the documentation fails). I hope to hear your comments on this. Also, any comment on user experience is very welcome.Sylvain Le Gall replied and Gerd Stolpmann said:
> Some answer: > - the OASIS package ignores the --destdir: > > There is an open bug for that > https://forge.ocamlcore.org/tracker/index.php?func=detail&aid=718&group_id=54&atid=291 > > Please read and comment. I just decided to let ocamlfind decide the > destdir. You can use ocamlfind env var to override this. I'm doing this already, and it works well. Nevertheless, there are some remaining destdir problems, e.g. when executables are installed in the wrong place. I guess this is difficult to enforce technically (unless you use something like the Gentoo sandbox, but this is very non-portable). > Although, since the problem appears even with findlib guru, I am > willing to fix the bug to take into account DESTDIR everywhere. > > - missing QA > > That is a work in progress. I setup a jenkins instance in order to run > QA test (http://deci.ovh.le-gall.net:8080/). If you have some basic > configuration for that, feel free to contact me. Good to hear that. I've also plans to include the oasis packages into my autobuilder. Btw, some of the issues can be easily caught at package upload time. E.g. I've seen a number of tarballs which weren't properly gzip-compressed. Others did not contain an _oasis file, or it was not parseable. > > Although, here are my idea concerning the topic > > - we should always run "oasis setup" before building. This will > enforce having the latest setup.ml generated and not some random old > piece of code. I made a lot of effort to be able to have backward > compatibility on _oasis (i.e supporting OASISFormat: 0.2 and 0.3), let > take advantage of this Ok, I can make this the default. > > - where can I find the specific code to handle oasis + GODI. I would > like to have a closer look. It's a bit spread over several repositories: The script to convert an OASIS tarball to a GODI Makefile is here: https://godirepo.camlcity.org/wwwsvn/godi-tools/trunk/console-src/godi_oasis_import?rev=1120&root=godi-bootstrap&view=auto In order to convert findlib names to GODI packages, it uses a web service (similar to the one we agreed upon some time ago, but I modified it): https://godirepo.camlcity.org/openapps/autoquery.cgi?q=findlib&l=findlibname It returns possible resolutions from both the autobuilder, and from my OASIS scan (section="oasis-import"). This CGI is quite boring: https://godirepo.camlcity.org/wwwsvn/trunk/src/autobuild/autoquery.ml?rev=221&root=app-camlcityd&view=auto It only takes the data from a prepared db table. The OASIS data is put into this table with this program: https://godirepo.camlcity.org/wwwsvn/trunk/src/autobuild/import_oasisdb.ml?rev=217&root=app-camlcityd&view=auto For most of its work, it uses the official API. The API does not return the findlib libraries, though, but they are shown on the webpage, so I get the libraries from there (i.e. Could you include the libs in API 0.2?)
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2012-12/msg00024.html
Bob Zhang announced:I have collected some notes on the compiler internals, currently mainly on typing/ parsing/ and driver/ directory in ocaml compiler. (https://github.com/bobzhang/ocaml-book/tree/master/compiler) Since ocaml 4 has exported the whole compiler as a library, it may not be just learning, you really can do something useful without patching the compiler.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2012-12/msg00029.html
Benedikt Becker announced:we are celebrating Ada's birthday by bringing out a major update of Eliom - the advanced framework for client/server web applications in OCaml - and some minor updates for Ocsigenserver and Tyxml. Here is a list of major new features (and short code snippets can be found at the end of this email): * The tightest integration of client value within the server code ever made possible in a major statically typed programming language [1] * Easy access to top-level server values - and (Lwt-)functions - from within the client code [2] * Access to other users' states of Eliom references * Improved support of Eliom's source files in the compilation tools eliom{c,opt,dep} * A new tool, eliom-destillery, for creating basic projects fast & easy The manual, a cheat-sheet, a comprehensive tutorial, and the API-documentation of the various Ocsigen projects are available on * http://ocsigen.org The probably simplest and most generic way to install Eliom is by using OPAM. But also Debian packages are already available (in experimental, thanks Stéphane!), Gentoo-ebuilds are on their way, the Ocsigen-bundle is still at hand, and the archives can be found at * http://ocsigen.org/eliom/install And maybe you may want to become social with us on * https://twitter.com/ocsigen * https://plus.google.com/u/0/105890612060116987398/posts * https://www.facebook.com/pages/Ocsigen/289974521051526 Enjoy! -- The Ocsigen-team [1] {server{ (* This marks server-side code *) let value_history_on_client = {ref string{ ref [] }} (* A client value within the server code *) let _ = My_app.register_service ~path ~get_params (fun value () -> (* Push the GET parameter to the client's history a side effect *) ignore {unit{ %value_history_on_client := %value :: ! %value_history_on_client }}; Lwt.return html) }} [2] {server{ let f = server_function Json.t<string> (fun x -> Printf.eprintf "Client says: %s\n%!" x; Lwt.return ()) }} {client{ (* This marks client-side code *) (* %f makes the server's value f, a client-ready server function, available in the client code *) ... %f "hello!" ... }}
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2012-12/msg00031.html
Dario Teixeira asked and Thomas Gazagnaire replied:> How does one create a fresh repository with OPAM? The documentation has > plenty > of examples of cloning existing repos, but what I want is to start an empty > one on the > local filesystem. Does the OPAM tool have some option for this, or is one > supposed > to do it "by hand", ie, create a filesystem structure that mimics existing > repos? If you want to start an empty local repository in /foo/bar, just run: $ opam remote local /foo/bar (you can replace 'local' by any other name in the previous commands, it's just a way to identify the repository) After that, you can: * either populate it incrementally by adding the usual '/foo/bar/packages/NAME.VERSION/{opam,url,descr}' for package descriptions and '/foo/bar/compilers/VERSION+NAME.comp' for compiler description. Don't forget to update your repository by doing 'opam update local' to take these changes into account; or * use 'opam upload'. This is however not yet tested as well as the first solution. If you use it and found some issues, please do not hesitate to fill a bug.
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.ocaml.org/. Canswer: https://forge.ocamlcore.org/projects/canswer/ Ocsigen Eliom 3.0 released: http://ocsigen.org/ Verifying a parser for a C compiler (continued): http://gallium.inria.fr/~scherer/gagallium/verifying-a-parser-for-a-c-compiler-2/index.html Ocsigen Js_of_ocaml 1.3 released: http://ocsigen.org/ Emancipate yourself from LTac: Your first Coq plugin: http://gallium.inria.fr/~scherer/gagallium/your-first-coq-plugin/index.html
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.