[Starkit] Improving Tcl compression and performance

Guaca Mole guacamole1234 at yahoo.com
Sun Jan 11 14:41:30 CET 2004


> > for extracting the contents. Unless it is possible
> to
> > layer VFS inside each other (open a vfs::tar file
> > inside mk4vfs::vfs) ?
> 
> Open VFS tar/gz file, open a pipe to tar/gz, and
> fcopy.  No temp space 
> at all.

Ah nice! Although I probably can make tar and gzip a
dependency on Linux, it would not work for Windows and
not a sure thing either for other OS such as HP-UX or
Solaris (native tar has some limitations in path
length, etc.) I guess I could build or find binaries
for those architectures and bundle them, but I dont
have access to many of those architectures so,
for practical purposes I need to use something already
bundled with Tclkit or pure Tcl (As vfs::tar)

 
> Or save as tar and let starkit do the compression
> (slower, as you 
> mentioned), then do the above.  

I just checked and vfs::tar is read only access,
unfortunately


> Same effect, and if
> you want to totally 
> get rid of outside dependencies you could even do
> the 
> tar-decode-and-unpack-to-files in Tcl.  FWIW, SDX
> has a "tgz2sdx" 

To eliminiate packing time dependencies I would need a
vfs::tar or sdx2tar in pure Tcl

[snip]

> Or look at the zlib extension (see
> http://www.equi4.com/critlib/ for a 
> Critcl version), and redo it with bzip2.  Should be
> very easy, since 
> the API's of the two are very similar.

The problem here is external dependencies, I could
only do it in those architectures I have access to
(mainly x86 at this point). If a vfs::bzip2 layer was
written which improved  compression ratios over
current tcl zlib, would you consider it for Tclkit?

> There's no rocket science in any of these
> approaches.  It just takes 
> some elbow grease.

Yes, and this is important for me. So the solutions
right now with minimal external dependencies are:

a) Write vfs::tar that can create tar files
(or depending on how complex that will be, a simple
tar-like vfs that stores all the info in one file and
the offsets in another file)

b) Write a vfs::bzip2 and convince you to bundle it
with Tclkit so it gets built for platforms I dont have
access to :)

or, compromise architecture for the time being :

c) Find and bundle a static tar binary with Linux and
Windows (that should cover 90% of my users) and do
nothing in the rest of architectures. In most cases my
users do not have such big files, but when they do the
difference with tar.gz is significant.





__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus


More information about the Starkit mailing list