Previous week Up Next week


Here is the latest Caml Weekly News, for the week of October 23 to 30, 2012.

  1. OCaml-bitcoin 1.0
  2. Bolt 1.4 release
  3. opam and versions
  4. Other Caml News

OCaml-bitcoin 1.0


Dario Teixeira announced:
OCaml-bitcoin is a library offering an OCaml interface to the official
Bitcoin client API. It works by making JSON-RPC calls over the network
to a running Bitcoin daemon offering the client API. The project's
homepage can be found here:

Bitcoin has been a controversial subject, to say the least. With this
in mind, I've written a blog post that hopefully clarifies my view on
the subject. It also contains some technical information concerning
the implementation of OCaml-bitcoin:

To summarise: the release of this library should not be construed as
an unconditional support of Bitcoin in its current form. There is
enough potential in the idea, however, to warrant some guarded

Bolt 1.4 release


Xavier Clerc announced:
This post announces the 1.4 release of the Bolt project, whose goal is
to provide a comprehensive yet flexible logging framework for the
OCaml language.

Home page:

Main changes since 1.3:
- API change: introduction of modes, allowing to choose when data is written
- API change: updated support for Pajé format (version 1.2.3)
- support for '&&' and '||' in filters (new configuration format only)
- new 'minimal' layout using only message
- new 'bell' output writing the bell character on the standard output
- new 'say' output using MacOS X text-to-speech
- support for Growl under Windows
- bug#86: '-ocaml-prefix' doesn't really work
- bug#87: install shouldn't build anything
- bug#89: do not activate warnings by default
- bug#105: crashes with 'Not_found' when both BOLT_FILE and BOLT_CONFIG are not set
- bug#107: when using syntax extension with level NONE, preprocessed code

opam and versions


Jon Ludlam asked and Thomas Gazagnaire replied:
> For our purposes, we need to be able to ensure that our builds are
> reproducible, and hence need to know exactly which versions are installed.
> We had hoped to achieve this by removing or disabling packages whose
> sources were got directly from a master branch in github. However, it turns
> out that some packages that are 'stable' are dependent upon these packages,
> which seems brittle. The question is how to fix it? Should the opam
> repository maintainers require that 'stable' packages aren't dependent on
> 'unstable' ones? Should opam itself be aware of the difference and enforce
> this policy? If someone really wants to release a stable version of their
> thing and it's dependent upon an upstream project with only a github repo,
> should the developer engage the upstream devs and request at least a tag,
> or should they make their own tarball/github fork?

Before the 1.0 release my plan is:
* to remove the unstable packages in the main opam-repository (ie. every
packages should have a stable tarball with a fixed checksum) [1]
* add a way to specify commits/branches for unstable packages if needed. [2]

The current workaround is, as Anil pointed out, to clone opam-repository, use
'opam-mk-repo' at its root to generate a local mirror of,
and tell opam to add the local repository as a remote: 'opam remote -add
local /path/to/your/local/repository'

Then 'opam remote -list' should display the list of repositories and their
respective priority (higher is better). You can also tweak ~/.opam/repo/index
manually to tell opam to use your local repository only for some packages,
for instance the unstable ones (don't forget to run 'opam update' after
changing the index file).

For [1], I'm gladly accepting external contributions (for [2] as well
actually if someone really wants to hack into opam).



Other Caml News

From the ocamlcore planet blog:
Thanks to Alp Mestan, we now include in the Caml Weekly News the links to the
recent posts from the ocamlcore planet blog at

Bolt: 1.4:

How to Write a Simple Web Application Using Ocamlnet:

Caulking your distributed algorithm implementation:

Ocsigen HOWTO: call JS functions from OCaml:

Verifying a parser for a C compiler:


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