forked from arximboldi/immer
-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to upstream #4
Merged
dwightguth
merged 225 commits into
runtimeverification:master
from
Baltoli:update-to-upstream
Feb 15, 2024
Merged
Update to upstream #4
dwightguth
merged 225 commits into
runtimeverification:master
from
Baltoli:update-to-upstream
Feb 15, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fix C++20 issues
Fix GitHub actions
This causes problems on MacOS because of case insensitivity.
Nix build issues
Typo fix: frony -> front
* also remove EqualValue from diff interface
…to-map Add diffing algorithm to maps
Fix msvc c2975
…destructor-call Use destroy_at to call explicit destructor in make_inner_n
Fixes and tests for C++20 Range compatibility
This is the only test using doctest, so switch it to catch2 like all the other tests. The only change needed was to switch from SUBCASE() to SECTION(); the test works fine also after the switch.
There are no more tests using doctest now; hence, drop the old copy of it, and its related build system bits.
Switch away from doctest, and drop it
- the tests are not run or even built - the examples are not installed so it is better to simply disable them; this also avoids requiring packages needed only for them.
In case the tests are enabled, require a system installed version of Catch2: - find it using its CMake config file - use the Catch2::Catch2 CMake target - switch the includes to the canonical form <catch2/catch.hpp> Also adapt the Nix configuration for this.
Now that the system version of Catch2 is used, the embedded copy is no more needed.
Use Catch2 as installed
It seems it is actually not used, as guile is currently searched with pkg_check_modules(Guile guile-2.2) since commit 026f2fe -- hence, drop this module.
cmake: drop FindGuile.cmake
This makes things rely less on their current relative locations in the sources.
cmake: use ${CMAKE_CURRENT_SOURCE_DIR} where possible
The current implementation of IMMER_THROW when exceptions are disabled relies on the compiler converting a character array to a truthy value, which can throw warnings and is not truly portable. Instead, we can use the comma operator to portably add additional data to an assertion: https://en.cppreference.com/w/cpp/error/assert.
Setting RULE_LAUNCH_* breaks the build of anything other than C/C++ that ccache doesn't support, e.g. rc.exe on windows. The global property leaks out and breaks any consuming project.
Fix portability of IMMER_THROW when exceptions are disabled
cmake: Only use ccache for C++
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR brings our fork of Immer up to date with the latest released version, while retaining the small changes made to allow us to use the collections in a garbage-collected environment.
I have tested this update successfully in the following places:
Given that these all succeed, I'm confident that the update is valid. Once this PR is merged, I can open a revised version of runtimeverification/llvm-backend#981 that points to the right place in this repo rather than my own fork.