post about gzip into batteries included
authorStefano Zacchiroli <zack@upsilon.cc>
Sun, 2 Nov 2008 21:35:45 +0000 (22:35 +0100)
committerStefano Zacchiroli <zack@upsilon.cc>
Sun, 2 Nov 2008 21:35:45 +0000 (22:35 +0100)
blog/posts/2008/10/ocaml_batteries_included_debian_packages.mdwn
blog/posts/2008/11/ocaml_batteries_gzip.mdwn [new file with mode: 0644]
tags/batteries.mdwn [new file with mode: 0644]

index b90bfcf..e8ab042 100644 (file)
@@ -32,4 +32,4 @@ my laptop to build). You can reuse the `-doc` package I've built,
 which is `arch: all`, to rebuild only the `-dev` part unpack the
 source package and do `fakeroot debian/rules binary-arch`.</small>
 
-[[tag lang/english planet/debian ocaml debian]]
+[[tag lang/english planet/debian ocaml debian batteries]]
diff --git a/blog/posts/2008/11/ocaml_batteries_gzip.mdwn b/blog/posts/2008/11/ocaml_batteries_gzip.mdwn
new file mode 100644 (file)
index 0000000..d7976ce
--- /dev/null
@@ -0,0 +1,48 @@
+# OCaml batteries, now with GZip-ed channels
+
+This week-end I've spent some time to kick-start my hacking onto
+[OCaml Batteries Included](http://batteries.forge.ocamlcore.org/)
+(yes, it deserve a proper website).
+
+[[Last time I wrote about it|10/ocaml_batteries_included_debian_packages]]
+was with my package maintainer hat on. In the meantime I've got
+trapped`^W`involved with upstream development as well, after having
+been so fool to propose integration with [Batteries' I/O
+channels](http://batteries.forge.ocamlcore.org/doc.preview/batteries-alpha1/batteries/html/api/System.IO.html)
+of compression/decompression libraries.
+
+Well, here are the first tiny teeny results:
+
+        # open Batteries.System;;
+        # let i = File.open_in "/tmp/fstab.gz";;
+        val i : InnerIO.input = <abstr>
+        # let i2 = GZip.uncompress i;;
+        val i2 : InnerIO.input = <abstr>
+        # IO.read_line i2;;
+        - : string = "# /etc/fstab: static file system information."
+        # IO.read_line i2;;
+        - : string = "#"
+        # (* same goes for output of course *)
+
+i.e., no matter how you created an I/O channel (and with Batteries you
+can create it out of *a lot* of entities), you can apply a `gzip`
+compress/decompress filter.
+
+The underlying library is
+[Camlzip](http://caml.inria.fr/cgi-bin/hump.en.cgi?contrib=84), which
+also sets a precedent on how to integrate external libraries into
+Batteries properly.
+
+The code is not released yet (hey, Batteries is still alpha!), but is
+available from the [Git
+repo](http://git.ocamlcore.org/cgi-bin/gitweb.cgi?p=batteries/batteries.git;a=summary),
+([zack/compress
+branch](http://git.ocamlcore.org/cgi-bin/gitweb.cgi?p=batteries/batteries.git;a=shortlog;h=refs/heads/zack/compress)).
+
+Next milestone: `bzip2` ... of course with the same interface, so that
+changing (de)compressor will be as easy as `s/GZip/BZip2/g` in the
+code above.  `tar` and `zip` will come next (but with different
+interfaces, as old *nix jokes tell us, compressing and archiving are
+different tasks).
+
+[[tag lang/english planet/debian ocaml batteries]]
diff --git a/tags/batteries.mdwn b/tags/batteries.mdwn
new file mode 100644 (file)
index 0000000..20fc2fe
--- /dev/null
@@ -0,0 +1,3 @@
+Stuff about the [OCaml Batteries Included
+project](http://batteries.forge.ocamlcore.org/).
+[[template id=tag_feeds name="batteries"]]