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

Alan Schmitt alan.schmitt at polytechnique.org
Tue Dec 21 02:09:53 PST 2010


Hello,

Here is the latest Caml Weekly News, for the week of December 14 to 21, 2010.

1) Atdgen/Biniou with support for cyclic values
2) Other Caml News

========================================================================
1) Atdgen/Biniou with support for cyclic values
Archive: <http://groups.google.com/group/fa.caml/browse_thread/thread/43f587e4732e33d2#>
------------------------------------------------------------------------
** Martin Jambon announced:

Atdgen is a tool that produces OCaml serializers and deserializers from
type definitions in the ATD syntax.  Two serialization formats are
supported:  JSON and Biniou.  For more information on the project, see

 <http://martin.jambon.free.fr/atd-biniou-intro.html>

The main highlight of this release (1.1.0) is support for sharing, which
allows the serialization of cyclic values such as graphs.  Sharing is
currently supported for the Biniou format only and requires extra
wrapping using type ref for non-record types.

The other new features are listed here:

 <http://oss.wink.com/atdgen/atdgen-1.1.0/Changes.txt>


Example:

$ cat cycle.atd
type shared_node = node shared (* sharing point *)

type node = {
 label : string;
 self : shared_node;
}

$ cat test_cycle.ml
open Cycle

let () =
 let rec a = { label = "A"; self = a } in
 let s = string_of_shared_node a in
 Printf.printf "%i %S\n" (String.length s) s;
 let a' = shared_node_of_string s in
 assert (a != a');
 assert (a == a.self);
 assert (a' == a'.self);
 print_endline "Success"

$ atdgen cycle.atd
$ ocamlfind opt -o test_cycle \
   graph.mli graph.ml test_cycle.ml \
   -package atdgen -linkpkg
$ ./test_cycle
17 "\026\000\021\002\239\175\r\244\018\001A\204P\139\140\026\015"
Success


Dissection of the serialized value:

 \026 shared_tag
 \000 0 indicates that the value follows

 \021 record_tag
 \002 field count
   \239\175\r\244 hash("label")
     \018 string_tag
     \001 string length
     A    string contents
   \204P\139\140 hash("self")
     \026 shared_tag
     \015 find value 15 bytes backward

The Biniou format is fully described here:

 <http://martin.jambon.free.fr/biniou-format.txt>



Home of each project:

 <http://martin.jambon.free.fr/biniou.html>
 <http://martin.jambon.free.fr/yojson.html>
 <http://oss.wink.com/atd/>
 <http://oss.wink.com/atdgen/>


Non-interactive installation with Godi:

$ godi_console update
$ godi_console perform -build godi-atdgen


Each of these four projects are distributed under a BSD license.

Biniou (c) 2010 Martin Jambon
Yojson (c) 2010 Martin Jambon
Atd (c) 2010 MyLife
Atdgen (c) 2010 MyLife
      
========================================================================
2) 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 <http://planet.ocamlcore.org/>.

optimising texsearch : memory usage:
  <http://scattered-thoughts.net/one/1292/752863/348678>

Tip: libguestfs API: Get the mounted device from a path:
  <http://rwmj.wordpress.com/2010/12/17/tip-libguestfs-api-get-the-mounted-device-from-a-path/>

Guest filesystem browser update 5:
  <http://rwmj.wordpress.com/2010/12/16/guest-filesystem-browser-update-5/>

efuns:
  <https://forge.ocamlcore.org/projects/efuns/>

Ruby is my work language:
  <http://www.sairyx.org/2010/12/ruby-is-my-work-language/>

OCurl cache manager:
  <https://forge.ocamlcore.org/projects/ocurl-cache/>
      
========================================================================
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