From: Stephen D. <sd...@gm...> - 2005-10-05 00:05:39
|
On 10/4/05, Zoran Vasiljevic <zv...@ar...> 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... |