* Map.fold behavior changed
@ 2006-02-24 11:22 EEK Cooper
2006-02-24 11:43 ` [Caml-list] " Jean-Christophe Filliatre
` (2 more replies)
0 siblings, 3 replies; 21+ messages in thread
From: EEK Cooper @ 2006-02-24 11:22 UTC (permalink / raw)
To: caml-list
Hi all,
My team just noticed that the behavior of Map.fold changed in OCaml
version 3.08.4.
I'm concerned that the OCaml team would change the behavior of a
library function so late in its life. I understand that it was thought
to be "wrong" <http://caml.inria.fr/mantis/view.php?id=3607>, but
changing the behavior of an existing function breaks existing apps and
shouldn't be done lightly. Such changes should, of course, be carefully
highlighted in a change log as *incompatible* changes, requring updates
to existing programs--this one was buried under "bug fixes." The old
behavior was apparently longstanding since 1995
<http://camlcvs.inria.fr/cgi-bin/cvsweb/ocaml/stdlib/map.ml?annotate=1.15;f=h>
versus
<http://camlcvs.inria.fr/cgi-bin/cvsweb/ocaml/stdlib/map.ml?annotate=1.15.4.1;f=h>. If OCaml is meant to be a practical programming language, it should provide consistency for its users from version to
version.
That said, we're now in the position where we need to compile different
code depending on the version of OCaml. What's the best way to do
conditional compilation in OCaml? Should we use cpp and #ifdef, or is
there a more OCaml-savvy solution?
Thanks in advance,
Ezra
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-02-24 11:22 Map.fold behavior changed EEK Cooper
@ 2006-02-24 11:43 ` Jean-Christophe Filliatre
2006-02-24 13:29 ` EEK Cooper
2006-02-24 15:31 ` Brian Hurt
2006-03-01 5:20 ` Nathaniel Gray
2 siblings, 1 reply; 21+ messages in thread
From: Jean-Christophe Filliatre @ 2006-02-24 11:43 UTC (permalink / raw)
To: EEK Cooper; +Cc: caml-list
EEK Cooper writes:
>
> My team just noticed that the behavior of Map.fold changed in OCaml
> version 3.08.4.
>
> I'm concerned that the OCaml team would change the behavior of a
> library function so late in its life. I understand that it was thought
> to be "wrong" <http://caml.inria.fr/mantis/view.php?id=3607>, but
> changing the behavior of an existing function breaks existing apps and
> shouldn't be done lightly.
I must agree with you since we also got a similar bug in one of our
apps due to this Map.fold _implementation_ change.
However, we must also admit that we were using an unspecified feature
of the standard library. If I remember correctly, the documentation
was saying that the traversal order was left _unspecified_. The new
version of Map.fold simply has a stronger, but consistent,
specification. From this point of view, the Ocaml team thus cannot be
blamed.
You (and I) were using the _implementation_ as a specification, which
is bad :-)
--
Jean-Christophe Filliâtre (http://www.lri.fr/~filliatr)
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-02-24 11:43 ` [Caml-list] " Jean-Christophe Filliatre
@ 2006-02-24 13:29 ` EEK Cooper
2006-02-24 13:44 ` Jean-Christophe Filliatre
2006-02-24 14:13 ` Damien Doligez
0 siblings, 2 replies; 21+ messages in thread
From: EEK Cooper @ 2006-02-24 13:29 UTC (permalink / raw)
To: Jean-Christophe Filliatre; +Cc: caml-list
I'm glad to hear that others are facing this problem as well. Those of
you who are: how are you dealing with it? Are you simply requiring your
users to use a particular version of the compiler? Or switching on
Sys.ocaml_version?
Quoting Jean-Christophe Filliatre <filliatr@lri.fr>:
> EEK Cooper writes:
>
> > My team just noticed that the behavior of Map.fold changed in OCaml
> > version 3.08.4.
> >
> > I'm concerned that the OCaml team would change the behavior of a
> > library function so late in its life. I understand that it was thought
> > to be "wrong" <http://caml.inria.fr/mantis/view.php?id=3607>, but
> > changing the behavior of an existing function breaks existing apps and
> > shouldn't be done lightly.
>
> I must agree with you since we also got a similar bug in one of our
> apps due to this Map.fold _implementation_ change.
>
> However, we must also admit that we were using an unspecified feature
> of the standard library. If I remember correctly, the documentation
> was saying that the traversal order was left _unspecified_.
For the record, I don't think this is true. My copy of map.mli, as part
of OCaml 3.08.3, says:
val fold: (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
(** [fold f m a] computes [(f kN dN ... (f k1 d1 a)...)],
where [k1 ... kN] are the keys of all bindings in [m]
(in increasing order), and [d1 ... dN] are the associated data. *)
specifying the same ordering as the current version. Also the original
bug ticket <http://caml.inria.fr/mantis/view.php?id=3607> about the
issue asserts that it should behave according to the documentation.
Since the behavior was NOT unspecified, it was reasonable to assume
that the documentation suffered from a simple typo, and to expect the
behavior not to change. I believe the documentation should have been
fixed rather than the behavior.
Ezra
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-02-24 13:29 ` EEK Cooper
@ 2006-02-24 13:44 ` Jean-Christophe Filliatre
2006-02-24 14:13 ` Damien Doligez
1 sibling, 0 replies; 21+ messages in thread
From: Jean-Christophe Filliatre @ 2006-02-24 13:44 UTC (permalink / raw)
To: EEK Cooper; +Cc: caml-list
EEK Cooper writes:
> I'm glad to hear that others are facing this problem as well. Those of
> you who are: how are you dealing with it? Are you simply requiring your
> users to use a particular version of the compiler? Or switching on
> Sys.ocaml_version?
When we discovered the bug, we first used a test of ocaml's version at
configuration time and a preprocessing using camlp4's pa_ifdef module
to select the right order relation according to ocaml's version (our
initial order relation or the inverse relation, to get the same
behavior as before with the new Map.fold).
But this was not very satisfactory, and we finally rewrote our code to
be independent of Map.fold implementation (and we got rid of camlp4
preprocessing, which simplified our Makefile).
--
Jean-Christophe Filliâtre (http://www.lri.fr/~filliatr)
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-02-24 13:29 ` EEK Cooper
2006-02-24 13:44 ` Jean-Christophe Filliatre
@ 2006-02-24 14:13 ` Damien Doligez
2006-02-24 15:43 ` Brian Hurt
2006-02-24 16:01 ` Joaquin Cuenca Abela
1 sibling, 2 replies; 21+ messages in thread
From: Damien Doligez @ 2006-02-24 14:13 UTC (permalink / raw)
To: caml-list
On Feb 24, 2006, at 14:29, EEK Cooper wrote:
> Since the behavior was NOT unspecified, it was reasonable to assume
> that the
> documentation suffered from a simple typo, and to expect the
> behavior not to
> change.
"It is documented to do something else, so we will assume that it's
intended
to do what it does, instead of what the documentation says."
I don't think this is very reasonable.
-- Damien
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-02-24 11:22 Map.fold behavior changed EEK Cooper
2006-02-24 11:43 ` [Caml-list] " Jean-Christophe Filliatre
@ 2006-02-24 15:31 ` Brian Hurt
2006-03-01 5:20 ` Nathaniel Gray
2 siblings, 0 replies; 21+ messages in thread
From: Brian Hurt @ 2006-02-24 15:31 UTC (permalink / raw)
To: EEK Cooper; +Cc: caml-list
On Fri, 24 Feb 2006, EEK Cooper wrote:
> Hi all,
>
> My team just noticed that the behavior of Map.fold changed in OCaml version
> 3.08.4.
OK, Stupid question on my part: what was the change in behavior?
Brian
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-02-24 14:13 ` Damien Doligez
@ 2006-02-24 15:43 ` Brian Hurt
2006-02-24 16:20 ` Jean-Christophe Filliatre
2006-02-24 16:01 ` Joaquin Cuenca Abela
1 sibling, 1 reply; 21+ messages in thread
From: Brian Hurt @ 2006-02-24 15:43 UTC (permalink / raw)
To: Damien Doligez; +Cc: caml-list
On Fri, 24 Feb 2006, Damien Doligez wrote:
> On Feb 24, 2006, at 14:29, EEK Cooper wrote:
>
>> Since the behavior was NOT unspecified, it was reasonable to assume that
>> the
>> documentation suffered from a simple typo, and to expect the behavior not
>> to
>> change.
>
> "It is documented to do something else, so we will assume that it's intended
> to do what it does, instead of what the documentation says."
>
> I don't think this is very reasonable.
OK, My stupid question was already answered.
There are times, however, when a specified traversal ordering is required.
Since a map is defined as an ordered tree, having a fold_left and
fold_right functions would not be hard to do:
let rec fold_left f init = function
| Empty -> init
| Node(l, v, d, r, _) ->
fold_left f (f (fold_left f init l) v d) r
let rec fold_right f node init =
match node with
| Empty -> init
| Node(l, v, d, r, _) ->
fold_right f l (f v d (fold_right f r init))
These aren't checked to see if they even compile, but they're close.
I may take this opportunity to offer a red-black tree implementation of
Map as a replacement, if people are interested. The advantage a
red-black tree is that it uses one less word of memory per element in a
map.
Brian
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-02-24 14:13 ` Damien Doligez
2006-02-24 15:43 ` Brian Hurt
@ 2006-02-24 16:01 ` Joaquin Cuenca Abela
2006-02-27 12:59 ` Damien Doligez
1 sibling, 1 reply; 21+ messages in thread
From: Joaquin Cuenca Abela @ 2006-02-24 16:01 UTC (permalink / raw)
To: caml-list
--- Damien Doligez <damien.doligez@inria.fr> wrote:
> On Feb 24, 2006, at 14:29, EEK Cooper wrote:
>
> > Since the behavior was NOT unspecified, it was
> reasonable to assume
> > that the
> > documentation suffered from a simple typo, and to
> expect the
> > behavior not to
> > change.
>
> "It is documented to do something else, so we will
> assume that it's
> intended
> to do what it does, instead of what the
> documentation says."
>
> I don't think this is very reasonable.
Expecting the documentation to be beyond flaws or
making it right "by definition" also exposes you to
problems when it just doesn't follow the intent of the
writers.
The fact that the documentation is written in english
and not in a computer language doesn't make it any
less vulnerable to bugs.
If the implementation and documentation diverge, and
both behaviours are equally logic, sound, consistent,
etc. the fact that changing the documentation doesn't
create any regression problems should easily tip the
balance against any change in the implementation.
Regards,
Joaquin Cuenca Abela
e98cuenc at yahoo dot com
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-02-24 15:43 ` Brian Hurt
@ 2006-02-24 16:20 ` Jean-Christophe Filliatre
0 siblings, 0 replies; 21+ messages in thread
From: Jean-Christophe Filliatre @ 2006-02-24 16:20 UTC (permalink / raw)
To: Brian Hurt; +Cc: Damien Doligez, caml-list
Brian Hurt writes:
>
> I may take this opportunity to offer a red-black tree implementation of
> Map as a replacement, if people are interested. The advantage a
> red-black tree is that it uses one less word of memory per element in a
> map.
For information, I wrote an implementation of Set using red-black
trees a long time ago. It is available here:
http://www.lri.fr/~filliatr/software.en.html
Note: this code was even formally proved correct using a proof
assistant. Getting Map from Set is rather straightforward.
I also did some benchmarks to compare red-black trees, patricia trees
and Ocaml AVLs and, as time is concerned, the AVLs were (almost)
always the most efficient.
--
Jean-Christophe Filliâtre (http://www.lri.fr/~filliatr)
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-02-24 16:01 ` Joaquin Cuenca Abela
@ 2006-02-27 12:59 ` Damien Doligez
2006-03-02 13:57 ` Ezra Cooper
0 siblings, 1 reply; 21+ messages in thread
From: Damien Doligez @ 2006-02-27 12:59 UTC (permalink / raw)
To: caml-list
On Feb 24, 2006, at 17:01, Joaquin Cuenca Abela wrote:
> Expecting the documentation to be beyond flaws or
> making it right "by definition" also exposes you to
> problems when it just doesn't follow the intent of the
> writers.
Of course, but when you find a discrepancy, you should file a bug
report, not assume that the documentation is wrong.
-- Damien
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-02-24 11:22 Map.fold behavior changed EEK Cooper
2006-02-24 11:43 ` [Caml-list] " Jean-Christophe Filliatre
2006-02-24 15:31 ` Brian Hurt
@ 2006-03-01 5:20 ` Nathaniel Gray
2006-03-01 9:33 ` Nicolas Pouillard
2 siblings, 1 reply; 21+ messages in thread
From: Nathaniel Gray @ 2006-03-01 5:20 UTC (permalink / raw)
To: EEK Cooper; +Cc: caml-list
On 2/24/06, EEK Cooper <s0567141@sms.ed.ac.uk> wrote:
> Hi all,
>
> My team just noticed that the behavior of Map.fold changed in OCaml
> version 3.08.4.
>
[snip
> That said, we're now in the position where we need to compile different
> code depending on the version of OCaml. What's the best way to do
> conditional compilation in OCaml? Should we use cpp and #ifdef, or is
> there a more OCaml-savvy solution?
Copy/paste. Take the implementation you like, copy it, call it MyMap,
and use a sed script to change Map to MyMap in your code. Quick?
Yes. Effective? Yes. Elegant? Not so much.
BTW, cpp won't work because of the lexical differences between ocaml
and C. OTOH, I think there may be a camlp4 module that implements
cpp-like ifdefs.
Cheers,
-n8
--
>>>-- Nathaniel Gray -- Caltech Computer Science ------>
>>>-- Mojave Project -- http://mojave.cs.caltech.edu -->
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-03-01 5:20 ` Nathaniel Gray
@ 2006-03-01 9:33 ` Nicolas Pouillard
0 siblings, 0 replies; 21+ messages in thread
From: Nicolas Pouillard @ 2006-03-01 9:33 UTC (permalink / raw)
To: Nathaniel Gray; +Cc: EEK Cooper, caml-list
On 3/1/06, Nathaniel Gray <n8gray@gmail.com> wrote:
> On 2/24/06, EEK Cooper <s0567141@sms.ed.ac.uk> wrote:
> > Hi all,
> >
> > My team just noticed that the behavior of Map.fold changed in OCaml
> > version 3.08.4.
> >
[...]
> BTW, cpp won't work because of the lexical differences between ocaml
> and C. OTOH, I think there may be a camlp4 module that implements
> cpp-like ifdefs.
>
The pa_macro module does that.
Cheers,
--
Nicolas Pouillard aka Ertai <ertai@feydakins.org>
http://uttk.org Uttk -- Unified Test Tool Kit
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-02-27 12:59 ` Damien Doligez
@ 2006-03-02 13:57 ` Ezra Cooper
2006-03-03 15:41 ` N. Owen Gunden
0 siblings, 1 reply; 21+ messages in thread
From: Ezra Cooper @ 2006-03-02 13:57 UTC (permalink / raw)
To: Damien Doligez; +Cc: caml-list
Damien Doligez wrote:
>
> On Feb 24, 2006, at 17:01, Joaquin Cuenca Abela wrote:
>
>> Expecting the documentation to be beyond flaws or
>> making it right "by definition" also exposes you to
>> problems when it just doesn't follow the intent of the
>> writers.
>
>
> Of course, but when you find a discrepancy, you should file a bug
> report, not assume that the documentation is wrong.
But you see, in this case a member of my team was reading the latest
documentation, and using the latest version. So everything looked
correct to him, but he didn't realize that he was making our code
incompatible with the last ~10 years of OCaml.
In any case, we have worked around it by testing Sys.ocaml_version.
Thanks to everyone who replied for their suggestions.
Is there any reason why Sys.ocaml_version is a string, by the way?
Shouldn't it be some kind of numerical representation to make it easy to
do ordered comparisons?
Thanks all,
Ezra
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-03-02 13:57 ` Ezra Cooper
@ 2006-03-03 15:41 ` N. Owen Gunden
2006-03-09 7:14 ` Florian Hars
0 siblings, 1 reply; 21+ messages in thread
From: N. Owen Gunden @ 2006-03-03 15:41 UTC (permalink / raw)
To: caml-list
On Thu, Mar 02, 2006 at 01:57:53PM +0000, Ezra Cooper wrote:
> Is there any reason why Sys.ocaml_version is a string, by the way?
> Shouldn't it be some kind of numerical representation to make it easy to
> do ordered comparisons?
Actually ordered comparisons work very nicely on string version numbers.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-03-03 15:41 ` N. Owen Gunden
@ 2006-03-09 7:14 ` Florian Hars
2006-03-13 16:31 ` Damien Doligez
0 siblings, 1 reply; 21+ messages in thread
From: Florian Hars @ 2006-03-09 7:14 UTC (permalink / raw)
To: N. Owen Gunden; +Cc: caml-list
N. Owen Gunden wrote:
> Actually ordered comparisons work very nicely on string version numbers.
This reminds me of an episode on another mailing list some years ago, where
someone complained: "The documentation for package A says that it requires at
least version 1.13 of package B, I used version 1.9 of Package B, and it still
doesn't work."
Yours, Florian.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-03-09 7:14 ` Florian Hars
@ 2006-03-13 16:31 ` Damien Doligez
2006-03-15 7:27 ` Florian Hars
0 siblings, 1 reply; 21+ messages in thread
From: Damien Doligez @ 2006-03-13 16:31 UTC (permalink / raw)
To: caml-list
On Mar 9, 2006, at 08:14, Florian Hars wrote:
> This reminds me of an episode on another mailing list some years
> ago, where
> someone complained: "The documentation for package A says that it
> requires at
> least version 1.13 of package B, I used version 1.9 of Package B,
> and it still
> doesn't work."
OCaml version numbers won't have this problem until version 10,
which, at the
current release rate, shouldn't happen before the year 2048.
At that time I will push for using letters for major relase numbers,
in order
to get another 300 years of nicely-comparable version numbers.
-- Damien
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-03-13 16:31 ` Damien Doligez
@ 2006-03-15 7:27 ` Florian Hars
2006-03-15 7:37 ` Jon Harrop
2006-03-15 7:40 ` Alain Frisch
0 siblings, 2 replies; 21+ messages in thread
From: Florian Hars @ 2006-03-15 7:27 UTC (permalink / raw)
To: Damien Doligez; +Cc: caml-list
Damien Doligez wrote:
> OCaml version numbers won't have this problem until version 10, which,
> at the current release rate, shouldn't happen before the year 2048.
OCaml version numbers won't have this problem until version 3.10, which,
at the current release rate, shouldn't happen before the year 2006.
Yours, Florian.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-03-15 7:27 ` Florian Hars
@ 2006-03-15 7:37 ` Jon Harrop
2006-03-15 7:40 ` Alain Frisch
1 sibling, 0 replies; 21+ messages in thread
From: Jon Harrop @ 2006-03-15 7:37 UTC (permalink / raw)
To: caml-list
On Wednesday 15 March 2006 07:27, Florian Hars wrote:
> Damien Doligez wrote:
> > OCaml version numbers won't have this problem until version 10, which,
> > at the current release rate, shouldn't happen before the year 2048.
>
> OCaml version numbers won't have this problem until version 3.10, which,
> at the current release rate, shouldn't happen before the year 2006.
But the current version number is 3.09.1?
--
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
Objective CAML for Scientists
http://www.ffconsultancy.com/products/ocaml_for_scientists
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-03-15 7:27 ` Florian Hars
2006-03-15 7:37 ` Jon Harrop
@ 2006-03-15 7:40 ` Alain Frisch
2006-03-15 8:41 ` Florian Hars
1 sibling, 1 reply; 21+ messages in thread
From: Alain Frisch @ 2006-03-15 7:40 UTC (permalink / raw)
To: Florian Hars; +Cc: Damien Doligez, caml-list
Florian Hars wrote:
> Damien Doligez wrote:
>
>> OCaml version numbers won't have this problem until version 10,
>> which, at the current release rate, shouldn't happen before the year
>> 2048.
>
>
> OCaml version numbers won't have this problem until version 3.10, which,
> at the current release rate, shouldn't happen before the year 2006.
Hint:
# "3.09.1" < "3.10";;
- : bool = true
Cheers,
Alain
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-03-15 7:40 ` Alain Frisch
@ 2006-03-15 8:41 ` Florian Hars
2006-03-15 21:18 ` Christophe Raffalli
0 siblings, 1 reply; 21+ messages in thread
From: Florian Hars @ 2006-03-15 8:41 UTC (permalink / raw)
To: Alain Frisch; +Cc: Damien Doligez, caml-list
Alain Frisch wrote:
> # "3.09.1" < "3.10";;
Ugh. I hate leading zeroes. And I will get another coffee right now.
Yours, Florian.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Caml-list] Map.fold behavior changed
2006-03-15 8:41 ` Florian Hars
@ 2006-03-15 21:18 ` Christophe Raffalli
0 siblings, 0 replies; 21+ messages in thread
From: Christophe Raffalli @ 2006-03-15 21:18 UTC (permalink / raw)
To: Florian Hars; +Cc: Alain Frisch, caml-list, Damien Doligez
Florian Hars a écrit :
> Alain Frisch wrote:
> > # "3.09.1" < "3.10";;
>
may be next version of ocaml will be 4.0 ;-)
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2006-03-15 21:18 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-02-24 11:22 Map.fold behavior changed EEK Cooper
2006-02-24 11:43 ` [Caml-list] " Jean-Christophe Filliatre
2006-02-24 13:29 ` EEK Cooper
2006-02-24 13:44 ` Jean-Christophe Filliatre
2006-02-24 14:13 ` Damien Doligez
2006-02-24 15:43 ` Brian Hurt
2006-02-24 16:20 ` Jean-Christophe Filliatre
2006-02-24 16:01 ` Joaquin Cuenca Abela
2006-02-27 12:59 ` Damien Doligez
2006-03-02 13:57 ` Ezra Cooper
2006-03-03 15:41 ` N. Owen Gunden
2006-03-09 7:14 ` Florian Hars
2006-03-13 16:31 ` Damien Doligez
2006-03-15 7:27 ` Florian Hars
2006-03-15 7:37 ` Jon Harrop
2006-03-15 7:40 ` Alain Frisch
2006-03-15 8:41 ` Florian Hars
2006-03-15 21:18 ` Christophe Raffalli
2006-02-24 15:31 ` Brian Hurt
2006-03-01 5:20 ` Nathaniel Gray
2006-03-01 9:33 ` Nicolas Pouillard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox