Hi friends,

I have made the TclVFS changes finally, believe or or not!

Before wholesale commit, I will however tag the current
CVS state as before-tcl-vfs (any better idea?) so you/we
can backoff if we found some serious, non-fixable problem.

I have replaced most of the internal direct OS calls
with TclVFS pendants. Things dealing with temporary/debug
files are however left unchanged.

The tcl/compat.tcl now contains most of the ns_xxxxxx
file-fiddling calls once done in C and actually augmented
with the modern [file] command implementation. Please
inspect and see if I missed something.
Generally, things there are *removed* from the C-code.
Those Tcl commands are really ment for back-compat and
should really not be used; use the [file] instead.
I haven't done the ns_symlink(a) and ns_truncate(b)
because of the:
(a) potential incombatiblity and
(b) lack of appropriate functionality on the Tcl level

Majority of VFS changes are rather unimportant for the
speed *except* the adpeval.c and fastpath.c.
There, I first try the OS then TclVFS path.  I believe
you will see no performance penalty whoatsoever.
That is, if you do not use Tcl virtual filesystem mappings,
everything should work as before.
Vlad, I rewrote the ParseRanges() in order to better
understand it. I hope I did not screw anything. Do a
quick glance there (after I commit) and doublecheck.

Oh yes, if interested, I can give you diffs of files
which have been changed in advance. Anybody?

Caveat emptor: I did rewrite the nslog/nslog.c to use
Tcl_Obj interface and have found that this part was
*utterly* MT-unsafe, generally speaking. This has been
now improved. Please take care to inspect your access.log
files and check if everything is still as it should be.

This is the list of changed files so far:

M include/ns.h
M include/nscheck.h
M nsd/adpeval.c
M nsd/adprequest.c
M nsd/binder.c
M nsd/config.c
M nsd/conn.c
M nsd/driver.c
M nsd/fastpath.c
M nsd/init.c
M nsd/log.c
M nsd/modload.c
M nsd/nsconf.c
M nsd/nsmain.c
M nsd/pidfile.c
M nsd/rollfile.c
M nsd/tclcmds.c
M nsd/tclfile.c
M nsd/tclimg.c
M nsd/urlopen.c
M nslog/nslog.c
M tcl/compat.tcl

Again, please pay attention to nsd/adpeval.c
and nsd/fastpath.c.

Any objections to commit?

Cheers
Zoran


Reply via email to