Previous week   Up   Next week
Hello,

Here is the latest Caml Weekly News, weeks 23 july to 14 august, 2002.

(Sorry for the lack of updates recently, I was in vacations)

1)  Mlfuse 1.0
2)  yet another xml parser
3)  lablglut 1.0.1, lablglut-1.1.0, lablglut-1.1.1, lablglut-1.1.2, and
    lablglut-1.1.3
4)  mlchat 0.3
5)  caml_vrml 1.0
6)  OCaml 3.05 released
7)  MLGMP upgraded for GMP 4.1
8)  OCam'OLE pre-release and OCam'OLE pre.2
9)  XML Light update
10) LablGTK 1.2.4
11) LablGL 0.98
12) ocamldsort 0.1 release
13) Cryptokit for Win32
14) ocaml-classes-3.05
15) ocaml-mode-3.05
16) ICFP programming contest 2002 announcement

======================================================================
1)  Mlfuse 1.0
----------------------------------------------------------------------
Nadji announced:

I am pleased to announce that a binding for Fuse
is now available. From mlfuse/Readme's overview :

Mlfuse is a binding for the Fuse (File System in User Space)
library. The purpose is to be able to mount your own filesystem  
in a directory just like when using the "mount" utility.
The system calls for reading, writing, creating files etc ...
are then redirected to your own routines. With Mlfuse your
routines are functions created in Ocaml. Check the examples
to get a more precise idea.
This enables to create nice stuff like infinite files,
transparent access to compressed files, filesystem-like
access to data for compatibility with other tools etc ...
I think it demonstrates quite well the ability to write
low-level kernel stuff in an efficient high-level languages.
I think Ocaml's typing discipline makes a _far_ better
documentation and permits a _lot_ more control of what can
be or should be done with functions (see differences between
fuse.h and fuse.mli to see what I mean ... and I'm not a guru).
I also made benchmarks and I get a throughput of 80Mo/s (with
all assertions, bounds checking and threads ...) with
this library, while today's disks have a throughput of around 5Mo/s.
So speed is not much of a concern, and Ocaml brings safety on top
of this, which is the best one could hope.

You can download Mlfuse at a friend's :
http://www-connex.lip6.fr/~binsztok/files.php
Mail me at nadji@noos.fr if you have problems.

PS :
I have tried to be compatible with Ocaml's Unix library data structures
but there are nearly no functions available from C that can transform an
ocaml value of a Unix type from the C unix corresponding type. This makes
low-level bindings somewhat specific to an Ocaml version, which is a shame
... even if I doubt that the Unix layer is rapidly evolving :)
If someone is interested, I have implemented separately those that I lacked
in the files mlfuse/lib/unix_ml2c*

======================================================================
2)  yet another xml parser
----------------------------------------------------------------------
Mike Lin announced:

none of the ocaml xml parsers out there quite served my needs, so i
wrote my own. for anyone who's interested, i put up a page about it.

http://mikelin.mit.edu/yaxpo/

the most interesting thing about the parser is that it is all hand
written in explicit continuation-passing style (CPS) instead of using
recursion or iteration. this allows one to do some amusing things in
clever ways; for example, it is possible to "pause" parsing, returning
control to the caller, and then pick up where it left off at some later
time.

i am using the parser in conjunction with another project i'm working
on. it's still quite preliminary, but i'm using it already to do some
'real' stuff, so i hope it can eventually be useful standalone.

======================================================================
3)  lablglut 1.0.1, lablglut-1.1.0, lablglut-1.1.1, lablglut-1.1.2, and
    lablglut-1.1.3
----------------------------------------------------------------------
Issac Trotts announced:

lablglut 1.0.1:
The new version features

- more demos
- bundling with a slightly modified version of LablGL
  without dependencies on Tcl/Tk
- easier installation

Available now at

    http://www.issactrotts.net/libs/lablglut-1.0.1.tgz

lablglut is an OCaml binding for a subset of GLUT
(GL Utility Toolkit) for OpenGL (Graphics Library).

lablglut-1.1.0:
The latest version is available here:

  http://www.issactrotts.net/libs/lablglut-1.1.0.tgz

It includes the rest of the functions from GLUT 3.7,
support for multiple windows, and ported tests 1
through 5 from the GLUT distribution.  This version
still comes with a Tk-independent modification of
lablGL-0.96.  The next revision will support lablGL-0.98.

lablglut-1.1.1:
A new release of lablglut is available at

  http://www.issactrotts.net/libs/lablglut-1.1.1.tgz

Here are the changes:
  - bundled a modified version of lablGL-0.98 without Tcl/Tk dependencies
  - removed a segmentation fault from having incorrect callback in mouseFunc
  - removed ezgl, converted draw2d.ml to use lablGL

lablglut-1.1.2:
Here's the latest edition of lablglut, the OCaml binding for
GLUT:

  http://www.issactrotts.net/libs/lablglut-1.1.2.tgz

The highlights of the latest release are:

  - bindings for all GLUT 4 functions included in the GLUT 3.7 distribution
  - ports of more GLUT tests
  - a Python script (lgport.py) to help with porting C GLUT demos to lablglut
  - bug fixes

and lablglut-1.1.3:
A new release of the lablglut binding for GLUT is available at

  http://www.issactrotts.net/libs/lablglut-1.1.3.tgz

This release features nehe demos ported by Jeffrey Palmer,
ports of all the numbered GLUT tests, and more bug fixes.

======================================================================
4)  mlchat 0.3
----------------------------------------------------------------------
Maxence Guesdon announced:

I'm (guess what) pleased to announce the first release of mlchat,
a simple chat application written in LablGtk. It does not need
a server and thus it can be used on a local network.

You will find it here :
http://www.maxence-g.net/Tools/mlchat/mlchat.html

======================================================================
5)  caml_vrml 1.0
----------------------------------------------------------------------
Issac Trotts announced:

I'm pleased to announce the first release of my new
VRML (Virtual Reality Modeling Language) library for
OCaml.  This revision reads and writes the following
VRML node types:

    Coordinate3
    IndexedFaceSet
    Info
    Material
    Separator
    ShapeHints

in addition to the USE and DEF constructs.  The library can
be downloaded from

    http://www.issactrotts.net/libs/caml_vrml-1.0.tgz

======================================================================
6)  OCaml 3.05 released
----------------------------------------------------------------------
Xavier Leroy announced:

Version 3.05 of the Objective Caml system is now available from

        http://caml.inria.fr/ocaml/distrib.html

The main novelty in this release is the addition of first-class
polymorphism for methods and record fields.  Also, the ocamldoc
documentation generator is now included in the release, and the
modules Complex and Scanf were added to the standard library.  This
comes in addition to the usual amount of bug fixes, which are
described in more details below.

For general info on Objective Caml, see http://caml.inria.fr.  Bug
reports go to caml-bugs@inria.fr, messages for the implementors to
caml@inria.fr, and general discussions to the mailing-list
caml-list@inria.fr, or the comp.lang.ml or comp.lang.functional
newsgroups.

(The full announcement is here:
http://caml.inria.fr/archives/200207/msg00558.html )

======================================================================
7)  MLGMP upgraded for GMP 4.1
----------------------------------------------------------------------
David Monniaux announced:

GNU MP (http://swox.com/gmp/) is a multiprecision computation library
supporting integer, rational and floating-point types.

MLGMP is the Caml interface for this library.  

The latest version of MLGMP supports GMP 4.1, including the integrated
MPFR. It only supports this version, since maintaining support for
multiple GMP versions is difficult (especially for MPFR) because of some
incompatible changes. The new functions are not supported yet.

http://www.di.ens.fr/~monniaux/download/mlgmp-20020729.tar.gz

======================================================================
8)  OCam'OLE pre-release and OCam'OLE pre.2
----------------------------------------------------------------------
Nicolas Cannasse announced:

I'm pleased to announce the .pre release of OCam'OLE, an OLE binding for
OCaml.

OCam'OLE enable you to control remote COM objects with OCaml and is
provided with OLEGen, a program that generate ML/MLI static type
interface from the OLE Type Libraries.

The current distribution include a sample that demonstrate the combined
usage of OCam'OLE and OLEGen to enable the creation and the control of
an MS Excel sheet in a few lines of OCaml code.

This release is ".pre" because it hasn't been heavily tested, so some bugs
could remain 
and are waiting for some serious users to discover them :)

You can download it at http://tech.motion-twin.com

I would like to thanks Lexifi (www.lexifi.com) for supporting this project

then added:

The server is actually really getting slow, so I put a mirror on
http://warplayer.free.fr/files/ocamole-pre.zip for people interested in
downloading the release.

and a new version was announced:

The new pre-release of OCam'OLE is now available at :
http://tech.motion-twin.com/ocamole

Makefile have been rewritten and some bugs have been corrected in order to
support both bytecode and native code compilation mode.
...but compiling excel.ml with ocamlopt is causing a Stack Overflow ( a bug
report have been submited at the ocaml team ).

======================================================================
9)  XML Light update
----------------------------------------------------------------------
Nicolas Cannasse announced:

XML Light, a minimal XML parser for OCaml, has been updated. The release
now include the documentation generated by ocamldoc.
You can get it at http://tech.motion-twin.com

======================================================================
10) LablGTK 1.2.4
----------------------------------------------------------------------
Jacques Garrigue announced:

LablGTK 1.2.4 has just been released.
You can find it at
  http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgtk.html
  ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/lablgtk-1.2.4.tar.gz

LablGTK is a GTK+ interface for Objective Caml.
It supports almost all base widgets, and many GDK functions, and has
been used in a number of Objective Caml applications.

The main novelty in this release is better windows support:
precompiled binaries are available at the above address
(lablgtk-1.2.4-ocamlwin-3.05.zip), along with the needed GTK+ dlls
(gtk-win32-dlls.zip). With those you can start developping on top of a
raw Objective Caml installation.

Other changes:
* g_io_add_watch support (unix only)
* GdkPixbuf support
* handling of images in various formats: string, bigarray, LablGL's raw;
  a uniform interface (supporting memory management) was added
* GtkPreview support
* various missing functions

An IRC client, contributed by Nobuaki Yoshida, was added to the
applications directory.

======================================================================
11) LablGL 0.98
----------------------------------------------------------------------
Jacques Garrigue announced:

LablGL 0.98 has just been released.
You can find it at
  http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgl.html
  ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/lablgl-0.98.tar.gz

LablGL is an OpenGL interface for Objective Caml.
It supports many implementations of OpenGL, including Mesa, Xfree86 
DRI, SGI, MacOSX, and now windows.
The GUI logic can be built using LablTk (included in the
distribution), LablGTK, or Isaac Trotts Lablglut.

Precompiled binaries for windows are available at the above address
(lablgl-0.98-ocamlwin-3.05.zip). With those you can start developping 
on top of a raw Objective Caml installation.

The only other changes from previous versions are a few bug fixes.

======================================================================
12) ocamldsort 0.1 release
----------------------------------------------------------------------
Dimitri Ara announced:

ocamldsort (dsort stands for dependency sorting) is a tiny command line
tool to sort .ml files according to their dependencies in order   
to link the corresponding .cmo files.

ocamldsort was thought to be used in makefiles. Here is a typical makefile:

OCAMLC=ocamlc
OCAMLDEP=ocamldep
OCAMLDSORT=ocamldsort
PPFLAGS=-pp camlp4o
SORTED_ML_FILES=$(shell cat .depsort >/dev/null || echo ERROR)
CMO_FILES=$(SORTED_ML_FILES:.ml=.cmo)

a.out: $(CMO_FILES)
        $(OCAMLC) ...

ERROR:
        @echo Did you run `make depend'?
        @false

depend:
        $(OCAMLDEP) $(PPFLAGS) *.ml *.mli > .depend
        < .depend $(OCAMLDSORT) *.ml *.mli > .depsort

In fact, ocamldep doesn't need any .depend. It can be used this way:

$ ocamldsort -pp camlp4o *.ml *.mli > .depsort

Beware: if your program relies on linking order because of side effects,
ocamldsort can't help you.

You can download it at http://dimitri.mutu.net/ocaml.html

======================================================================
13) Cryptokit for Win32
----------------------------------------------------------------------
Mike Lin announced:

hello. i did a quick port of xavier's cryptokit library to the native
windows version of ocaml. i put it up at

http://mikelin.mit.edu/code/

the only thing that works differently is that the secure_rng now returns
data from the CryptGenRandom function in the windows CryptoAPI.

======================================================================
14) ocaml-classes-3.05
----------------------------------------------------------------------
Jacques Garrigue announced:

O'Caml classes 3.05 is now available at

  http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/classes/
  ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/ocaml-classes-3.05.tar.gz
  ftp://ftp.inria.fr/lang/caml-light/bazar-ocaml/ocaml-classes-3.05.tar.gz

This is a small library of wrappers around standard library classes,
to allow a somehow object-oriented use.
Since ocaml 3.05, collection classes have also polymorphic fold
methods.

======================================================================
15) ocaml-mode-3.05
----------------------------------------------------------------------
Jacques Garrigue announced:

A snapshot of O'Caml emacs mode 3.05 is now available at

  http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/ocaml.html
  ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/ocaml-mode-3.05.tar.gz
  ftp://ftp.inria.fr/lang/caml-light/bazar-ocaml/ocaml-mode-3.05.tar.gz

This is just a snapshot of the emacs directory in the distribution  
(fixing only one minor bug). This is intended for users of binary
distributions, who did not get this directory.

By the way, if you're still using older versions of the ocaml mode,
you want to update for better indentation, better interaction with the
caml subprocess, and other improvements by Didier Remy.

======================================================================
16) ICFP programming contest 2002 announcement
----------------------------------------------------------------------
Iavor S. Diatchki announced:

             The Fifth Annual

          ICFP PROGRAMMING CONTEST

       August 30 - September 2, 2002

       http://icfpcontest.cse.ogi.edu/

Convinced your favorite programming language provides unbeatable
productivity?  Convinced you and your friends are world-class programmers?

If so, we're providing you the opportunity to prove it! We are pleased
to announce the Fifth Annual ICFP Programming Contest to be held in
conjunction with the 2002 International Conference on Functional
Programming (ICFP 2002). All programmers are invited to enter the
contest, either individually or in teams; we especially encourage
students to enter.  You may use any programming language (or
combination of languages) to show your skill.

On Friday, August 30, 2002 at 12:00 Noon (PDT), we will publish a
challenge task on the Web site and by e-mail to registered participants.
 Teams will have until Monday, 02 September 2002, 12:00 Noon (PDT) (72
hours) to implement a program to perform this task and submit it to the
contest judges.  We've designed the contest for direct, head-to-head
comparison of language technology and programming skill.  We have a
range of prizes for the winners: cash awards, special student prizes,
and, of course, unlimited bragging rights.

For more information about the contest, prizes, and registration,
point your browser to:

   http://icfpcontest.cse.ogi.edu/

For more information about ICFP 2002, see:

   http://icfp2002.cs.brown.edu/

======================================================================
Old cwn
----------------------------------------------------------------------

If you happen to miss a cwn, you can send me a message
(alan.schmitt@inria.fr) and I'll mail it to you. If you also wish to
receive it every week by mail, just tell me so.

======================================================================

Alan Schmitt