diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 34b3048609..fd7a7f5433 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -29,8 +29,8 @@ jobs: fail-fast: false matrix: version: - - "1.10" - - "1.11" + #- "1.10" + #- "1.11" - "1.12" # - 'nightly' os: @@ -97,7 +97,7 @@ jobs: - "ifrt" uses: ./.github/workflows/CommonCI.yml with: - julia_version: "1.10" + julia_version: "1.12" os: "ubuntu-24.04" runtime: ${{ matrix.runtime }} test_args: ${{ matrix.test_group == 'core' && 'core plugins' || matrix.test_group }} diff --git a/Project.toml b/Project.toml index 1eeb5b4b2f..eaafa5cc2e 100644 --- a/Project.toml +++ b/Project.toml @@ -23,6 +23,7 @@ LLVM = "929cbde3-209d-540e-8aea-75f648917ca0" LLVMOpenMP_jll = "1d63c593-3942-5779-bab2-d838dc0a180e" Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +NestedNumbers = "1f6363f3-4ba7-41a3-bcac-d685ef427933" OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a" Preferences = "21216c6a-2e73-6563-6e65-726566657250" @@ -67,6 +68,7 @@ YaoBlocks = "418bc28f-b43b-5e0b-a6e7-61bbc1a2c1df" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [sources] +NestedNumbers = {url = "https://github.com/JuliaMath/NestedNumbers.jl"} ReactantCore = {path = "lib/ReactantCore"} [extensions] @@ -124,6 +126,7 @@ MCMCDiagnosticTools = "0.3.11" MPI = "0.20" NNlib = "0.9.26" NPZ = "0.4" +NestedNumbers = "0.1" OffsetArrays = "1" OneHotArrays = "0.2.10" OrderedCollections = "1.1" diff --git a/docs/Project.toml b/docs/Project.toml index 3de01d2f95..97ba2e41de 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -11,9 +11,13 @@ ReactantCore = "a3311ec8-5e00-46d5-b541-4f83e724a433" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [sources] +NestedNumbers = {url = "https://github.com/JuliaMath/NestedNumbers.jl"} Reactant = {path = ".."} ReactantCore = {path = "../lib/ReactantCore"} [compat] Documenter = "1.4.1" DocumenterVitepress = "0.2" + +[extras] +NestedNumbers = "1f6363f3-4ba7-41a3-bcac-d685ef427933" diff --git a/src/Reactant.jl b/src/Reactant.jl index 57ba65d442..8703dae9e1 100644 --- a/src/Reactant.jl +++ b/src/Reactant.jl @@ -12,6 +12,8 @@ using Libdl: Libdl using Reactant_jll: Reactant_jll using LLVMOpenMP_jll: LLVMOpenMP_jll +import NestedNumbers + using Adapt: Adapt, WrappedArray using GPUArraysCore: GPUArraysCore, @allowscalar, allowscalar diff --git a/src/Types.jl b/src/Types.jl index 948765684d..6ccb4e112c 100644 --- a/src/Types.jl +++ b/src/Types.jl @@ -1,6 +1,4 @@ -abstract type RNumber{T<:ReactantPrimitive} <: Number end - -abstract type AbstractConcreteNumber{T} <: RNumber{T} end +abstract type AbstractConcreteNumber{T<:ReactantPrimitive} <: NestedNumbers.RemoteNumber{T} end abstract type RArray{T,N} <: DenseArray{T,N} end @@ -38,7 +36,7 @@ end @leaf MissingTracedValue ## TracedRNumber -mutable struct TracedRNumber{T} <: RNumber{T} +mutable struct TracedRNumber{T<:ReactantPrimitive} <: NestedNumbers.OpaqueNumber{T} paths::Tuple mlir_data::Union{Nothing,MLIR.IR.Value} @@ -52,6 +50,8 @@ mutable struct TracedRNumber{T} <: RNumber{T} end end +const RNumber{T<:ReactantPrimitive} = Union{AbstractConcreteNumber{T},TracedRNumber{T}} + Base.elsize(::Type{TracedRNumber{T}}) where {T} = sizeof(T) Base.elsize(::Type{RNumber{T}}) where {T} = sizeof(T) Base.elsize(::Type{<:AbstractConcreteNumber{T}}) where {T} = sizeof(T) diff --git a/test/Project.toml b/test/Project.toml index 6f9560ce9a..4e42cc41d3 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -43,6 +43,7 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [sources] +NestedNumbers = {url = "https://github.com/JuliaMath/NestedNumbers.jl"} Reactant = {path = ".."} [compat] @@ -85,4 +86,5 @@ Test = "1.10" Zygote = "0.7" [extras] +NestedNumbers = "1f6363f3-4ba7-41a3-bcac-d685ef427933" Reactant_jll = "0192cb87-2b54-54ad-80e0-3be72ad8a3c0"