[lldb-dev] About lldbHost
Greg Clayton via lldb-dev
lldb-dev at lists.llvm.org
Wed Feb 15 10:50:32 PST 2017
> On Feb 15, 2017, at 10:37 AM, Pavel Labath <labath at google.com> wrote:
>
> On 15 February 2017 at 18:20, Greg Clayton <gclayton at apple.com <mailto:gclayton at apple.com>> wrote:
>>
>> On Feb 15, 2017, at 10:14 AM, Zachary Turner <zturner at google.com> wrote:
>>
>> I think the main improvement that it provides is that you need *something*
>> which represents only a path. Because we use FileSpecs to refer to paths on
>> remote machines, and then what does it mean to call Exists or Resolve? So,
>> we could have something like PathSpec and then have FileSpec contain a
>> PathSpec, and PathSpec's only purpose would be to know about the grammar of
>> a path.
>>
>>
>> Agreed. Are you ok with starting with moving as much stuff from FileSpec
>> over into File to start with?
>>
>>
>
> I don't think File is a good place for at least some of these
> functions. If File represents an open file, then at the point where
> you already have an open file, it's not really worth asking whether it
> exists. What makes more sense is to have an external entity (e.g. a
> FileSystem) that you give an abstract pathname (FileSpec) to and it
> tells you whether that pathname exists within the context of the
> entity. Then you tell that entity "please open me this FileSpec" and
> it gives you an object representing an open file (File class). In the
> case of remote paths you would not ask the FileSystem class but maybe
> the Platform class, but the API would be the same.
>
> Similarly for Resolve: I think of it as an operation that takes an
> abstract path and returns another abstract path, resolved within the
> context of some external entity.
>
> I can imagine MemoryMapFileContents to live within the File class, as
> you have to have the file open to mmap it, but I don't think a
> filesystem would be a bad place either.
>
> I don't believe this make code completion harder. E.g. you can do
> llvm::sys::fs::<tab> to see all the file manipulation functions in
> llvm even though they are free functions.
My main complaint here is if we have a FileSpec and I want to do some operation on it, I have no idea to look in llvm::sys::fs::....
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20170215/47ca3176/attachment-0001.html>
More information about the lldb-dev
mailing list