From 8fea2977965fb6d890f0a80d72a0aa303ebc23b4 Mon Sep 17 00:00:00 2001 From: hyrodium Date: Mon, 8 Apr 2024 23:55:26 +0900 Subject: [PATCH 1/8] import Statistics.jl as a package extension and remove Requres.jl --- Project.toml | 6 ++++++ ext/FixedPointNumbersStatisticsExt.jl | 12 ++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 ext/FixedPointNumbersStatisticsExt.jl diff --git a/Project.toml b/Project.toml index 0a64b638..bee27286 100644 --- a/Project.toml +++ b/Project.toml @@ -6,6 +6,12 @@ version = "0.9.0-dev" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +[weakdeps] +Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[extensions] +IntervalSetsStatisticsExt = "Statistics" + [compat] julia = "1" diff --git a/ext/FixedPointNumbersStatisticsExt.jl b/ext/FixedPointNumbersStatisticsExt.jl new file mode 100644 index 00000000..714a5f1f --- /dev/null +++ b/ext/FixedPointNumbersStatisticsExt.jl @@ -0,0 +1,12 @@ +module FixedPointNumbersStatisticsExt + +using FixedPointNumbers +using Statistics + +import Statistics +if isdefined(Statistics, :_mean_promote) + # https://github.com/JuliaMath/FixedPointNumbers.jl/pull/183 + Statistics._mean_promote(x::Real, y::FixedPoint) = Treduce(y) +end + +end From 62d90cdfc8b600c49d60ac4b0ceec603270ce3fb Mon Sep 17 00:00:00 2001 From: hyrodium Date: Mon, 12 Feb 2024 17:39:46 +0900 Subject: [PATCH 2/8] update for the version of Julia before v1.9 --- src/FixedPointNumbers.jl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/FixedPointNumbers.jl b/src/FixedPointNumbers.jl index 927d84a5..8c91c936 100644 --- a/src/FixedPointNumbers.jl +++ b/src/FixedPointNumbers.jl @@ -629,4 +629,8 @@ if VERSION >= v"1.1" # work around https://github.com/JuliaLang/julia/issues/341 _precompile_() end +if !isdefined(Base, :get_extension) + include("../ext/FixedPointNumbersStatisticsExt.jl") +end + end # module From f422be8166039999f9638280bfcf4d89a3601c6c Mon Sep 17 00:00:00 2001 From: hyrodium Date: Mon, 12 Feb 2024 17:48:19 +0900 Subject: [PATCH 3/8] fix target in Project.toml --- Project.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index bee27286..bf8dd6da 100644 --- a/Project.toml +++ b/Project.toml @@ -10,14 +10,15 @@ Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" [extensions] -IntervalSetsStatisticsExt = "Statistics" +FixedPointNumbersStatisticsExt = "Statistics" [compat] julia = "1" [extras] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["Documenter", "Test"] +test = ["Documenter", "Statistics", "Test"] From c4bb7a61e7e595ff8adb9ac49983e149a4a48903 Mon Sep 17 00:00:00 2001 From: hyrodium Date: Mon, 12 Feb 2024 17:49:24 +0900 Subject: [PATCH 4/8] fix `ext/FixedPointNumbersStatisticsExt.jl` --- ext/FixedPointNumbersStatisticsExt.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/FixedPointNumbersStatisticsExt.jl b/ext/FixedPointNumbersStatisticsExt.jl index 714a5f1f..5cf777fa 100644 --- a/ext/FixedPointNumbersStatisticsExt.jl +++ b/ext/FixedPointNumbersStatisticsExt.jl @@ -1,6 +1,7 @@ module FixedPointNumbersStatisticsExt using FixedPointNumbers +import FixedPointNumbers: Treduce using Statistics import Statistics From 8528da3a1cbf9a202aff1352c7a9f27c3c39eea6 Mon Sep 17 00:00:00 2001 From: hyrodium Date: Tue, 9 Apr 2024 00:05:12 +0900 Subject: [PATCH 5/8] remove Statistics method for package exntension --- src/FixedPointNumbers.jl | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/FixedPointNumbers.jl b/src/FixedPointNumbers.jl index 8c91c936..0b19d144 100644 --- a/src/FixedPointNumbers.jl +++ b/src/FixedPointNumbers.jl @@ -9,7 +9,6 @@ import Base: ==, <, <=, -, +, *, /, ~, isapprox, signed, unsigned, copysign, flipsign, signbit, length -import Statistics # for _mean_promote import Random: Random, AbstractRNG, SamplerType, rand! import Base.Checked: checked_neg, checked_abs, checked_add, checked_sub, checked_mul, @@ -557,10 +556,6 @@ Base.mul_prod(x::FixedPoint, y::FixedPoint) = Treduce(x) * Treduce(y) Base.reduce_empty(::typeof(Base.mul_prod), ::Type{F}) where {F<:FixedPoint} = one(Treduce) Base.reduce_first(::typeof(Base.mul_prod), x::FixedPoint) = Treduce(x) -if isdefined(Statistics, :_mean_promote) - Statistics._mean_promote(x::Real, y::FixedPoint) = Treduce(y) -end - """ sd, ad = scaledual(s::Number, a) From 6c2a68cc9513d092be75289e840daac58fc3c2e0 Mon Sep 17 00:00:00 2001 From: hyrodium Date: Sat, 13 Apr 2024 17:30:52 +0900 Subject: [PATCH 6/8] add compat for Statistics.jl --- Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Project.toml b/Project.toml index bf8dd6da..2676f9e2 100644 --- a/Project.toml +++ b/Project.toml @@ -14,6 +14,7 @@ FixedPointNumbersStatisticsExt = "Statistics" [compat] julia = "1" +Statistics = "1 - 1.11.1" [extras] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" From c4eee40f2aa33258e150259de49468bf73c20838 Mon Sep 17 00:00:00 2001 From: hyrodium Date: Sat, 13 Apr 2024 17:33:23 +0900 Subject: [PATCH 7/8] move precompile to the end of the module --- src/FixedPointNumbers.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/FixedPointNumbers.jl b/src/FixedPointNumbers.jl index 0b19d144..bcfc56e7 100644 --- a/src/FixedPointNumbers.jl +++ b/src/FixedPointNumbers.jl @@ -619,13 +619,13 @@ function rand!(r::AbstractRNG, A::Array{X}, ::SamplerType{X}) where {T, X <: Fix A end +if !isdefined(Base, :get_extension) + include("../ext/FixedPointNumbersStatisticsExt.jl") +end + if VERSION >= v"1.1" # work around https://github.com/JuliaLang/julia/issues/34121 include("precompile.jl") _precompile_() end -if !isdefined(Base, :get_extension) - include("../ext/FixedPointNumbersStatisticsExt.jl") -end - end # module From cc5d38b52520bb5f8d46c14238e1fd1a64f08595 Mon Sep 17 00:00:00 2001 From: hyrodium Date: Sat, 13 Apr 2024 20:30:59 +0900 Subject: [PATCH 8/8] update compat bound for Statistics.jl --- Project.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 2676f9e2..3e5a53bb 100644 --- a/Project.toml +++ b/Project.toml @@ -13,8 +13,10 @@ Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" FixedPointNumbersStatisticsExt = "Statistics" [compat] +# Update this version specifier when Statistics.jl v1.11.2 is released. +# https://github.com/JuliaStats/Statistics.jl/issues/165 +Statistics = "< 1.11.2" julia = "1" -Statistics = "1 - 1.11.1" [extras] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"