[delphizip] (no subject)

  • From: Gerard <gslurink@xxxxxx>
  • To: nanozip@xxxxxxxxxxxxxxx
  • Date: Sun, 10 Nov 2002 01:11:11 +0200

Hi zippers,

This mail is posted in the nanozip and in the delphizip newsgroup, and 
addressed to all.
I am not writing in behalf of any group, this is a personal mail, for which 
I am responsible, if there is anything you don't like, blame me, nobody 
else !!  (I assume you all are familiar with the persons I am referring in 
this mail, if not make sure you' become familiar with their work !)

First, Adem, congratulations on your v2.00 Alpha. It looks very clean. I 
could read the code in 15 minutes and had practically no difficulty in 
understanding it. That is a major achievement! ;-) I had no time to test it 
yet, but I will.

So what is this mail about ? (I'll try to be brief)

We had a little discussion in the DelphiZip group on the zip format. (see 
//www.freelists.org/archives/delphizip)
My personal opinion is that the file format is lacking flexibility for new 
uses and needs rewriting too much. I have new uses for compressed files and 
compression in general (for which Jim and Mike are responsible by opening 
new doors with the Virtual Treeview and Virtual Shell Tools :-)
I don't want to go in details on a new format but a (to me) major result 
that came out of it was the proposal of James Turner that we could (should) 
separate that compression/decompression code and (zip) archive manipulation 
code.
Major advantages with such a modularity would be:

Have compression/decompression code that can be used in a broader area
  - for creating an own interface to the zip file
  - for creating a new file format not compatible with zip but still using 
all or some of its compression methods
  - for other non standard use (ie not directly related to files)
If the archive manipulation code component is not sufficient for someone, 
(s)he could replace it by another component without having to concern about 
the (complex) compression
New compression methods can easily be added (ie rs compression, fast 
extraction, ...)

To my opinion all would benefit from such an approach.

What to do ?

- define a clean, small and simple interface between the two parts
- adapt existing code to it or write new code

I realize that this can be a lot of work, and most of us have lots of other 
things on their mind, but nevertheless I want to use this opportunity to 
advocate this and try to point our noses into the same direction.
Most of us would love to have pure Pascal code, but since there is still a 
lot of C code available in dll's I don't want to leave this out.
Following steps are not exclusive. They could be done parallel and 
complement each other.

DelphiZip
Unfortunately most of the work is done now by the dll's. It would be great 
if a C programmer could create new dll's, which restrict themselves to 
compression/decompression. With a simple Delphi wrapper, we would have all 
current compression code available (as I am not a C programmer, I cannot do 
this, I have no idea if this would be relative easy to do or would require 
much work)
As DelphiZip provides a popular interface, it could be extended to take 
over the functionality taken from the Dll's (I leave that up to Russell and 
Roger)

NanoZip
Separate NanoZipUnzip and NanoCommon. Make a small interface to Nanocommon 
and concentrate all compression related code in it. Focus NanoZipUnzip on 
the archive manipulations. Very much of the code is already that way, but 
it still would require some work. (ie reversing the inclusion of nanocommon 
in nanozipunzip ;(). This is of course up to Adem.

InfoZip C source
To quote Eric: 'take the InfoZip C source files, and perhaps include them 
as object files with very few changes. If we
could stay close to real InfoZip source, then we could continue to upgrade 
our low-level zip code whenever InfoZip has a new release. This way we 
could get support for new zip flavors, like deflate64. And we could get all 
the security fixes that InfoZip gets'.
This would be work for a C programmer I guess, I would not know where to start

New Pascal code
As most of us would prefer pure Pascal,  this would be ideal (as Nanozip is 
doing), but it would mean a lot of work.
I could do it if I have to, but at the moment I cannot make the time free 
for it. I have however no doubt that if this proves to be the only 
solution, the day will come that I start doing this.


So, the word is out. Before starting a discussion on a new format (for 
which most likely a new group will be started) I am eager to hear your 
reactions on this one.


Best regards,

Gerard.

PS, I am prepared to do not only talking but also actual coding

  PS2, forgive me my English, it's not my native language (Dutch it is)


Other related posts: