diff --git a/.github/workflows/ARM.yml b/.github/workflows/ARM.yml deleted file mode 100644 index 8ee184b..0000000 --- a/.github/workflows/ARM.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: ARM - -on: - push: - branches: [ "main" ] - paths-ignore: - - 'README.org' - pull_request: - branches: [ "main" ] - workflow_dispatch: - schedule: - - cron: '0 0 1 * *' - -jobs: - test: - name: ECL (${{ matrix.cffi }}) with duckdb ${{ matrix.duckdb }} on ARM - runs-on: ubuntu-latest - strategy: - matrix: - ecl: [23.9.9] - cffi: [static] - duckdb: [0.8.1] - env: - DUCKDB_VERSION: ${{ matrix.duckdb }} - steps: - - uses: actions/checkout@v3 - - - name: Install dependencies & run tests - uses: pguyot/arm-runner-action@v2 - with: - cpu: cortex-a53 - base_image: raspios_lite_arm64:latest - image_additional_mb: 1024 - commands: | - apt-get --yes install git build-essential aria2 unzip clang m4 libgc-dev libffi-dev lld - git clone --depth 1 --branch ${{ matrix.ecl }} https://gitlab.com/embeddable-common-lisp/ecl.git - cd ecl - ./configure CC=clang LD=ld.lld --enable-threads --with-defsystem && make -j2 && make install - cd ../ - wget https://beta.quicklisp.org/quicklisp.lisp - ecl --load quicklisp.lisp --eval '(progn (quicklisp-quickstart:install) (quit))' - aria2c "https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-linux-aarch64.zip" - unzip libduckdb-linux-aarch64.zip -d /usr/lib/ - mkdir ~/quicklisp/local-projects/cl-duckdb - cp -r `pwd` ~/quicklisp/local-projects/cl-duckdb - if [ ${{ matrix.cffi }} = 'static' ]; then export CL_DUCKDB_USE_SFFI=t; fi - ecl --load ~/quicklisp/setup.lisp --eval "(progn (ql-dist:install-dist \"http://dist.ultralisp.org/\" :prompt nil) (ql:quickload :duckdb/test) (uiop:quit (if (uiop:symbol-call :fiveam '#:run! :duckdb) 0 1)))" diff --git a/.github/workflows/BSD.yml b/.github/workflows/BSD.yml deleted file mode 100644 index 900c307..0000000 --- a/.github/workflows/BSD.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: BSD - -on: - push: - branches: [ "main" ] - paths-ignore: - - 'README.org' - pull_request: - branches: [ "main" ] - workflow_dispatch: - schedule: - - cron: '0 0 1 * *' - -jobs: - test: - name: ${{ matrix.lisp }} (${{ matrix.cffi }}) on ${{ matrix.os }} - runs-on: macos-latest - strategy: - matrix: - os: [FreeBSD] - lisp: [sbcl-bin, ccl-bin/1.12.2, ecl/23.9.9] - cffi: [default, static] - exclude: - - lisp: sbcl-bin - cffi: static - - lisp: ccl-bin/1.12.1 - cffi: static - - steps: - - uses: actions/checkout@v3 - - - name: Install dependencies & run tests - uses: vmactions/freebsd-vm@v0.3.0 - with: - usesh: true - sync: rsync - copyback: false - prepare: | - sed 's/quarterly/latest/' /etc/pkg/FreeBSD.conf > /tmp/FreeBSD.conf && mv /tmp/FreeBSD.conf /etc/pkg/ - pkg install -y duckdb bash roswell autoconf texinfo perl5 gmake gcc libffi - ln -s /usr/local/bin/gmake /bin/make - ln -s /usr/local/bin/bash /usr/local/bin/sh # ugh - export PATH=/usr/local/bin/:$PATH - ros install ${{ matrix.lisp }} - ros install neil-lindquist/ci-utils - ros use ${{ matrix.lisp }} - ros run --eval '(progn (ql-dist:install-dist "http://dist.ultralisp.org/" :prompt nil) (uiop:quit))' - run: | - ln -s $(pwd) ~/.roswell/local-projects/cl-duckdb - if [ ${{ matrix.cffi }} = 'static' ]; then export CL_DUCKDB_USE_SFFI=t; fi - ~/.roswell/bin/run-fiveam -e t -l duckdb/test :duckdb diff --git a/.github/workflows/Benchmark.yml b/.github/workflows/Benchmark.yml deleted file mode 100644 index eaaef82..0000000 --- a/.github/workflows/Benchmark.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Benchmark - -on: - push: - branches: [ "main" ] - paths-ignore: - - 'README.org' - pull_request: - branches: [ "main" ] - workflow_dispatch: - -jobs: - test: - name: ${{ matrix.lisp }} on ${{ matrix.os }} with duckdb ${{ matrix.duckdb }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - lisp: [sbcl-bin, ccl-bin/1.12.2, ecl/23.9.9] - os: [ubuntu-latest] - duckdb: [0.8.1, nightly] - env: - LISP: ${{ matrix.lisp }} - DUCKDB_VERSION: ${{ matrix.duckdb }} - steps: - - uses: actions/checkout@v3 - - - name: Install DuckDB - shell: bash - run: | - if [ ${{ matrix.duckdb }} = 'nightly' ]; then aria2c "https://artifacts.duckdb.org/latest/duckdb-binaries-linux.zip" && unzip duckdb-binaries-linux.zip -d .; else aria2c "https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-linux-amd64.zip"; fi - unzip libduckdb-linux-amd64.zip -d . - - - name: Setup Lisp - continue-on-error: true - uses: 40ants/setup-lisp@v2 - with: - qlfile-template: | - dist ultralisp http://dist.ultralisp.org - - - name: Run benchmarks - shell: bash - run: | - export LD_LIBRARY_PATH=./ - export CL_DUCKDB_USE_SFFI=t - export CL_DUCKDB_LIBRARY_PATH="${{ github.workspace }}" - ros run --eval '(progn (ql:quickload :duckdb/benchmark) (asdf:test-system :duckdb/benchmark) (quit))' diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml deleted file mode 100644 index f84f6ce..0000000 --- a/.github/workflows/CI.yml +++ /dev/null @@ -1,98 +0,0 @@ -name: CI - -on: - push: - branches: [ "main" ] - paths-ignore: - - 'README.org' - pull_request: - branches: [ "main" ] - workflow_dispatch: - schedule: - - cron: '0 0 1 * *' - -jobs: - test: - name: ${{ matrix.lisp }} (${{ matrix.cffi }}) / ${{ matrix.quicklisp-dist }} on ${{ matrix.os }} with duckdb ${{ matrix.duckdb }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - lisp: [sbcl-bin, ccl-bin/1.12.2, ecl/23.9.9] - os: [ubuntu-latest, windows-latest, macos-latest] - quicklisp-dist: - - ultralisp - duckdb: [0.8.1] - cffi: [default, static] - exclude: - - lisp: sbcl-bin - cffi: static - - lisp: ccl-bin/1.12.2 - cffi: static - - os: windows-latest - lisp: ccl-bin/1.12.2 - - os: windows-latest - lisp: ecl/23.9.9 - env: - LISP: ${{ matrix.lisp }} - DUCKDB_VERSION: ${{ matrix.duckdb }} - QUICKLISP_DIST: ${{ matrix.quicklisp-dist }} - steps: - - uses: actions/checkout@v3 - - - name: Install DuckDB (Linux) - if: runner.os == 'Linux' - continue-on-error: true - shell: bash - run: | - aria2c "https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-linux-amd64.zip" - unzip libduckdb-linux-amd64.zip -d . - - - name: Install DuckDB (macOS) - if: runner.os == 'macOS' - continue-on-error: true - shell: bash - run: | - aria2c "https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-osx-universal.zip" - 7z x libduckdb-osx-universal.zip - - - name: Install DuckDB (Windows) - if: runner.os == 'Windows' - continue-on-error: true - run: | - aria2c "https://github.com/duckdb/duckdb/releases/download/v$env:DUCKDB_VERSION/libduckdb-windows-amd64.zip" - 7z x libduckdb-windows-amd64.zip - - - name: Setup Lisp - continue-on-error: true - uses: 40ants/setup-lisp@v2 - with: - qlfile-template: | - {% ifequal quicklisp_dist "ultralisp" %} - dist ultralisp http://dist.ultralisp.org - {% endifequal %} - - - name: Run tests (Non-Windows) - if: runner.os != 'Windows' - shell: bash - run: | - export DYLD_LIBRARY_PATH=./ - export LD_LIBRARY_PATH=./ - if [ ${{ matrix.cffi }} = 'static' ]; then export CL_DUCKDB_USE_SFFI=t; fi - export CL_DUCKDB_LIBRARY_PATH="${{ github.workspace }}" - if [ ${{ matrix.os }} = 'macos-latest' ]; then sudo cp ./libduckdb.dylib /usr/local/lib/; fi - ros install neil-lindquist/ci-utils - run-fiveam -e t -l duckdb/test :duckdb - - - name: Run tests (Windows) - if: runner.os == 'Windows' - shell: msys2 {0} - run: | - export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/include/:./ - export LIBRARY_PATH=$LIBRARY_PATH:/usr/lib/:./ - if [ ${{ matrix.cffi }} = 'static' ]; then export CL_DUCKDB_USE_SFFI=t; fi - export CL_DUCKDB_LIBRARY_PATH="${{ github.workspace }}" - pacman --noconfirm -S libffi-devel pkgconf - ros --eval '(ql-dist:install-dist "http://dist.ultralisp.org/" :prompt nil)' --eval '(uiop:quit)' - ros install neil-lindquist/ci-utils - run-fiveam -e t -l duckdb/test :duckdb diff --git a/.github/workflows/Nightly.yml b/.github/workflows/Nightly.yml deleted file mode 100644 index f1d8299..0000000 --- a/.github/workflows/Nightly.yml +++ /dev/null @@ -1,99 +0,0 @@ -name: Nightly - -on: - push: - branches: [ "main" ] - paths-ignore: - - 'README.org' - pull_request: - branches: [ "main" ] - workflow_dispatch: - schedule: - - cron: '0 15 * * *' - -jobs: - test: - name: ${{ matrix.lisp }} (${{ matrix.cffi }}) / ${{ matrix.quicklisp-dist }} on ${{ matrix.os }} with duckdb nightly - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - lisp: [sbcl-bin, ccl-bin/1.12.2, ecl/23.9.9] - os: [ubuntu-latest, windows-latest, macos-latest] - quicklisp-dist: - - ultralisp - cffi: [default, static] - exclude: - - lisp: sbcl-bin - cffi: static - - lisp: ccl-bin/1.12.2 - cffi: static - - os: windows-latest - lisp: ccl-bin/1.12.2 - - os: windows-latest - lisp: ecl/23.9.9 - env: - LISP: ${{ matrix.lisp }} - QUICKLISP_DIST: ${{ matrix.quicklisp-dist }} - steps: - - uses: actions/checkout@v3 - - - name: Install DuckDB (Linux) - if: runner.os == 'Linux' - continue-on-error: true - shell: bash - run: | - aria2c "https://artifacts.duckdb.org/latest/duckdb-binaries-linux.zip" - unzip duckdb-binaries-linux.zip -d . - unzip libduckdb-linux-amd64.zip -d . - - - name: Install DuckDB (macOS) - if: runner.os == 'macOS' - continue-on-error: true - shell: bash - run: | - aria2c "https://artifacts.duckdb.org/latest/duckdb-binaries-osx.zip" - 7z x duckdb-binaries-osx.zip - 7z x libduckdb-osx-universal.zip - - - name: Install DuckDB (Windows) - if: runner.os == 'Windows' - continue-on-error: true - run: | - aria2c "https://artifacts.duckdb.org/latest/duckdb-binaries-windows.zip" - 7z x duckdb-binaries-windows.zip - 7z x libduckdb-windows-amd64.zip - - - name: Setup Lisp - continue-on-error: true - uses: 40ants/setup-lisp@v2 - with: - qlfile-template: | - {% ifequal quicklisp_dist "ultralisp" %} - dist ultralisp http://dist.ultralisp.org - {% endifequal %} - - - name: Run tests (Non-Windows) - if: runner.os != 'Windows' - shell: bash - run: | - export DYLD_LIBRARY_PATH=./ - export LD_LIBRARY_PATH=./ - if [ ${{ matrix.cffi }} = 'static' ]; then export CL_DUCKDB_USE_SFFI=t; fi - export CL_DUCKDB_LIBRARY_PATH="${{ github.workspace }}" - if [ ${{ matrix.os }} = 'macos-latest' ]; then sudo cp ./libduckdb.dylib /usr/local/lib/; fi - ros install neil-lindquist/ci-utils - run-fiveam -e t -l duckdb/test :duckdb - - - name: Run tests (Windows) - if: runner.os == 'Windows' - shell: msys2 {0} - run: | - export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/include/:./ - export LIBRARY_PATH=$LIBRARY_PATH:/usr/lib/:./ - if [ ${{ matrix.cffi }} = 'static' ]; then export CL_DUCKDB_USE_SFFI=t; fi - export CL_DUCKDB_LIBRARY_PATH="${{ github.workspace }}" - pacman --noconfirm -S libffi-devel pkgconf - ros --eval '(ql-dist:install-dist "http://dist.ultralisp.org/" :prompt nil)' --eval '(uiop:quit)' - ros install neil-lindquist/ci-utils - run-fiveam -e t -l duckdb/test :duckdb diff --git a/.github/workflows/macos-no-roswell.yml b/.github/workflows/macos-no-roswell.yml new file mode 100644 index 0000000..50cb825 --- /dev/null +++ b/.github/workflows/macos-no-roswell.yml @@ -0,0 +1,56 @@ +name: macOS without Roswell + +on: + push: + branches: [ "main" ] + paths-ignore: + - 'README.org' + pull_request: + branches: [ "main" ] + workflow_dispatch: + schedule: + - cron: '0 0 1 * *' + +jobs: + test: + name: ${{ matrix.lisp }} (${{ matrix.cffi }}) / ${{ matrix.quicklisp-dist }} on ${{ matrix.os }} with duckdb ${{ matrix.duckdb }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + ecl: [23.9.9] + os: [macos-latest] + quicklisp-dist: + - ultralisp + duckdb: [0.8.1, 0.8.0, 0.7.1] + cffi: [default, static] + env: + DUCKDB_VERSION: ${{ matrix.duckdb }} + QUICKLISP_DIST: ${{ matrix.quicklisp-dist }} + steps: + - uses: actions/checkout@v3 + + - name: dostuff (macOS) + if: runner.os == 'macOS' + shell: bash + run: | + aria2c "https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-osx-universal.zip" + 7z x libduckdb-osx-universal.zip + brew install automake + git clone --depth 1 --branch ${{ matrix.ecl }} https://gitlab.com/embeddable-common-lisp/ecl.git + cd ecl/src + rm -rf bdwgc && git clone --depth 1 --branch macOS-threads https://github.com/catap/bdwgc.git ./bdwgc && cd bdwgc && glibtoolize --copy && cp ../ltmain.sh ./ && ./autogen.sh + git clone --depth 1 https://github.com/ivmai/libatomic_ops ./libatomic_ops + cd libatomic_ops && ./autogen.sh + cd ../../../ + ./configure CC=clang LD=ld.lld --enable-threads --with-defsystem --enable-boehm=included && make -j2 && make install + cd ../ + wget https://beta.quicklisp.org/quicklisp.lisp + ecl --load quicklisp.lisp --eval '(progn (quicklisp-quickstart:install) (quit))' + export DYLD_LIBRARY_PATH=./ + export LD_LIBRARY_PATH=./ + if [ ${{ matrix.cffi }} = 'static' ]; then export CL_DUCKDB_USE_SFFI=t; fi + export CL_DUCKDB_LIBRARY_PATH="${{ github.workspace }}" + if [ ${{ matrix.os }} = 'macos-latest' ]; then sudo cp ./libduckdb.dylib /usr/local/lib/; fi + cp -r `pwd` ~/quicklisp/local-projects/cl-duckdb + ecl --load ~/quicklisp/setup.lisp --eval "(progn (ql-dist:install-dist \"http://dist.ultralisp.org/\" :prompt nil) (ql:quickload :duckdb/test) (uiop:quit (if (uiop:symbol-call :fiveam '#:run! :duckdb) 0 1)))"