ThreadsX.jl icon indicating copy to clipboard operation
ThreadsX.jl copied to clipboard

Error with Measurements.jl

Open islent opened this issue 3 years ago • 0 comments

MWE:

using Measurements
using ThreadsX

a = rand(10)
ThreadsX.sum(a)

m = measurement.(a, 0.0)
ThreadsX.sum(m)

versioninfo()

Results:

julia> using Measurements

julia> using ThreadsX

julia> 

julia> a = rand(10)
10-element Vector{Float64}:
 0.2416506402137748
 0.3990329932552872
 0.1183600409493728
 0.3580759482824696
 0.37286691967008
 0.8649471719752331
 0.3331806331440914
 0.916678845510899
 0.36100460510024246
 0.5964408873789975

julia> ThreadsX.sum(a)
4.562238685480448

julia> 

julia> m = measurement.(a, 0.0)
10-element Vector{Measurement{Float64}}:
  0.2416506402137748 ± 0.0
  0.3990329932552872 ± 0.0
  0.1183600409493728 ± 0.0
  0.3580759482824696 ± 0.0
    0.37286691967008 ± 0.0
  0.8649471719752331 ± 0.0
  0.3331806331440914 ± 0.0
   0.916678845510899 ± 0.0
 0.36100460510024246 ± 0.0
  0.5964408873789975 ± 0.0

julia> ThreadsX.sum(m)
ERROR: UndefRefError: access to undefined reference
Stacktrace:
  [1] macro expansion
    @ E:\.julia\packages\Transducers\oOWtX\src\AutoObjectsReStacker.jl:37 [inlined]
  [2] restack
    @ E:\.julia\packages\Transducers\oOWtX\src\AutoObjectsReStacker.jl:16 [inlined]
  [3] macro expansion
    @ E:\.julia\packages\Transducers\oOWtX\src\AutoObjectsReStacker.jl:37 [inlined]
  [4] restack
    @ E:\.julia\packages\Transducers\oOWtX\src\AutoObjectsReStacker.jl:16 [inlined]
  [5] _foldl_linear_bulk
    @ E:\.julia\packages\Transducers\oOWtX\src\processes.jl:201 [inlined]
  [6] macro expansion
    @ E:\.julia\packages\Transducers\oOWtX\src\processes.jl:192 [inlined]
  [7] macro expansion
    @ E:\.julia\packages\Transducers\oOWtX\src\basics.jl:113 [inlined]
  [8] _foldl_array
    @ E:\.julia\packages\Transducers\oOWtX\src\processes.jl:188 [inlined]
  [9] __foldl__
    @ E:\.julia\packages\Transducers\oOWtX\src\processes.jl:182 [inlined]
 [10] foldl_nocomplete
    @ E:\.julia\packages\Transducers\oOWtX\src\processes.jl:356 [inlined]
 [11] _reduce_basecase(rf::Transducers.Reduction{Transducers.UseSIMD{false}, Transducers.Reduction{Transducers.Map{typeof(identity)}, Transducers.BottomRF{Transducers.Completing{typeof(Base.add_sum)}}}}, init::InitialValues.InitialValueOf{typeof(Base.add_sum)}, 
reducible::Transducers.SizedReducible{SubArray{Measurement{Float64}, 1, Vector{Measurement{Float64}}, Tuple{UnitRange{Int64}}, true}, Int64})
    @ Transducers E:\.julia\packages\Transducers\oOWtX\src\threading_utils.jl:56
 [12] _reduce(ctx::Transducers.NoopDACContext, rf::Transducers.Reduction{Transducers.UseSIMD{false}, Transducers.Reduction{Transducers.Map{typeof(identity)}, Transducers.BottomRF{Transducers.Completing{typeof(Base.add_sum)}}}}, init::InitialValues.InitialValueOf{typeof(Base.add_sum)}, reducible::Transducers.SizedReducible{SubArray{Measurement{Float64}, 1, Vector{Measurement{Float64}}, Tuple{UnitRange{Int64}}, true}, Int64})
    @ Transducers E:\.julia\packages\Transducers\oOWtX\src\reduce.jl:170
 [13] _reduce(ctx::Transducers.NoopDACContext, rf::Transducers.Reduction{Transducers.UseSIMD{false}, Transducers.Reduction{Transducers.Map{typeof(identity)}, Transducers.BottomRF{Transducers.Completing{typeof(Base.add_sum)}}}}, init::InitialValues.InitialValueOf{typeof(Base.add_sum)}, reducible::Transducers.SizedReducible{SubArray{Measurement{Float64}, 1, Vector{Measurement{Float64}}, Tuple{UnitRange{Int64}}, true}, Int64}) (repeats 3 times)
    @ Transducers E:\.julia\packages\Transducers\oOWtX\src\reduce.jl:179
 [14] _transduce_assoc_nocomplete
    @ E:\.julia\packages\Transducers\oOWtX\src\reduce.jl:159 [inlined]
 [15] transduce_assoc(xform::Transducers.Map{typeof(identity)}, step::Transducers.Completing{typeof(Base.add_sum)}, init::InitialValues.InitialValueOf{typeof(Base.add_sum)}, coll0::Vector{Measurement{Float64}}; simd::Val{true}, basesize::Int64, stoppable::Nothing, nestlevel::Nothing)
    @ Transducers E:\.julia\packages\Transducers\oOWtX\src\reduce.jl:128
 [16] foldxt(step::typeof(Base.add_sum), xform::Transducers.Map{typeof(identity)}, itr::Vector{Measurement{Float64}}; init::InitialValues.InitialValueOf{typeof(Base.add_sum)}, kwargs::Base.Iterators.Pairs{Symbol, Any, Tuple{Symbol, Symbol}, NamedTuple{(:basesize, :simd), Tuple{Int64, Val{true}}}})
    @ Transducers E:\.julia\packages\Transducers\oOWtX\src\reduce.jl:266
 [17] #mapreduce#11
    @ E:\.julia\packages\ThreadsX\XjdfU\src\reduce.jl:19 [inlined]
 [18] #sum#14
    @ E:\.julia\packages\ThreadsX\XjdfU\src\reduce.jl:48 [inlined]
 [19] sum
    @ E:\.julia\packages\ThreadsX\XjdfU\src\reduce.jl:48 [inlined]
 [20] #sum#13
    @ E:\.julia\packages\ThreadsX\XjdfU\src\reduce.jl:47 [inlined]
 [21] sum(itr::Vector{Measurement{Float64}})
    @ ThreadsX.Implementations E:\.julia\packages\ThreadsX\XjdfU\src\reduce.jl:47
 [22] top-level scope
    @ REPL[6]:1

julia> 

julia> versioninfo()
Julia Version 1.6.0
Commit f9720dc2eb (2021-03-24 12:55 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Xeon(R) W-10885M CPU @ 2.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake)
Environment:
  JULIA_CUDA_USE_BINARYBUILDER = false
  JULIA_DEPOT_PATH = E:\.julia
  JULIA_NUM_THREADS = 8

islent avatar Apr 19 '21 12:04 islent