OCaml Weekly News

Previous Week Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of September 25 to October 02, 2018.

Table of Contents


Dune 1.3.0

Rudi Grinberg announced

It is my pleasure to announce the release of Dune 1.3.0. This release does not contain many features, but it does contain a few important bug fixes. Everyone is encouraged to upgrade.

Happy Hacking.

1.3.0 (23/09/2018)

  • Support colors on Windows (#1290, @diml)
  • Allow dune.configurator and base to be used together (#1291, fix #1167, @diml)
  • Support interrupting and restarting builds on file changes (#1246, @kodek16)
  • Fix findlib-dynload support with byte mode only (#1295, @bobot)
  • Make dune rules -m output a valid makefile (#1293, @diml)
  • Expand variables in (targets ..) field (#1301, #1320, fix #1189, @nojb, @rgrinberg, @diml)
  • Fix a race condition on Windows that was introduced in 1.2.0 (#1304, fix #1303, @diml)
  • Fix the generation of .merlin files to account for private modules (@rgrinberg, fix #1314)
  • Exclude the local opam switch directory (_opam) from the list of watched directories (#1315, @dysinger)
  • Fix compilation of the module generated for findlib.dynload (#1317, fix #1310, @diml)
  • Lift restriction on copy_files and copy_files# stanzas that files to be copied should be in a subdirectory of the current directory. (#1323, fix #911, @nojb)

llpp v29

moosotc announced

New version of llpp (tagged v29) is now available at:

Blurb

llpp is a graphical PDF pager, which aims to superficially resemble less(1)

Changes (relative to v28(aka llipposuction))

  • Make things build with macOS 10.14
  • Ensure that things build/work with mupdf 1.14.0-rc1
  • Cosmetics

Jupyter – a better UTop?

nil announced

I recently figured out how to get an alternative REPL which has some things that UTop doesn't. It's the Jupyter console, which runs in a terminal (and is less well-known than the Jupyter notebook).

Here's how to set it up:

  • install jupyter by a method that works for your OS.
  • opam install jupyter
  • set up ocaml as a kernel for jupyter, as explained in the package doc: jupyter kernelspec install --name ocaml-jupyter "$(opam config var share)/jupyter"
  • in jupyter kernelspec list find the new kernel directory and edit the JSON file there, for instance to include a custom .ocamlinit. In mine I added #use topfind;;
  • enable vi edit mode by echo "c.ZMQTerminalInteractiveShell.editing_mode='vi'" >> ~/.jupyter/jupyter_console_config.py (entirely non optional ;) )

Then start your new REPL by jupyter console --kernel=ocaml-jupyter. Thanks to the cool ocaml jupyter package it will use Merlin to autocomplete and it will have a vi mode! You can also use various editor plugins to send code cells to the kernel directly from an editing buffer. Right now, it's missing the UTop.set_create_implicits but that not a huge problem. Overall, pretty neat in my book!

Carmelo Piccione replied

Interesting!

As a (k)ubuntu linux user at least, I had to add --user to step #3 to avoid running as sudo. I also had to manually create the ~/.jupyter directory before running the echo command.


ocamlearlybird 0.1.0 - make OCaml debugging less sucks

文宇祥 announced

I'm happy to announce the first release of ocamlearlybird.

ocamlearlybird is a debug adapter purely written in OCaml. Currently it has these features:

  • Auto discover sources heuristically
  • Line breakpoints and column breakpoints
  • Basic next , step in , step out and continue commands
  • Inspect stack frames, local variables, closure variables and global variables

You can use ocamlearlybird in VS Code by install ocaml-debugger extension.

46250923-fbd51c00-c477-11e8-9feb-73e1265df899.gif

Enjoy!

Christian Lindig asked and 文宇祥 replied

> Could you talk a bit about how it works?

It use env CAML_DEBUG_SOCKET and debugger.h to talk to the debugger in vm.

> Does it work with native code?

It only work with bytecode with debug information - compiled with -g option.

> How does it hook into the execution of a program?

Mostly same as the ocamldebug's implementation


Ocaml Github Pull Requests

Gabriel Scherer and the editor 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.


Other OCaml News

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.