Previous week   Up   Next week
Hello,

Here is the latest Caml Weekly News, week 29 October to 05 November, 2002.

1) The 'morpion solitaire' game
2) ocamlnet-0.94 released
3) module namespace
4) PXP 1.1.93 (development version)
5) lablglut-1.2.2
6) New Ensemble release (1.39)
7) OS X distribution

======================================================================
1) The 'morpion solitaire' game
----------------------------------------------------------------------
Nicolas Francois announced:

For the ones interested; I've put on my site (see below) in Caml section a
little program named 'morpion' which try to solve the 'morpion solitaire'
game (see Google for a definition... ot run the program :-).

If anyone is interested in testing or improving the program, just let me
know.

bye

Nicolas FRANCOIS
http://nicolas.francois.free.fr

======================================================================
2) ocamlnet-0.94 released
----------------------------------------------------------------------
Gerd Stolpmann announced:

I have just released ocamlnet-0.94. The list of changes is
attached at the end of the mail. Most important, there is   
now a preliminary manual.

----------------------------------------------------------------------
What is ocamlnet?
----------------------------------------------------------------------

A collection of modules for the Objective Caml language which focus on
application-level Internet protocols and conventions.

The current distribution contains:

- a mature implementation of the CGI protocol

- an implementation of the JSERV protocol (AJP-1.2), can be used with
  mod_jserv (Apache JServ) and mod_jk (Jakarta connector) to connect
  application servers written in O'Caml with web servers

- an experimental POP3 client

- a library of string processing functions related to Internet
  protocols (formerly known as "netstring" and distributed separately):
  MIME encoding/decoding, Date/time parsing, Character encoding
  conversion, HTML parsing and printing, URL parsing and printing,
  OO-representation of channels, and a lot more.

Ocamlnet is developed as a SourceForge project:

  http://sourceforge.net/projects/ocamlnet

Developers and code contributions are welcome.

Ocamlnet is licensed under the zlib/libpng license.

----------------------------------------------------------------------
Where can I download the sources?
----------------------------------------------------------------------

http://prdownloads.sourceforge.net/ocamlnet/ocamlnet-0.94.tar.gz
http://www.ocaml-programming.de/packages/ocamlnet-0.94.tar.gz

You NEED the PCRE library as prerequisite, and findlib is recommended
(but not required).

----------------------------------------------------------------------
Where can I read more?
----------------------------------------------------------------------

http://ocamlnet.sourceforge.net. There is also an online version of the
manual.

----------------------------------------------------------------------
Changes in 0.94:
----------------------------------------------------------------------

There is now a preliminary manual (doc/intro/html).

Netchannels: raw_input_channel/raw_output_channel stuff has been
improved.

Netstreams: class input_stream: The ~len argument is interpreted
correctly.

Netconversion: Minor fixes

Netcgi: Support for the HEAD method. Workaround for bug in IE when
the cookie value is the empty string.

======================================================================
3) module namespace
----------------------------------------------------------------------
Yurii Rashkovskii announced:

I've developed small preprocessor module that provides kind of 
namespace support for the Objective Caml.

It defines following constructs:

* module ModuleName in [Namespace|Namespace.Namespace]

it defines module ModuleName within namespace

Examples:
 module Test in Org.Openeas = struct let test = () end
 module Test in Org.Openeas : sig val test:unit end

* module type ModuleTypeName in [Namespace|Namespace.Namespace]

it defines module type ModuleTypeName within namespace

Example:
 module type T = sig val test:unit end

* open ModuleName in [Namespace|Namespace.Namespace]

it opens module ModuleName from namespace

Example:
 open Unix in Org.Ocaml

* open ModuleName in [Namespace|Namespace.Namespace] as NewModuleName

the same as previous, but also renames module ModuleName to NewModuleName

Example:
 open Unix in Org.Ocaml as CamlUnix

* use [Namespace|Namespace.Namespace]

it opens namespace module. If namespace name contains dots, they are
replaced with underline.

Example:  
 use Org.Openeas

If somebody is interested, I want to hear comments, questions,
bugs of current implementation and so on.

Early source code is attached.

(see the source and the followup discussion at
http://caml.inria.fr/archives/200211/msg00002.html)

======================================================================
4) PXP 1.1.93 (development version)
----------------------------------------------------------------------
Gerd Stolpmann announced:

There is a new development version of PXP: 1.1.93. This version
does not add any new features, but fixes bugs that have been
found so far:

- Files were not always closed in the previous version
- There were debug output in the pull parser code
- There were errors in the Makefiles

The new version can be found at the usual place:

http://www.ocaml-programming.de/packages/pxp-1.1.93.tar.gz

======================================================================
5) lablglut-1.2.2
----------------------------------------------------------------------
Issac Trotts announced:

A new version of lablglut is available at

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

The changes are:
- no longer including a copy of lablGL
- simpler compilation and installation
- assorted clean-up

======================================================================
6) New Ensemble release (1.39)
----------------------------------------------------------------------
Ohad Rodeh announced:

Ensemble is a group communication system written by Cornell, and the Hebrew
University.
It allows the creation of process group wherein reliable communication
is supported. The system core is written in ML, with wrappers for
C/C++/Java.

A new Ensemble release, version 1.39,  is now available, below are the
release notes.

RELEASE_NOTES

  This distribution includes ports to HPUX and Solaris donated by
Bernd Harries (bha@gmx.de). The socket library has been reworked,
generic code was split away from platform specific code. The five
supported total ordering protocols have been brought up to date. A
document describing the Ensemble lower-level transport and io-vector
system has been added to the tutorial.

  A bug affecting use of gossip on win32 systems using UDP has been reported,
and has not been fixed in this distribution. The next distribution will
include a fix for it.

   IBM research has been added to the list of copyright
 holders along with Cornell and the Hebrew University. This does not
 change the terms of the licence, the system remains free of charge
 in the spirit of its BSD licence.

A more specific list of changes:
1. Port to Solaris and HPUX, donated by Bernd Harries (bha@gmx.de).
3. Improved SEQBB performance.
4. Fixed ref-count and correctness bugs in SEQUENCER, TOTEM, TOTAL.
5. Reworked the socket library
   - Use the new ocaml-3.06 Unix setsock calls
   - split between the Unix stuff and win32 stuff, this gets read of the
     all the #ifdefs.
   - Rewritten the makefiles
   - Improved the exported .H files
   - cleanup
6. Improved safety of reference counted buffers.
7. Added a first version of a document describing the Ensemble lower-level
   transport and io-vector system. It can be found in the tutorial.
8. Removed the need for the ENS_ABSROOT environment variable. This was
   previously needed on win32 systems for 'make clean' purposes.
9. Bug effecting gossip on win32 systems. When an application using a
   gossip server dies, the gossip server goes into an infinite loop
   due to an endless sequence of socket errors. We are working on
   fixing this behaviour.


OCAML COMPILER VERSION
  We are using version 3.06 for this version.

PORTABILITY
  This version was tested on Linux, and WIN2000. It was also used on Solaris
(with a gcc system) and HPUX.

DOWNLOAD
  The system home site is at: http://www.cs.cornell.edu/Info/Projects/Ensemble

======================================================================
7) OS X distribution
----------------------------------------------------------------------
Stephen Harris announced:

I've put up a preliminary binary distribution of Ocaml for OS X, at
http://home.att.net/~scharris/OSX/

It appears as a single icon, just drag it wherever you want it and
you're set.
I've tried to do it the "OS X way" by putting everything that's needed
within the application itself,  which like all OS X apps is really a
directory "<app-name>.app" in the unix filesystem.  So the ocaml files
which ordinarily would be installed into  e.g. /usr/local/{lib,bin} are
within the application itself, in directories
<app-name>.app/dist/{lib,bin}.
The gui application itself is the toplevel wrapper that was announced
earlier. By default it now uses the ocaml toplevel it includes within
itself (so the user doesn't have to configure the path to the
interpreter now), but that's configurable and you can download it with
or without the ocaml distribution within it.

Some things still aren't fully worked out in the gui toplevel wrapper,
such as how best to recognize termination of input.  You can tell it
whether to look for ;;'s or ;'s (in case you like revised syntax) as a
terminator, but if that's not the real end of input *and* it happens to
end the line (except for whitespace), then it will be confused for end
of input.  The confustion is more likely in revised syntax I guess
since ;'s are also list separators.  But you can always put it in the
mode where shift-enter ends the input.  I do wonder if anybody has any  
better ideas though, short of putting a full parser into it.


PS: at least look at  the image at the top of the page, "lambda leading
camel", which is also the app icon.

======================================================================
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, or go take a look at
the archive (http://pauillac.inria.fr/~aschmitt/cwn/). If you also wish
to receive it every week by mail, just tell me so.

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

Alan Schmitt