<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/clang/test/VFS/Inputs, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2018-10-26T22:16:24+00:00</updated>
<entry>
<title>[VFS] Add property 'fallthrough' that controls fallback to real file system.</title>
<updated>2018-10-26T22:16:24+00:00</updated>
<author>
<name>Volodymyr Sapsai</name>
<email>vsapsai@apple.com</email>
</author>
<published>2018-10-26T22:16:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f239a44ac90f04099bfe20bf795f2ad2b5888af4'/>
<id>urn:sha1:f239a44ac90f04099bfe20bf795f2ad2b5888af4</id>
<content type='text'>
Default property value 'true' preserves current behavior. Value 'false' can be
used to create VFS "root", file system that gives better control over which
files compiler can use during compilation as there are no unpredictable
accesses to real file system.

Non-fallthrough use case changes how we treat multiple VFS overlay
files. Instead of all of them being at the same level just above a real
file system, now they are nested and subsequent overlays can refer to
files in previous overlays.

Change is done both in LLVM and Clang, corresponding LLVM commit is r345431.

rdar://problem/39465552

Reviewers: bruno, benlangmuir

Reviewed By: bruno

Subscribers: dexonsmith, cfe-commits, hiraditya

Differential Revision: https://reviews.llvm.org/D50539

llvm-svn: 345432
</content>
</entry>
<entry>
<title>[VFS] Remove 'ignore-non-existent-contents' attribute for YAML-based VFS.</title>
<updated>2018-10-24T22:39:38+00:00</updated>
<author>
<name>Volodymyr Sapsai</name>
<email>vsapsai@apple.com</email>
</author>
<published>2018-10-24T22:39:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=ee89b2e01dfb29ceb58748f9a8ad173430a01d18'/>
<id>urn:sha1:ee89b2e01dfb29ceb58748f9a8ad173430a01d18</id>
<content type='text'>
'ignore-non-existent-contents' stopped working after r342232 in a way
that the actual attribute value isn't used and it works as if it is
always `true`.

Common use case for VFS iteration is iterating through files in umbrella
directories for modules. Ability to detect if some VFS entries point to
non-existing files is nice but non-critical. Instead of adding back
support for `'ignore-non-existent-contents': false` I am removing the
attribute, because such scenario isn't used widely enough and stricter
checks don't provide enough value to justify the maintenance.

rdar://problem/45176119

Reviewers: bruno

Reviewed By: bruno

Subscribers: hiraditya, dexonsmith, sammccall, cfe-commits

Differential Revision: https://reviews.llvm.org/D53228

llvm-svn: 345212
</content>
</entry>
<entry>
<title>[vfs] Don't bail out after a missing -ivfsoverlay file</title>
<updated>2018-03-23T17:37:27+00:00</updated>
<author>
<name>Ben Langmuir</name>
<email>blangmuir@apple.com</email>
</author>
<published>2018-03-23T17:37:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=005c2e57a658bc18529de5027d52619dc4a2a72c'/>
<id>urn:sha1:005c2e57a658bc18529de5027d52619dc4a2a72c</id>
<content type='text'>
This make -ivfsoverlay behave more like other fatal errors (e.g. missing
-include file) by skipping the missing file instead of bailing out of
the whole compilation. This makes it possible for libclang to still
provide some functionallity as well as to correctly produce the fatal
error diagnostic (previously we lost the diagnostic in libclang since
there was no TU to tie it to).

rdar://33385423

llvm-svn: 328337
</content>
</entry>
<entry>
<title>Don't diagnose non-modular includes when we are not compiling a module.</title>
<updated>2016-08-26T17:16:46+00:00</updated>
<author>
<name>Manman Ren</name>
<email>manman.ren@gmail.com</email>
</author>
<published>2016-08-26T17:16:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=a67e4d32544dc26393a54619b5fe2b63f581773e'/>
<id>urn:sha1:a67e4d32544dc26393a54619b5fe2b63f581773e</id>
<content type='text'>
This is triggered when we are compiling an implementation of a module,
it has relative includes to a VFS-mapped module with umbrella headers.
Currently we will find the real path to headers under the umbrella directory,
but the umbrella directories are using virtual path.

rdar://27951255

Thanks Ben and Richard for reviewing the patch!
Differential Revision: http://reviews.llvm.org/D23858

llvm-svn: 279838
</content>
</entry>
<entry>
<title>Reapply [VFS] Skip non existent files from the VFS tree</title>
<updated>2016-08-12T18:18:24+00:00</updated>
<author>
<name>Bruno Cardoso Lopes</name>
<email>bruno.cardoso@gmail.com</email>
</author>
<published>2016-08-12T18:18:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b7abde0343e1042fec643faca571882e3fc133b7'/>
<id>urn:sha1:b7abde0343e1042fec643faca571882e3fc133b7</id>
<content type='text'>
Reapply r278457 with test fixed to not abouse fs case sensitivity.

When the VFS uses a YAML file, the real file path for a
virtual file is described in the "external-contents" field. Example:

  ...
  {
     'type': 'file',
     'name': 'a.h',
     'external-contents': '/a/b/c/a.h'
  }

Currently, when parsing umbrella directories, we use
vfs::recursive_directory_iterator to gather the header files to generate the
equivalent modules for. If the external contents for a header does not exist,
we currently are unable to build a module, since the VFS
vfs::recursive_directory_iterator will fail when it finds an entry without a
reliable real path.

Since the YAML file could be prepared ahead of time and shared among
different compiler invocations, an entry might not yet have a reliable
path in 'external-contents', breaking the iteration.

Give the VFS the capability to skip such entries whenever
'ignore-non-existent-contents' property is set in the YAML file.

rdar://problem/27531549

llvm-svn: 278543
</content>
</entry>
<entry>
<title>Revert "[VFS] Skip non existent files from the VFS tree"</title>
<updated>2016-08-12T02:17:26+00:00</updated>
<author>
<name>Bruno Cardoso Lopes</name>
<email>bruno.cardoso@gmail.com</email>
</author>
<published>2016-08-12T02:17:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=e43e26395739bb91b1a581dc3b19063ebd82689d'/>
<id>urn:sha1:e43e26395739bb91b1a581dc3b19063ebd82689d</id>
<content type='text'>
Breaking bots:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/27281/

This reverts commit r278457.

llvm-svn: 278459
</content>
</entry>
<entry>
<title>[VFS] Skip non existent files from the VFS tree</title>
<updated>2016-08-12T01:51:04+00:00</updated>
<author>
<name>Bruno Cardoso Lopes</name>
<email>bruno.cardoso@gmail.com</email>
</author>
<published>2016-08-12T01:51:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=1dc8a422812cdbc23edbf4856a49a2e15d3cc591'/>
<id>urn:sha1:1dc8a422812cdbc23edbf4856a49a2e15d3cc591</id>
<content type='text'>
When the VFS uses a YAML file, the real file path for a
virtual file is described in the "external-contents" field. Example:

  ...
  {
     'type': 'file',
     'name': 'a.h',
     'external-contents': '/a/b/c/a.h'
  }

Currently, when parsing umbrella directories, we use
vfs::recursive_directory_iterator to gather the header files to generate the
equivalent modules for. If the external contents for a header does not exist,
we currently are unable to build a module, since the VFS
vfs::recursive_directory_iterator will fail when it finds an entry without a
reliable real path.

Since the YAML file could be prepared ahead of time and shared among
different compiler invocations, an entry might not yet have a reliable
path in 'external-contents', breaking the iteration.

Give the VFS the capability to skip such entries whenever
'ignore-non-existent-contents' property is set in the YAML file.

rdar://problem/27531549

llvm-svn: 278457
</content>
</entry>
<entry>
<title>[VFS] Add 'ignore-non-existent-contents' field to YAML files</title>
<updated>2016-08-12T01:50:53+00:00</updated>
<author>
<name>Bruno Cardoso Lopes</name>
<email>bruno.cardoso@gmail.com</email>
</author>
<published>2016-08-12T01:50:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b40d8ad225a376d8032b261963113242a8d8102f'/>
<id>urn:sha1:b40d8ad225a376d8032b261963113242a8d8102f</id>
<content type='text'>
Add 'ignore-non-existent-contents' to tell the VFS whether an invalid path
obtained via 'external-contents' should cause iteration on the VFS to stop.

If 'true', the VFS should ignore the entry and continue with the next. Allows
YAML files to be shared across multiple compiler invocations regardless of
prior existent paths in 'external-contents'. This global value is overridable
on a per-file basis.

This adds the parsing and write test part, but use by VFS comes next.

Differential Revision: https://reviews.llvm.org/D23422

rdar://problem/27531549

llvm-svn: 278456
</content>
</entry>
<entry>
<title>[VFS] Fix status() of opened redirected file</title>
<updated>2015-12-10T23:41:39+00:00</updated>
<author>
<name>Ben Langmuir</name>
<email>blangmuir@apple.com</email>
</author>
<published>2015-12-10T23:41:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f13302e63ff0c858ecac7cc30ea2201c523a43ba'/>
<id>urn:sha1:f13302e63ff0c858ecac7cc30ea2201c523a43ba</id>
<content type='text'>
Make RedirectedFileSystem::openFilForRead(path)-&gt;status() the same as
RedirectedFileSystem::status(path). Previously we would just get the
status of the underlying real file, which would not have the IsVFSMapped
bit set.

This fixes rebuilding a module that has an include that is relative to
the includer where we will lookup the real path of that file before we
lookup the VFS location.

rdar://problem/23640339

llvm-svn: 255312
</content>
</entry>
<entry>
<title>Don't try to rebuild modules on umbrella header mismatch</title>
<updated>2015-02-20T21:46:39+00:00</updated>
<author>
<name>Ben Langmuir</name>
<email>blangmuir@apple.com</email>
</author>
<published>2015-02-20T21:46:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=bc35fbe43a6a37877d5421a25616fe7858e7dfe0'/>
<id>urn:sha1:bc35fbe43a6a37877d5421a25616fe7858e7dfe0</id>
<content type='text'>
There are two issues here:
1) It's too late to rebuild at this point, because we won't go through
removeModules and when we try to reload the new .pcm we'll get the old
one instead.  We might be able to call removeModules after an OutOfDate
here, but I'm not yet confident that it is always safe to do so.

2) In practice, this check fails spuriously when the umbrella header
appears to change because of a VFS change that means it maps to a
different copy of the same file.  Because of this, we just skip the
check for now.

llvm-svn: 230064
</content>
</entry>
</feed>
