On 10/4/05, Zoran Vasiljevic <[EMAIL PROTECTED]> wrote:
> 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?


Sounds like a plan.

Try to commit the thread-safety fixes for nslog seperately, if
possible.  We don't want to loose this important fix in the noise of
generic fs changes.

It looks like Tcl has [file link -sybolic a b].  Will this not replace
ns_symlink?  No truncate though, that sucks.  TclX has ftruncate...

Reply via email to