Hello
Here is the latest Caml Weekly News, for the week of 13 to 20 April, 2004.
> The domain will be available in a little more than one month (if Mr J > Assange really lost interest, he will not renew it). Maybe one should > consider buying it, or rather -- to avoid the same thing to happen > again -- it may be better that INRIA buys it and gives it back to the > community (some people were ready to give machines and maintenance > time as I understood it). Please don't bother Julian. He contacted me recently about transferring the ownership of ocaml.org to INRIA before the current registration expires. In parallel, Vincent Simonet and Maxence Guesdon are working on a (long overdue) redesign of the caml.inria.fr/www.caml.org site. If everything goes well, in the forthcoming months we should have a good and up-to-date Web site accessible through the three addresses (ocaml.org, caml.org and caml.inria.fr).
I fixed up Mikhail Fedotov's nice SQLite[1] bindings for OCaml, and after I sent him the patch he offered to let me maintain it. So I have integrated my patch (and a few other cleanups) and released a new version. You can get it at http://neugierig.org/software/ocaml/sqlite/ Additionally, I have sent a patch to the ocamldbi developers, and so hopefully SQLite support will be in the next release of ocamldbi. [1] SQLite is a SQL engine available as a library. It's good when you need to use a database but don't want to require a MySQL (, etc.) install. See http://www.sqlite.org for details.
Camomile-0.5.0, a new version of Camomile, is available from http://prdownloads.sourceforge.net/camomile/camomile-0.5.0.tar.bz2 Camomile is a comprehensive Unicode library for OCaml. Changes from the previous version are, * Internationalized Pervasives, Char, String, Buffer modules * Search strings by matching collation * Binding to ISO C Locale. - UChar.is_printable - Locale.current_locale, Locale.set_locale - CharEncoding.enc_name * New encodings - iso_c_locale : the encoding specified by the current LC_CTYPE locale. - CP932 * Packed and unpacked libraries. More information is available from our homepage http://camomile.sourceforge.net/ Also, I invite everyone interested in Camomile to join our mailing list. http://lists.sourceforge.net/lists/listinfo/camomile-develSkaller asked and Shawn Wagner answered:
Skaller wrote: > Yamagata Yoriyuki wrote: > > * Search strings by matching collation > > * Binding to ISO C Locale. > > I have a question here. The C locale concept does need > a binding, unfortunately. However it is well known > this is a seriously deficient hack, and the use > of C locales should be strongly discouraged. Extlib supports the standard C locale functions (setlocale, the ctype.h character classification functions, strcoll, localeconv, etc.) It doesn't try to work around any of the problems with the C locale model, but it's better than nothing. http://raevnos.pennmush.org/code/extlib/
> We can do both. First hack together any crappy code that works, > then make something elegant -- using the crappy code to help > bootstrap the effort. > > How do we do this? Well, one thing must NOT be crappy, > even for the crappy code -- and that is the specification. > Writing a package manager isn't the problem, IMHO. > The problem is defining what a package IS, where the pieces go, > and how dependencies are stated.. etc etc. This is essentially the goal of the GODIVA project (formerly GODOR) that Owen Gunden and i are working on: We're grafting a sensible specification onto the frontend of GODI so that it's easier for developers to make packages. In the future, this specification could stay around if some other underlying backend technology supplanted GODI, and all that would require updating would be the backend of GODIVA. A (very!) preliminary release of GODIVA is available as the GODI package called godor. In a few days, Owen and i will be packaging up a new release incorporating the ideas from this paper: http://projects.phauna.org/godiva/papers/godiva.ps http://projects.phauna.org/godiva/papers/godiva.pdf (And this time, "a few days" really means "a few days" -- we have a hard (academic) deadline to meet!) More information is available on the GODIVA website (but the paper is more up-to-date): http://projects.phauna.org/godiva/
I am releasing an update to the Core Foundation library of my Pagoda project (which contains other foundation libraries yet unreleased). The big deal is that I fixed the Cf library so it builds and works on Suse Linux 9.0 as well as Mac OS X 10.3, and the socket extensions now contain support for UDP (both IPv4 and IPv6, as well as both unicast and multicast). The license is *still* the 2-clause BSD-style (I *do* live in San Francisco, you know? the neighborhood has a reputation to preserve). As before, the new distribution is available at either of the following URL's: http://www.wetware.com/jhw/src/pagoda/cf-0.1.tar.bz2 http://www.wetware.com/jhw/src/pagoda/cf-0.1.tar.gz And the online documentation (generated by ocamldoc) can be found here: http://www.wetware.com/jhw/src/pagoda/doc/ There is still no programmer's guide. If people start using this library, then maybe I'll write one. As far as I can tell, nobody else is using this library yet. (If the terms of the BSD license are a problem for you, then I'm willing to negotiate.) ----- README ----- Highlighted features include: - Functional streams and stream processors (extended). - Functional bootstrapped skew-binomial heap. - Functional red-black binary tree (associative array). - Functional sets based on red-black binary tree. - Functional real-time catenable deque. - Functional LL(x) parsing using state-exception monad. - Functional lazy deterministic finite automaton (DFA). - Functional lexical analyzer (using lazy DFA and monadic parser). - Functional substring list manipulation (message buffer chains). - Gregorian calendar date manipulation. - Standard time manipulation. - System time in Temps Atomique Internationale (TAI). - Unicode transcoding. - Extended socket interface (supports IPv6 and UDP w/multicast). - Universal resource identifier (URI) manipulation. - Extensions for I/O event multiplexing (with Unix.select). Note: see the ISSUES file for a list of open problems in this release. ===== New for Version 0.1 ===== Highlights of the changes: + Compile and pass self-tests on Suse Linux 9.0. + Unified [sequence] and [accumulate] monad functions in [Cf_seq]. + Added [Cf_exnopt] module with a simple convenience type. + New monadic constructors for [Cf_seq] and [Cf_flow] types. + Moderate overhaul of [Cf_gadget] (fix bugs, design problems). + Fix portability bugs in [Cf_socket] and cognates. + Add support for UDP, IP multicast and network interface selection. + Fix bug in [Cf_poll.idle] event polling (and give a timestamp). + Slightly better self-tests for [Cf_socket]. Note: see the CHANGES file for technical details about these changes. ===== Required Components ===== This library requires the following external components: - Objective Caml (v3.07+2 or newer) - Findlib (tested with v0.8.1 and v1.0.4) Principle development was on Mac OS X 10.3. The final version of this library also compiled successfully without warnings and self-tests on Suse Linux 9.0 on x86-32. Other platforms with POSIX-like environments should require only a minimal porting effort. One major open issue: the extended socket interface is broken under WIN32. (The author invites help porting the library to other environments.) ===== Building ===== No 'configure' script is provided. Compile the library with: $ make default Compile both bytecode and native versions with: $ make default opt Execute tests for byte and native versions with: $ make test test.opt Install the library with ocamlfind using: $ make install Uninstall the library with ocamlfind using: $ make uninstall Make the reference documentation with ocamldoc using: $ make doc
OcamlConf version 0.4 Webpage: http://kenn.frap.net/ocamlconf/ Direct links to tarballs: http://kenn.frap.net/ocamlconf/ocamlconf-0.4.tar.bz2 http://kenn.frap.net/ocamlconf/ocamlconf-0.4.tar.gz Summary of OcamlConf: OcamlConf is a build helper for ocaml programs. It takes a 'configure.ml' and creates a 'configure' script. This script prompts for compile time toggles and variable settings, ensures libraries exist, etc, and outputs an automatically generated makefile. Changes in this version: * Large improvements in mixed C/Ocaml libraries * Removed dependency on dynamically loaded code. Now instead of using the toplevel it uses the compiler. This, among other fixes, should make ocamlconf work on Cygwin. * Removed "rootdir" from the standard configuration parameters; "prefix" should be used at configure time, or use DESTDIR at "make install" time. * Changed Makefile to support "make DESTDIR=... install" style used by autoconf, Gentoo's ebuild. * Fixed Makefile so environment variable OCAMLFIND_DESTDIR is obeyed properly. * Added "cleaned" parameter to MakeMake.output for wiping up emacs backups, etc (arbitrary glob). * Added "reinstall" target that is basically "uninstall, install." (very convenient when developing a findlib package)
OCaml-FreeTDS initial 0.1 release --------------------------------- OCaml-FreeTDS is a binding to the ct-lib component of the FreeTDS library, for accessing Sybase and Microsoft (or other TDS) database servers. If you don't know what "ct-lib" means then you should probably not be using this, but rather OCamlDBI, which I've written a working Dbi_freetds for (and am submitting simultaneously, so it is not in OCamlDBI yet) Hompage: http://kenn.frap.net/ocaml-freetds/ Direct tarballs: http://kenn.frap.net/ocaml-freetds/ocaml-freetds-0.1.tar.bz2 http://kenn.frap.net/ocaml-freetds/ocaml-freetds-0.1.tar.gzRichard Jones added:
The OCamlDBI driver is now in CVS: http://savannah.nongnu.org/cgi-bin/viewcvs/modcaml/ocamldbi/
Hello, as more and more of our users tell us about this bug, I think I must make an announce. On fedora, when compiling OCaml 3.07pl2, the compilation fails in the ocamldoc directory, because of the preprocessing script used to remove DEBUG lines in ocamldoc sources. This is already fixed in the CVS (by adding LC_ALL=C in the script). I attached the new script remove_DEBUG: #!/bin/sh #(***********************************************************************) #(* OCamldoc *) #(* *) #(* Damien Doligez, projet Moscova, INRIA Rocquencourt *) #(* *) #(* Copyright 2003 Institut National de Recherche en Informatique et *) #(* en Automatique. All rights reserved. This file is distributed *) #(* under the terms of the Q Public License version 1.0. *) #(* *) #(***********************************************************************) # $Id: remove_DEBUG,v 1.3 2004/04/15 16:18:52 doligez Exp $ # usage: remove_DEBUG <file> # remove from <file> every line that contains the string "DEBUG", # respecting the cpp # line annotation conventions echo "# 1 \"$1\"" LC_ALL=C sed -e '/DEBUG/s/.*//' "$1"
I coded and released ocamljitrun, a just in time translator of Ocaml bytecode into machine code (on x86, and perhaps sparcv9 & PowerPC in 32 bits mode). You need the latest Ocaml from CVS (ocaml 3.07 won't work). You need the latest GNU lightning (from its CVS). You can get it from the bazar-ocaml directory under CVS. In a couple of hours, you should be able to get it there or at: http://camlcvs.inria.fr/cgi-bin/cvsweb.cgi/bazar-ocaml/ocamljitrun/ In particular, read the README file there. (you need jitinterp.c cvs id $Id: jitinterp.c,v 1.6 2004/04/19 14:55:01 starynke Exp $) It runs ocamlc & ocaml apparently ok, and many other tests. I feel it is mature enough to be tried by others on x86 platform. I didn't tested it on Sparcv9 or PowerPC (in 32 bits mode only), but it might run on these, since GNU Lightning is portable on x86+Sparc+PPC (in 32 bits mode). Ocamlrunjit won't run on an AMD64 (i.e. an Opteron) in 64 bits mode. It should be the case that ocamljitrun may be a plug-in replacement of ocamlrun.
Here is a quick trick to help you read this CWN if you are viewing it using vim (version 6 or greater).
:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~'^=\\{78}$'?'<1':1
zM
If you know of a better way, please let me know.
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.