Version 97 of tclvfs

Updated 2009-07-05 17:59:50 by gpl

TclVFS is the extension that exposes the core level Virtual File System (VFS) layer, now part of Tcl/Tk (8.4a5 is required, 8.4.1.1 or newer for best possible operation, using Tcl 8.4.3 or 8.4.4 would be a good idea.). The current version of the tclvfs extension is 1.3.0

Its official homepage is http://sourceforge.net/projects/tclvfs . Bugs should be reported there. Ditto patches and enhancement requests.

Take a look at the One-line web browser in Tcl using TclVFS.


See also VFS. The C extension is now very robust and well tested. But, distributed with tclvfs are a large number of virtual filesystem implementations (in pure Tcl). Many of these still need a lot of work (but since it is pure Tcl, lots of people should be able to help).

tclvfs relies on Memchan or some equivalent to 'open' (or 'load' or 'source') any file.

Please help develop the tclvfs package further!

Contributions of binary versions of tclvfs to be placed on sourceforge much appreciated.

TclVFS needs to be stress tested, QA'd and put into either the core, or a standard Tcl Binlib ... it's far too useful and fundamental for it to be kept as an optional extension.


Home page on SourceForge:

        http://sourceforge.net/projects/tclvfs/

This package is part of the ActiveTcl Batteries Included distribution.


VFS links


VFSs distributed with the TclVFS extension


VFSs not (yet) distributed with the TclVFS extension.


Possible VFSs


Questions, Problems

Can tcl and tclvfs together be used to poke around a starkit?

Don't understand the question. Yes, would be my answer, mount the starkit via vfs::mk4 ... -jcw

04feb05 jcw - Would it be an idea to map an arbitrary X(HT)ML tree to VFS?

LV So the results would be the ability to navigate an XML tree as if the nodes were directories and the actual items would be files? Sounds intriguing. How would the attributes be represented?


I think a very nice vfs would be an LDAP vfs using the tcllib ldap package to present a DIT as a filesystem. (and entries probably as LDIF formatted files)

2007-01-12 - There's a list of interesting VFS ideas and implementations at [L2 ] (based on FUSE [L3 ]).


[ Category Package | Category VFS ]


gpl - 2009-07-05 13:59:51

A bug in the file templatevfs.tcl (see A template virtual filesystem) 1.5.2 (last lines) prevents the use of the versioning file system on my machine.

Instead of:

 proc memchan {args} {
         if {$::tcl_platform(platform) == "windows"} {
                 package require Memchan
                 set chan [uplevel 1 ::memchan $args]
                 return $chan
         } else {
                 return ::vfs::memchan $args
         }
 }

put:

 proc memchan {args} {
         if {$::tcl_platform(platform) == "windows"} {
                 package require Memchan
                 set chan [uplevel 1 ::memchan $args]
                 return $chan
         } else {
                 return [::vfs::memchan $args]
         }
 }

(the brackets around ::vfs::memchan).

I didn't even know that return could take several arguments, in which case it returns nothing...