Hi Doug et al.

This is the first patch in the implementation of the virtual file system 
discussed here: 
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-February/035188.html.  It is 
intended to include enough of the AbstractFileSystem interface to replace the 
use of llvm::sys::fs in FileManager. Incidentally, I’ve included a number of 
the convenience methods that are trivially implemented on top of the status 
object.  When created by the CompilerInstance, FileManager will use a virtual 
file system created by the CI, but to avoid modifying every other user of the 
FileManager, in the absence of an explicit AbstractFileSystem to use, it will 
default to the real file system during construction.

Additionally, I’ve included a stub implementation of the OverlayFileSystem, 
which the CompilerInstance uses.  It is able to overlay files from a second 
file system, but will not merge directories correctly yet.  There are no users 
that actually push a second file system yet (other than the included unit test).

This patch is notably missing: the interfaces for recursive directory 
traversal, file system modification (create dir, rename, etc.), and any notion 
of thread safety.

Ben

Attachment: vfs-part1.patch
Description: Binary data


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to