Pietro Abate
cduce
New Cduce Release 0.5.2.1
This is a minor bug-fix release. A new MacOsX binary package is avalaible. See the Download page for download information, or the CHANGES file to know what's new.
Not much to add.
Cduce MacOsX Binary Package
The MacOsX package is ready and available for download here: http://cduce.org/download.html
The script I used to create this package is a re-mix of the make-macos-package script used in the ocaml distribution. You can have a look at it here.
cduce mailing lists
Today I finished to migrate all cduce mailing list to pps.
Once I got the archive, it was fairly easy to recreate the html pages (with the arch script in the mailman directory) and to subscribe everybody to the new lists. The old sympa server and email address is definitely gone.
I moved all mailing lists from *@cduce.org to *@mailman.cduce.org. All information are here : http://www.cduce.org/contacts.html
Today I've also configured spamassassin + amavis-new + clamavd on our mail server. Hopefully this will keep our lists clean.
new release (cduce 0.5.1)
It has been a busy month for cduce. We added the windows package, cleaned up the distribution and the svn repository, updated the website and added a couple of minor features to cduce itself.
Today we released a minor update: version 0.5.1
I also spent the day updating the debian package.
We had some minor problem with the web server. From time to time the dom0 reboots leaving the website dead. I'm still working to solve this problem.
cdata section in cduce
I wrote a small patch to manipulate cdata section in cduce as follow:
abate@zed.fr:~/Projects/cduce-ocaml-3.10$ledit ./cduce
CDuce version 0.5.0
# cdata_of ;;
- : String -> String =
# type a = Cdata ;;
Characters 6-7:
Capture variable not allowed: Cdata
# type a = String ;;
# let b : a = (cdata_of "ggg>>" );;
val b : a = 'ggg>>'
# print_xml b ;;
- : Latin1 = "]]>"
# let [ c ] = map [ b ] with c -> c ;;
val c : a = ggg>>
# print_xml c;;
- : Latin1 = "]]>"
Unit testing for Cduce
I've written a small unit testing suite for cduce using the OUnit library (http://www.xs4all.nl/~mmzeeman/ocaml/ounit-doc/OUnit.html)
Everything is in my dacrs repo waiting for integration: http://web-cduce.pps.jussieu.fr/cgi-bin/darcsweb.cgi?r=cduce;a=summary
I wrote only a handful of tests. This is the main cduce program:
<code> let t1 (s : Latin1) ( t : OUnit.test ) : OUnit.test = (`TestLabel, s, t) let t2 (s : Latin1) ( f : `nil -> `nil ) : OUnit.test = (`TestLabel, s, (`TestCase, f))
Automatic Ocaml Types for Cduce
A minor limitation of cduce is that all ocaml types must be declared in cduce. This is cumbersome when trying to use an ocaml library from cduce.
I've created a small patch to cduce to allow to use ocaml types directly in a cduce program.
The patch is available in my personal darcs repository and pending to be integrated in the main tree.
The repository is here: http://web-cduce.pps.jussieu.fr/cgi-bin/darcsweb.cgi
Dynlink with Cduce
Nothing deep here ...
file toto.ml
file foo.ml
let register i = Toto.toto := i
file bar.cd. This is the cduce program that is then dynamically loaded.
Foo.register f ;;
file main.ml. Note that we have to dynamically load all the libraries.
<code> let _ = Dynlink.init (); Dynlink.allow_unsafe_modules true
let () = try Dynlink.loadfile "/usr/lib/ocaml/3.09.2/stdlib.cma";