You can subscribe to this list here.
2003 |
Jan
|
Feb
(81) |
Mar
(97) |
Apr
(88) |
May
(80) |
Jun
(170) |
Jul
(9) |
Aug
|
Sep
(18) |
Oct
(58) |
Nov
(19) |
Dec
(7) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(22) |
Feb
(9) |
Mar
(28) |
Apr
(164) |
May
(186) |
Jun
(101) |
Jul
(143) |
Aug
(387) |
Sep
(69) |
Oct
(14) |
Nov
(8) |
Dec
(99) |
2005 |
Jan
(10) |
Feb
(34) |
Mar
(24) |
Apr
(7) |
May
(41) |
Jun
(20) |
Jul
(3) |
Aug
(23) |
Sep
(2) |
Oct
(26) |
Nov
(41) |
Dec
(7) |
2006 |
Jan
(6) |
Feb
(3) |
Mar
(11) |
Apr
|
May
|
Jun
(5) |
Jul
(8) |
Aug
(20) |
Sep
|
Oct
(6) |
Nov
(5) |
Dec
|
2007 |
Jan
|
Feb
(1) |
Mar
|
Apr
(3) |
May
(2) |
Jun
|
Jul
|
Aug
(1) |
Sep
(7) |
Oct
(6) |
Nov
(19) |
Dec
(11) |
2008 |
Jan
|
Feb
(7) |
Mar
(9) |
Apr
(21) |
May
(42) |
Jun
(27) |
Jul
(28) |
Aug
(26) |
Sep
(16) |
Oct
(32) |
Nov
(49) |
Dec
(65) |
2009 |
Jan
(35) |
Feb
(20) |
Mar
(36) |
Apr
(42) |
May
(111) |
Jun
(99) |
Jul
(70) |
Aug
(25) |
Sep
(15) |
Oct
(29) |
Nov
(3) |
Dec
(18) |
2010 |
Jan
(10) |
Feb
(4) |
Mar
(57) |
Apr
(63) |
May
(71) |
Jun
(64) |
Jul
(30) |
Aug
(49) |
Sep
(11) |
Oct
(4) |
Nov
(2) |
Dec
(3) |
2011 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(1) |
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
2024 |
Jan
(1) |
Feb
(3) |
Mar
(6) |
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2025 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(5) |
Oct
|
Nov
|
Dec
|
From: Bardur A. <lis...@sc...> - 2005-02-12 11:11:25
|
Hello, I just noticed that there are a few bug reports on the project's SourceForge pages and was just wondering if it's possible for one of the SF project admins to disable the patch/bug/supp.req. trackers entirely? It seems a bit silly to let users report things into them only to have to tell them to use the mailing list... -- Bardur Arantsson <ba...@im...> <ba...@sc...> Knowledge shared is power lost. Alistair Crowley |
From: Richard J. <ri...@an...> - 2005-02-10 19:41:47
|
On Thu, Feb 10, 2005 at 03:19:13PM -0400, Juancarlo A?ez wrote: > I don't understand why such functions are not part of the standard library. That's exactly the reason why extlib exists - to provide useful functions to the community which are not part of the standard library. Rich. -- Richard Jones, CTO Merjis Ltd. Merjis - web marketing and technology - http://merjis.com Team Notepad - intranets and extranets for business - http://team-notepad.com |
From: <ju...@su...> - 2005-02-10 19:19:33
|
Rich, | As others have said, these functions are not in the standard library. | However, useful functions like these[1] are available in | Extlib, which you can find here: | | http://sourceforge.net/projects/ocaml-lib/ Thanks. I don't understand why such functions are not part of the standard library. Even if they are very easy to write, they are the kind of functions most anyone _will_ have to write and not having them in the library is inefficient. Talking about efficiency, I've seen the solutions that have been posted, and MHO is that having to recur to procedural constructs for such oviously functional tasks as "implode" and "explode" seems odd. Juanco |
From: Bardur A. <lis...@sc...> - 2005-02-10 10:44:21
|
On Thu, Feb 10, 2005 at 10:30:14AM +0000, Richard Jones wrote: > On Thu, Feb 10, 2005 at 11:22:48AM +0100, Nicolas Cannasse wrote: > > If you mean that we should add string -> char list and char list -> string > > functions to ExtString well I'm not sure it's good. Representing String as > > char arrays/list is probably the worst (look at C). The best way is to treat > > theses caracters uniformaly. > It's not all about performance at all costs though. Agreed. Simply adding a note along the lines of Normally, using this function is a sign that you are doing something extremely inefficient, and you might want to consider another approach. to the ocamldoc should suffice to alert users of possible inefficiency. Frankly, I don't think it's ExtLib's job to prevent users from doing inefficient things, it should simply provide a more comprehensive standard library. (ExtLib *itself* should obviously be as efficient as possible). > For me, most of the time I want to get something done, and speed simply > doesn't matter > - all the programs I'm writing at the moment spend 99.99% of their > time waiting for a remote SOAP server to respond. > > And BTW, it's possible to do the following : > > List.of_enum (String.enum s) > > String.of_enum (List.enum l) Even so, I vote for adding functions for the direct conversions. I mean if it's a FAQ entry it's probably something which is/would be used a lot, right? -- Bardur Arantsson <ba...@im...> <ba...@sc...> - Huh, how'd you get in here? - Well, the door wasn't locked in any *serious* way... Homer Simpson and Security Salesman | The Simpsons |
From: Nicolas C. <war...@fr...> - 2005-02-10 10:42:32
|
> > If you mean that we should add string -> char list and char list -> string > > functions to ExtString well I'm not sure it's good. Representing String as > > char arrays/list is probably the worst (look at C). The best way is to treat > > theses caracters uniformaly. > > It's not all about performance at all costs though. For me, most of > the time I want to get something done, and speed simply doesn't matter > - all the programs I'm writing at the moment spend 99.99% of their > time waiting for a remote SOAP server to respond. I didn't mean about performances, my point was about stability. Once you represent Strings as char arrays you're easily starting doing indexed stuff, and introduce a lot of potentatial bugs for the sake of performances since manipulating strings at an higher level is little more costly but less error prone if you're using the right functions. Nicolas |
From: Richard J. <ri...@an...> - 2005-02-10 10:30:19
|
On Thu, Feb 10, 2005 at 11:22:48AM +0100, Nicolas Cannasse wrote: > If you mean that we should add string -> char list and char list -> string > functions to ExtString well I'm not sure it's good. Representing String as > char arrays/list is probably the worst (look at C). The best way is to treat > theses caracters uniformaly. It's not all about performance at all costs though. For me, most of the time I want to get something done, and speed simply doesn't matter - all the programs I'm writing at the moment spend 99.99% of their time waiting for a remote SOAP server to respond. > And BTW, it's possible to do the following : > > List.of_enum (String.enum s) > String.of_enum (List.enum l) Rich. -- Richard Jones, CTO Merjis Ltd. Merjis - web marketing and technology - http://merjis.com Team Notepad - intranets and extranets for business - http://team-notepad.com |
From: Nicolas C. <war...@fr...> - 2005-02-10 10:24:59
|
> > I've just had yet another problem related to Dbi being both in and out > > of extlib. Does anyone mind if I just remove it? I honestly think > > that having it in there causes more trouble than it's worth. > > It seems like no one has any strong opinions about this (or else I'm > not getting list traffic ...) > > Another good reason to remove Dbi from extlib is that in 3.08.2 it's > actually impossible to link a program natively with both extlib and > ocamldbi, even if the signatures & MD5 hashes of the duplicated Dbi > modules match. You get this error: > > Files /usr/lib/ocaml/3.08/dbi/dbi.cmxa > and /usr/lib/ocaml/3.08/extlib/extLib.cmxa both define a module named Dbi > > Rich. Would you consider the following : making your Dbi drivers implementations dependent of ExtLib, and keep the Dbi module only in ExtLib ? If not, I agree with Dbi removal there it's obviously a problem to have it in two libraries. Nicolas |
From: Nicolas C. <war...@fr...> - 2005-02-10 10:23:11
|
> It contains important functions such as String.map, > String.replace_chars, String.slice, String.starts_with, > String.ends_with, and many more. > > Rich. > > [1] Although embarrassingly, it appears, not these exact functions, > which is why I've CC'd to ocaml-lib-devel list. To ocaml-lib-devel: > we should provide implementations of > http://caml.inria.fr/FAQ/FAQ_EXPERT-eng.html#strings If you mean that we should add string -> char list and char list -> string functions to ExtString well I'm not sure it's good. Representing String as char arrays/list is probably the worst (look at C). The best way is to treat theses caracters uniformaly. And BTW, it's possible to do the following : List.of_enum (String.enum s) String.of_enum (List.enum l) Nicolas |
From: Richard J. <ri...@an...> - 2005-02-10 10:12:23
|
On Wed, Feb 09, 2005 at 04:27:42PM +0000, Richard Jones wrote: > I've just had yet another problem related to Dbi being both in and out > of extlib. Does anyone mind if I just remove it? I honestly think > that having it in there causes more trouble than it's worth. It seems like no one has any strong opinions about this (or else I'm not getting list traffic ...) Another good reason to remove Dbi from extlib is that in 3.08.2 it's actually impossible to link a program natively with both extlib and ocamldbi, even if the signatures & MD5 hashes of the duplicated Dbi modules match. You get this error: Files /usr/lib/ocaml/3.08/dbi/dbi.cmxa and /usr/lib/ocaml/3.08/extlib/extLib.cmxa both define a module named Dbi Rich. -- Richard Jones, CTO Merjis Ltd. Merjis - web marketing and technology - http://merjis.com Team Notepad - intranets and extranets for business - http://team-notepad.com |
From: Richard J. <ri...@an...> - 2005-02-10 10:09:28
|
On Wed, Feb 09, 2005 at 10:10:03PM -0400, Juancarlo A?ez wrote: > > Why aren't there functions in the standard library to convert strings to > lists of characters and back? As others have said, these functions are not in the standard library. However, useful functions like these[1] are available in Extlib, which you can find here: http://sourceforge.net/projects/ocaml-lib/ and is also available as a binary package for various platforms such as Debian. It contains important functions such as String.map, String.replace_chars, String.slice, String.starts_with, String.ends_with, and many more. Rich. [1] Although embarrassingly, it appears, not these exact functions, which is why I've CC'd to ocaml-lib-devel list. To ocaml-lib-devel: we should provide implementations of http://caml.inria.fr/FAQ/FAQ_EXPERT-eng.html#strings -- Richard Jones, CTO Merjis Ltd. Merjis - web marketing and technology - http://merjis.com Team Notepad - intranets and extranets for business - http://team-notepad.com |
From: Richard J. <ri...@an...> - 2005-02-09 16:27:48
|
I've just had yet another problem related to Dbi being both in and out of extlib. Does anyone mind if I just remove it? I honestly think that having it in there causes more trouble than it's worth. Rich. -- Richard Jones, CTO Merjis Ltd. Merjis - web marketing and technology - http://merjis.com Team Notepad - intranets and extranets for business - http://team-notepad.com |
From: Richard J. <ri...@an...> - 2005-02-09 10:23:59
|
On Wed, Feb 09, 2005 at 12:09:02AM +0200, Anatoly Zaretsky wrote: > Hi! > > I was playing with this nice tool and I want to suggest some additions to it. > > First, I think pointers (out-of-heap ones too) can be (portably I > hope) dumped like this: > > let fieldval x = > let ni = 0n in > Obj.set_field (Obj.repr ni) 1 x; > ni;; > > let hex_of_field x = Printf.sprintf "%0*nx" (Nativeint.size / 4) (fieldval x);; > > Then, custom blocks contain pointer to their ops structure in the > first field, which can be used to determine their type. This way > "standard" custom values can be recognized and printed: > > let with_obj f x = f (Obj.obj x) > let cust_ops x = Obj.field x 0 > let (custom_printers : (Obj.t, Obj.t -> string) Hashtbl.t) = > Hashtbl.create 5 (* printer functions hashed with ops struct pointer > values *) > let pr_pair (v : 'a) (f : 'a -> string) = cust_ops (Obj.repr v), with_obj f > > List.iter (fun (v, f) -> Hashtbl.add custom_printers v f) > [ > pr_pair Int32.zero (Printf.sprintf "%ldl"); > pr_pair Int64.zero (Printf.sprintf "%LdL"); > pr_pair Nativeint.zero (Printf.sprintf "%ndn") > ] > > let add_printer v f = > let v', f' = pr_pair v f in > Hashtbl.add custom_printers v' f' > and print_custom x = Hashtbl.find custom_printers (cust_ops x) x > > For example: > # print_custom (Obj.repr 765n);; > - : string = "765n" > # print_custom (Obj.repr (-765l));; > - : string = "-765l" > # print_custom (Obj.repr (-7659876655443438L));; > - : string = "-7659876655443438L" > > It seems that get_list guarded with is_list is redundant - one can write > if is_list r then ( (* List. *) > let fields = obj r in (* or (obj r : t list) for purity ;) *) in > ... > ) > instead. > > Similarly for arrays: > else if t = 0 || t = double_array_tag then ( (* Tuple, array, record. *) > let fields = Array.to_list (obj r) in (* float arrays and > records work fine! *) > > For constructed values similar trick can be used. > > Hope this will be helpful. > > P.S. And thanks for the great tutorial on OCaml! I learnt OCaml this > summer mostly from it (with INRIA manual and O'Reilly book of course > ;) ). For-loops in the cerebellum are the best :) > > -- > Best regards, > Tolik -- Richard Jones, CTO Merjis Ltd. Merjis - web marketing and technology - http://merjis.com Team Notepad - intranets and extranets for business - http://team-notepad.com |
From: Richard J. <ri...@an...> - 2005-02-09 10:22:55
|
See below. It should be possible to use these to print out the contents of 'float array' types. Currently the code throws a Failure if it finds one of these. Rich. ----- Forwarded message from Damien Doligez <cam...@pa...> ----- Subject: Re: Obj module should provide binding for Double_field and Store_double_field macros (PR#3456) From: Damien Doligez <cam...@pa...> To: ri...@an... > Full_Name: Richard Jones > Version: 3.08.1 > The Obj module provides no method for accessing the > fields in a Double_array_tag. It should wrap the > macros Double_field and Store_double_field. You can define them yourself: let double_field x i = Array.get (Obj.obj x : float array) i;; let store_double_field x i v = Array.set (Obj.obj x : float array) i v;; -- Damien ----- End forwarded message ----- -- Richard Jones, CTO Merjis Ltd. Merjis - web marketing and technology - http://merjis.com Team Notepad - intranets and extranets for business - http://team-notepad.com |
From: Richard J. <ri...@an...> - 2005-02-08 11:14:17
|
On Tue, Feb 08, 2005 at 11:06:09AM +0100, Nicolas Cannasse wrote: > I slightly modified indentation and style of your dump method, I think the > result ( a matching with where clauses ) is more readable than if-blocks and > might produce equivalent code with ocamlopt. Are we no longer using sourceforge CVS? http://cvs.sourceforge.net/viewcvs.py/ocaml-lib/extlib-dev/ Latest change I can see is from 3 weeks ago ... Anyway, I wanted to check that the modification didn't change the semantics of the original if-clause. In particular, note that the different tags are *not* discontiguous! For instance, object_tag = 248 (IIRC) and no_scan_tag is 251, so objects and a few other things overlap with constructed values ... Rich. -- Richard Jones, CTO Merjis Ltd. Merjis - web marketing and technology - http://merjis.com Team Notepad - intranets and extranets for business - http://team-notepad.com |
From: Nicolas C. <war...@fr...> - 2005-02-08 10:06:34
|
> Yes, good idea. Since I don't have access to ocaml-lib CVS, do you > want to add it? The function is only about a page of code. The following have been added to Std module : val dump : 'a -> string (** reprensent a runtime value as a string. *) val print : 'a -> unit (** print the representation of a runtime value on stdout. *) I slightly modified indentation and style of your dump method, I think the result ( a matching with where clauses ) is more readable than if-blocks and might produce equivalent code with ocamlopt. Nicolas |
From: Nicolas C. <war...@fr...> - 2005-02-08 09:49:09
|
> > > Anyone interested in this, http://merjis.com/developers/dumper or > > > similar functionality in extlib? My particular implementation is pure > > > OCaml. (You might want to read the "Notes" section of that page > > > first however) > > > > > > Rich. > > > > Nice ! > > Since it's not big, I don't think it needs a module of its own. Why not > > adding the to_string : 'a -> string or dump : 'a -> string value to the > > ExtLib Std module ? > > Yes, good idea. Since I don't have access to ocaml-lib CVS, do you > want to add it? The function is only about a page of code. > > I have a few ideas for extending it. For example, it would be nice to > turn on/off list understanding (although the default for lists should > probably be "on"). Something like: > > dump ~list:false ... > > If that were added, then one could also add detection and printing of > hash tables and other complex structures. I'll get round to that > later however. Well one could implement something such as : dumpf "(int,string list) Hashtbl.t" v; That would parse some type declaration and use appropriate printers. Nicolas |
From: Richard J. <ri...@an...> - 2005-02-08 09:16:23
|
On Mon, Feb 07, 2005 at 08:35:52PM +0100, Nicolas Cannasse wrote: > > Anyone interested in this, http://merjis.com/developers/dumper or > > similar functionality in extlib? My particular implementation is pure > > OCaml. (You might want to read the "Notes" section of that page > > first however) > > > > Rich. > > Nice ! > Since it's not big, I don't think it needs a module of its own. Why not > adding the to_string : 'a -> string or dump : 'a -> string value to the > ExtLib Std module ? Yes, good idea. Since I don't have access to ocaml-lib CVS, do you want to add it? The function is only about a page of code. I have a few ideas for extending it. For example, it would be nice to turn on/off list understanding (although the default for lists should probably be "on"). Something like: dump ~list:false ... If that were added, then one could also add detection and printing of hash tables and other complex structures. I'll get round to that later however. Rich. -- Richard Jones, CTO Merjis Ltd. Merjis - web marketing and technology - http://merjis.com Team Notepad - intranets and extranets for business - http://team-notepad.com |
From: Nicolas C. <war...@fr...> - 2005-02-07 19:34:08
|
> Anyone interested in this, http://merjis.com/developers/dumper or > similar functionality in extlib? My particular implementation is pure > OCaml. (You might want to read the "Notes" section of that page > first however) > > Rich. Nice ! Since it's not big, I don't think it needs a module of its own. Why not adding the to_string : 'a -> string or dump : 'a -> string value to the ExtLib Std module ? Nicolas |
From: Richard J. <ri...@an...> - 2005-02-07 18:33:56
|
Anyone interested in this, http://merjis.com/developers/dumper or similar functionality in extlib? My particular implementation is pure OCaml. (You might want to read the "Notes" section of that page first however) Rich. -- Richard Jones, CTO Merjis Ltd. Merjis - web marketing and technology - http://merjis.com Team Notepad - intranets and extranets for business - http://team-notepad.com |
From: John G. <jgo...@co...> - 2005-01-20 16:03:28
|
On Thu, Jan 20, 2005 at 08:38:25AM +0800, Dou Wen wrote: > i know the mldonkey(the edonkey clone) is implemented by ocaml, i > think a > ARM-based linux PDA or some similar device is an another place in which > mldonkey could play a interesting role, but the problem is ,is there > some > clues of the porting work ,if not ,maybe some kind guy could give me > any > suggestion? You can already install Debian on an ARM device, and use OCaml from Debian's ARM repository. Check it out at: http://pocketworkstation.org/ |
From: Dou W. <do...@ya...> - 2005-01-20 00:41:10
|
i know the mldonkey(the edonkey clone) is implemented by ocaml, i think a ARM-based linux PDA or some similar device is an another place in which mldonkey could play a interesting role, but the problem is ,is there some clues of the porting work ,if not ,maybe some kind guy could give me any suggestion? --douwen |
From: Dou W. <do...@ya...> - 2005-01-20 00:38:51
|
i know the mldonkey(the edonkey clone) is implemented by ocaml, i think a ARM-based linux PDA or some similar device is an another place in which mldonkey could play a interesting role, but the problem is ,is there some clues of the porting work ,if not ,maybe some kind guy could give me any suggestion? --douwen |
From: Nicolas C. <war...@fr...> - 2005-01-17 10:36:11
|
I agree here. The one willing to write the tests are free to choose how they want to write them. Nicolas > Hi all, > > I am willing to help if you have any trouble with the existing ExtLib > tester. I think the assertion mechanism is easy to use and easy to > understand, but of course I'm biased since I wrote the suite. > > extlib-test/readme.html has a some documentation on how to make new tests. > > When I embarked on writing the test suite, I was more interested in > making the actual tests rather than discussing on what kind of a > framework to use for the tests. > > Perhaps someone could clarify what is gained by using OUnit instead of > the current suite? I personally feel that the real test cases are what > counts, not the testing framework. > > Best regards, > Janne > > skaller wrote: > > On Mon, 2005-01-17 at 11:37, Brian Hurt wrote: > > > >>My apologies for being silent for so long (life intervened). One > >>question on this subject: is there a reason we're not using OUnit? > > > > > > Dependencies. The test mechanism needs to be independent > > of everything that isn't either in standard Ocaml > > distro or Extlib. > > > > This problem would go away if GODI was standard > > but it isn't .. |
From: Janne H. <ja...@hy...> - 2005-01-17 09:16:35
|
Hi all, I am willing to help if you have any trouble with the existing ExtLib tester. I think the assertion mechanism is easy to use and easy to understand, but of course I'm biased since I wrote the suite. extlib-test/readme.html has a some documentation on how to make new tests. When I embarked on writing the test suite, I was more interested in making the actual tests rather than discussing on what kind of a framework to use for the tests. Perhaps someone could clarify what is gained by using OUnit instead of the current suite? I personally feel that the real test cases are what counts, not the testing framework. Best regards, Janne skaller wrote: > On Mon, 2005-01-17 at 11:37, Brian Hurt wrote: > >>My apologies for being silent for so long (life intervened). One >>question on this subject: is there a reason we're not using OUnit? > > > Dependencies. The test mechanism needs to be independent > of everything that isn't either in standard Ocaml > distro or Extlib. > > This problem would go away if GODI was standard > but it isn't .. > |
From: Bardur A. <oca...@sc...> - 2005-01-17 08:56:32
|
On Mon, Jan 17, 2005 at 12:38:28PM +1100, skaller wrote: > On Mon, 2005-01-17 at 11:37, Brian Hurt wrote: > > My apologies for being silent for so long (life intervened). One > > question on this subject: is there a reason we're not using OUnit? > > Dependencies. The test mechanism needs to be independent > of everything that isn't either in standard Ocaml > distro or Extlib. It seems that OUnit doesn't actually depend on anything else (well, except findlib for the build procedure, but that's easily remedied -- it's just one module after all), so I'm guessing you mean that you don't want ExtLib to become dependent on OUnit...? What about just bundling a version of OUnit with ExtLib? The code seems to be under a BSD-ish license (w/o advertising clause), so this would be permitted and it shouldn't really cause any maintenance issues as the OUnit code (nor any code using OUnit) shouldn't be installed anyway. Cheers, -- Bardur Arantsson <ba...@im...> <ba...@sc...> Light a man a fire, you warm him for a night. Light a man on fire, he'll be warm the rest of his life. |