diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index ef2048f7..02476bb5 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -2,7 +2,7 @@ steps: - label: "CUDA" plugins: - JuliaCI/julia#v1: - version: "1.11" + version: "1.12" - JuliaCI/julia-coverage#v1: codecov: true commands: | diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index ff2c45ee..d41ac14d 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -15,14 +15,14 @@ jobs: test: name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.memory_backend }} - PoCL ${{ matrix.pocl }} runs-on: ${{ matrix.os }} - timeout-minutes: 60 + timeout-minutes: 100 permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created actions: write contents: read strategy: fail-fast: false matrix: - version: ['1.10', '1.11'] + version: ['1.10', '1.12'] os: [ubuntu-24.04, ubuntu-24.04-arm, macOS-15, macOS-15-intel, windows-2025] arch: [x64, arm64] pocl: [jll, local] diff --git a/src/device/quirks.jl b/src/device/quirks.jl index 9cdf15e9..25b3c06e 100644 --- a/src/device/quirks.jl +++ b/src/device/quirks.jl @@ -57,3 +57,12 @@ end @print_and_throw "Out-of-bounds access of scalar value" x end + +# From Metal.jl to avoid widemul and Int128 +@static if VERSION >= v"1.12.0-DEV.1736" # Partially reverts JuliaLang/julia PR #56750 + BitInteger64 = Union{Int64, UInt64} + @device_override function Base.checkbounds(::Type{Bool}, v::StepRange{<:BitInteger64, <:BitInteger64}, i::BitInteger64) + @inline + return checkindex(Bool, eachindex(IndexLinear(), v), i) + end +end diff --git a/test/device.jl b/test/device.jl index 94441053..ed5b2066 100644 --- a/test/device.jl +++ b/test/device.jl @@ -58,11 +58,19 @@ :max_image3d_shape, ] @test isa(cl.platform(), cl.Platform) - @test_throws ErrorException cl.platform().zjdlkf + if isdefined(Core, :FieldError) # VERSION > v"1.12.0-" + @test_throws FieldError cl.platform().zjdlkf + else + @test_throws ErrorException cl.platform().zjdlkf + end device = cl.device() @test isa(device, cl.Device) - @test_throws ErrorException device.zjdlkf + if isdefined(Core, :FieldError) # VERSION > v"1.12.0-" + @test_throws FieldError device.zjdlkf + else + @test_throws ErrorException device.zjdlkf + end for k in device_info_keys v = getproperty(device, k) if k == :extensions