Skip to content

Comment required-components #566

Comment required-components

Comment required-components #566

Workflow file for this run

name: Windows
on: [push]
jobs:
build:
runs-on: windows-latest
timeout-minutes: 60
strategy:
matrix:
cc: [gcc, clang]
fail-fast: false
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v1
with:
repository: sbcl/sbcl
ref: sbcl-2.4.6
path: sbcl
- uses: msys2/setup-msys2@v2
with:
install: mingw-w64-x86_64-gcc mingw-w64-x86_64-clang mingw-w64-x86_64-lld make diffutils git python3 dos2unix
- name: install host sbcl
shell: pwsh
working-directory: ../sbcl
run: |
choco install sbcl -source tools-for-build
- name: build sbcl
working-directory: ../sbcl
env:
SBCL_HOME: "/c/Program Files/Steel Bank Common Lisp/1.4.14"
run: |
PATH=$PATH:"/c/Program Files/Steel Bank Common Lisp/1.4.14"
export PATH
dos2unix '${{ github.workspace }}\patches\win32-clang-build.patch'
if [ "clang" = "${{ matrix.cc }}" ]; then git apply --verbose '${{ github.workspace }}\patches\win32-clang-build.patch'; fi
CC=${{ matrix.cc }} ./make.sh --xc-host='sbcl --lose-on-corruption --disable-ldb --disable-debugger' --with-sb-linkable-runtime
- name: install quicklisp
working-directory: ../sbcl
run: |
curl -O https://beta.quicklisp.org/quicklisp.lisp
./run-sbcl.sh --load quicklisp.lisp --eval "(quicklisp-quickstart:install)" --eval "(ql-util:without-prompting (ql:add-to-init-file))" --eval "(quit)"
- name: build and run example
working-directory: examples/libcalc
env:
SBCL_SRC: ${{ github.workspace }}/../sbcl
CL_SOURCE_REGISTRY: "${{ github.workspace }}//"
MSYS2_PATH_TYPE: inherit
run: |
$SBCL_SRC/run-sbcl.sh --script script.lisp
${{ matrix.cc }} -Wall -fPIC -shared -Wl,--export-all-symbols -o libcalc.dll libcalc.c -Wl,--whole-archive $SBCL_SRC/src/runtime/libsbcl.a -Wl,--no-whole-archive -ladvapi32 -lsynchronization -lws2_32 -lzstd
${{ matrix.cc }} -Wall -o example example.c -lcalc -L.
mv libcalc.dll $MSYSTEM_PREFIX/bin
cp libcalc.core $MSYSTEM_PREFIX/bin
echo "(+ 1 2)" | ./example.exe | tr -d '\r\n' | grep "> 3> "
echo "(+ 1 2)" | python ./example.py | tr -d '\r\n' | grep "> 3> "
python ./exhaust_heap.py | grep "returned to Python with error code 2 after heap exhaustion"