Am 04.10.2005 um 23:25 schrieb Stephen Deasey:

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.

OK.


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


It has [file link symbolic] but is incompatible with what
ns_symlink is doing. Look:

lexxsrv:nscp 2> file mkdir /tmp/foo
lexxsrv:nscp 3> cd /tmp/foo
lexxsrv:nscp 4> exec touch bar
lexxsrv:nscp 5> ns_symlink bar barlink
lexxsrv:nscp 6> file link -symbolic tcllink bar
bar
lexxsrv:nscp 7> exec ls -l
-rw-rw-rw-   1 root  wheel   0 Oct  5 09:40 bar
lrwxrwxrwx   1 root  wheel   3 Oct  5 09:40 barlink -> bar
lrwxrwxrwx 1 root wheel 20 Oct 5 09:42 tcllink -> /private/tmp/ foo/bar

You see? Thats why I wrote (tcl/compat.tcl):

#
# ns_symlink --
#
#   This is still implement in the server code. The reason is that
#   the Tcl [file link] command always creates link target with
#   absolute path to the linked file; nsd/tclfile.c:NsTclSymlinkObjCmd()
#

ns_symlink?  No truncate though, that sucks.  TclX has ftruncate...

Well, not only truncate, but:


#
# ns_truncate --
#
#   This is still implement in the server code. The reason is that
# the Tcl has no portable equivalent; nsd/ tclfile.c:NsTclFTruncateObjCmd()
#

#
# ns_ftruncate --
#
#   This is still implement in the server code. The reason is that
# the Tcl has no portable equivalent; nsd/ tclfile.c:NsTclTruncateObjCmd()
#

#
# ns_mktemp --
#
#   This is still implement in the server code. The reason is that
# the Tcl has no portable equivalent; nsd/ tclfile.c:NsTclMkTempObjCmd()
#

#
# ns_tempnam --
#
#   This is still implement in the server code. The reason is that
# the Tcl has no portable equivalent; nsd/ tclfile.c:NsTclTempNamObjCmd()
#

I will now checkin the nslog. Then I will tag before-tcl-vfs
and then checking the VFS changes. At the moment the VFS changes
mean: no direct OS calls related to file-operations. All (most)
is done using Tcl wrappers. Exceptions are: temporary filenames,
pipes and sockets.

Cheers
Zoran




Reply via email to