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
|
Oct
|
Nov
|
Dec
|
From: Nicolas C. <war...@fr...> - 2004-04-28 18:12:26
|
> hi list, > i find myself often having to do [1] > > if Hashtbl.mem h k then > let v = Hashtbl.find h k in ... do stg with k here [...] > [1] And of course i could simply wrap Hashtbl.find and catch Not_found, > but this is performance sensitive, and i have some vague recollection of > there being a cost to putting stuff in a try.. with block. Exceptions in OCaml are very cheap (unlike Java for example) and very useful to propagate some state. For instance, doing and Hashtbl.mem + an Hashtbl.find looks more costly than wrapping the "find" into a try..with block. But whatever the performances, I think it can be useful to have : val find_option : ('a,'b) Hashtbl.t -> 'a -> 'b option (not that it's not default, since a default is returning a default value, with same type). I'll add this to the ExtLib CVS. Regards, Nicolas Cannasse |
From: Martin J. <mar...@em...> - 2004-04-28 18:02:41
|
[inspired by discussions on caml-list] On Wed, 28 Apr 2004, Nicolas Cannasse wrote: > Please state clearly your problems on the ExtLib mailling list, I will be > happy to think about theses :) > Enums are still young so there not yet specialized enums that can remove > elements while itering or give random access. Maybe in the future... Enum provides some kind of forward iterators (given the Enum.get function) - and much more. About iterators: With arrays, it is natural to expect some bidirectional behavior, including 'slice' iteration, but of course this is impossible if it has type Enum.t. Something nice could be done with objects: Iterator.array would create an object with methods "previous" and "next" while List.to_enum would provide only a "next" method. [here, "next" and "previous" are equivalents of ++ and --; they do not return a new iterator without modifying the original one] let _ = List.iter (fun obj -> obj#next) [ int_array_enum; int_list_enum ] A similar approach could be used without objects, like this: let (next_a, copy_a) = Iterator.Backward.array ~first: 3 [| 0; 1; 2; 3; 4; 5 |];; let (next_b, copy_b) = Iterator.Forward.list [ 0; 1; 2; 3 ];; Here is the test: let print next_a next_b = try while true do Printf.printf "%i %i\n" (next_a ()) (next_b ()) done with Iterator.End -> () let _ = let (next_a', _) = copy_a () in let (next_b', _) = copy_b () in ignore (next_a ()); print next_a next_b; print next_a' next_b' The output is: 4 0 3 1 5 0 4 1 3 2 I attach the full code. Compile with -rectypes: ocaml -rectypes test_iterator.ml I was happy to play with this... However I am not convinced about the usefulness of iterators in OCaml. I think that it could be an interesting approach in some cases, like the example about graphs that was posted: for recording the current position in the iteration. This requires some memory allocation. Efficiency matters, and this is why higher order functions seem preferable in most cases. Some additional remarks: 1) Hashtbl.enum works in O(n), is this allowed? 2) The implementation of Hashtbl.keys is terribly inefficient: let keys h = Enum.map (fun (k,_) -> k) (enum h) Why not: let list_keys h = fold (fun key data accu -> key :: accu) h [] let enum_keys h = List.enum (list_keys h) 3) Why making every module depend on Enum? I think that Enum should provide conversion functions from/to more basic containers. In the standard lib, there are Array.to_list and Array.of_list because lists are more important than arrays. Since Enum provides a super container, I think it would be more natural to make it depend on the core containers such as lists, arrays, and other things that could be implemented independently from Enum. Then Enum would have to define Enum.of_list, Enum.of_array and so on... and I would avoid its use over mutable data, except in the very specific cases of fixed length arrays and strings. Martin |
From: Henri DF <hen...@ep...> - 2004-04-28 17:58:58
|
hi list, i find myself often having to do [1] if Hashtbl.mem h k then let v = Hashtbl.find h k in ... do stg with k here I was wondering if it would be worth having a Hashtbl.find_opt, which returns Some v if there is a binding, None otherwise. Of course, one could use a ('a, 'b option) Hashtbl.t and then use find_default (with default None) to achieve the same - but that has the overhead of *always* representing values as options. Any thoughts on this? Thanks Henri [1] And of course i could simply wrap Hashtbl.find and catch Not_found, but this is performance sensitive, and i have some vague recollection of there being a cost to putting stuff in a try.. with block. > Hi list, > > Reading the news, it looks like GODI is taking off and that quite huge > developments are being done. That's a nice thing for the ocaml community. > As a window user, I cannot create a GODI package unless I switch to > ocaml/Cygwin. Is there someone here willing to create an maintain the GODI > package for ExtLib.... raise your hands :) > > Regards, > Nicolas Cannasse > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: Oracle 10g > Get certified on the hottest thing ever to hit the market... Oracle 10g. > Take an Oracle 10g class now, and we'll give you the exam FREE. > http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click > _______________________________________________ > ocaml-lib-devel mailing list > oca...@li... > https://lists.sourceforge.net/lists/listinfo/ocaml-lib-devel > |
From: Nicolas C. <war...@fr...> - 2004-04-28 12:52:26
|
Hi list, Reading the news, it looks like GODI is taking off and that quite huge developments are being done. That's a nice thing for the ocaml community. As a window user, I cannot create a GODI package unless I switch to ocaml/Cygwin. Is there someone here willing to create an maintain the GODI package for ExtLib.... raise your hands :) Regards, Nicolas Cannasse |
From: Martin J. <mar...@em...> - 2004-04-28 08:50:14
|
On Wed, 28 Apr 2004, Nicolas Cannasse wrote: > > On Sun, 25 Apr 2004, Henri DF wrote: > > > > > thanks for the pointer. i (naively) thought that anything which "takes > > > away > > > polymorphism" could only improve efficiency, and that this would extend > to > > > functors. > > > > > > [OT] i wonder when there is ever a case for functors then.. > > > > [...] > > On my wish list: int, bool, float, and char modules. These would take a > > lot of the pain out of using functors. I would be happy too if these modules could exist. Char already exists, right? > You forgot : > (int * int) > (string * int list) > (int * char * bool) > ... > ... > ... > Since there is so much (infinity) core-types, we can't declare module types > for all of them, so set is broken :'( Not I am sorry, these are not essential types. int, char, string, float and bool are essential. I understand that the standard library could not be extended because of the limited human resources at INRIA, but there is plenty of space here for things of secondary importance. Martin |
From: Nicolas C. <war...@fr...> - 2004-04-28 06:55:14
|
> On Sun, 25 Apr 2004, Henri DF wrote: > > > thanks for the pointer. i (naively) thought that anything which "takes > > away > > polymorphism" could only improve efficiency, and that this would extend to > > functors. > > > > [OT] i wonder when there is ever a case for functors then.. > > [...] > On my wish list: int, bool, float, and char modules. These would take a > lot of the pain out of using functors. You forgot : (int * int) (string * int list) (int * char * bool) ... ... ... Since there is so much (infinity) core-types, we can't declare module types for all of them, so set is broken :'( Nicolas Cannasse |
From: Brian H. <bh...@sp...> - 2004-04-28 03:59:27
|
On Sun, 25 Apr 2004, Henri DF wrote: > thanks for the pointer. i (naively) thought that anything which "takes > away > polymorphism" could only improve efficiency, and that this would extend to > functors. > > [OT] i wonder when there is ever a case for functors then.. > When you want to bind certain behaviors to a type. A good example of this is the Set module. One set can only be a subset of another set if and only if they have the same ordering (I know this isn't good mathematics, but it's good programming). The ordering of the set should then be bound to the type- two different sets of the same type but with different orders should be different types of sets. Modules and functors allow you to enlist the type checker to enforce this constraint. Don't use functors for optimization, use them to check correctness. By the way: anything that has a .mli file qualifies as a module. So to create a set of strings module, all you need to do is: module StringSet = Set.Make(String);; I just checked that this worked in 3.07- works like a charm. On my wish list: int, bool, float, and char modules. These would take a lot of the pain out of using functors. -- "Usenet is like a herd of performing elephants with diarrhea -- massive, difficult to redirect, awe-inspiring, entertaining, and a source of mind-boggling amounts of excrement when you least expect it." - Gene Spafford Brian |
From: Alan P. <ap...@re...> - 2004-04-27 18:22:00
|
In article <408...@bi...>, Florian Hars wrote: > > Of course, including code from extlib into the core distribution > would kill ocaml for commercial development (due to the incompatible > license), so it will not happen in the forseeable future. I thought both libraries were LGPL? |
From: Florian H. <ha...@bi...> - 2004-04-27 15:09:59
|
Nicolas Cannasse wrote: > To put it clear : we're not excepting in any way ExtLib to be included into > Ocaml distribution, we are just wishing it will be Of course, including code from extlib into the core distribution would kill ocaml for commercial development (due to the incompatible license), so it will not happen in the forseeable future. Yours, Florian. |
From: Nicolas C. <war...@fr...> - 2004-04-27 14:51:49
|
> > > I don't believe in this model: software is living, it has sometimes to be > > > rewritten or corrected. > > > > Now, you've lost me... nobody said anything about > > rewriting or even "correcting" ocaml itself. > > I was talking about extlib: if it is included in INRIA's distribution and > used by the compilers, at least someone at INRIA must check the quality of > extlib. > > In this message, Xavier Leroy gave his point of view: > http://caml.inria.fr/archives/200403/msg00171.html To put it clear : we're not excepting in any way ExtLib to be included into Ocaml distribution, we are just wishing it will be, but that's not current INRIA politics. In the future, and if ExtLib is widely used by the OCaml users, it might be packaged with OCaml or told as "you should definitly use that, you beginner". > So, what makes you better than them? What additional power do you have? ExtLib is not experimental either. It really works ! and have some advanced concepts that are making it better - I think - than other libs around. Mainly because most of the libs are the work of one people alone for his own needs, without thinking about the community of users. If you ask me why we're better I would say : - good experience with Ocaml (including "inside-the-box" such as low-level accesses or functors perfs) - an open process where everybody is welcome to post codes and comments Regards, Nicolas Cannasse |
From: Martin J. <mar...@em...> - 2004-04-27 14:15:42
|
On Tue, 27 Apr 2004, Bardur Arantsson wrote: > On Tue, Apr 27, 2004 at 09:17:59PM +0800, Martin Jambon wrote: > > > I don't believe in this model: software is living, it has sometimes to be > > rewritten or corrected. > > Now, you've lost me... nobody said anything about > rewriting or even "correcting" ocaml itself. I was talking about extlib: if it is included in INRIA's distribution and used by the compilers, at least someone at INRIA must check the quality of extlib. In this message, Xavier Leroy gave his point of view: http://caml.inria.fr/archives/200403/msg00171.html > As long as > there is 100% compatibility with existing code, there is > no reason for them *not* to accept things from extlib. > > >They will not accept this burden. > > If you think that they will never accept extlib modules, > then that's your perogative, but like I said (the part you > cut out): The value of extlib (as a project) remains in > either case. OK, but I don't have comments about that. Martin |
From: Bardur A. <oca...@sc...> - 2004-04-27 13:26:07
|
On Tue, Apr 27, 2004 at 09:17:59PM +0800, Martin Jambon wrote: > On Tue, 27 Apr 2004, Bardur Arantsson wrote: > > > On Tue, Apr 27, 2004 at 08:45:02PM +0800, Martin Jambon wrote: > > > > > On Tue, 27 Apr 2004, Bardur Arantsson wrote: > > > > > > > I just think of it a more experimental branch of > > > > development for the ocaml standard library. > > > > > > > > If some extension/change from Extlib proves to be highly > > > > useful to lots of developers, then it can be added to the > > > > standard library when it has matured enough to be > > > > considered stable enough for the "mainline" (which would > > > > be the INRIA O'caml standard library). > > > > > > I am afraid that the people from INRIA are very satisfied with the > > > quality of the current standard library, and will not accept any > > > significant addition because they are not paid for writing libraries (and > > > maybe not interested too). > > > > > > > Nitpick: They wouldn't actually have to write the > > libraries, they would already be written. So it wouldn't > > cost them anything to include them. > > I don't believe in this model: software is living, it has sometimes to be > rewritten or corrected. Now, you've lost me... nobody said anything about rewriting or even "correcting" ocaml itself. As long as there is 100% compatibility with existing code, there is no reason for them *not* to accept things from extlib. >They will not accept this burden. If you think that they will never accept extlib modules, then that's your perogative, but like I said (the part you cut out): The value of extlib (as a project) remains in either case. -- Bardur Arantsson <ba...@im...> <ba...@sc...> - I tell ya, they only come out at night, or, in this case, the daytime. Chief Clancy Wiggum | The Simpsons |
From: Martin J. <mar...@em...> - 2004-04-27 13:18:21
|
On Tue, 27 Apr 2004, Bardur Arantsson wrote: > On Tue, Apr 27, 2004 at 08:45:02PM +0800, Martin Jambon wrote: > > > On Tue, 27 Apr 2004, Bardur Arantsson wrote: > > > > > I just think of it a more experimental branch of > > > development for the ocaml standard library. > > > > > > If some extension/change from Extlib proves to be highly > > > useful to lots of developers, then it can be added to the > > > standard library when it has matured enough to be > > > considered stable enough for the "mainline" (which would > > > be the INRIA O'caml standard library). > > > > I am afraid that the people from INRIA are very satisfied with the > > quality of the current standard library, and will not accept any > > significant addition because they are not paid for writing libraries (and > > maybe not interested too). > > > > Nitpick: They wouldn't actually have to write the > libraries, they would already be written. So it wouldn't > cost them anything to include them. I don't believe in this model: software is living, it has sometimes to be rewritten or corrected. They will not accept this burden. Martin |
From: Bardur A. <oca...@sc...> - 2004-04-27 12:55:12
|
On Tue, Apr 27, 2004 at 08:45:02PM +0800, Martin Jambon wrote: > On Tue, 27 Apr 2004, Bardur Arantsson wrote: > > > I just think of it a more experimental branch of > > development for the ocaml standard library. > > > > If some extension/change from Extlib proves to be highly > > useful to lots of developers, then it can be added to the > > standard library when it has matured enough to be > > considered stable enough for the "mainline" (which would > > be the INRIA O'caml standard library). > > I am afraid that the people from INRIA are very satisfied with the > quality of the current standard library, and will not accept any > significant addition because they are not paid for writing libraries (and > maybe not interested too). > Nitpick: They wouldn't actually have to write the libraries, they would already be written. So it wouldn't cost them anything to include them. But even so, if they decide not to accept anything from ExtLib into the mainline, that would be fine too. It doesn't really detract from the value of ExtLib as a more experimental (and, dare I say it, much more *useful*) standard library. -- Bardur Arantsson <ba...@im...> <ba...@sc...> - Good night. If you CAN! Stephen Fry | Fry and Laurie |
From: Martin J. <mar...@em...> - 2004-04-27 12:45:22
|
On Tue, 27 Apr 2004, Bardur Arantsson wrote: > I just think of it a more experimental branch of > development for the ocaml standard library. > > If some extension/change from Extlib proves to be highly > useful to lots of developers, then it can be added to the > standard library when it has matured enough to be > considered stable enough for the "mainline" (which would > be the INRIA O'caml standard library). I am afraid that the people from INRIA are very satisfied with the quality of the current standard library, and will not accept any significant addition because they are not paid for writing libraries (and maybe not interested too). Martin |
From: Bardur A. <oca...@sc...> - 2004-04-27 12:23:49
|
On Tue, Apr 27, 2004 at 07:50:04PM +0800, Martin Jambon wrote: > On Tue, 27 Apr 2004, Nicolas Cannasse wrote: > > > > Is it supposed to replace the INRIA standard library? > > > > No. We're positioning ourselves as a proposal for extension. That means that > > some parts of the ExtLib might be added to the OCaml stdlib if INRIA wish to > > do so : we would actually be happy about that. Whatever happens, we'll still > > maintain an independant library that can enrich the standard ocaml library > > and research additional ways of doing things better. > > So, what makes you better than them? What additional power do you have? > > Things like: > - hundreds of developers (?) > - extra financial support (?) > - exceptional communication skills (?) > - ... I just think of it a more experimental branch of development for the ocaml standard library. If some extension/change from Extlib proves to be highly useful to lots of developers, then it can be added to the standard library when it has matured enough to be considered stable enough for the "mainline" (which would be the INRIA O'caml standard library). -- Bardur Arantsson <ba...@im...> <ba...@sc...> - Mmmmmmmmmmmmmmmm... something. Homer Simpson | The Simpsons |
From: Martin J. <mar...@em...> - 2004-04-27 11:50:22
|
On Tue, 27 Apr 2004, Nicolas Cannasse wrote: > > Is it supposed to replace the INRIA standard library? > > No. We're positioning ourselves as a proposal for extension. That means that > some parts of the ExtLib might be added to the OCaml stdlib if INRIA wish to > do so : we would actually be happy about that. Whatever happens, we'll still > maintain an independant library that can enrich the standard ocaml library > and research additional ways of doing things better. So, what makes you better than them? What additional power do you have? Things like: - hundreds of developers (?) - extra financial support (?) - exceptional communication skills (?) - ... > > Why is there no answer from the SF-ExtLib team when I (or others) post > > some code? This is very disappointing. > > I usually answer most of the messages, all subsribers on this list are also > welcome to do so. If there is no answer to your message it means that maybe > people here are too busy to answer, or maybe that there is no interest on > this subject. > > If you're precisely talking about your recent post "('a,'b list ref) > Hashtbl.t" then I personaly never had the need of such module (although I am > programming ocaml almost everyday in different domains). That does not mean > that it is not useful, but maybe that does mean it's not wide usage enough > to be included. I dismissed myself from answering since I don't see how it > can be useful. If some people were interested by this module, they would > have answered. If there was a common agreement that it's useful (whatever my > opinion) then I would have committed the code into the CVS. There were many messages on the caml-list about a Hashtbl.keys function, and how to remove the redundancies (!). The answer is simple: don't add the same key multiple times. Use Hashtbl.replace if don't want to keep all the previous bindings. If you need to keep them, then use something like my proposal, and everything will become O(1) or O(n). I really think that such a module is useful because it hides an imperative approach behind a safe interface. Sorry, but I thought first that SF-ExtLib was an attempt to provide a more complete library than the standard one. For me, "more complete" does not mean "adding a few functions that INRIA was too stupid to forget", but providing 10 times more modules than INRIA and using the community to maintain this large collection. If only 2 or 3 persons have the power to check and decide what should be in SF-ExtLib, then the result will be similar to the current INRIA's standard library, unless you convince Superman to learn OCaml. ... unless there are very rational and precise conditions for adding things into the library so that the ExtLib leaders can check in 1 minute if some proposal is acceptable or not. I hope you understand my critics and that reading this is not a complete waste of time. Thanks for your attention, Martin |
From: Nicolas C. <war...@fr...> - 2004-04-27 11:05:28
|
> > ExtLib is a project aiming at providing a complete - yet small - standard > > library for the OCaml programming langage. The purpose of this library is > > to add new functions to OCaml Standard Library modules, to modify some > > functions in order to get better performances or more safety > > (tail-recursive) but also to provide new modules which should be useful > > for the average OCaml programmer. > > > ExtLib is not directly related to OCaml authors (INRIA) although this > > library can be seen as a proposal for inclusion in the official > > distribution. > > Is SF-ExtLib supposed to be used from right now in serious projects? Yes, it's mature and bug-free enough. > Is it supposed to replace the INRIA standard library? No. We're positioning ourselves as a proposal for extension. That means that some parts of the ExtLib might be added to the OCaml stdlib if INRIA wish to do so : we would actually be happy about that. Whatever happens, we'll still maintain an independant library that can enrich the standard ocaml library and research additional ways of doing things better. > Why is there no answer from the SF-ExtLib team when I (or others) post > some code? This is very disappointing. I usually answer most of the messages, all subsribers on this list are also welcome to do so. If there is no answer to your message it means that maybe people here are too busy to answer, or maybe that there is no interest on this subject. If you're precisely talking about your recent post "('a,'b list ref) Hashtbl.t" then I personaly never had the need of such module (although I am programming ocaml almost everyday in different domains). That does not mean that it is not useful, but maybe that does mean it's not wide usage enough to be included. I dismissed myself from answering since I don't see how it can be useful. If some people were interested by this module, they would have answered. If there was a common agreement that it's useful (whatever my opinion) then I would have committed the code into the CVS. > If SF-ExtLib is supposed to build a standard, then what are the guidelines > for creating this standard? Not a standard, just a library. Guidelines are : - everybody can post some code or suggestions for improvement - all the process is open-sourced , including the talks and debates about what should be included or not - if there is a concensus, then the code is included. > As an independent OCaml user, I would like a separation between > general-purpose stuff and specialized libraries. > general-purpose = used in various kinds of applications (but maybe not > everyday) > specialized = used in very specific situations (but maybe everyday) > I can imagine: > - one library that provides lots of goodies that do not rely on other > existing libraries but are boring or difficult to implement. They do NOT > need to be required everyday by everyone. > - some libraries, like many already exist, for doing specialized > things. Especially the implementation of standard protocols or binding to > such libraries written in foreign languages. > > > Very personal view: I don't care much about standards as far as I can > include the (possibly modified) source code of the general-purpose > library in my software distributions in either source or binary form. ExtLib is general purpose. That means that some domain-specific code will not be included into it. For other reasons, such as easy porting, ExtLib is pure OCaml and does not contains any C code. Concerning the protocols ( IMAP, FTP, ... or formats : XML , ... ) my own opinion is that they could be added to ExtLib, that's not an opinion shared by all the users here so nothing have been decided yet. Regards, Nicolas Cannasse |
From: Martin J. <mar...@em...> - 2004-04-27 08:13:06
|
Hi ExtLibs, I would like to know the exact purpose of the sourceforge.net ExtLib (let's call it SF-ExtLib). This is taken from the web page: > ExtLib is a project aiming at providing a complete - yet small - standard > library for the OCaml programming langage. The purpose of this library is > to add new functions to OCaml Standard Library modules, to modify some > functions in order to get better performances or more safety > (tail-recursive) but also to provide new modules which should be useful > for the average OCaml programmer. > ExtLib is not directly related to OCaml authors (INRIA) although this > library can be seen as a proposal for inclusion in the official > distribution. Is SF-ExtLib supposed to be used from right now in serious projects? Is it supposed to replace the INRIA standard library? Why is there no answer from the SF-ExtLib team when I (or others) post some code? This is very disappointing. If SF-ExtLib is supposed to build a standard, then what are the guidelines for creating this standard? The other ExtLib (from Shawn Wagner, let's call it SW-ExtLib) does not intend to become a standard, as far as I can read: > Extlib contains a lot of the routines I find myself needing all the time > that aren't in the standard library (Especially string searching and > manipulation), and some other odds and ends that are useful at times. > Highlights include wildcard globbing, lots of string searching and > manipulation routines, locale support, ~user-style path expansion, and > more. As an independent OCaml user, I would like a separation between general-purpose stuff and specialized libraries. general-purpose = used in various kinds of applications (but maybe not everyday) specialized = used in very specific situations (but maybe everyday) I can imagine: - one library that provides lots of goodies that do not rely on other existing libraries but are boring or difficult to implement. They do NOT need to be required everyday by everyone. - some libraries, like many already exist, for doing specialized things. Especially the implementation of standard protocols or binding to such libraries written in foreign languages. Very personal view: I don't care much about standards as far as I can include the (possibly modified) source code of the general-purpose library in my software distributions in either source or binary form. Martin |
From: Nicolas C. <war...@fr...> - 2004-04-27 07:12:08
|
> Dear all, > I am a new user of the Ocaml and I just installed > the lib. However, I got an error when I use the lib. > Would you please tell me how to solve it? > Thank you very much. > > Regards, > Yeting > > I input: > open DynArray;; > make;; > > I get: > Reference to undefined global DynArray Looks like you're working on the toplevel. You need first to do a : #load "extLib.cma" in order to load modules in memory. Regards, Nicolas Cannasse |
From: Pietro A. <Pie...@an...> - 2004-04-27 05:22:44
|
On Mon, Apr 26, 2004 at 09:30:24AM +0200, Nicolas Cannasse wrote: > Is a multiset "common usage" enough to be included into ExtLib ? I'm sure there are at least two users (the author and myslef)... However I think it's in general nice to have this kind of data structure... I mean, it can be easily implemented in a number of way, but as it's already there why reinvent the wheel ? I agree that if included and not used by anybody it's waste of resources and time to maintain it. The same reasoning can be applied to a "set of sets" (or set of multiset) data structure that can be easily implemented via functors using the set module, but it would be nice to have it in a library... p -- ++ "All great truths begin as blasphemies." -George Bernard Shaw ++ Please avoid sending me Word or PowerPoint attachments. See http://www.fsf.org/philosophy/no-word-attachments.html |
From: ge y. <yt...@ya...> - 2004-04-27 03:39:45
|
Dear all, I am a new user of the Ocaml and I just installed the lib. However, I got an error when I use the lib. Would you please tell me how to solve it? Thank you very much. Regards, Yeting I input: open DynArray;; make;; I get: Reference to undefined global DynArray __________________________________ Do you Yahoo!? Win a $20,000 Career Makeover at Yahoo! HotJobs http://hotjobs.sweepstakes.yahoo.com/careermakeover |
From: John G. <jgo...@co...> - 2004-04-26 20:01:25
|
On Mon, Apr 26, 2004 at 12:52:08PM -0700, Blair Zajac wrote: > > > lstrip and rstrip are useful in some cases. For instance, if you wish > > > to remove trailing whitespace such as \n but preserve leading whitespace > > > (perhaps it's indentation that you wish to keep), rstrip is useful. > > > > what about : strip ~chars:"\n" then ? > > Maybe to be consistent with Perl's function, name it chomp? > > chomp This safer version of "chop" removes any trailing string that > corresponds to the current value of $/ (also known as > $INPUT_RECORD_SEPARATOR in the "English" module). It returns > the total number of characters removed from all its arguments. > It's often used to remove the newline from the end of an input > record when you're worried that the final record may be missing > its newline. When in paragraph mode ("$/ = """), it removes strip/rstrip/lstrip are consistent with Python... so I guess you get to choose one :-) |
From: John G. <jgo...@co...> - 2004-04-26 19:56:30
|
On Mon, Apr 26, 2004 at 09:43:45PM +0200, Nicolas Cannasse wrote: > > > I added the following to ExtString : > > > > > > val strip : ?chars:string -> string -> string > > > val nsplit : string -> string -> string list > > > val join : string -> string list -> string ( = concat ) > > > > > > I'm not sure about lstrip, rstrip and rchop_if > > > > lstrip and rstrip are useful in some cases. For instance, if you wish > > to remove trailing whitespace such as \n but preserve leading whitespace > > (perhaps it's indentation that you wish to keep), rstrip is useful. > > what about : strip ~chars:"\n" then ? That's not the same. If you have: " foo: \n" your strip command will not do the same as rstrip. -- John |
From: Blair Z. <bl...@or...> - 2004-04-26 19:52:31
|
Nicolas Cannasse wrote: > > > > I added the following to ExtString : > > > > > > val strip : ?chars:string -> string -> string > > > val nsplit : string -> string -> string list > > > val join : string -> string list -> string ( = concat ) > > > > > > I'm not sure about lstrip, rstrip and rchop_if > > > > lstrip and rstrip are useful in some cases. For instance, if you wish > > to remove trailing whitespace such as \n but preserve leading whitespace > > (perhaps it's indentation that you wish to keep), rstrip is useful. > > what about : strip ~chars:"\n" then ? Maybe to be consistent with Perl's function, name it chomp? chomp This safer version of "chop" removes any trailing string that corresponds to the current value of $/ (also known as $INPUT_RECORD_SEPARATOR in the "English" module). It returns the total number of characters removed from all its arguments. It's often used to remove the newline from the end of an input record when you're worried that the final record may be missing its newline. When in paragraph mode ("$/ = """), it removes Best, Blair -- Blair Zajac <bl...@or...> Plots of your system's performance - http://www.orcaware.com/orca/ |