Previous week Up Next week

Hello

Here is the latest OCaml Weekly News, for the week of May 06 to 13, 2014.

  1. ucorelib 0.1.0
  2. First official release of ACPC, a ligand-based virtual screening tool
  3. Other OCaml News

ucorelib 0.1.0

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2014-05/msg00058.html

Yoriyuki Yamagata announced:
I am pleased to announce the release of ucorelib, a new Unicode
library for OCaml. ucorelib provides Unicode character type, Unicode
text type (internally ropes), and decoder/encoder of UTF-8, UTF-16,
UTF-32.

Main page: https://github.com/yoriyuki/ucorelib
Release page: https://github.com/yoriyuki/ucorelib/releases/tag/v0.1.0 

ucorelib provides

1. An abstract data type for Unicode character. This prevents you to
create illegal Unicode characters, so it is safer than just using
integers of Unicode characters.

2. An abstract text data type, internally implemented as ropes. All
interface to Text module are purely functional.

3. Code converter from/to UTF-8, UTF-16, UTF-32

By the way, I am looking for someone who can collaborate with me.
Specifically, I am looking for 

1. OCaml build system guru
2. OCaml syntax extension guru, to propose a syntax extension for
Unicode.
3. XML guru, to make a parser for LDML, Locale Data Markup Language. 
      
Peter Zotov then asked and Yoriyuki Yamagata replied:
> Any properties of your library notwithstanding, what are the reasons for
> development of yet another OCaml unicode library? There are:
> 
>   * Uutf+Uucd
>   * Camomile
>   * ocaml-text
>   * ucslib[1]
> 
> I can believe that there are good reasons for doing so, I'm just curious
> what they are.
> 
> [1]: https://github.com/pippijn/ucslib

ucorelib will (hopefully) be a succeser of Camomile. Camomile has many
functionalities which are not always necessary. ucorelib has only
basic functionalities and advanced features will be provided in
separate libraries.

For other libraries, my complaint is that they expose internal
representations of Unicode characters and texts. This is convinient
for now, but unsafe and not conceptually clean.
      
Daniel Bünzli also replied:
> * Uutf+Uucd

Note, Uucd won't bring you efficient access to character properties,
it just parses the Unicode XML character database [1] and presents its
data to you as OCaml datatypes. I do have something in preparation for
exposing efficient access to a selection of properties but it's not
ready at the moment.

Best,

Daniel

[1] http://www.unicode.org/reports/tr42/
      
malc also replied to the original question:
Not a guru by any stretch but i do have a translation of Tor Anderssons'
XML parser into OCaml, if nothing else it's small and can be easily
embedded into any any code base, main/only benefit is that is small (it
lacks everything else).

http://repo.or.cz/w/llpp.git/blob/HEAD:/parser.ml
      
Andrew Herron said and Daniel Bünzli replied:
> It’s a bit old but I found xml-light to be a nice dead simple parser.
> It and some others are listed on the somewhat out of date camp hump page:
> http://caml.inria.fr/cgi-bin/hump.en.cgi?sort=0&browse=49

I highly suggest *not* to use xml-light if you don't have control over
the xml you input. It's not standard compliant by any means and the
day you get a file that cannot be parsed you (or the users of your
tools) won't be happy. AFAIK pxp or xmlm are the only pure OCaml
standard compliant alternatives that exist.
      
Daniel Bünzli later added:
Note however that xmlm may not be the easiest interface to work with,
it was designed so that if you need to efficiently extract data from
that fundamentally inefficient format, you get a chance to, in bounded
memory.

It has always been my hope that someone else would devise higher-level
xquery like combinators on top of it, but that never really
materialized. That is until recently, it seems there is now ezxmlm [1]
that tries to fill that void (never used it, but it's an opam install
away).

Best,

Daniel

[1] https://github.com/avsm/ezxmlm
      

First official release of ACPC, a ligand-based virtual screening tool

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2014-05/msg00068.html

Francois Berenger announced:
I am very pleased to announce the first official release of ACPC.

ACPC is an open source tool for ligand-based virtual screening
(a chemoinformatics task), using autocorrelation of partial charges.

It is, of course, available in OPAM:
$ opam install acpc

On the OCaml side of things, ACPC uses
- batteries as its standard library
- parmap for parallelization (in case several queries are run against
  the same "database" of molecules)
- dolog (a lazy logger)
- obuild for compilation
(cf. https://github.com/UnixJunkie/ACPC/blob/master/acpc.obuild for
the neat build description obuild allows)

A very short documentation with some usage examples is available
here:
https://github.com/UnixJunkie/ACPC/blob/master/README.md

The scientific article is freely available here:
http://www.jcheminf.com/content/6/1/23/abstract

The source code is here:
https://github.com/UnixJunkie/ACPC

The dataset used to validate the software is here:
http://www.riken.jp/zhangiru/software/DUD_ACPC_1.0_validation.tar.xz

The funny logo was kindly created by my colleague, Dr. Arnout Voet.
      

Other OCaml News

From the ocamlcore planet blog:
Thanks to Alp Mestan, we now include in the OCaml Weekly News the links to the
recent posts from the ocamlcore planet blog at http://planet.ocaml.org/.

2014 CUFP Call for Tutorials:
  http://cufp.org/news/2014/2014-cufp-call-tutorials-0

Better namespaces through module aliases:
  https://blogs.janestreet.com/better-namespaces-through-module-aliases/

Coq 8.4pl4 is out:
  http://coq.inria.fr/coq-84pl4-is-out

OCaml 4.01.0 bug fix build online:
  http://wodi.forge.ocamlcore.org/2014/05/10/bugfix-release.html

New Cambridgian summer:
  http://erratique.ch/software/react

Extension Points, or how OCaml is becoming more like Lisp:
  https://blogs.janestreet.com/extension-points-or-how-ocaml-is-becoming-more-like-lisp/

Welcome to the summer Mirage hackers:
  http://openmirage.org/blog/welcome-to-our-summer-hackers

Seemingly impossible proofs:
  http://math.andrej.com/2014/05/08/seemingly-impossible-proofs/
      

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