From ba881fbdd3c044cc4b8f45e3e77c27e9ab3467da Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Oct 2020 22:31:29 -0700 Subject: [PATCH 1/9] Add ThreadsX.mapi --- Project.toml | 1 + benchmark/Manifest.toml | 8 +++++++- docs/Manifest.toml | 8 +++++++- src/ThreadsX.jl | 4 ++++ src/docs/mapi.md | 7 +++++++ src/map.jl | 11 +++++++++++ test/environments/main/Manifest.toml | 8 +++++++- 7 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 src/docs/mapi.md diff --git a/Project.toml b/Project.toml index 7bfa4da6..bfbed7f6 100644 --- a/Project.toml +++ b/Project.toml @@ -8,6 +8,7 @@ ArgCheck = "dce04be8-c92d-5529-be00-80e4d2c0e197" BangBang = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" InitialValues = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" +MicroCollections = "128add7d-3638-4c79-886c-908ea0c25c34" Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46" SplittablesBase = "171d559e-b47b-412a-8079-5efa626c420e" diff --git a/benchmark/Manifest.toml b/benchmark/Manifest.toml index 32d49a72..f6eebf7a 100644 --- a/benchmark/Manifest.toml +++ b/benchmark/Manifest.toml @@ -126,6 +126,12 @@ version = "0.5.5" deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +[[MicroCollections]] +deps = ["BangBang", "Setfield"] +git-tree-sha1 = "e991b6a9d38091c4a0d7cd051fcb57c05f98ac03" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.1.0" + [[Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" @@ -232,7 +238,7 @@ deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[ThreadsX]] -deps = ["ArgCheck", "BangBang", "ConstructionBase", "InitialValues", "Referenceables", "Setfield", "SplittablesBase", "Transducers"] +deps = ["ArgCheck", "BangBang", "ConstructionBase", "InitialValues", "MicroCollections", "Referenceables", "Setfield", "SplittablesBase", "Transducers"] path = ".." uuid = "ac1d9e8a-700a-412c-b207-f0111f4b6c0d" version = "0.1.3-DEV" diff --git a/docs/Manifest.toml b/docs/Manifest.toml index 5a226d59..3c6098bc 100644 --- a/docs/Manifest.toml +++ b/docs/Manifest.toml @@ -132,6 +132,12 @@ version = "0.5.5" deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +[[MicroCollections]] +deps = ["BangBang", "Setfield"] +git-tree-sha1 = "e991b6a9d38091c4a0d7cd051fcb57c05f98ac03" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.1.0" + [[Missings]] deps = ["DataAPI"] git-tree-sha1 = "de0a5ce9e5289f27df672ffabef4d1e5861247d5" @@ -266,7 +272,7 @@ deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[ThreadsX]] -deps = ["ArgCheck", "BangBang", "ConstructionBase", "InitialValues", "Referenceables", "Setfield", "SplittablesBase", "Transducers"] +deps = ["ArgCheck", "BangBang", "ConstructionBase", "InitialValues", "MicroCollections", "Referenceables", "Setfield", "SplittablesBase", "Transducers"] path = ".." uuid = "ac1d9e8a-700a-412c-b207-f0111f4b6c0d" version = "0.1.3-DEV" diff --git a/src/ThreadsX.jl b/src/ThreadsX.jl index 1ea6a2d0..3ca438d7 100644 --- a/src/ThreadsX.jl +++ b/src/ThreadsX.jl @@ -2,6 +2,7 @@ baremodule ThreadsX function collect end function map end +function mapi end function mapreduce end function reduce end @@ -42,6 +43,7 @@ using Base: HasShape, IteratorSize, Ordering, add_sum, mapreduce_empty, mul_prod, reduce_empty using ConstructionBase: setproperties using InitialValues: asmonoid +using MicroCollections: EmptyVector using Referenceables: referenceable using Setfield: @set using Transducers: @@ -51,10 +53,12 @@ using Transducers: Init, Map, MapSplat, + NondeterministicThreading, OnInit, ReduceIf, Transducers, extract_transducer, + foldxl, opcompose, reduced, right, diff --git a/src/docs/mapi.md b/src/docs/mapi.md new file mode 100644 index 00000000..bd04b9e2 --- /dev/null +++ b/src/docs/mapi.md @@ -0,0 +1,7 @@ + ThreadsX.mapi(f, iterators...; basesize, ntasks) + +Parallelized `map(f, iterators...)` that works with purely sequential +`iterators`. + +Note that calls to `iterate` on `iterators` are *not* parallelized. +Only `f` may be called in parallel. diff --git a/src/map.jl b/src/map.jl index 27b9b98a..5bee7cd3 100644 --- a/src/map.jl +++ b/src/map.jl @@ -49,3 +49,14 @@ ThreadsX.collect(::Type{T}, itr; kwargs...) where {T} = reshape_as( ThreadsX.collect(itr; kwargs...) = reshape_as(tcollect(itr; basesize = default_basesize(itr), kwargs...), itr) + + +ThreadsX.mapi(f, itr; kwargs...) = + itr |> + NondeterministicThreading(; kwargs...) |> + Map(f) |> + Map(SingletonVector) |> + foldxl(append!!; init = EmptyVector()) + +ThreadsX.mapi(f, itr1, itrs...; kwargs...) = + ThreadsX.mapi(Base.splat(f), zip(itr1, itrs...); kwargs...) diff --git a/test/environments/main/Manifest.toml b/test/environments/main/Manifest.toml index 2272c941..328518ea 100644 --- a/test/environments/main/Manifest.toml +++ b/test/environments/main/Manifest.toml @@ -138,6 +138,12 @@ version = "0.5.5" deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +[[MicroCollections]] +deps = ["BangBang", "Setfield"] +git-tree-sha1 = "e991b6a9d38091c4a0d7cd051fcb57c05f98ac03" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.1.0" + [[Missings]] deps = ["DataAPI"] git-tree-sha1 = "de0a5ce9e5289f27df672ffabef4d1e5861247d5" @@ -272,7 +278,7 @@ deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[ThreadsX]] -deps = ["ArgCheck", "BangBang", "ConstructionBase", "InitialValues", "Referenceables", "Setfield", "SplittablesBase", "Transducers"] +deps = ["ArgCheck", "BangBang", "ConstructionBase", "InitialValues", "MicroCollections", "Referenceables", "Setfield", "SplittablesBase", "Transducers"] path = "../../.." uuid = "ac1d9e8a-700a-412c-b207-f0111f4b6c0d" version = "0.1.3-DEV" From 9825866040f4213025073a207de35f01029b41df Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Thu, 8 Oct 2020 17:12:22 -0700 Subject: [PATCH 2/9] Update: Transducers Using commit: Fix [compat] https://github.com/JuliaFolds/Transducers.jl/commit/d5e2688b0e42f7edf9ca407724ace249fc34cd5c --- benchmark/Manifest.toml | 6 +++--- docs/Manifest.toml | 6 +++--- test/environments/main/Manifest.toml | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/Manifest.toml b/benchmark/Manifest.toml index f6eebf7a..83d6a6b2 100644 --- a/benchmark/Manifest.toml +++ b/benchmark/Manifest.toml @@ -244,12 +244,12 @@ uuid = "ac1d9e8a-700a-412c-b207-f0111f4b6c0d" version = "0.1.3-DEV" [[Transducers]] -deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "d9bfa17064d3ea0da8213aa315d55cb8c84b60db" +deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] +git-tree-sha1 = "4d0eadc7fd6e80f96cc93ab2a7ccf8e6e14a410c" repo-rev = "master" repo-url = "https://github.com/JuliaFolds/Transducers.jl.git" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.41-DEV" +version = "0.4.52-DEV" [[UUIDs]] deps = ["Random", "SHA"] diff --git a/docs/Manifest.toml b/docs/Manifest.toml index 3c6098bc..b4feb4e4 100644 --- a/docs/Manifest.toml +++ b/docs/Manifest.toml @@ -278,12 +278,12 @@ uuid = "ac1d9e8a-700a-412c-b207-f0111f4b6c0d" version = "0.1.3-DEV" [[Transducers]] -deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "d9bfa17064d3ea0da8213aa315d55cb8c84b60db" +deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] +git-tree-sha1 = "4d0eadc7fd6e80f96cc93ab2a7ccf8e6e14a410c" repo-rev = "master" repo-url = "https://github.com/JuliaFolds/Transducers.jl.git" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.41-DEV" +version = "0.4.52-DEV" [[UUIDs]] deps = ["Random", "SHA"] diff --git a/test/environments/main/Manifest.toml b/test/environments/main/Manifest.toml index 328518ea..2ff0b2f3 100644 --- a/test/environments/main/Manifest.toml +++ b/test/environments/main/Manifest.toml @@ -284,12 +284,12 @@ uuid = "ac1d9e8a-700a-412c-b207-f0111f4b6c0d" version = "0.1.3-DEV" [[Transducers]] -deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "d9bfa17064d3ea0da8213aa315d55cb8c84b60db" +deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] +git-tree-sha1 = "4d0eadc7fd6e80f96cc93ab2a7ccf8e6e14a410c" repo-rev = "master" repo-url = "https://github.com/JuliaFolds/Transducers.jl.git" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.41-DEV" +version = "0.4.52-DEV" [[UUIDs]] deps = ["Random", "SHA"] From e695c288bda053c9190b53d8c188d59ef10ebba2 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Thu, 8 Oct 2020 17:19:38 -0700 Subject: [PATCH 3/9] Update: Transducers Using commit: Fix for Julia 1.0 https://github.com/JuliaFolds/Transducers.jl/commit/64e605c2579e3178da17bb3e75d53fc5e218a02e --- benchmark/Manifest.toml | 2 +- docs/Manifest.toml | 2 +- test/environments/main/Manifest.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/Manifest.toml b/benchmark/Manifest.toml index 83d6a6b2..9597ca39 100644 --- a/benchmark/Manifest.toml +++ b/benchmark/Manifest.toml @@ -245,7 +245,7 @@ version = "0.1.3-DEV" [[Transducers]] deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "4d0eadc7fd6e80f96cc93ab2a7ccf8e6e14a410c" +git-tree-sha1 = "bfd3dbc740aff2cc9846ddf100c6eda94634c8df" repo-rev = "master" repo-url = "https://github.com/JuliaFolds/Transducers.jl.git" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" diff --git a/docs/Manifest.toml b/docs/Manifest.toml index b4feb4e4..2dcbbae2 100644 --- a/docs/Manifest.toml +++ b/docs/Manifest.toml @@ -279,7 +279,7 @@ version = "0.1.3-DEV" [[Transducers]] deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "4d0eadc7fd6e80f96cc93ab2a7ccf8e6e14a410c" +git-tree-sha1 = "bfd3dbc740aff2cc9846ddf100c6eda94634c8df" repo-rev = "master" repo-url = "https://github.com/JuliaFolds/Transducers.jl.git" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" diff --git a/test/environments/main/Manifest.toml b/test/environments/main/Manifest.toml index 2ff0b2f3..971cedc4 100644 --- a/test/environments/main/Manifest.toml +++ b/test/environments/main/Manifest.toml @@ -285,7 +285,7 @@ version = "0.1.3-DEV" [[Transducers]] deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "4d0eadc7fd6e80f96cc93ab2a7ccf8e6e14a410c" +git-tree-sha1 = "bfd3dbc740aff2cc9846ddf100c6eda94634c8df" repo-rev = "master" repo-url = "https://github.com/JuliaFolds/Transducers.jl.git" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" From 89c5ab3a3ca1a7f405b4ec15389417147aa50ce6 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Thu, 8 Oct 2020 17:20:15 -0700 Subject: [PATCH 4/9] Fix [compat] --- Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Project.toml b/Project.toml index bfbed7f6..0d49dae0 100644 --- a/Project.toml +++ b/Project.toml @@ -19,6 +19,7 @@ ArgCheck = "1.0, 2.0" BangBang = "0.3.17" ConstructionBase = "0.1.0, 1.0" InitialValues = "0.2" +MicroCollections = "0.1" Referenceables = "0.1" Setfield = "0.3, 0.4, 0.5, 0.6, 0.7" SplittablesBase = "0.1.8" From 81a0fd821cf72fff4c8b8482e4aba34818f51275 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Thu, 8 Oct 2020 18:12:10 -0700 Subject: [PATCH 5/9] More docs --- docs/src/index.md | 2 ++ src/docs/map.md | 4 ++++ src/docs/mapi.md | 16 +++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/docs/map.md diff --git a/docs/src/index.md b/docs/src/index.md index c19836b8..a8bce5b3 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -3,6 +3,8 @@ ```@docs ThreadsX ThreadsX.foreach +ThreadsX.map +ThreadsX.mapi ThreadsX.map! ThreadsX.sort! ThreadsX.sort diff --git a/src/docs/map.md b/src/docs/map.md new file mode 100644 index 00000000..46516ad2 --- /dev/null +++ b/src/docs/map.md @@ -0,0 +1,4 @@ + ThreadsX.mapi(f, iterators...; basesize) + +Parallelized `map(f, iterators...)`. Input collections `iterators` +must support `SplittablesBase.halve` diff --git a/src/docs/mapi.md b/src/docs/mapi.md index bd04b9e2..859db4c2 100644 --- a/src/docs/mapi.md +++ b/src/docs/mapi.md @@ -4,4 +4,18 @@ Parallelized `map(f, iterators...)` that works with purely sequential `iterators`. Note that calls to `iterate` on `iterators` are *not* parallelized. -Only `f` may be called in parallel. +Only `f` may be called in parallel. See also +`Transducers.NondeterministicThreading` for more information. + +!!! note + Currently, the default `basesize` is 1. However, it may be + changed in the future (e.g. it may be automatically tuned at + run-time). + +# Keyword Arguments +- `basesize::Integer`: The number of input elements to be accumulated + in a buffer before sent to a task. +- `ntasks::Integer`: The number of tasks `@spawn`ed. The default + value is `Threads.nthreads()`. A number larger than + `Threads.nthreads()` may be useful if the inner reducing function + contains I/O and does not consume too much resource (e.g., memory). From cb2824ac0b8dc6972b4e972a244d85d3fcb702e1 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Thu, 8 Oct 2020 18:34:00 -0700 Subject: [PATCH 6/9] Add bench_mapi.jl --- benchmark/bench_mapi.jl | 52 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 benchmark/bench_mapi.jl diff --git a/benchmark/bench_mapi.jl b/benchmark/bench_mapi.jl new file mode 100644 index 00000000..cc010296 --- /dev/null +++ b/benchmark/bench_mapi.jl @@ -0,0 +1,52 @@ +module BenchMapi + +using BenchmarkTools +using ThreadsX + +collatz(x) = + if iseven(x) + x ÷ 2 + else + 3x + 1 + end + +function collatz_stopping_time(x) + n = 0 + while true + x == 1 && return n + n += 1 + x = collatz(x) + end +end + +function consume(ns) + t0 = time_ns() + d = 0 + while d < ns + d = Int(time_ns() - t0) + end + return d +end + +constant(x) = _ -> x + +const SUITE = BenchmarkGroup() + +let s0 = SUITE["collatz"] = BenchmarkGroup() + s0["base"] = @benchmarkable map(collatz_stopping_time, 1:1000_000) + s0["tx"] = + @benchmarkable ThreadsX.mapi(collatz_stopping_time, 1:1000_000; basesize = 12500) +end + +let s0 = SUITE["consume-1ms"] = BenchmarkGroup() + s0["base"] = @benchmarkable map(consume ∘ constant(1_000_000), 1:20) + s0["tx"] = @benchmarkable ThreadsX.mapi(consume ∘ constant(1_000_000), 1:20) +end + +let s0 = SUITE["consume-100us"] = BenchmarkGroup() + s0["base"] = @benchmarkable map(consume ∘ constant(100_000), 1:20) + s0["tx"] = @benchmarkable ThreadsX.mapi(consume ∘ constant(100_000), 1:20) +end + +end # module +BenchMapi.SUITE From b43a519eba2404886625f10468d26b8bfd8a7fd2 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Thu, 8 Oct 2020 20:31:08 -0700 Subject: [PATCH 7/9] Test mapi --- src/map.jl | 6 ++++-- test/test_with_base.jl | 11 +++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/map.jl b/src/map.jl index 5bee7cd3..0958d402 100644 --- a/src/map.jl +++ b/src/map.jl @@ -51,12 +51,14 @@ ThreadsX.collect(itr; kwargs...) = reshape_as(tcollect(itr; basesize = default_basesize(itr), kwargs...), itr) -ThreadsX.mapi(f, itr; kwargs...) = +ThreadsX.mapi(f, itr; kwargs...) = reshape_as( itr |> NondeterministicThreading(; kwargs...) |> Map(f) |> Map(SingletonVector) |> - foldxl(append!!; init = EmptyVector()) + foldxl(append!!; init = EmptyVector()), + itr, +) ThreadsX.mapi(f, itr1, itrs...; kwargs...) = ThreadsX.mapi(Base.splat(f), zip(itr1, itrs...); kwargs...) diff --git a/test/test_with_base.jl b/test/test_with_base.jl index d135dbb5..a5a6ad06 100644 --- a/test/test_with_base.jl +++ b/test/test_with_base.jl @@ -8,6 +8,8 @@ args_and_kwargs(args...; kwargs...) = args, (; kwargs...) inc(x) = x + 1 +mapi(args...) = map(args...) + raw_testdata = """ collect(1:10) collect(Float64, 1:10) @@ -103,12 +105,17 @@ Set(x^2 for x in [1, -1, -3, 4, 3]) """ # An array of `(label, (f, args, kwargs))` -testdata = map(split(raw_testdata, "\n", keepempty = false)) do x +testdata = mapreduce(vcat, split(raw_testdata, "\n", keepempty = false)) do x @debug "Parsing: $x" f, rest = split(x, "(", limit = 2) ex = Meta.parse("DUMMY($rest") ex.args[1] = args_and_kwargs - @eval ($x, ($(Symbol(f)), $ex...)) + tests = Any[@eval ($x, ($(Symbol(f)), $ex...))] + if f == "map" + y = replace(x, r"^map" => "mapi") + push!(tests, @eval ($y, (mapi, $ex...))) + end + return tests end @testset "$label" for (label, (f, args, kwargs)) in testdata From 1c7717606d4f88c0b67571ba886fc7d7f650f520 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Thu, 8 Oct 2020 20:53:53 -0700 Subject: [PATCH 8/9] Require Transducers 0.4.52 --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 0d49dae0..8ef5035d 100644 --- a/Project.toml +++ b/Project.toml @@ -23,7 +23,7 @@ MicroCollections = "0.1" Referenceables = "0.1" Setfield = "0.3, 0.4, 0.5, 0.6, 0.7" SplittablesBase = "0.1.8" -Transducers = "0.4.39" +Transducers = "0.4.52" julia = "1" [extras] From 1dddaa42509c87befb2c2b84e3d67cb318953185 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Thu, 8 Oct 2020 20:55:00 -0700 Subject: [PATCH 9/9] Update: Transducers Using commit: Bump to 0.4.52 https://github.com/JuliaFolds/Transducers.jl/commit/d6ccc869244ee468e8b2e9c5fddaf4b12ab194b2 --- benchmark/Manifest.toml | 4 ++-- docs/Manifest.toml | 4 ++-- test/environments/main/Manifest.toml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/benchmark/Manifest.toml b/benchmark/Manifest.toml index 9597ca39..7f2cab27 100644 --- a/benchmark/Manifest.toml +++ b/benchmark/Manifest.toml @@ -245,11 +245,11 @@ version = "0.1.3-DEV" [[Transducers]] deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "bfd3dbc740aff2cc9846ddf100c6eda94634c8df" +git-tree-sha1 = "a2d46274b3a58d9117681d7effdf706022d44650" repo-rev = "master" repo-url = "https://github.com/JuliaFolds/Transducers.jl.git" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.52-DEV" +version = "0.4.52" [[UUIDs]] deps = ["Random", "SHA"] diff --git a/docs/Manifest.toml b/docs/Manifest.toml index 2dcbbae2..e00222a2 100644 --- a/docs/Manifest.toml +++ b/docs/Manifest.toml @@ -279,11 +279,11 @@ version = "0.1.3-DEV" [[Transducers]] deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "bfd3dbc740aff2cc9846ddf100c6eda94634c8df" +git-tree-sha1 = "a2d46274b3a58d9117681d7effdf706022d44650" repo-rev = "master" repo-url = "https://github.com/JuliaFolds/Transducers.jl.git" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.52-DEV" +version = "0.4.52" [[UUIDs]] deps = ["Random", "SHA"] diff --git a/test/environments/main/Manifest.toml b/test/environments/main/Manifest.toml index 971cedc4..03fa8a2b 100644 --- a/test/environments/main/Manifest.toml +++ b/test/environments/main/Manifest.toml @@ -285,11 +285,11 @@ version = "0.1.3-DEV" [[Transducers]] deps = ["ArgCheck", "BangBang", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "bfd3dbc740aff2cc9846ddf100c6eda94634c8df" +git-tree-sha1 = "a2d46274b3a58d9117681d7effdf706022d44650" repo-rev = "master" repo-url = "https://github.com/JuliaFolds/Transducers.jl.git" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.52-DEV" +version = "0.4.52" [[UUIDs]] deps = ["Random", "SHA"]