From: skaller <sk...@us...> - 2004-07-23 23:12:34
|
On Sat, 2004-07-24 at 08:33, Brian Hurt wrote: > Actually, I have a problem with doing this. It's perfectly legal, but > that doesn't make it *right*. Sure its right! If you give your code a BSD licence you expect the constraints to stick, and nothing more. You've *deliberaly* allowed anyone to use the code any way they want including modify it, refuse to publish the changes, and indeed sell them. I would argue NOT reusing that software would be the biggest 'sin' :) -- John Skaller, mailto:sk...@us... voice: 061-2-9660-0850, snail: PO BOX 401 Glebe NSW 2037 Australia Checkout the Felix programming language http://felix.sf.net |
From: skaller <sk...@us...> - 2004-07-23 23:36:46
|
On Sat, 2004-07-24 at 09:12, skaller wrote: > On Sat, 2004-07-24 at 08:33, Brian Hurt wrote: > I would argue NOT reusing that software would be > the biggest 'sin' :) BTW: Felix is 'FFAU', but about 1/3 of the physical code is the Frontc/Cil C parser, which was produced at Berkley (and naturally has a BSD licence). Of course I emailed the authors and let them know I was using it, and naturally reported a couple of bugs .. and asked some questions. My code is freely available if they wish to incorporate the changes I made into theirs (which includes upgrading to C99 and some weak C++ support). I guess the authors are *happy* someone is actually using their code. A lot of work went into it. I would certainly like more people to be using mine -- what's the point of writing it otherwise? I personally think it is only a matter of courtesy to tell someone you're using their code, and to say 'thank you' -- hey, they might even add the project to their own 'advocay' section, so it benefts them. And don't forget academics live on 'brownie points' (citations) in the same way commercial entities live on sales. Use that code -- you're doing them a good turn! -- John Skaller, mailto:sk...@us... voice: 061-2-9660-0850, snail: PO BOX 401 Glebe NSW 2037 Australia Checkout the Felix programming language http://felix.sf.net |
From: Jere S. <xm...@xm...> - 2004-07-23 23:02:27
|
On Fri, Jul 23, 2004 at 10:09:32PM +0200, Nicolas Cannasse wrote: >The Unzip module is now part of ExtLib ! >You can deflate your TGZ and ZIP with pure OCaml code only ! >Enjoy, Cool, thanks! I've still to see your code in the CVS (does sourceforge always have a delay after commit for the changes to show up?) but a few questions. So you have unzip, how about a zip? It's always handy to pack stuff as well. And how far does the current module go? Can it unpack whole zip files with several files in them? Which brings me to another curiosity I've been having. After looking at the ocaml core library I was missing abstract files (so I could implement my own, given an interface). Well, Extlib has that and great. But how about an abstract filesystem? Something along the lines of: --- class base_filesys : object method exists : string -> bool method size : string -> int method chdir : string -> unit method cwd : unit -> string end class ['a] i_filesys : object inherit base_filesys method open_in : string -> 'a end class ['a] o_filesys : object inherit base_filesys method delete : string -> unit method open_out : string -> 'a end class ['a,'b] io_filesys : object inherit ['a] i_filesys inherit ['b] o_filesys end --- That way you could do easy wrappings for filesystems. Useful things like: - Use a ZIP as a filesystem (input only if you please) - Use remote filesystem - Implement sandboxing (filesystem inside a filesystem, like prevent the application accidentally accessing some part outside the given directory) What do you guys think? -- Jere Sanisalo [xm...@xm...] - http://www.xmunkki.org/ |
From: Sylvain LE G. <syl...@po...> - 2004-07-23 23:38:59
|
Hello, On Sat, Jul 24, 2004 at 02:01:29AM +0300, Jere Sanisalo wrote: > On Fri, Jul 23, 2004 at 10:09:32PM +0200, Nicolas Cannasse wrote: > >The Unzip module is now part of ExtLib ! > >You can deflate your TGZ and ZIP with pure OCaml code only ! > >Enjoy, > > Cool, thanks! > > I've still to see your code in the CVS (does sourceforge always have a delay > after commit for the changes to show up?) but a few questions. So you have > unzip, how about a zip? It's always handy to pack stuff as well. > > And how far does the current module go? Can it unpack whole zip files with > several files in them? > > Which brings me to another curiosity I've been having. After looking at the > ocaml core library I was missing abstract files (so I could implement my > own, given an interface). Well, Extlib has that and great. But how about an > abstract filesystem? Something along the lines of: > --- > class base_filesys : > object > method exists : string -> bool > method size : string -> int > > method chdir : string -> unit > method cwd : unit -> string > end > > class ['a] i_filesys : > object > inherit base_filesys > > method open_in : string -> 'a > end > > class ['a] o_filesys : > object > inherit base_filesys > > method delete : string -> unit > > method open_out : string -> 'a > end > > class ['a,'b] io_filesys : > object > inherit ['a] i_filesys > inherit ['b] o_filesys > end > --- > That way you could do easy wrappings for filesystems. Useful things like: > - Use a ZIP as a filesystem (input only if you please) > - Use remote filesystem > - Implement sandboxing (filesystem inside a filesystem, like prevent the > application accidentally accessing some part outside the given directory) > Well, i currently maintain a library which is called ocaml-fileutils. It implements most operation you describe for real filesystem ( size = du, exists = test Exist, cwd = pwd, delete = rm , in other word, take a look a the GNU fileutils ). I was think of implementing a tar module for navigating tar archives, and to give a model to expand it to anything else... However, i don't use object oriented design ( i don't like this kind of design )... If you are interested in generating a tar navigator, please go ahead, the library is made for extension ( if you want to extend, you will need to use the module typing of the FileUtil module ). Kind regard Sylvain Le Gall ps : http://www.carva.org/sylvain.le-gall/ocaml-fileutils.html |
From: Nicolas C. <war...@fr...> - 2004-07-24 08:58:42
|
> >The Unzip module is now part of ExtLib ! > >You can deflate your TGZ and ZIP with pure OCaml code only ! > >Enjoy, > > Cool, thanks! > > I've still to see your code in the CVS (does sourceforge always have a delay > after commit for the changes to show up?) but a few questions. So you have > unzip, how about a zip? It's always handy to pack stuff as well. > > And how far does the current module go? Can it unpack whole zip files with > several files in them? Well. The current module is an implementation of the "deflate" algorithm (zlib) conform to the RFC 1950 and 1951. Then you can unzip all kind of data : png , swf , any gziped, zip, and a lot more. There is no direct support for the ZIP or TGZ file format but I might add it pretty soon ( it's quite easy once you can deflate : http://www.pkware.com/products/enterprise/white_papers/appnote.txt , http://www.faqs.org/rfcs/rfc1952.html , http://www.onicos.com/staff/iz/formats/tar.html ). As for "inflate", it's a bit more complicate : although it uses mostly same data structures, you need to be careful to implement it in a patent-free way (for american people, we european are not yet concerned about software patents). I might try to do that later. > Which brings me to another curiosity I've been having. After looking at the > ocaml core library I was missing abstract files (so I could implement my > own, given an interface). Well, Extlib has that and great. But how about an > abstract filesystem? Something along the lines of: [...] > That way you could do easy wrappings for filesystems. Useful things like: > - Use a ZIP as a filesystem (input only if you please) > - Use remote filesystem > - Implement sandboxing (filesystem inside a filesystem, like prevent the > application accidentally accessing some part outside the given directory) > > What do you guys think? Well that's interesting idea. Same problem as IO : we need to figure out what minimal support is needed so adding a new filesystem is not too much a pain. Also, a module would be better than classes. Regards, Nicolas Cannasse |