diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c2fe4c..184c43d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,11 @@ jobs: - devel os: - ubuntu-latest - - macOS-latest + # - macOS-latest + julia: + - '1.10' + - '1.11' + - 'lts' steps: - uses: actions/checkout@v4 @@ -34,6 +38,8 @@ jobs: uses: julia-actions/setup-julia@latest with: show-versioninfo: 'true' + arch: ${{ runner.arch }} + version: ${{ matrix.julia }} - run: nimble install -y env: diff --git a/nimjl/config.nim b/nimjl/config.nim index 8489a9d..6e28207 100644 --- a/nimjl/config.nim +++ b/nimjl/config.nim @@ -23,11 +23,11 @@ when exitCode != 0: const JuliaArrayVersion* = cmdOutput.split("\"")[1].split(".") - # For release : result has the form ["v", "1.6.0", ""] -> splitting [1] yiels ["1", "6, "0"] - # For dev: result has the form ["v", "1.7.0-DEV", "667"] -> splitting [1] yiels ["1", "7, "0-DEV", "667"] -const JuliaMajorVersion* = JuliaArrayVersion[0].parseInt -const JuliaMinorVersion* = JuliaArrayVersion[1].parseInt -const JuliaPatchVersion* = JuliaArrayVersion[2].parseInt + # For release : result has the form ["v", "1.6.0", ""] -> splitting [1] yields ["1", "6, "0"] + # For dev: result has the form ["v", "1.7.0-DEV", "667"] -> splitting [1] yields ["1", "7, "0-DEV", "667"] +const JuliaMajorVersion* = JuliaArrayVersion[0].parseInt() +const JuliaMinorVersion* = JuliaArrayVersion[1].parseInt() +const JuliaPatchVersion* = JuliaArrayVersion[2].parseInt() const libPrefix = "lib" const libSuffix = ".so" const JuliaLibName* = JuliaLibPath / libPrefix & "julia" & libSuffix diff --git a/nimjl/private/jlarrays.nim b/nimjl/private/jlarrays.nim index ab0a548..9bc8da4 100644 --- a/nimjl/private/jlarrays.nim +++ b/nimjl/private/jlarrays.nim @@ -11,7 +11,12 @@ template julia_type(arg: typedesc): ptr jl_datatype = ## Array bindings {.push nodecl, header: JuliaHeader, dynlib: JuliaLibName.} -proc jl_array_data*(values: ptr jl_array): pointer {.importc.} + +when (JuliaMajorVersion, JuliaMinorVersion) >= (1, 11): + proc jl_array_data*(values: ptr jl_array): pointer {.importc: "jl_array_data_".} +else: + proc jl_array_data*(values: ptr jl_array): pointer {.importc: "jl_array_data".} + proc jl_array_dim*(a: ptr jl_array, dim: cint): cint {.importc.} proc jl_array_len*(a: ptr jl_array): cint {.importc.} proc jl_array_rank*(a: ptr jl_value): cint {.importc.}