Version française
Home     About     Download     Resources     Contact us    
Browse thread
list of recently released ocaml software
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Toby Moth <tm1@c...>
Subject: list of recently released ocaml software

Dear all -

I think that the "Looking for a nail" thread really hit the spot as well
as the nail. Everyone seemed to either have something that they wished
to see developed, or else some piece of code which they had been 
nursing secretly. Well, here is what I would like to see developed ...

I (and I am certainly not the first)  think there ought to be an archive
slightly more more open than the Bazaar where
code can be put. It would fill my heart with gladness if this
place were called The Hump. We
could possibly even have a separate announce homepage 
(something like freshmeat).

Could I develop/maintain this archive ? Probably not :(

Still, as a feasibility study I have compiled a list of everything 
announced between now and the
beginning of December. The two major flurries of announcing activity were 
(not surprisingly) mid-December when 2.01 came out and also in the
last few days in response to the nail on the head thread. Over this period
something was released to the ocaml community every couple of days.

Summaries, addresses and dates for these releases
have been chopped out and included below to make a posting which is hopefully
useful enough to justify its length. I have also made some attempt at 
classifying the various releases. The subject index is pretty arbitrary, but
we all have to start somewhere. Please don't be offended that Ocaml2.01 gets
in under Ocaml tools/Extensions. Also, blame Daniel de Rauglaudre and not me
for the fact that one of the subjects is Genealogy.

I have quoted from one posting which wasn't announcing anything since
it seemed relevant, and included one entry (the last) to an emacs
extension by Didier Remy which I don't think was ever mentioned on the
mailing list. Francois Pottier, the prolific Markus Mottl and I were the
only people keen enough to announce something on someone else's behalf.

Feel free to post me with errata, omissions, comments and especially 
more release information to include in this list. 
If more stuff comes in and no-one objects I may post a list
once every couple of months - until The Hump comes into being, that is.

Toby Moth


Subject index:
* Ocaml tools/Extensions
* COM/CORBA
* Graphics
* DB
* Web
* Interpreter
* Data structures
* Markup & pretty printing
* Expect
* String
* Games
* Genealogy
---

------------------
---
* Ocaml tools/Extensions
From: Cuihtlauac ALVARADO <Cuihtlauac.Alvarado@cnet.francetelecom.fr>
Date: Thu, 28 Jan 1999
Where: Cuihtlauac.Alvarado@cnet.francetelecom.fr
Says:
We (J.-F. Monin <JeanFrancois.Monin@cnet.francetelecom.fr> and I) made a new
small ocamltags. It creates
not too bad tags for classes, types, etc.
---
------------------
------------------
---
* COM/CORBA
From: Xavier Leroy
Date: Thu, 28 Jan 1999
Where: N/A
Says:
I am currently working on a COM binding for OCaml.  The development is
going relatively smoothly so far.  In particular, OCaml classes and
objects provide a good match for COM's interfaces -- nicer than what
they have to do in Haskell due to lack of OO support.

However, some problems remain, not the least of which being writing a
parser for this #$^#!! Microsoft IDL language, which seems to double in
size approximately every year.
---
------------------
------------------
---
* COM/CORBA
From: David McClain
Date: Thu, 28 Jan 1999
Where: http://www.azstarnet.com/~dmcclain/homepage.htm
Says:
I have a minimal interface for COM already in place for OCAML 2.01. 
I use it to connect with a COM-based universal scientific data server. 
I can handle the OLE types of interest to a scientist... 
(but not yet for things like UUID's and other more bizarred data types). 
I have to admit, that in order to do this I had to stoop to C++ 
because of the many types of ints and floats that are likely to arise, 
and also because of the need to access the SAFEARRAY data structure. 
I don't know how to do this yet in OCAML... 
It would be really great if OCAML could also be used for 
systems level programming chores like this, 
and for writing hardware control software...
---
------------------
------------------
---
* COM/CORBA (Cross-reference)
From: Jon Moore <jonm@dsl.cis.upenn.edu>
Date:  Wed, 27 Jan 1999
Where: http://www.cis.upenn.edu/~jonm
Says:
If anyone decides to pick up on this one, I would suggest having a look at:
"Scripting COM components in Haskell," by Simon Peyton-Jones and Erik Meijer
at 
	http://research.microsoft.com/Users/simonpj/Papers/com.ps.gz

I know similar efforts are ongoing for SML/NJ, and would love to see OCaml
have this too.
---
------------------
------------------
---
* Ocaml tools/Extensions
From: Jean-Christophe Filliatre <filliatr@lri.fr>
Date: Wed, 27 Jan 1999
Where: http://www.lri.fr/~filliatr
Says:
To get Emacs tags for ocaml, a quick solution is the following :

======================================================================
find . -name "*.ml*" | sort -r | xargs \
	etags "--regex=/let[ \t]+\([^ \t]+\)/\1/" \
	      "--regex=/let[ \t]+rec[ \t]+\([^ \t]+\)/\1/" \
	      "--regex=/and[ \t]+\([^ \t]+\)/\1/" \
	      "--regex=/type[ \t]+\([^ \t]+\)/\1/" \
              "--regex=/exception[ \t]+\([^ \t]+\)/\1/" \
	      "--regex=/val[ \t]+\([^ \t]+\)/\1/" \
	      "--regex=/module[ \t]+\([^ \t]+\)/\1/"
======================================================================

It is very useful in practice. (It does not create tags for classes too.)
---
------------------
------------------
---
* Ocaml tools/Extensions
From: Jacques GARRIGUE <garrigue@kurims.kyoto-u.ac.jp>
Date: Wed, 27 Jan 1999
Where: http://wwwfun.kurims.kyoto-u.ac.jp/~garrigue/
Says:
I have put a snapshot of the caml-mode at

ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/ocaml-mode-990127.tar.gz

Along with some improvements to the emacs mode itself, it includes
an ocamltags script, thanks to ITZ.  This one does some clever parsing
to give a reasonable amount of tags, including methods.
---
------------------
------------------
---
* Graphics
From: Pascal Cuoq <pcuoq@ens-lyon.fr>
Date: Mon, 25 Jan 1999
Where: http://pauillac.inria.fr/~cuoq/mlgtk_snapshot/
Says:
Mlgtk provides bindings between Gtk (the GIMP ToolKit, see
http://www.gtk.org for info) and Ocaml (if you read this list
you don't need a link).  David Monniaux started the project 
sometime in 1997 (at a time when the Gtk interface was still
changing daily in incompatibles ways).  

Although mlgtk is not quite complete, I think it is time
for "going public", at least to avoid any more "what's up with
mlgtk? are they dead?" kind of messages in this list.

So (Miles Egan, this is for you!) if you have time to waste,
you can download it, test it, propose patches, tutorials 
and other improvements for the real public announcement of mlgtk
which should occur within a couple of weeks.

In particular, something which could afford to be more polished
is ease-of-installation.  But try it out (configure is for wimps
anyway)!

A snapshot is always present there:
http://www.eleves.ens.fr:8080/~monniaux/download/mlgtk.tar.gz 
but I can't tell you how up-to-date it tends to be, as I
don't use it.  You can also use this link:
http://pauillac.inria.fr/~cuoq/mlgtk_snapshot/
which point right into my version of the CVS tree.
---
------------------
------------------
---
* DB
From: mattwb@valery.alve.com
Date: Mon, 25 Jan 1999 07:36:26 -0600
Where: N/A
Says: 
I have written postgresql bindings as well as ODBC bindings that
work with MySQL's iODBC (and any other ODBC database) if anyone's 
interested.  They need some work, but it's a start.
---
------------------
------------------
---
* Web
From: Jean-Christophe Filliatre <filliatr@lri.fr>
Date: Mon, 25 Jan 1999
Where: http://www.lri.fr/~filliatr/ftp/ocaml/cgi/
Says:
Regarding web tools, Daniel de Rauglaudre and I freely distribute a
(very) small library to write CGI in ocaml. It is available here :

      http://www.lri.fr/~filliatr/ftp/ocaml/cgi/
---
--------------
--------------
---
* DB
From: Gerd Stolpmann <Gerd.Stolpmann@darmstadt.netsurf.de>
Date: Tue, 26 Jan 1999 
Where: http://people.darmstadt.netsurf.de/Gerd.Stolpmann/ocaml/ocamldb.tgz
Says:
I've put the current EXPERIMENTAL version of my DBMS interface to
http://people.darmstadt.netsurf.de/Gerd.Stolpmann/ocaml/ocamldb.tgz

It is a driver written in (C-)embedded SQL; the details of the driver
are designed for the Adabas D DBMS, but it should be not so hard to derive
drivers for other DBMS. The driver has a generic part that is DBMS-independent
and  that can be coupled with a low-level part doing the actual connection to
the DBMS.

In a few weeks there will be a driver for Informix DBMS, too.

For the details, see the README file in the package.

A demo version of Adabas D for Linux can be downloaded from SuSE at
ftp://ftp.suse.com/pub/SuSE-Linux/5.3/suse/pay1/adabas.rpm (37 megabytes).
At this location there is documentation, too. The demo version is
restricted (size of DB + number of users). Please note that I've no
commercial interest in announcing that; it's only that I had good experience
with this particular DBMS in the past. 
---
--------------
--------------
---
* DB
From: Trevor Jim <tjim@saul.cis.upenn.edu>
Date: Mon, 25 Jan 1999
Where: N/A
Says:
And I've written LDAP bindings if anyone's interested.
---
--------------
--------------
---
* Web
From: Markus Mottl <mottl@miss.wu-wien.ac.at>
Date: Mon, 25 Jan 1999
Where: ftp://ftp.inria.fr/INRIA/Projects/cristal/Daniel.de_Rauglaudre/Tools/
Says:
Ah, apropos web server: Daniel de Rauglaudre has already written a small
but beautiful version of a basic web server. Get it from:

  ftp://ftp.inria.fr/INRIA/Projects/cristal/Daniel.de_Rauglaudre/Tools/
---
--------------
--------------
---
* Interpreter
From: Gerd Stolpmann <Gerd.Stolpmann@darmstadt.netsurf.de>
Date: Fri, 22 Jan 1999
Where: http://people.darmstadt.netsurf.de/Gerd.Stolpmann/ocaml/fragments/cigen.tgz
Says:
In 1997 I began a project that was intended to simplify ad-hoc usage
of given C libraries in Ocaml. I have never completed it because of
fights with the garbage collector, and because I had doubts if it was
really useful.

The idea was to read a given C header file and automatically generate
stub functions and other needed auxiliary functions dealing with the
type mapping between C and Ocaml. As far as I can remember the program
contains a lexer and a parser limited to header files, i.e. it cannot parse
function bodies, but I think this is simple to add.

You can find the program on
http://people.darmstadt.netsurf.de/Gerd.Stolpmann/ocaml/fragments/cigen.tgz
---
--------------
--------------
---
* Interpreter
From: Francois Pottier <Francois.Pottier@inria.fr>
Date: Sat, 23 Jan 1999
Where: http://pauillac.inria.fr/~fpottier/
Says:
Patrick Cousot has written a generic abstract interpreter in OCaml.
It is available from

  http://www.dmi.ens.fr/~cousot/COUSOTpapers/Marktoberdorf98.shtml
---
--------------
--------------
---
* Graphics
From: Pierre Weis <Pierre.Weis@inria.fr>
Date: Fri, 22 Jan 1999
Where: http://cristal.inria.fr/~weis/
Says:
We (François Pessaux, Jun Furuse, and Pierre Weis) are designing a
library to load/save images in Caml.  We plan to release it very soon
in the bazar-ocaml directory of the Caml ftp distribution. For the
time being this library is written in Objective Caml only. Do you need
a Caml Light version ?

PS: The library handles BMP, gif, but not yet the ... format!
---
--------------
--------------
---
* Data Structures
From: Markus Mottl <mottl@miss.wu-wien.ac.at>
Date: Tue, 19 Jan 1999
Where: http://miss.wu-wien.ac.at/~mottl
Says:
Just a short time ago I purchased Chris Okasaki's book "Purely
Functional Data Structures", which contains a great number of interesting
implementations of rather new data structures - unfortunately in SML
and Haskell only.

To make life easier for OCAML-programmers, I have started to translate
the sources from SML to OCAML - even applying lazy evaluation (module
"Lazy") as proposed by the author.

Until now, all sources until chapter six have been ported. You can download
them from:

  http://miss.wu-wien.ac.at/~mottl/ocaml_sources/intro.html

During the next days (if I have time), I will try to make the rest of
the sources available. If you want to help - mail me!
---
--------------
--------------
---
* Interpreter
From: Christian Lindig <lindig@ips.cs.tu-bs.de>
Date: Mon, 18 Jan 1999
Where: http://www.cs.tu-bs.de/softech/people/lindig/software/lexing.html
Says: (long message .. have cut out most of it )
OCamlLex generated lexers often need some state information which must
survive the actual call of the lexer from a parser.  Examples for this
kind of state are the current source line and column or some context
information.  Lexing HTML for example requires information whether the
scanner reads tokens inside of a <tag attribute="value"> or outside of
it.  The meaning of quotes is totally different in- and outside of
tags and thus the lexer must store some informations about its current
context. 

This information is typically stored in global variables inside the
lexer.  The generated lexer already uses and passes around a value of
type `lexbuf' for its internal purposes.  This value is accessible
inside semantic actions of lexer rules.  I would like to propose an
extended data type for lexbuf which also permits to store user data
inside of it.

...

Then gives adjusted address in subsequent message

...
Sorry! The URL for the new Lexing implementation in my previous mail was
wrong. The correct URL is:

    http://www.cs.tu-bs.de/softech/people/lindig/software/lexing.html
---
--------------
--------------
---
* Ocaml tools/Extensions
From: Trevor Jim <tjim@saul.cis.upenn.edu>
Date: Wed, 13 Jan 1999
Where: http://www.research.att.com/sw/tools/graphviz/
Says:
Ocamldot is available from http://www.cis.upenn.edu/~tjim/.


Ocamldot generates program dependency graphs for ocaml programs.

The dependency graph output by ocamldot can be rendered by a separate
program, dot.  Dot is freely available from

  http://www.research.att.com/sw/tools/graphviz/

Ocamldot was derived from ocamldep, and is used in much the same way:

  ocamldot *.ml > dep.dot
---
--------------
--------------
---
* Web
From: Gerd Stolpmann <gerd@darmstadt.netsurf.de>
Date: Tue, 5 Jan 1999
Where: http://people.darmstadt.netsurf.de/Gerd.Stolpmann/javacaml
Says:
after two weeks of work I can announce JavaCaml, a reimplementation of the
Objective Caml bytecode interpreter in Java. As you expect after this
introduction, JavaCaml is slow, it is even very slow. But it is still
usable for many purposes that only want to provide a user interface for a
background service.

...

I have made a homepage with much more information about JavaCaml, the
sources, and even two demos:

http://people.darmstadt.netsurf.de/Gerd.Stolpmann/javacaml
---
--------------
--------------
---
* Markup & pretty printing
From: Christian Lindig <lindig@ips.cs.tu-bs.de>
Date: Tue, 5 Jan 1999
Where: http://www.cs.tu-bs.de/softech/people/lindig/software/
Says:
It is my pleasure to announce my simple Extensible Markup Language
(XML [1]) parser and pretty printer `Tony' written in Objective Caml. 
The parser is a spare time project and does not comply to the full XML
standard. 

    http://www.cs.tu-bs.de/softech/people/lindig/software/tony.html
    
The pretty printer is based on the pretty printing algebra proposed by
Philip Wadler [2] in his paper "A Prettier Printer".  His lazy
implementation was adopted for the strict evaluation of OCaml and may
be interesting in its own right.  The pretty printer module is
available in a separate library `mylib'. 

    http://www.cs.tu-bs.de/softech/people/lindig/software/mylib/index.html
---
--------------
--------------
---
* Expect
From: Ian T Zimmerman <itz@transbay.net>
Date: Fri, 1 Jan 1999 00:21:05 -0800
Where: ftp://ftp.prosa.it/pub/people/itz/mlexpect-0.9.0.tar.gz
Says:
mlexpect 0.9 has been uploaded to

ftp://ftp.prosa.it/pub/people/itz/mlexpect-0.9.0.tar.gz

All comments of any kind are heartily welcome.

I quote the README file:

This is mlexpect, a feeble attempt to to the same thing in ocaml as
Don Libes' expect program does in Tcl.
...
<comment from toby moth>
<<I didn't know what expect does, I have included the following
additional quote from John K. Ousterhout's Tcl book p.22:

expect is one of the oldest Tcl applications ad also one of the most
popular. It is a program that "talks" to interactive programs. Following
a script, expect knows what output can be expected from a program and 
what the correct responses should be.>>
---
--------------
--------------
---
* String
From: Mark Hayden <hayden@ispchannel.com>
Date: Sun, 27 Dec 1998
Where: http://simon.cs.cornell.edu/Info/People/hayden/publications.htm
Says:
You'll also find support for management of sub-strings
in the Ensemble group communication toolkit written in Ocaml.
...
 which can be found at

  http://simon.cs.cornell.edu/Info/People/hayden/publications.htm

The "substring" module are in the buffer subdirectory
of the Ensemble distribution.
---
--------------
--------------
---
* Games
From: Daniel de Rauglaudre <daniel.de_rauglaudre@inria.fr>
Date: Mon, 28 Dec 1998
Where: http://cristal.inria.fr/~ddr/
Says:
New release 1.01 of olibrt: games under X windows written in Ocaml.

You need Ocaml and Camlp4 to compile.

Games:
  * abalone: a strategy game
  * column: an arcade game like "tetris"
  * sht: a game with cards
  * sokoban: a maze game
  * vie: game of life
  * welltris: "tetris" in 2.5 dimensions
...
Distribution:
  * Click on my home page below and then "Olibrt".
---
--------------
--------------
---
* Ocaml tools/Extensions
From: Jacques GARRIGUE <garrigue@kurims.kyoto-u.ac.jp>
Date: Tue, 15 Dec 1998
Where: http://wwwfun.kurims.kyoto-u.ac.jp/~garrigue/
Says:
OCamlBrowser 2.01 is now available.

OCamlBrowser provides the same functionality as LablBrowser for the
original Objective Caml system. You need Objective Label to compile
it.

  http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/ocamlbrowser.html
  ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/ocamlbrowser-2.01.tar.gz
---
--------------
--------------
---
* String
From: Christian Lindig <lindig@ips.cs.tu-bs.de>
Date: Mon, 21 Dec 1998
Where: N/A
Says:
String processing includes scanning and splitting strings and is often
done using regular expressions.  Inspired by parser combinators I have
written a light weight library of `lexer combinators' which uses an
efficient internal representation of substrings:  a substring is a
(int * int) pair.  The first element denotes the index of the first
character and the second the length of the substring.  The interface
of the module is attached - mail me for the code.
---
--------------
--------------
---
* Ocaml tools/Extensions
From: Albert Cohen <Albert.Cohen@prism.uvsq.fr>
Date: Wed, 16 Dec 1998
Where: http://www.prism.uvsq.fr/~acohen/tuareg
Says:
Tuareg 1.33 is now available, with support for OCaml 2.01.

It's goal is to provide a good support for Caml editing and debugging.
...
See the README file and on-line help for details.
Sorry, the right URL for Tuareg home page was

http://www.prism.uvsq.fr/~acohen/tuareg
---
--------------
--------------
---
* Ocaml tools/Extensions
Date: Tue, 15 Dec 1998 16:08:31 +0900
From: Jacques GARRIGUE <garrigue@kurims.kyoto-u.ac.jp>
Where: ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/
Says:
As some would have expected, we release

	The Objective Label Trilogy, version 2.01

Containing as before

	* Objective Label
	    O'Caml + labels + defaults + variants + polymorphic methods
	* LablTk
	    Easy to use Tcl/Tk interface
	* LablBrowser
	    Interface browser and type-aware editor
...
More information on the Trilogy and LablGL at

	http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/
	http://pauillac.inria.fr/olabl/	(soon)

Source at

	ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/
---
--------------
--------------
---
* Markup & pretty printing
From: Basile STARYNKEVITCH <Basile.Starynkevitch@cea.fr>
Date: Fri, 11 Dec 1998
Where: N/A
Says:
For those that are interested, I coded (in OCAML) a tiny style for
prettyprinting OCAML in LOUT.
...
If you don't know what LOUT is, look at
"http://www.ptc.spbu.ru/~uwe/lout/lout.html". In short, LOUT is a text
formatter (similar to LaTeX in spirit) able to format part of text
with arbitrary program filters. Lout generates (color) PostScript &
PDF. Lout is freely available with sources (GPL-ed), written by Jeff
Kingston (ftp.cs.su.oz.au:/jeff/lout/).
...
If you want this tiny stuff (caml2lout.mll in Ocaml & camlprint in
Lout), ask me. I'll probably be able to give it (but I have no ftp
site, sorry).
---
--------------
--------------
---
* Genealogy
From: Daniel de Rauglaudre <daniel.de_rauglaudre@inria.fr>
Date: Wed, 9 Dec 1998
Where: http://cristal.inria.fr/~ddr/
Says:
GeneWeb is a genealogy software with a Web interface. It can be used
off-line or as a Web service.

The release 1.09 of GeneWeb is available, compilable with Ocaml 2.01
and Camlp4 2.01.

All infos about GeneWeb and downloading address at:
	http://cristal.inria.fr/~ddr/GeneWeb/
---
--------------
--------------
---
* Ocaml tools/Extensions
From: Daniel de Rauglaudre <daniel.de_rauglaudre@inria.fr>
Date: Wed, 9 Dec 1998
Where: http://caml.inria.fr/camlp4/
Says:
Camlp4 is a preprocessor-pretty-printer for Objective Caml.

The version 2.01, compatible with Ocaml 2.01 has been released.

All informations and downloading address at:
	http://caml.inria.fr/camlp4/
---
--------------
--------------
---
* Ocaml tools/Extensions
From:  Xavier Leroy <Xavier.Leroy@inria.fr>
Date: Wed, 9 Dec 1998
Where: http://caml.inria.fr/ocaml/distrib.html
Says:
Objective Caml 2.01 has just been released -- right in time for Christmas.
This is a bug-fix release that corrects all known 2.00 bugs, and adds
some convenience features (see below for a complete list of changes)
as well as a couple of new ports (Linux/StrongARM, IRIX/-n32).

It is available from the usual places:
        http://caml.inria.fr/ocaml/distrib.html
        ftp://ftp.inria.fr/lang/caml-light/
---
--------------
--------------
---
*  Ocaml tools/Extensions
From: Didier Remy <remy@morgon.inria.fr>
Date: Wed, 2 Dec 1998
Where: N/A
Says: ( not on caml mailing list )
By the way I made my own addition to the caml-mode in order to highlight
errors in the toplevel interactive loop as well, and a few other commands to
send several phrases to the toplevel, but stopping on the first error
encountered.

I have been using it for a while and it seems to work well. 
This could be intergrated in the standard distribution.

Currently, I load these extra functionalities in a file ocaml.el that itself
loads the other files of the caml-mode.  If the code were integrated in the
caml-mode distribution it would better be located in the files inf-caml.el
and caml.el.

This ocaml.el file is attached, if any of the caml-mode maintainers would
like to integrate some of this in the standard style (or any one else use
it).

        -Didier
---
--------------