From 73e9265f954528b6b2eccf98572e77126539a8df Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 23 Dec 2020 13:36:55 +0100 Subject: chore(3p/immer): Remove vendored copy of immer We ended up dropping the use of this library again. Change-Id: I2c44cd22a6128d23f87a582402bf5fb84991d608 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2292 Tested-by: BuildkiteCI Reviewed-by: Profpatsch --- third_party/immer/example/CMakeLists.txt | 17 ---- third_party/immer/example/array/array.cpp | 54 ----------- third_party/immer/example/box/box.cpp | 25 ----- .../immer/example/flex-vector/flex-vector.cpp | 103 --------------------- third_party/immer/example/map/intro.cpp | 23 ----- third_party/immer/example/set/intro.cpp | 22 ----- third_party/immer/example/vector/fizzbuzz.cpp | 34 ------- third_party/immer/example/vector/gc.cpp | 37 -------- third_party/immer/example/vector/intro.cpp | 22 ----- third_party/immer/example/vector/iota-move.cpp | 25 ----- third_party/immer/example/vector/iota-slow.cpp | 25 ----- .../immer/example/vector/iota-transient-std.cpp | 29 ------ .../immer/example/vector/iota-transient.cpp | 27 ------ third_party/immer/example/vector/move.cpp | 35 ------- third_party/immer/example/vector/vector.cpp | 53 ----------- 15 files changed, 531 deletions(-) delete mode 100644 third_party/immer/example/CMakeLists.txt delete mode 100644 third_party/immer/example/array/array.cpp delete mode 100644 third_party/immer/example/box/box.cpp delete mode 100644 third_party/immer/example/flex-vector/flex-vector.cpp delete mode 100644 third_party/immer/example/map/intro.cpp delete mode 100644 third_party/immer/example/set/intro.cpp delete mode 100644 third_party/immer/example/vector/fizzbuzz.cpp delete mode 100644 third_party/immer/example/vector/gc.cpp delete mode 100644 third_party/immer/example/vector/intro.cpp delete mode 100644 third_party/immer/example/vector/iota-move.cpp delete mode 100644 third_party/immer/example/vector/iota-slow.cpp delete mode 100644 third_party/immer/example/vector/iota-transient-std.cpp delete mode 100644 third_party/immer/example/vector/iota-transient.cpp delete mode 100644 third_party/immer/example/vector/move.cpp delete mode 100644 third_party/immer/example/vector/vector.cpp (limited to 'third_party/immer/example') diff --git a/third_party/immer/example/CMakeLists.txt b/third_party/immer/example/CMakeLists.txt deleted file mode 100644 index 2aa0f554279d..000000000000 --- a/third_party/immer/example/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ - -# Targets -# ======= - -add_custom_target(examples - COMMENT "Build all examples.") -add_dependencies(check examples) - -file(GLOB_RECURSE immer_examples "*.cpp") -foreach(_file IN LISTS immer_examples) - immer_target_name_for(_target _output "${_file}") - add_executable(${_target} EXCLUDE_FROM_ALL "${_file}") - add_dependencies(examples ${_target}) - set_target_properties(${_target} PROPERTIES OUTPUT_NAME ${_output}) - target_link_libraries(${_target} PUBLIC immer-dev) - add_test("example/${_output}" ${_output}) -endforeach() diff --git a/third_party/immer/example/array/array.cpp b/third_party/immer/example/array/array.cpp deleted file mode 100644 index 43972ad61a21..000000000000 --- a/third_party/immer/example/array/array.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include - -#include - -int main() -{ - { - // include:push-back/start - auto v1 = immer::array{1}; - auto v2 = v1.push_back(8); - - assert((v1 == immer::array{1})); - assert((v2 == immer::array{1, 8})); - // include:push-back/end - } - - { - // include:set/start - auto v1 = immer::array{1, 2, 3}; - auto v2 = v1.set(0, 5); - - assert((v1 == immer::array{1, 2, 3})); - assert((v2 == immer::array{5, 2, 3})); - // include:set/end - } - - { - // include:update/start - auto v1 = immer::array{1, 2, 3, 4}; - auto v2 = v1.update(2, [&](auto l) { return ++l; }); - - assert((v1 == immer::array{1, 2, 3, 4})); - assert((v2 == immer::array{1, 2, 4, 4})); - // include:update/end - } - - { - // include:take/start - auto v1 = immer::array{1, 2, 3, 4, 5, 6}; - auto v2 = v1.take(3); - - assert((v1 == immer::array{1, 2, 3, 4, 5, 6})); - assert((v2 == immer::array{1, 2, 3})); - // include:take/end - } -} diff --git a/third_party/immer/example/box/box.cpp b/third_party/immer/example/box/box.cpp deleted file mode 100644 index 8f045e8876ec..000000000000 --- a/third_party/immer/example/box/box.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include - -#include -#include - -int main() -{ - { - // include:update/start - auto v1 = immer::box{"hello"}; - auto v2 = v1.update([&](auto l) { return l + ", world!"; }); - - assert((v1 == immer::box{"hello"})); - assert((v2 == immer::box{"hello, world!"})); - // include:update/end - } -} diff --git a/third_party/immer/example/flex-vector/flex-vector.cpp b/third_party/immer/example/flex-vector/flex-vector.cpp deleted file mode 100644 index 7c8a7793393c..000000000000 --- a/third_party/immer/example/flex-vector/flex-vector.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include - -#include - -int main() -{ - { - // include:push-back/start - auto v1 = immer::flex_vector{1}; - auto v2 = v1.push_back(8); - - assert((v1 == immer::flex_vector{1})); - assert((v2 == immer::flex_vector{1, 8})); - // include:push-back/end - } - { - // include:push-front/start - auto v1 = immer::flex_vector{1}; - auto v2 = v1.push_front(8); - - assert((v1 == immer::flex_vector{1})); - assert((v2 == immer::flex_vector{8, 1})); - // include:push-front/end - } - - { - // include:set/start - auto v1 = immer::flex_vector{1, 2, 3}; - auto v2 = v1.set(0, 5); - - assert((v1 == immer::flex_vector{1, 2, 3})); - assert((v2 == immer::flex_vector{5, 2, 3})); - // include:set/end - } - - { - // include:update/start - auto v1 = immer::flex_vector{1, 2, 3, 4}; - auto v2 = v1.update(2, [&](auto l) { return ++l; }); - - assert((v1 == immer::flex_vector{1, 2, 3, 4})); - assert((v2 == immer::flex_vector{1, 2, 4, 4})); - // include:update/end - } - - { - // include:take/start - auto v1 = immer::flex_vector{1, 2, 3, 4, 5, 6}; - auto v2 = v1.take(3); - - assert((v1 == immer::flex_vector{1, 2, 3, 4, 5, 6})); - assert((v2 == immer::flex_vector{1, 2, 3})); - // include:take/end - } - - { - // include:drop/start - auto v1 = immer::flex_vector{1, 2, 3, 4, 5, 6}; - auto v2 = v1.drop(3); - - assert((v1 == immer::flex_vector{1, 2, 3, 4, 5, 6})); - assert((v2 == immer::flex_vector{4, 5, 6})); - // include:drop/end - } - - { - // include:insert/start - auto v1 = immer::flex_vector{1, 2, 3}; - auto v2 = v1.insert(0, 0); - - assert((v1 == immer::flex_vector{1, 2, 3})); - assert((v2 == immer::flex_vector{0, 1, 2, 3})); - // include:insert/end - } - - { - // include:erase/start - auto v1 = immer::flex_vector{1, 2, 3, 4, 5}; - auto v2 = v1.erase(2); - - assert((v1 == immer::flex_vector{1, 2, 3, 4, 5})); - assert((v2 == immer::flex_vector{1, 2, 4, 5})); - // include:erase/end - } - - { - // include:concat/start - auto v1 = immer::flex_vector{1, 2, 3}; - auto v2 = v1 + v1; - - assert((v1 == immer::flex_vector{1, 2, 3})); - assert((v2 == immer::flex_vector{1, 2, 3, 1, 2, 3})); - // include:concat/end - } -} diff --git a/third_party/immer/example/map/intro.cpp b/third_party/immer/example/map/intro.cpp deleted file mode 100644 index 94222f99b31b..000000000000 --- a/third_party/immer/example/map/intro.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include -// include:intro/start -#include -int main() -{ - const auto v0 = immer::map{}; - const auto v1 = v0.set("hello", 42); - assert(v0["hello"] == 0); - assert(v1["hello"] == 42); - - const auto v2 = v1.erase("hello"); - assert(*v1.find("hello") == 42); - assert(!v2.find("hello")); -} -// include:intro/end diff --git a/third_party/immer/example/set/intro.cpp b/third_party/immer/example/set/intro.cpp deleted file mode 100644 index be932ce65475..000000000000 --- a/third_party/immer/example/set/intro.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -// include:intro/start -#include -int main() -{ - const auto v0 = immer::set{}; - const auto v1 = v0.insert(42); - assert(v0.count(42) == 0); - assert(v1.count(42) == 1); - - const auto v2 = v1.erase(42); - assert(v1.count(42) == 1); - assert(v2.count(42) == 0); -} -// include:intro/end diff --git a/third_party/immer/example/vector/fizzbuzz.cpp b/third_party/immer/example/vector/fizzbuzz.cpp deleted file mode 100644 index c7765a6200a0..000000000000 --- a/third_party/immer/example/vector/fizzbuzz.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include - -#include -#include - -// include:fizzbuzz/start -immer::vector -fizzbuzz(immer::vector v, int first, int last) -{ - for (auto i = first; i < last; ++i) - v = std::move(v).push_back( - i % 15 == 0 ? "FizzBuzz" - : i % 5 == 0 ? "Bizz" - : i % 3 == 0 ? "Fizz" : - /* else */ std::to_string(i)); - return v; -} -// include:fizzbuzz/end - -int main() -{ - auto v = fizzbuzz({}, 0, 100); - std::copy(v.begin(), - v.end(), - std::ostream_iterator{std::cout, "\n"}); -} diff --git a/third_party/immer/example/vector/gc.cpp b/third_party/immer/example/vector/gc.cpp deleted file mode 100644 index 2bc4d5116f42..000000000000 --- a/third_party/immer/example/vector/gc.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -// include:example/start -#include -#include -#include -#include -#include - -#include - -// declare a memory policy for using a tracing garbage collector -using gc_policy = immer::memory_policy, - immer::no_refcount_policy, - immer::gc_transience_policy, - false>; - -// alias the vector type so we are not concerned about memory policies -// in the places where we actually use it -template -using my_vector = immer::vector; - -int main() -{ - auto v = - my_vector().push_back("hello, ").push_back("world!\n"); - - for (auto s : v) - std::cout << s; -} -// include:example/end diff --git a/third_party/immer/example/vector/intro.cpp b/third_party/immer/example/vector/intro.cpp deleted file mode 100644 index ca832e606552..000000000000 --- a/third_party/immer/example/vector/intro.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -// include:intro/start -#include -int main() -{ - const auto v0 = immer::vector{}; - const auto v1 = v0.push_back(13); - assert((v0 == immer::vector{})); - assert((v1 == immer::vector{13})); - - const auto v2 = v1.set(0, 42); - assert(v1[0] == 13); - assert(v2[0] == 42); -} -// include:intro/end diff --git a/third_party/immer/example/vector/iota-move.cpp b/third_party/immer/example/vector/iota-move.cpp deleted file mode 100644 index 3d03ba5307f5..000000000000 --- a/third_party/immer/example/vector/iota-move.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include -#include - -// include:myiota/start -immer::vector myiota(immer::vector v, int first, int last) -{ - for (auto i = first; i < last; ++i) - v = std::move(v).push_back(i); - return v; -} -// include:myiota/end - -int main() -{ - auto v = myiota({}, 0, 100); - std::copy(v.begin(), v.end(), std::ostream_iterator{std::cout, "\n"}); -} diff --git a/third_party/immer/example/vector/iota-slow.cpp b/third_party/immer/example/vector/iota-slow.cpp deleted file mode 100644 index a311b7a7ff08..000000000000 --- a/third_party/immer/example/vector/iota-slow.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include -#include - -// include:myiota/start -immer::vector myiota(immer::vector v, int first, int last) -{ - for (auto i = first; i < last; ++i) - v = v.push_back(i); - return v; -} -// include:myiota/end - -int main() -{ - auto v = myiota({}, 0, 100); - std::copy(v.begin(), v.end(), std::ostream_iterator{std::cout, "\n"}); -} diff --git a/third_party/immer/example/vector/iota-transient-std.cpp b/third_party/immer/example/vector/iota-transient-std.cpp deleted file mode 100644 index 451f44a10306..000000000000 --- a/third_party/immer/example/vector/iota-transient-std.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include -#include - -#include -#include - -// include:myiota/start -immer::vector myiota(immer::vector v, int first, int last) -{ - auto t = v.transient(); - std::generate_n( - std::back_inserter(t), last - first, [&] { return first++; }); - return t.persistent(); -} -// include:myiota/end - -int main() -{ - auto v = myiota({}, 0, 100); - std::copy(v.begin(), v.end(), std::ostream_iterator{std::cout, "\n"}); -} diff --git a/third_party/immer/example/vector/iota-transient.cpp b/third_party/immer/example/vector/iota-transient.cpp deleted file mode 100644 index d49b14e5798d..000000000000 --- a/third_party/immer/example/vector/iota-transient.cpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include -#include -#include - -// include:myiota/start -immer::vector myiota(immer::vector v, int first, int last) -{ - auto t = v.transient(); - for (auto i = first; i < last; ++i) - t.push_back(i); - return t.persistent(); -} -// include:myiota/end - -int main() -{ - auto v = myiota({}, 0, 100); - std::copy(v.begin(), v.end(), std::ostream_iterator{std::cout, "\n"}); -} diff --git a/third_party/immer/example/vector/move.cpp b/third_party/immer/example/vector/move.cpp deleted file mode 100644 index 7eb815b62a6e..000000000000 --- a/third_party/immer/example/vector/move.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include -#include - -// include:move-bad/start -immer::vector do_stuff(const immer::vector v) -{ - return std::move(v).push_back(42); -} -// include:move-bad/end - -// include:move-good/start -immer::vector do_stuff_better(immer::vector v) -{ - return std::move(v).push_back(42); -} -// include:move-good/end - -int main() -{ - auto v = immer::vector{}; - auto v1 = do_stuff(v); - auto v2 = do_stuff_better(v); - assert(v1.size() == 1); - assert(v2.size() == 1); - assert(v1[0] == 42); - assert(v2[0] == 42); -} diff --git a/third_party/immer/example/vector/vector.cpp b/third_party/immer/example/vector/vector.cpp deleted file mode 100644 index c59c2d1d170b..000000000000 --- a/third_party/immer/example/vector/vector.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#include -#include - -int main() -{ - { - // include:push-back/start - auto v1 = immer::vector{1}; - auto v2 = v1.push_back(8); - - assert((v1 == immer::vector{1})); - assert((v2 == immer::vector{1, 8})); - // include:push-back/end - } - - { - // include:set/start - auto v1 = immer::vector{1, 2, 3}; - auto v2 = v1.set(0, 5); - - assert((v1 == immer::vector{1, 2, 3})); - assert((v2 == immer::vector{5, 2, 3})); - // include:set/end - } - - { - // include:update/start - auto v1 = immer::vector{1, 2, 3, 4}; - auto v2 = v1.update(2, [&](auto l) { return ++l; }); - - assert((v1 == immer::vector{1, 2, 3, 4})); - assert((v2 == immer::vector{1, 2, 4, 4})); - // include:update/end - } - - { - // include:take/start - auto v1 = immer::vector{1, 2, 3, 4, 5, 6}; - auto v2 = v1.take(3); - - assert((v1 == immer::vector{1, 2, 3, 4, 5, 6})); - assert((v2 == immer::vector{1, 2, 3})); - // include:take/end - } -} -- cgit 1.4.1