Skip to content
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
merged 225 commits into from
Feb 15, 2024
Merged

Update to upstream #4

merged 225 commits into from
Feb 15, 2024

Conversation

Baltoli
Copy link

@Baltoli Baltoli commented Feb 14, 2024

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.

arximboldi and others added 30 commits November 6, 2021 17:20
This causes problems on MacOS because of case insensitivity.
* also remove EqualValue from diff interface
colugomusic and others added 28 commits May 25, 2023 08:09
…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.
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.
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
@dwightguth dwightguth marked this pull request as ready for review February 15, 2024 17:52
@dwightguth dwightguth merged commit 7df6c30 into runtimeverification:master Feb 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.