diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 88b5f80..7f8005d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,27 +19,39 @@ jobs: target: - os: linux cpu: amd64 + - os: linux-gcc-14 # This is to use ubuntu 24 and install gcc 14. Should be removed when ubuntu-latest is 26.04 + cpu: amd64 - os: linux cpu: i386 - os: macos cpu: amd64 + - os: macos + cpu: arm64 - os: windows cpu: amd64 - #- os: windows - #cpu: i386 - branch: [version-1-6, version-2-0, devel] + branch: [version-2-0, version-2-2, devel] include: - target: os: linux - builder: ubuntu-20.04 + builder: ubuntu-latest + shell: bash + - target: + os: linux-gcc-14 # This is to use ubuntu 24 and install gcc 14. Should be removed when ubuntu-latest is 26.04 + builder: ubuntu-24.04 shell: bash - target: os: macos - builder: macos-12 + cpu: amd64 + builder: macos-13 + shell: bash + - target: + os: macos + cpu: arm64 + builder: macos-latest shell: bash - target: os: windows - builder: windows-2019 + builder: windows-latest shell: msys2 {0} defaults: @@ -51,7 +63,7 @@ jobs: continue-on-error: ${{ matrix.branch == 'devel' }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install build dependencies (Linux i386) if: runner.os == 'Linux' && matrix.target.cpu == 'i386' @@ -97,7 +109,7 @@ jobs: - name: Restore Nim DLLs dependencies (Windows) from cache if: runner.os == 'Windows' id: windows-dlls-cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: external/dlls-${{ matrix.target.cpu }} key: 'dlls-${{ matrix.target.cpu }}' @@ -121,6 +133,8 @@ jobs: run: | if [[ '${{ matrix.target.cpu }}' == 'amd64' ]]; then PLATFORM=x64 + elif [[ '${{ matrix.target.cpu }}' == 'arm64' ]]; then + PLATFORM=arm64 else PLATFORM=x86 fi @@ -152,10 +166,19 @@ jobs: bash build_nim.sh nim csources dist/nimble NimBinaries echo '${{ github.workspace }}/nim/bin' >> $GITHUB_PATH + - name: Use gcc 14 + # Should be removed when ubuntu-latest is 26.04 + if : ${{ matrix.target.os == 'linux-gcc-14' }} + run: | + # Add GCC-14 to alternatives + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 14 + # Set GCC-14 as the default + sudo update-alternatives --set gcc /usr/bin/gcc-14 + - name: Run tests run: | nim --version nimble --version + gcc --version nimble install -y --depsOnly env NIMLANG=c nimble test - env NIMLANG=cpp nimble test diff --git a/benchmarks/wtime.h b/benchmarks/wtime.h index b645135..3177f47 100644 --- a/benchmarks/wtime.h +++ b/benchmarks/wtime.h @@ -28,6 +28,7 @@ static inline double Wtime_usec(void) return tv.tv_sec * 1e6 + tv.tv_usec; } +#if 0 // Read time stamp counter on x86 static inline unsigned long long readtsc(void) { @@ -36,6 +37,7 @@ static inline unsigned long long readtsc(void) asm volatile ("rdtsc" : "=a" (lo), "=d" (hi)); return (unsigned long long)hi << 32 | lo; } +#endif #define WTIME_unique_var_name_paste(id, n) id ## n #define WTIME_unique_var_name(id, n) WTIME_unique_var_name_paste(id, n) diff --git a/taskpools.nimble b/taskpools.nimble index aaf083b..6990147 100644 --- a/taskpools.nimble +++ b/taskpools.nimble @@ -25,9 +25,9 @@ proc build(args, path: string) = exec nimc & " " & lang & " " & cfg & " " & flags & " " & args & " " & path proc run(args, path: string) = - build args & " -r", path + build args & " --mm:refc -r", path if (NimMajor, NimMinor) > (1, 6): - build args & " --mm:refc -r", path + build args & " --mm:orc -r", path task test, "Run Taskpools tests": # Internal data structures