Previous week Up Next week

Hello

Here is the latest OCaml Weekly News, for the week of June 14 to 21, 2016.

  1. Merlin 2.5.0 with OCaml 4.03.0 support
  2. About contributions to the Standard Library
  3. Ocaml Github Pull Requests
  4. Other OCaml News

Merlin 2.5.0 with OCaml 4.03.0 support

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2016-06/msg00068.html

Frédéric Bour announced:
Merlin is an editor-independent tool to ease the developement of programs in
OCaml. It aims at providing features available in modern IDEs such as: "as you
type" error reporting, auto completion, source browsing ("jump to definition"),
extraction of type, ...

Merlin is available on opam and can be installed with `opam install merlin`. It
can also be built from sources, available at
https://github.com/the-lambda-church/merlin .

As always you can find a full changelog at
https://github.com/the-lambda-church/merlin/blob/master/CHANGELOG , but the
highlights are:

- Most notable is support for 4.03 and 4.02.
  Older versions are dropped.

- Patches on OCaml frontend were rewritten from scratch.
  Behavior of typechecker and ppx extensions should be closer to the compiler.

- Introduction of an infrastructure for plugging custom preprocessors.
  This feature is currently being used for Reason[1] support.

# Editor support

*Emacs*, *Vim* and *NeoVim* are directly supported.
This version introduces support for Vim built with python 3.

*Sublime Text* plugin is contributed by [2].

*Visual Studio Code* extension is contributed by [3].

Multiple contributions are offering *Atom* support.
See [4] for more information.

Many thanks to all contributors, including Anton Bachin, Benjamin San Souci,
Chris Konstad, Hackwaly, Jordan Walke, Mario Rodas and Rudi Grinberg. We also
thank JaneStreet for their continued support.

[1]: http://facebook.github.io/reason
[2]: https://github.com/cynddl/sublime-text-merlin
[3]: https://marketplace.visualstudio.com/items?itemName=hackwaly.ocaml
[4]: https://github.com/the-lambda-church/merlin/wiki/atom-from-scratch
      

About contributions to the Standard Library

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2016-06/msg00089.html

Damien Doligez announced:
Dear Ocaml contributors and users,

I would like to call to your attention the section below,
which was recently added to the CONTRIBUTING.md file in the
OCaml source repository.

Have a nice day,

-- Damien


## Contributing to the standard library

Contributions to the standard library are very welcome.  There is some
widespread belief in the community than the stdlib is somehow "frozen"
and that its evolutions are mostly driven by the need of the OCaml
compiler itself.  Let's be clear: this is just plain wrong. The
compiler is happy with its own local utility functions, and many
recent additions to the stdlib are not used by the compiler.

Another common and wrong idea is that core OCaml maintainers don't
really care about the standard library.  This is not true, and won't
be unless one of the "alternative standard" libraries really gains
enough "market share" in the community.

So: please contribute!

Obviously, the proposals to evolve the standard library will be
evaluated with very high standards, similar to those applied to the
evolution of the surface langage, and much higher than those for
internal compiler changes (optimizations, etc).

A key property of the standard library is its stability.  Backward
compatibility is not an absolute technical requirement (any addition
to/of a module can break existing code, formally), but breakage should
be limited as much as possible (and assessed, when relevant).  A
corollary is that any addition creates a long-term support commitment.
For instance, once a concrete type or function is made public,
changing the exposed definition cannot be done easily.

There is no plan to extend dramatically the functional domain covered
by the standard library.  For instance, proposals to include support
for XML, JSON, or network protocols are very likely to be rejected.  Such
domains are better treated by external libraries.  Small additions to
existing modules are much simpler to get in, even more so (but not
necessarily) when:

  - they cannot easily be implemented externally, or when
  - they facilitate communication between independent external
    libraries, or when
  - they fill obvious gaps.

Of course, standard guidelines apply as well: proper documentation,
proper tests, portability (yes, also Windows!), good justification for
why the change is desirable and why it should go into stdlib.

So: be prepared for some serious review process!  But yes, yes,
contributions are welcome and appreciated.  Promised.
      

Ocaml Github Pull Requests

Gabriel Scherer compiled this list:
Here is a sneak peek at some potential future features of the Ocaml
compiler, discussed by their implementers in these Github Pull Requests.

make string/bytes distinguishable in the underlying compiler implementation
https://github.com/ocaml/ocaml/pull/596

Unboxed types
https://github.com/ocaml/ocaml/pull/606

Whole program dead code elimination
https://github.com/ocaml/ocaml/pull/608

Array data types
https://github.com/ocaml/ocaml/pull/616
      

Other OCaml News

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

Generic mappings over pairs
 http://blog.shaynefletcher.org/2016/06/generic-mappings-over-pairs.html

Merlin 2.5.0 released with OCaml 4.03.0 support
 https://ocaml.io/w/Blog:News/Merlin_2.5.0_released_with_OCaml_4.03.0_support

The real numbers in homotopy type theory (CCA 2016 slides)
 http://math.andrej.com/2016/06/15/the-real-numbers-in-homotopy-type-theory-cca-2016-slides/

forge.ocamlcore.org and related websites unstable
 http://forge.ocamlcore.org/forum/forum.php?forum_id=934
      

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