[cwn] Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt alan.schmitt at polytechnique.org
Tue May 13 04:50:49 PDT 2014


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

========================================================================
1) 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>
      
========================================================================
2) 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.
      
========================================================================
3) 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
(alan.schmitt at polytechnique.org) and I'll mail it to you, or go take a look at
the archive (<http://alan.petitepomme.net/cwn/>) or the RSS feed of the
archives (<http://alan.petitepomme.net/cwn/cwn.rss>). If you also wish
to receive it every week by mail, you may subscribe online at
<http://lists.idyll.org/listinfo/caml-news-weekly/> .

========================================================================



More information about the caml-news-weekly mailing list