From 58f484d758e3a57a8b36fabbc0fcf27d974dd99d Mon Sep 17 00:00:00 2001 From: Dwight Guth Date: Fri, 15 Oct 2021 13:17:51 -0500 Subject: [PATCH 1/3] update immer submodule --- deps/immer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/immer b/deps/immer index 141af37e4..2eea2202b 160000 --- a/deps/immer +++ b/deps/immer @@ -1 +1 @@ -Subproject commit 141af37e46a75fce48318b13bf2bf71f51950de8 +Subproject commit 2eea2202b5b71b58d18cc4672a5d995397a9797b From abc102b1aeae5bc4b8fe79ea178dc0b55427e362 Mon Sep 17 00:00:00 2001 From: Dwight Guth Date: Fri, 15 Oct 2021 14:05:46 -0500 Subject: [PATCH 2/3] point immer submodule at our fork for now --- .gitmodules | 2 +- deps/immer | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 9b4e503c7..3eb69012d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "deps/immer"] path = deps/immer - url = https://github.com/arximboldi/immer.git + url = https://github.com/runtimeverification/immer.git [submodule "deps/rapidjson"] path = deps/rapidjson url = https://github.com/Tencent/rapidjson diff --git a/deps/immer b/deps/immer index 2eea2202b..198c2ae26 160000 --- a/deps/immer +++ b/deps/immer @@ -1 +1 @@ -Subproject commit 2eea2202b5b71b58d18cc4672a5d995397a9797b +Subproject commit 198c2ae260d49ef1800a2fe4433e07d7dec20059 From 914c26649aa753dbeef12741fe3fe9de6a57e446 Mon Sep 17 00:00:00 2001 From: Dwight Guth Date: Fri, 15 Oct 2021 14:05:59 -0500 Subject: [PATCH 3/3] update llvm backend runtime to work with new API of immer --- include/runtime/header.h | 3 ++- runtime/collect/migrate_roots.cpp | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/runtime/header.h b/include/runtime/header.h index 877076c5a..20e5fc421 100644 --- a/include/runtime/header.h +++ b/include/runtime/header.h @@ -156,7 +156,8 @@ struct KEq { using list = immer::flex_vector< KElem, immer::memory_policy< - immer::heap_policy, immer::no_refcount_policy>>; + immer::heap_policy, immer::no_refcount_policy, + immer::no_lock_policy>>; using map = immer::map< KElem, KElem, HashBlock, std::equal_to, list::memory_policy>; using set diff --git a/runtime/collect/migrate_roots.cpp b/runtime/collect/migrate_roots.cpp index 087cf3e9a..7db338b15 100644 --- a/runtime/collect/migrate_roots.cpp +++ b/runtime/collect/migrate_roots.cpp @@ -12,12 +12,14 @@ extern "C" { void migrate(block **blockPtr); void migrateRoots() { - auto &l = list_impl::empty(); - migrate_list((void *)&l); + auto &l1 = list_impl::empty_root(); + migrate_collection_node((void **)&l1); + auto &l2 = list_impl::empty_tail(); + migrate_collection_node((void **)&l2); auto &s = set_impl::empty(); - migrate_set((void *)&s); + migrate_collection_node((void **)&s); auto &m = map_impl::empty(); - migrate_map((void *)&m); + migrate_collection_node((void **)&m); if (kllvm_randStateInitialized) { auto &rand = kllvm_randState->_mp_seed->_mp_d; string *limbs = struct_base(string, data, rand);