vcpkg/toolsrc
Nicole Mazzuca e79f0dc532 [vcpkg] Make Filesystem::remove_all faster #7570
I added benchmarks to measure how fast the parallel remove_all code was
-- it turns out, about 3x slower than stdfs::remove_all. Since this was
the case, I removed all of the parallelism and rewrote it serially, and
ended up about 30% faster than stdfs::remove_all (in addition to
supporting symlinks).

In addition, I did the following three orthogonal changes:
  - simplified the work queue, basing it on Billy O'Neal's idea
  - Fix warnings on older versions of compilers in tests, by splitting
    the pragmas out of pch.h.
  - Ran clang-format on some files

In fixing up remove_all, the following changes were made:
  - On Windows, regular symlinks and directory symlinks are distinct;
    as an example, to remove directory symlinks (and junctions, for that
    matter), one must use RemoveDirectory. Only on Windows, I added new
    `file_type` and `file_status` types, with `file_type` including a new
    `directory_symlink` enumerator, and `file_status` being exactly the
    same as the old one except using the new `file_type`. On Unix, I
    didn't make that change since they don't make a distinction.
  - I added new `symlink_status` and `status` functions which use the
    new `file_status` on Windows.
  - I made `Filesystem::exists` call `fs::exists(status(p))`, as opposed
    to the old version which called `stdfs::exists` directly.
  - Added benchmarks to `vcpkg-test/files.cpp`. They test the
    performance of `remove_all` on small directories (~20 files), with
    symlinks and without, and on large directories (~2000 files), with
    symlinks and without.
2019-08-07 16:51:12 -07:00
..
include [vcpkg] Make Filesystem::remove_all faster #7570 2019-08-07 16:51:12 -07:00
src [vcpkg] Make Filesystem::remove_all faster #7570 2019-08-07 16:51:12 -07:00
vcpkg allow tests to run on older standard libraries 2019-07-19 23:20:28 -07:00
vcpkglib improve logic expression evaluation (#7508) 2019-08-02 21:37:49 -07:00
vcpkgmetricsuploader allow tests to run on older standard libraries 2019-07-19 23:20:28 -07:00
vcpkgtest [vcpkg] Fix RealFilesystem::remove_all (#7430) 2019-07-26 16:32:33 -07:00
.clang-format Rewrite the tests! now they're cross-platform! (#7315) 2019-07-18 19:07:00 -07:00
CMakeLists.txt [vcpkg] Make Filesystem::remove_all faster #7570 2019-08-07 16:51:12 -07:00
dirs.proj [vcxproj] Explicitly specify intermediate and output directories 2018-11-01 01:26:31 -07:00
vcpkg.natvis Initial addition of native visualizer, to improve debugging experience. (#3906) 2018-08-01 10:58:25 -07:00
vcpkg.sln improve logic expression evaluation (#7508) 2019-08-02 21:37:49 -07:00
VERSION.txt Update VERSION.txt 2019-07-18 16:20:00 -07:00