Previous week Up Next week

Hello

Here is the latest OCaml Weekly News, for the week of August 30 to September 06, 2016.

  1. BuckleScript 1.0: readable JS backend for OCaml
  2. Two-year research engineer/postdoc position in evolutionary biology.
  3. Ocaml 4.04.0+beta2
  4. Other OCaml News

BuckleScript 1.0: readable JS backend for OCaml

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2016-08/msg00138.html

Hongbo Zhang announced:
We are glad to announce BuckleScript 1.0[1], a backend for the OCaml compiler
which emits JavaScript.

A simple example is available here:
https://github.com/bloomberg/bucklescript/#an-http-server

As examples of that vision, using BuckleScript, OCaml users can use Chrome Dev
Tools to debug OCaml code, while Javascript users can use OCaml libraries as
plain npm[2] packages.

The project is inspired by js_of_ocaml[3], its goal is to engage OCaml with
average JavaScript developers.

Documentation is available here:
http://bloomberg.github.io/bucklescript/Manual.html

Thanks -- Hongbo

[1]: https://github.com/bloomberg/bucklescript/
[2]: https://www.npmjs.com/
[3]: http://ocsigen.org/js_of_ocaml/
[4]: https://bloomberg.github.io/bucklescript/Differences-from-js_of_ocaml.html
      

Two-year research engineer/postdoc position in evolutionary biology.

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2016-09/msg00000.html

Philippe Veber announced:
The Convergenomix project is looking to hire an engineer or post-doc with
experience in C++ and OCaml for a 2 year contract at the University of Lyon 1.
The proposed work deals with the implementation of computational methods in
evolutionary biology, and it involves high performance computing, probabilistic
inference and models for genome evolution. Previous experience in computational
biology is not required (but would of course be a plus), and while the proposed
work mainly involves software development, it is also a great opportunity to
learn about biology and evolution.

The successful applicant will work within the ANR Convergenomix project, which
groups 4 labs all based in Lyon. Convergenomix aims to study convergent
evolution at the genome scale by developing and applying bioinformatic methods
in 3 different groups of animals. The laboratories involved in the Convergenomix
projects have generous resources for genomic analysis (scientific
high-performance computing, data management, training and support). They offer a
stimulating environment, with a rich spectrum of research activities in life
sciences, statistics and computational biology. The position will be located at
the LBBE.

For more information, contact us at convergenomix@univ-lyon1.fr or see the
project (http://lbbe.univ-lyon1.fr/convergenomix/) and lab
(https://lbbe.univ-lyon1.fr/?lang=en) websites.

Lyon is the second largest French city, is very well connected to other European
cities, is famous for its food, and offers a broad range of cultural and
recreational activities.

Application packages should include a letter of motivation, a curriculum vitae,
and the names and email addresses of two referees. Documents should be submitted
as a single PDF file to convergenomix@univ-lyon1.fr.
      

Ocaml 4.04.0+beta2

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2016-09/msg00005.html

Damien Doligez announced:
The release of OCaml 4.04.0 will take place in a few weeks. We have created a
second 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.04.0+beta2.tar.gz

and the compiler will soon be available as the "4.04.0+beta2" OPAM switch.

We want to know about all bugs. Please report them here:
 http://caml.inria.fr/mantis/bug_report_page.php

Happy hacking,

-- Damien Doligez for the OCaml team.

In addition to bug fixes, the main differences from beta1 are:

- restored the following primitives (GPR#596, GPR#772)
    %string_safe_set
    %string_unsafe_set
    caml_create_string
    caml_fill_string
- fixed the order of arguments given to the C linker
  (GPR#761, GPR#758, GPR#464, MPR#6475, MPR#5890)
      
Gabriel Scherer then said:
Between beta+1 and now, Damien and myself invested some amount of time
in checking the OPAM packages that fail to build on 4.04,
understanding the issue and fixing it (either in the packages or
upstream).

I was able to do that thanks to Fabrice Le Fessant's opam-builder
tool, which I think is a fantastic help for opam-repository quality
analysis:

  http://opam.ocamlpro.com/builder/html/report-full.html

(One non-intuitive thing about this output is that the big red "Deps"
square are actually not a very problematic things, the orange "Fail"
nodes are the things that really need to be fixed. In general
opam-builder is in need of some improvements and I'm sure any
contribution is welcome.)

Early adopters may have noticed that the previous 4.03 release was
rather painful: many third-party packages remained non-working on 4.03
for weeks or months after the release. I'm confident that this
beta-time quality-analysis work will make 4.04 a smooth release in
comparison. If you are interested in further discussion on these
upgrade pains, see the ocaml-platform thread:

  "Is it taking too long for OCaml software to become 4.03-compatible?
Would release process changes help?"
  http://lists.ocaml.org/pipermail/platform/2016-June/000671.html

Hopefully Fabrice will soon update the opam-builder servers to build
from 4.04+beta2 instead of 4.04+beta1; a large part of the remaining
4.04-only failures reported in the current output are fixed in beta2.

Many thanks to the many third-party upstreams that reacted quickly to
requests to improve compatibility by making new releases supporting
4.04. Thanks as well to Fabrice Le Fessant and Hongbo Zhang that did
the bulk of the work on those "main differences" implemented in beta2
to fix or limit breakage of the OCaml ecosystem introduced by some
4.04+dev changes, and to Damien Doligez that is investing an
impressive (and mostly invisible) amount of work into all aspects the
release process -- and has been for years.

If you are a package maintainer, you may want to check in the
opam-builder output that your package has at least a version that
builds correctly under 4.04 betas. If it is currently reported as
failing under beta1, it may build correctly on beta2.

In the long term, users should never experience a build failure when
trying to install a package. Non-building combinations should be ruled
out by the packaging constraints (on library dependencies or the
compiler version). If a release of your package fails to build for
some reason, whether or not you release a new version that does build,
please remember to update the old OPAM metadata to make the package
uninstallable instead of broken.
      
Fabrice Le Fessant then added:
Thanks Gabriel for your enthousiasm about opam-builder, and thanks Damien for
your hard work on 4.04 ! opam-builder is now running the new beta2:

http://opam.ocamlpro.com/builder/html/report-full.html
      

Other OCaml News

From the ocamlcore planet blog:
Here are links from many OCaml blogs aggregated at OCaml Planet,
http://ocaml.org/community/planet/.

SSH access to the forge: moving from port 22 to port 522
 http://forge.ocamlcore.org/forum/forum.php?forum_id=939

Unraveling of the tech hiring market
 https://blogs.janestreet.com/unraveling/

Do you love dev tools? Come work at Jane Street.
 https://blogs.janestreet.com/do-you-love-dev-tools-come-work-at-jane-street/

Formal proofs are not just deduction steps
 http://math.andrej.com/2016/08/30/formal-proofs-are-not-just-deduction-steps/
      

Old cwn

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.


Alan Schmitt