Skip to content

Unpack: migrate internally to OsPath #34

Unpack: migrate internally to OsPath

Unpack: migrate internally to OsPath #34

Workflow file for this run

name: emulated
on:
- push
- pull_request
defaults:
run:
shell: bash
jobs:
# Emulation is incredibly slow and memory demanding. It seems that any
# executable with GHC RTS takes at least 7-8 Gb of RAM, so we can run
# `cabal` or `ghc` on their own, but cannot run them both at the same time,
# striking out `cabal test`. Instead we rely on system packages and invoke
# `ghc --make` manually, and even so `ghc -O` is prohibitively expensive.
emulated:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
arch: ['s390x', 'ppc64le']
steps:
- uses: actions/checkout@v3
- uses: uraimo/[email protected]
timeout-minutes: 60
with:
arch: ${{ matrix.arch }}
distro: ubuntu_rolling
githubToken: ${{ github.token }}
install: |
apt-get update -y
apt-get install -y autoconf build-essential curl ghc libghc-tasty-quickcheck-dev libghc-file-embed-dev libghc-temporary-dev
run: |
find Codec -iname '*.hs' -type f -exec sed -i.bck 's/"filepath"//g' {} \;
find Codec -iname '*.hs' -type f -exec sed -i.bck 's/"os-string"//g' {} \;
curl -s https://hackage.haskell.org/package/os-string-2.0.6/os-string-2.0.6.tar.gz | tar xz
curl -s https://hackage.haskell.org/package/filepath-1.5.3.0/filepath-1.5.3.0.tar.gz | tar xz
curl -s https://hackage.haskell.org/package/file-io-0.1.4/file-io-0.1.4.tar.gz | tar xz
curl -s https://hackage.haskell.org/package/unix-2.8.5.1/unix-2.8.5.1.tar.gz | tar xz
cd unix-2.8.5.1
chmod +x configure
./configure
find / -iname HsFFI.h
hsc2hs -Iinclude System/Posix/IO/PosixString.hsc
cd ..
ghc --version
ghc --make -fno-safe-haskell -itest:os-string-2.0.6:filepath-1.5.3.0:file-io-0.1.4:file-io-0.1.4/posix:unix-2.8.5.1 -Iunix-2.8.5.1/include -o Main test/Properties.hs +RTS -s
./Main +RTS -s