Hello
Here is the latest OCaml Weekly News, for the week of February 14 to 21, 2017.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2017-02/msg00096.html
Damien Doligez announced:The release of OCaml 4.05.0 will take place in a few weeks. We have created a beta version to help you adapt your software to the new features ahead of the release. The source code is available at this address: https://github.com/ocaml/ocaml/archive/4.05.tar.gz and the compiler is also available as the "4.05.0+beta1" and "4.05.0+beta1+flambda" OPAM switches. We want to know about all bugs. Please report them here: http://caml.inria.fr/mantis/bug_report_page.php
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2017-02/msg00098.html
Sébastien Hinderer announced:Sorry, the beta release for OCaml 4.05 that has just been published has the bug that it does not install ocamlyacc. This is due to an omission in PR #1033(*). The bug has already been fixed by PR #1048(**) in OCaml's GitHub repository, but a new release should be announced in the coming days. Sorry for any inconvenience, Sébastien. (*) http://github.com/ocaml/ocaml/pull/1033 (**) http://github.com/ocaml/ocaml/pull/1048
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2017-02/msg00113.html
octachron announced:It is my pleasure to announce the release on opam of codept's first alpha version: codept is a dependency analyzer for OCaml projects and an alternative to ocamldep: https://github.com/Octachron/codept . Compared to ocamldep, codept major features are: − whole project analysis − extensive warning and error messages − uniform handling of delayed alias dependencies (aka "-no-alias-deps") − experimental full dependencies, when dependencies up to transitive closure are not precise enough Both ocamldep and codept compute an over-approximation of the dependency graph of OCaml projects. However, codept uses whole project analysis to reduce the number of fictitious dependencies inferred at the project scale, whereas ocamldep is, by design, limited to local file-by-file analysis. Consequently, bugs notwithstanding, codept computes an exact dependency graph in any situation that does not involve unknown external modules or first class modules, and is still reliable in some standard use cases of first class modules. Moreover, codept will emit warning messages any time it encounters a source of potential inaccuracies in the dependency graph, thus ensuring that computed dependencies are always exact in the absence of warning messages. Another important point is that codept's whole project analysis feature makes it possible to handle uniformly the delayed dependency aspect of module aliases introduced by the "-no-alias-deps" option. At last, in situation where dependencies up to transitive closure are not precise enough, codept's experimental "-expand-deps" option can track more precisely type aliases induced dependencies, making it easier to track all cmi files required to compile a given file for instance. Basic performance measures indicate that the average time increase when compared to ocamldep.opt ranges between 10% to 50%. Codept can be used directly as a drop-in replacement to ocamldep. However, to be fully effective codept needs to be feed information on the whole project. Consequently, some build systems require some adaptations. As a first step, codept is distributed with an ocamlbuild plugin subpackage that adapts ocamlbuild dependency computation to codept's needs. Integration with other build tools is still a work in progress. More information is available at https://github.com/Octachron/codept .Gerd Stolpmann then said:
This is really great. I'm now using more and more packed libraries, and hence nested modules are much more frequent, and I think ocamldep is no longer good enough in this world. I figured out that you can often switch to codept using OCAMLFIND_COMMANDS="ocamldep=codept" make when ocamldep is invoked via ocamlfind. My first testing results are positive. Thanks for this huge contribution.
Here is a sneak peek at some potential future features of the Ocaml compiler, discussed by their implementers in these Github Pull Requests. - A new check that 'let rec' bindings are well formed https://github.com/ocaml/ocaml/pull/556 - Use _mkgmtime64 instead of _mktime64 to implement Windows Unix.stat https://github.com/ocaml/ocaml/pull/861 - Ocamldep: -shared option https://github.com/ocaml/ocaml/pull/1045 - Add functions Unix.timegm and Unix.timelocal https://github.com/ocaml/ocaml/pull/1046
Here are links from many OCaml blogs aggregated at OCaml Planet, http://ocaml.org/community/planet/. Conex, establish trust in community repositories https://hannes.nqsb.io/Posts/Conex Who maintains package X? https://hannes.nqsb.io/Posts/Maintainers Jane Street Tech Talks: Verifying Puppet Configs https://blogs.janestreet.com/jane-street-tech-talks-verifying-puppet-configs/ Ezirmin : An easy interface to the Irmin library http://kcsrk.info/ocaml/irmin/crdt/2017/02/15/an-easy-interface-to-irmin-library/ ANN: parallpairs http://examachine.net/blog/ann-parallpairs/
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.