[cwn] Attn: Development Editor, Latest Caml Weekly News

Alan Schmitt alan.schmitt at polytechnique.org
Tue Jun 7 05:40:21 PDT 2005


Hello,

Here is the latest Caml Weekly News, for the week of 31 May to 07 June,  
2005.

1) OUnit-1.0.2
2) ocaml-ssl 0.3.0
3) OCaml NAE releases Cf-0.6
4) Caml2TeX
5) 2005 ICFP Programming Contest

========================================================================
1) OUnit-1.0.2
Archive:  
<http://caml.inria.fr/pub/ml-archives/caml-list/2005/05/ 
a73b2155e460db4b5837c8bae9a9d16c.en.html>
------------------------------------------------------------------------
** Maas-Maarten Zeeman announced:

I'd like to announce OUnit-1.0.2, an OCaml unit-testing framework
similar to JUnit.

<http://www.xs4all.nl/~mmzeeman/ocaml/>

========================================================================
2) ocaml-ssl 0.3.0
Archive:  
<http://caml.inria.fr/pub/ml-archives/caml-list/2005/06/ 
4aea71c2bbabefa531eba0a4beae6ba1.en.html>
------------------------------------------------------------------------
** Samuel Mimram announced:

The 0.3.0 version of ocaml-ssl is out. This library consists in bindings
to the open-ssl library to handle secure communications. You can find it
here:

<http://savonet.sf.net/>

The main improvement of this version is that functions are provided to
make the library thread-safe (see the Ssl_threads.init function). It is
also more cooperative with threads (blocking sections everywhere). Bugs
were corrected and some functions were reorganized (small API breakage,
sorry).

It is released under the GPL license + openssl exception (though, I
could make it LGPL if someone really needs that).

Feel free to mail me if you've got any comment, bug, etc.

========================================================================
3) OCaml NAE releases Cf-0.6
Archive:  
<http://caml.inria.fr/pub/ml-archives/caml-list/2005/06/ 
f057b97bcb05dd893e0b88900e4ae692.en.html>
------------------------------------------------------------------------
** James Woodyatt announced:

Today, my OCaml Network Application Environment (NAE) project is
releasing another maintenance update of its core foundation library.
As the project page on SourceForge.Net says, OCaml NAE is "a collection
of Objective Caml libraries to support the development of concurrent,
single-threaded Internet application servers."

For downloads and more information, please see:

          <http://sf.net/projects/ocnae/>

The Cf library was formerly known as the Pagoda Core Foundation, but it
was never connected with the Pagoda project on SourceForge and should
not be confused with it.  An excerpt of the README file and the
complete CHANGES record for this release are below.

===== OCaml NAE Core Foundation (cf) library =====

This distribution is the Objective Caml Network Application Environment
(NAE)
Core Foundation library, which is a collection of miscellaneous
extensions to
the Objective Caml standard library.

Highlighted features include:

- Functional streams and stream processors (extended).
- Functional bootstrapped skew-binomial heap.
- Functional red-black binary tree (associative array).
- Functional sets based on red-black binary tree.
- Functional real-time catenable deque.
- Functional LL(x) parsing using state-exception monad.
- Functional lazy deterministic finite automaton (DFA).
- Functional lexical analyzer (using lazy DFA and monadic parser).
- Functional substring list manipulation (message buffer chains).
- Gregorian calendar date manipulation.
- Standard time manipulation.
- System time in Temps Atomique Internationale (TAI).
- Unicode transcoding.
- Extended socket interface (supports more options, and UDP
w/multicast).
- Universal resource identifier (URI) manipulation.
- I/O event multiplexing (with Unix.select).

Note: see the ISSUES file for a list of open problems in this release.

===== Required Components =====

This library requires the following external components:

- Objective Caml (v3.08.3 or newer)
- Findlib (tested with v0.8.1 and v1.0.4)

Principal development was on Mac OS X 10.3.  The final version of this
library also compiled successfully and passed all self-tests without
warnings
on Suse Linux 9.0 for x86-32.  Other platforms with POSIX-like
environments
should require only a minimal porting effort.

One major open issue: the extended socket interface is broken under
WIN32.
(The author invites help porting the library to other environments.)

===== Version 0.6 =====

Highlights of the changes:

+ More bugs fixed (some critical).

--- [Cf_rbtree]
      Fix bug in [Map.insert] that failed to replace nodes when the key
specifies
      a node that is already in the map.  (Thanks to Craig Falls, once
again, for
      finding this bug.)

--- [Cf_dfa]
      Improved lazy DFA module with a better functorial interface, to
allow for
      more efficient symbol maps (to support, e.g. wide character lexers)
and to
      decouple the symbol type from the cursor type, so that Cf_parser.X
can be
      used easily in place of Cf_parser.

--- [Cf_dfa, Cf_lexer]
      Fixed the documentation for the [( $@ )] operator to reflect the
actual
      behavior.  When the action parser does not accept the recognized
sequence,
      then no other rule is selected and no other action functions are
executed.

--- [Cf_lexer]
      Updated to use the new [Cf_dfa] interface, though it is now
deprecated in
      favor of the new, improved [Cf_lex] module (see below).

--- [Cf_uri]
      Updated to use the new [Cf_lex] in place of the deprecated
[Cf_lexer].

--- [various .c files]
      Rename custom data tags from 'pagoda' to 'ocnae'.

+ New functions.

--- [Cf_rbtree, Cf_set, Cf_map]
      Add [of_list_incr], [of_list_decr], [of_seq_incr] and
[of_seq_decr], which
      are optimized for lists and sequences known to be in increasing or
      decreasing order.

      These functions were derived from code contributed by Brian Hurt
(thanks!)
      and implement a variant on Hinze's algorithm:
          <http://citeseer.ist.psu.edu/hinze99constructing.html>

--- [Cf_set]
      Add [size] function.

--- [Cf_seq]
      Add [nil] value.
      Add [flatten] function.
      Requires Ocaml-3.08 now.

--- [Cf_flow]
      Add [commute_string] function.

--- [Cf_parser]
      Add [of_extended] and [to_extended] functions.
      Add [req] parser, an efficient shortcut for [alt (p :: err f ::
[])].
      Add [Error] exception for generic unparameterized errors.
      Add [altz] parser for match from a sequence (instead of a list) of
choices.

--- [Cf_scan_parser]
      Change [scanf] to return an ordinary Cf_parser.t function.
      Add [scanfx] to return a Cf_parser.X.t function.

--- [Cf_regex]
      New module for regular expression parsing, matching and search.

--- [Cf_lex]
      A new and improved lexical analysis module, with an interface
derived from
      the now deprecated [Cf_lexer].  It offers a more flexible interface
to the
      underlying [Cf_dfa] module, and its [( !~ )] and [( !$ )] operators
parse
      their string arguments as regular subexpressions with the format
defined in
      the new [Cf_regex] module.

--- [README]
      Fixed an embarrassing word-choice bug, i.e. principle vs.  
principal.

========================================================================
4) Caml2TeX
Archive:  
<http://caml.inria.fr/pub/ml-archives/caml-list/2005/06/ 
d3d5a8fd96d6a14f15abd3a7e8d79ec4.en.html>
------------------------------------------------------------------------
** Pierre-Etienne Meunier announced:

I am proud to announce the first release of Caml2TeX, an application
that produces LaTeX2e code from caml (OCaml, Caml light) source files.

Available at : <http://martin.jambon.free.fr/caml2html.html>

Since I wrote it very quickly from the Caml2html code, it may still have
a few bugs, but it worked for the caml files I did it for.
My main goal when I wrote it was to avoid creating a new LaTeX package.
It makes my TeX files very portable : you dont need to install anything
to compile the documents.

Known bugs :
- The standard Caml functions are not recognized as functions by  
Caml2TeX
- The functions following '#' (OCaml objects) are not recognized as
functions
- I write my Caml code with emacs, which produces weird indentations,
badly detected by Caml2TeX
- If argument 'a' is passed to function 'f', and 'a' is already declared
as a function, 'a' is considered a function in 'f', but it should be
considered an argument. In my opinion, it should lead to a bug in the
caml compiler : how do you use function 'a' in 'f' ?

========================================================================
5) 2005 ICFP Programming Contest
Archive:  
<http://caml.inria.fr/pub/ml-archives/caml-list/2005/06/ 
15438b9533d0ad65791ba292e41b2598.en.html>
------------------------------------------------------------------------
** Robby Findler announced:

Think your favorite programming language is the best one out
there? Put it to the test in this year's International Conference
on Functional Programming's annual Programming Contest. The
contest is coming up in a little under 4 weeks and we have just
released more information (including a live cd, mailing list, and
prize details) to the web page, at:

     <http://icfpc.plt-scheme.org/>

This year's competition rewards programmers who can plan ahead. As
before, we'll announce a problem and give you three days to solve it.
Two weeks later, we'll announce a change to the problem specification
and give you one day to adapt your program to the new spec. And you
guessed it: the second half will be worth considerably more than the
first.

Important dates:

   Problem announced: Friday, June 24th, 9:00am CDT (UTC-5)
   Initial entries due: Monday, June 27th, 9:00am CDT (UTC-5)
   Revision announced: Saturday, July 9th, 9:00am CDT (UTC-5)
   Final entries due: Sunday, July 10th, 9:00am CDT (UTC-5)

========================================================================
Using folding to read the cwn in vim 6+
------------------------------------------------------------------------
Here is a quick trick to help you read this CWN if you are viewing it  
using
vim (version 6 or greater).

:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~'^=\\{78}$'?'<1':1
zM
If you know of a better way, please let me know.

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

If you happen to miss a CWN, you can send me a message
(alan.schmitt at polytechnique.org) and I'll mail it to you, or go take a  
look at
the archive (<http://sardes.inrialpes.fr/~aschmitt/cwn/>) or the RSS  
feed of the
archives (<http://sardes.inrialpes.fr/~aschmitt/cwn/cwn.rss>). If you  
also wish
to receive it every week by mail, you may subscribe online at
<http://lists.idyll.org/listinfo/caml-news-weekly/> .

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

Alan Schmitt, <http://sardes.inrialpes.fr/~aschmitt/>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: =?ISO-8859-1?Q?Ceci_est_une_signature_=E9lectronique_PGP?=
Url : http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20050607/087411a5/PGP.bin


More information about the caml-news-weekly mailing list