From cd6805e94dd5d6346be1b75a54cdc27787319dd2 Mon Sep 17 00:00:00 2001 From: Steffen Schuemann Date: Sun, 3 Apr 2022 11:40:58 +0200 Subject: [PATCH] Version bump release v1.5.12 Took 30 minutes --- README.md | 33 ++++++++++++++++++--------------- include/ghc/filesystem.hpp | 12 ++++++------ test/multi1.cpp | 2 +- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 8b197bc..db1b2f9 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Build Status](https://api.cirrus-ci.com/github/gulrak/filesystem.svg?branch=master)](https://cirrus-ci.com/github/gulrak/filesystem) [![Build Status](https://cloud.drone.io/api/badges/gulrak/filesystem/status.svg?ref=refs/heads/master)](https://cloud.drone.io/gulrak/filesystem) [![Coverage Status](https://coveralls.io/repos/github/gulrak/filesystem/badge.svg?branch=master)](https://coveralls.io/github/gulrak/filesystem?branch=master) -[![Latest Release Tag](https://img.shields.io/github/tag/gulrak/filesystem.svg)](https://github.com/gulrak/filesystem/tree/v1.5.10) +[![Latest Release Tag](https://img.shields.io/github/tag/gulrak/filesystem.svg)](https://github.com/gulrak/filesystem/tree/v1.5.12) - [Filesystem](#filesystem) - [Motivation](#motivation) @@ -39,8 +39,8 @@ This is a header-only single-file `std::filesystem` compatible helper library, based on the C++17 and C++20 specs, but implemented for C++11, C++14, C++17 or C++20 (tightly following the C++17 standard with very few documented exceptions). It is currently tested on -macOS 10.12/10.14/10.15/11.6, Windows 10, Ubuntu 18.04, Ubuntu 20.04, CentOS 7, CentOS 8, FreeBSD 12 -and Alpine ARM/ARM64 Linux but should work on other systems too, as long as you have +macOS 10.12/10.14/10.15/11.6, Windows 10, Ubuntu 18.04, Ubuntu 20.04, CentOS 7, CentOS 8, FreeBSD 12, +Alpine ARM/ARM64 Linux and Solaris 10 but should work on other systems too, as long as you have at least a C++11 compatible compiler. It should work with Android NDK, Emscripten and I even had reports of it being used on iOS (within sandboxing constraints) and with v1.5.6 there is experimental support for QNX. The support of Android NDK, Emscripten and QNX is not @@ -87,15 +87,15 @@ to do with Haskell**, sorry for the name clash). ## Platforms `ghc::filesystem` is developed on macOS but CI tested on macOS, Windows, -various Linux Distributions and FreeBSD. It should work on any of these with a C++11-capable -compiler. Also there are some checks to hopefully better work on Android, but -as I currently don't test with the Android NDK, I wouldn't call it a -supported platform yet, same is valid for using it with Emscripten. It is now -part of the detected platforms, I fixed the obvious issues and ran some tests with -it, so it should be fine. All in all, I don't see it replacing `std::filesystem` -where full C++17 or C++20 is available, it doesn't try to be a "better" -`std::filesystem`, just an almost drop-in if you can't use it (with the exception -of the UTF-8 preference). +various Linux Distributions, FreeBSD and starting with v1.5.12 on Solaris. +It should work on any of these with a C++11-capable compiler. Also there are some +checks to hopefully better work on Android, but as I currently don't test with the +Android NDK, I wouldn't call it a supported platform yet, same is valid for using +it with Emscripten. It is now part of the detected platforms, I fixed the obvious +issues and ran some tests with it, so it should be fine. All in all, I don't see it +replacing `std::filesystem` where full C++17 or C++20 is available, it doesn't try +to be a "better" `std::filesystem`, just an almost drop-in if you can't use it +(with the exception of the UTF-8 preference). :information_source: **Important:** _This implementation is following the ["UTF-8 Everywhere" philosophy](https://utf8everywhere.org/) in that all `std::string` instances will be interpreted the same as `std::u8string` encoding @@ -109,6 +109,7 @@ Unit tests are currently run with: * Linux (Ubuntu): GCC (5.5, 6.5, 7.4, 8.3, 9.2), Clang (5.0, 6.0, 7.1, 8.0, 9.0) * Linux (Alpine ARM/ARM64): GCC 9.2.0 * FreeBSD: Clang 8.0 +* Solaris: GCC 5.5 ## Tests @@ -148,8 +149,8 @@ in the standard, and there might be issues in these implementations too. ### Downloads -The latest release version is [v1.5.10](https://github.com/gulrak/filesystem/tree/v1.5.10) and -source archives can be found [here](https://github.com/gulrak/filesystem/releases/tag/v1.5.10). +The latest release version is [v1.5.12](https://github.com/gulrak/filesystem/tree/v1.5.12) and +source archives can be found [here](https://github.com/gulrak/filesystem/releases/tag/v1.5.12). The latest pre-native-backend version is [v1.4.0](https://github.com/gulrak/filesystem/tree/v1.4.0) and source archives can be found [here](https://github.com/gulrak/filesystem/releases/tag/v1.4.0). @@ -583,11 +584,13 @@ to the expected behavior. ## Release Notes -### v1.5.11 (WIP) +### [v1.5.12](https://github.com/gulrak/filesystem/releases/tag/v1.5.12) * Fix for [#142](https://github.com/gulrak/filesystem/issues/142), removed need for `GHC_NO_DIRENT_D_TYPE` on systems that don't support `dirent::d_type` and fixed build configuration and tests to support Solaris as new platform. +* Pull request [#138](https://github.com/gulrak/filesystem/pull/138), if the + platform uses the POSIX backend and has no `PATH_MAX`, one is defined. * Pull request [#137](https://github.com/gulrak/filesystem/pull/137), update of Catch2 to version v2.13.7 * Added macOS 11 to the automatically tested platforms. diff --git a/include/ghc/filesystem.hpp b/include/ghc/filesystem.hpp index 02a6553..9540b44 100644 --- a/include/ghc/filesystem.hpp +++ b/include/ghc/filesystem.hpp @@ -279,19 +279,19 @@ // * if this->has_root_directory() and !p.has_root_directory() return -1 // * if !this->has_root_directory() and p.has_root_directory() return -1 // * else result of element wise comparison of path iteration where first comparison is != 0 or 0 -// if all comparisons are 0 (on Windows this implementation does case insensitive root_name() +// if all comparisons are 0 (on Windows this implementation does case-insensitive root_name() // comparison) #define LWG_2936_BEHAVIOUR //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // LWG #2937 enforces that fs::equivalent emits an error, if !fs::exists(p1)||!exists(p2) #define LWG_2937_BEHAVIOUR //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// UTF8-Everywhere is the original behaviour of ghc::filesystem. But since v1.5 the windows +// UTF8-Everywhere is the original behaviour of ghc::filesystem. But since v1.5 the Windows // version defaults to std::wstring storage backend. Still all std::string will be interpreted -// as UTF-8 encoded. With this define you can enfoce the old behavior on Windows, using +// as UTF-8 encoded. With this define you can enforce the old behavior on Windows, using // std::string as backend and for fs::path::native() and char for fs::path::c_str(). This -// needs more conversions so it is (an was before v1.5) slower, bot might help keeping source -// homogeneous in a multi platform project. +// needs more conversions, so it is (and was before v1.5) slower, bot might help keeping source +// homogeneous in a multi-platform project. // #define GHC_WIN_DISABLE_WSTRING_STORAGE_TYPE //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Raise errors/exceptions when invalid unicode codepoints or UTF-8 sequences are found, @@ -306,7 +306,7 @@ //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // ghc::filesystem version in decimal (major * 10000 + minor * 100 + patch) -#define GHC_FILESYSTEM_VERSION 10511L +#define GHC_FILESYSTEM_VERSION 10512L #if !defined(GHC_WITH_EXCEPTIONS) && (defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND)) #define GHC_WITH_EXCEPTIONS diff --git a/test/multi1.cpp b/test/multi1.cpp index 6a9fac4..2394ff7 100644 --- a/test/multi1.cpp +++ b/test/multi1.cpp @@ -27,7 +27,7 @@ #include namespace fs = ghc::filesystem; -// This test and the one in multi2.cpp doesn't actualy test relevant functionality, +// This test and the one in multi2.cpp doesn't actually test relevant functionality, // it is just used to check that it is possible to include filesystem.h in multiple // source files. TEST_CASE("Multifile-test 1", "[multi]")