[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