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

and the patch http://web-cduce.pps.jussieu.fr/cgi-bin/darcsweb.cgi?r=cduce;a=commit;h=20070621141511-6a509-90fe027988c1d5f12efe21e9cfd7a826aa5a5527.gz

Dynlink with Cduce

Nothing deep here ...

file toto.ml

let toto = ref ( fun () -> 0 )

file foo.ml

let run ( r : int ) () = r
let register i = Toto.toto := i

file bar.cd. This is the cduce program that is then dynamically loaded.

let f : ( `nil -> Caml_int ) = Foo.run 1 ;;
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";