Releases: gulrak/filesystem
Releases · gulrak/filesystem
ghc::filesystem Release v1.5.14
Changes:
- Pull request #163, build support for Haiku (also fixes #159)
- Pull request #162, fix for directory iterator treating all files subsequent to a symlink as symlink on Windows
- Pull request #161, the CMake alias
ghcFilesystem::ghc_filesystem
is now set unconditionally - Fix for #160, the cmake config now only sets install targets by default if the project is no subproject, as documented
- Fix for #157, suppress C4191 warning on MSVC for GetProcAddress casts
- Fix for #156, on POSIX
stem()
,filename()
andextension()
offs::path
would return wrong result if a colon was in the filename - Pull request #154, build support for GNU/Hurd
- Pull request #153, fixed
fs::last_write_time(path, time, ec)
setter on iOS, tvOS and watchOS - Fix for #151,
fs::directory_entry::refresh()
now, consistently withstatus()
will not throw on symlinks to non-existing targets, but make the entry havefile_type::not_found
as the type - Pull request #149, add version to CMake project and export it
- Fix for #146, handle
EINTR
on POSIX directory iteration and file copy to avoid errors on network filesystems - Pull request #145, fix for Y2038 bug in timeToFILETIME on Windows
- Pull request #144,
fs::copy_file()
now also copies the permissions - Pull request #143, fix for
fs::copy_file()
ignoring theskip_existing
option.
Thank you to all the reporters of issues and contributors of PRs!
ghc::filesystem Release v1.5.12
Changes:
- Fix for #142, removed need for
GHC_NO_DIRENT_D_TYPE
on systems that don't supportdirent::d_type
and fixed build configuration and tests to support Solaris as new platform. - Pull request #138, if the platform uses the POSIX backend and has no
PATH_MAX
, one is defined. - Pull request #137, update of Catch2 to version v2.13.7
- Added macOS 11 to the automatically tested platforms.
ghc::filesystem Release v1.5.10
Changes:
- Pull request #136, the Windows implementation used some unnecessary expensive shared pointer for resource management and these where replaced by a dedicated code.
- Fix for #132, pull request #135,
fs::remove_all
now just deletes symbolic links instead of following them. - Pull request #133, fix for
fs::space
where a numerical overflow could happen in a multiplication. - Replaced travis-ci.org with GitHub Workflow for the configurations: Ubuntu 20.04: GCC 9.3, Ubuntu 18.04: GCC 7.5, GCC 8.4, macOS 10.15: Xcode 12.4, Windows 10: Visual Studio 2019
ghc::filesystem Release v1.5.8
Changes:
- Fix for #125, where
fs::create_directories
on Windows no longer breaks on long filenames.
ghc::filesystem Release v1.5.6
Changes:
- Fix for #124,
ghc::filesystem
treated mounted folder/volumes erroneously as symlinks, leadingfs::canonical
to fail on paths containing those. - Fix for #122, incrementing the
recursive_directory_iterator
will not try to enter dead symlinks. - Fix for #121, on Windows backend the
fs::remove
failed when the path pointed to a read-only entry, see also (microsoft/STL#1511) for the corresponding issue instd::fs
on windows. - Fix for #119, added missing support for char16_t and char32_t and on C++20 char8_t literals.
- Pull request #118, when running tests as root, disable tests that would not work.
- Pull request #117, added checks to tests to detect the clang/libstdc++ combination.
- Fix for #116, internal macro
GHC_NO_DIRENT_D_TYPE
allows os detection to support systems without thedirent.d_type
member, experimental first QNX compile support as initial use case, fixed issue with filesystems returningDT_UNKNOWN
(e.g. reiserfs). - Pull request #115, added
string_view
support when clang with libstdc++ is detected. - Fix for #114, for macOS the pre-Catalina deployment target detection worked only if
<Availability.h>
was included before<ghc/fs_std.hpp>
or<ghc/fs_std_fwd.hpp>
/<ghc/fs_std_impl.hpp>
. - Fix for #113, the use of standard chapter numbers was misleading since C++17 and C++20
std::filesystem
features are supported, and was replaced by the tag-like chapter names that stay (mostly) consistent over the versions.
ghc::filesystem Release v1.5.4
Changes
- Pull request #112, lots of cleanup work on the readme, thanks!
- Enhancement for #111, further optimization of directory iteration, performance for
recursive_directory_iterator
over large trees now somewhere between libc++ and libstdc++. - Enhancement for #110,
ghc::filesystem
now has preliminary support for Cygwin. Changes where made to allow the tests to compile and run successfully (tested with GCC
10.2.0), feedback and additional PRs welcome as it is currently not part of the CI configuration. - Pull request #109, various spelling errors in error messages and comments fixed.
- Pull request #108, old style casts removed.
- Fix for #107, the error handling for status calls was suppressing errors on symlink targets.
- Pull request #106, fixed detection of AppleClang for compile options.
- Pull request #105, added option
GHC_FILESYSTEM_BUILD_STD_TESTING
to override additional build ofstd::filesystem
versions of the tests for comparison and the possibility to useGHC_FILESYSTEM_TEST_COMPILE_FEATURES
to prefill the used compile features defaulting toCMAKE_CXX_COMPILE_FEATURES
when not given.
ghc::filesystem Release v1.5.2
Changes
- Enhancement #104, on POSIX backend: optimized reuse of status information and reduced
directory_entry
creation leads to about 20%-25% in tests withrecursive_directory_iterator
over a larger directory tree. - Pull request #103,
wchar_t
was not in the list of supported char types on non-Windows backends. - Pull request #102, improved
string_view
support makes use of<string_view>
or<experiemental/string_view>
when available, and allows use of custombasic_string_view
implementation when definingGHC_HAS_CUSTOM_STRING_VIEW
and importing the string view into theghc::filesystem
namespace before including filesystem header. - Pull request #101, fix for #100, append and concat type of operations on path called redundant conversions.
- Pull request #98, on older linux variants (GCC 7/8), the comerative
std::filesystem
tests now link with-lrt
to avoid issues. - Fix for #97, on BTRFS the test case for
fs::hard_link_count
failed due to the filesystems behavior, the test case was adapted to take that into account. - Pull request #96, the export attribute defines
GHC_FS_API
andGHC_FS_API_CLASS
are now honored when when set from outside to allow override of behavior. - Fix for #95, the syntax for disabling the deprecated warning in tests in MSVC was wrong.
- Pull request #93, now the CMake configuration file is configured and part of the
make install
files.
ghc::filesystem Release v1.5.0
Changes:
- Fix for #91, the way the CMake build options
GHC_FILESYSTEM_BUILD_TESTING
,GHC_FILESYSTEM_BUILD_EXAMPLES
andGHC_FILESYSTEM_WITH_INSTALL
where implemented, prohibited setting them from a parent project when using this viaadd_subdirectory
, this fix allows to set them again. - Major refactoring for #90, the way, the Windows version of
fs::path
was originally created from the POSIX based implementation was, by adaption of the incoming and outgoing strings. This resulted in a mutable cache insidefs::path
on Windows, that was inherently not thread-safe, even forconst
methods.
To not add additional patches to a suboptimal solution, this time I reworked thepath
code to now store native path-representation. This changed a lot of code, but when combined withwchar_t
asvalue_type
helped to avoid lots of conversion for calls to Win-API.
As interfaces where changed, it had to be released in a new minor version. The set of refactorings resulted in the following changes:fs::path::native()
andfs::path::c_str()
can now benoexcept
as the standard mandates- On Windows
wchar_t
is now the default forfs::path::value_type
andstd::wstring
is the default fürfs::path::string_type
. - This allows the implementation to call Win-API without allocating conversions
- Thread-safety on
const
methods offs::path
is no longer an issue - Some code could be simplified during this refactoring
- Automatic prefixing of long path on Windows can now be disabled with defining
GHC_WIN_DISABLE_AUTO_PREFIXES
, for all other types of prefixes or namespaces the behavior follows that of MSVCstd::filesystem::path
- In case the old
char
/std::string
based approach for Windows is still needed, it can be activated withGHC_WIN_DISABLE_WSTRING_STORAGE_TYPE
- Enhancement for #89,
fs::file_status
now supportsoperator==
introduced instd::filesystem
with C++20. - Refactoring for #88,
fs::path::parent_path()
had a performance issue, as it was still using a loop based approach to recreate the parent from elements. This created lots of temporaries and was too slow especially on long paths.
ghc::filesystem Release v1.4.0
Changes:
- Enhancements for #71, when compiled with C++20:
char8_t
andstd::u8string
are supported whereSource
is the parameter typefs::path::u8string()
andfs::path::generic_u8string()
now return astd::u8string
- The spaceship operator
<=>
is now supported forfs::path
- With the define
GHC_FILESYSTEM_ENFORCE_CPP17_API
ghc::filesystem
will fall back to the oldfs::path::u8string()
andfs::path::generic_u8string()
API if preferred
- Bugfix for
fs::proximate(p, ec)
where the internal call tofs::current_path()
was not using theerror_code
variant, throwing possible exceptions instead of settingec
. - Enhancement
LWG_2936_BEHAVIOUR
is now on by default. - Some cleanup work to reduce preprocessor directives for better readability and remove unneeded template specializations.