diff --git a/.github/workflows/artifacts.yml b/.github/workflows/artifacts.yml index 255223629fe27cfe858b05512dfc3eb3ae64ca1b..195658eeadd56dd370e928018ce1ade90ab95e7f 100644 --- a/.github/workflows/artifacts.yml +++ b/.github/workflows/artifacts.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Set PATH run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install newer Python3 run: | add-apt-repository ppa:deadsnakes/ppa @@ -60,9 +60,9 @@ jobs: sudo chmod 755 /opt/cabal/3.0/bin/cabal - name: Set PATH run: | - echo "::add-path::/opt/ghc/8.6.5/bin" - echo "::add-path::/opt/cabal/3.0/bin" - echo "::add-path::$HOME/.cabal/bin" + echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH + echo "/opt/cabal/3.0/bin" >> $GITHUB_PATH + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Update Hackage index run: cabal v2-update - uses: actions/checkout@v2 @@ -86,8 +86,8 @@ jobs: - name: Set PATH run: | [Environment]::GetEnvironmentVariable("Path") - Write-Host "::add-path::C:\ProgramData\chocolatey\lib\cabal\tools\cabal-3.0.0.0" - Write-Host "::add-path::C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.6.5\bin" + Write-Output "C:\ProgramData\chocolatey\lib\cabal\tools\cabal-3.0.0.0" | Out-File $Env:GITHUB_PATH + Write-Output "C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.6.5\bin" | Out-File $Env:GITHUB_PATH - name: Print versions run: | ghc --version diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 0d8bbb520603d4f5b49ad6ef760fb6ceb2e4e743..e359b1598ef3a516b5c489691ad3838d8faff79f 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -29,10 +29,10 @@ jobs: - name: System info run: | uname -a - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install cabal-plan run: | mkdir -p $HOME/.cabal/bin @@ -76,10 +76,10 @@ jobs: - name: System info run: | uname -a - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install cabal-plan run: | mkdir -p $HOME/.cabal/bin @@ -124,10 +124,10 @@ jobs: - name: System info run: | uname -a - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install cabal-plan run: | mkdir -p $HOME/.cabal/bin @@ -172,10 +172,10 @@ jobs: - name: System info run: | uname -a - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install cabal-plan run: | mkdir -p $HOME/.cabal/bin @@ -220,10 +220,10 @@ jobs: - name: System info run: | uname -a - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install cabal-plan run: | mkdir -p $HOME/.cabal/bin @@ -268,10 +268,10 @@ jobs: - name: System info run: | uname -a - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install cabal-plan run: | mkdir -p $HOME/.cabal/bin @@ -316,10 +316,10 @@ jobs: - name: System info run: | uname -a - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install cabal-plan run: | mkdir -p $HOME/.cabal/bin @@ -364,10 +364,10 @@ jobs: - name: System info run: | uname -a - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install cabal-plan run: | mkdir -p $HOME/.cabal/bin @@ -406,10 +406,10 @@ jobs: - name: System info run: | uname -a - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install cabal-plan run: | mkdir -p $HOME/.cabal/bin @@ -452,10 +452,10 @@ jobs: - name: System info run: | uname -a - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install cabal-plan run: | mkdir -p $HOME/.cabal/bin diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 0fe349a0f4f6fd68017616dd21f4c8f5d6cb25fc..a563c0e86be39bf4af0f927f7c4cebb23bd746b3 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -47,9 +47,9 @@ jobs: sudo chmod 755 /opt/cabal/3.0/bin/cabal - name: Set PATH run: | - echo "::add-path::/opt/ghc/8.8.3/bin" - echo "::add-path::/opt/cabal/3.0/bin" - echo "::add-path::$HOME/.cabal/bin" + echo "/opt/ghc/8.8.3/bin" >> $GITHUB_PATH + echo "/opt/cabal/3.0/bin" >> $GITHUB_PATH + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Update Hackage index run: cabal v2-update - name: Install cabal-plan @@ -102,9 +102,9 @@ jobs: sudo chmod 755 /opt/cabal/3.0/bin/cabal - name: Set PATH run: | - echo "::add-path::/opt/ghc/8.6.5/bin" - echo "::add-path::/opt/cabal/3.0/bin" - echo "::add-path::$HOME/.cabal/bin" + echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH + echo "/opt/cabal/3.0/bin" >> $GITHUB_PATH + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Update Hackage index run: cabal v2-update - name: Install cabal-plan diff --git a/.github/workflows/quick-jobs.yml b/.github/workflows/quick-jobs.yml index a4004bcc5f85eacb76604e4fd97a34adf115dcd8..f304ec9fa000c6bf69cd6fd09565e7d3459bf94c 100644 --- a/.github/workflows/quick-jobs.yml +++ b/.github/workflows/quick-jobs.yml @@ -25,10 +25,11 @@ jobs: # This job is not run in a container, any recent GHC should be fine steps: - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" - echo "::add-path::/opt/cabal/3.2/bin" - echo "::add-path::/opt/ghc/8.6.5/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH + echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH + echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH - uses: actions/cache@v1 with: path: ~/.cabal/store @@ -56,9 +57,9 @@ jobs: steps: - name: Set PATH run: | - echo "::add-path::$HOME/.cabal/bin" - echo "::add-path::/opt/cabal/3.2/bin" - echo "::add-path::/opt/ghc/8.6.5/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH + echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH + echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH - name: Install cabal-env run: | mkdir -p $HOME/.cabal/bin diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 2667a1fd132739dd3ffd8c3c066ffa049f57e141..1b944d05de1a665c45ed2a916ed8635ea68de70f 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -24,18 +24,10 @@ jobs: name: test ghc-8.6.5 runs-on: windows-latest steps: - - name: Install Cabal - run: choco install -fy cabal --version 3.2.0.0 - - name: Install GHC - run: | - choco uninstall -y ghc --all-versions - choco install -y ghc --version 8.6.5 - - name: Set PATH - run: | - [Environment]::GetEnvironmentVariable("Path") - Write-Host "::add-path::C:\ProgramData\Chocolatey\lib\cabal\tools\cabal-3.2.0.0" - Write-Host "::add-path::C:\ProgramData\Chocolatey\lib\ghc\tools\ghc-8.6.5\bin" - [Environment]::GetEnvironmentVariable("Path") + - uses: actions/setup-haskell@v1.1.4 + with: + ghc-version: '8.6.5' + cabal-version: '3.2.0.0' - name: Print versions run: | [Environment]::GetEnvironmentVariable("Path") diff --git a/boot/ci-artifacts.template.yml b/boot/ci-artifacts.template.yml index 255223629fe27cfe858b05512dfc3eb3ae64ca1b..195658eeadd56dd370e928018ce1ade90ab95e7f 100644 --- a/boot/ci-artifacts.template.yml +++ b/boot/ci-artifacts.template.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Set PATH run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install newer Python3 run: | add-apt-repository ppa:deadsnakes/ppa @@ -60,9 +60,9 @@ jobs: sudo chmod 755 /opt/cabal/3.0/bin/cabal - name: Set PATH run: | - echo "::add-path::/opt/ghc/8.6.5/bin" - echo "::add-path::/opt/cabal/3.0/bin" - echo "::add-path::$HOME/.cabal/bin" + echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH + echo "/opt/cabal/3.0/bin" >> $GITHUB_PATH + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Update Hackage index run: cabal v2-update - uses: actions/checkout@v2 @@ -86,8 +86,8 @@ jobs: - name: Set PATH run: | [Environment]::GetEnvironmentVariable("Path") - Write-Host "::add-path::C:\ProgramData\chocolatey\lib\cabal\tools\cabal-3.0.0.0" - Write-Host "::add-path::C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.6.5\bin" + Write-Output "C:\ProgramData\chocolatey\lib\cabal\tools\cabal-3.0.0.0" | Out-File $Env:GITHUB_PATH + Write-Output "C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.6.5\bin" | Out-File $Env:GITHUB_PATH - name: Print versions run: | ghc --version diff --git a/boot/ci-linux.template.yml b/boot/ci-linux.template.yml index 54161bf8605f1ce32afd1a8658d2b86e8c257e60..320a48e1c9818d0c285cb030bda483b6f3dd8b26 100644 --- a/boot/ci-linux.template.yml +++ b/boot/ci-linux.template.yml @@ -32,10 +32,10 @@ jobs: - name: System info run: | uname -a - # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Install cabal-plan run: | mkdir -p $HOME/.cabal/bin diff --git a/boot/ci-macos.template.yml b/boot/ci-macos.template.yml index 28cbd05e9b389569b41d385a74ae24f4e8dd06aa..8fa8ba504e3b4ed33a63d9e50bd36e4a69a9ce12 100644 --- a/boot/ci-macos.template.yml +++ b/boot/ci-macos.template.yml @@ -51,9 +51,9 @@ jobs: sudo chmod 755 /opt/cabal/3.0/bin/cabal - name: Set PATH run: | - echo "::add-path::/opt/ghc/{{job.version}}/bin" - echo "::add-path::/opt/cabal/3.0/bin" - echo "::add-path::$HOME/.cabal/bin" + echo "/opt/ghc/{{ job.version }}/bin" >> $GITHUB_PATH + echo "/opt/cabal/3.0/bin" >> $GITHUB_PATH + echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Update Hackage index run: cabal v2-update - name: Install cabal-plan diff --git a/boot/ci-quick-jobs.template.yml b/boot/ci-quick-jobs.template.yml index a4004bcc5f85eacb76604e4fd97a34adf115dcd8..f304ec9fa000c6bf69cd6fd09565e7d3459bf94c 100644 --- a/boot/ci-quick-jobs.template.yml +++ b/boot/ci-quick-jobs.template.yml @@ -25,10 +25,11 @@ jobs: # This job is not run in a container, any recent GHC should be fine steps: - name: Set PATH + # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | - echo "::add-path::$HOME/.cabal/bin" - echo "::add-path::/opt/cabal/3.2/bin" - echo "::add-path::/opt/ghc/8.6.5/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH + echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH + echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH - uses: actions/cache@v1 with: path: ~/.cabal/store @@ -56,9 +57,9 @@ jobs: steps: - name: Set PATH run: | - echo "::add-path::$HOME/.cabal/bin" - echo "::add-path::/opt/cabal/3.2/bin" - echo "::add-path::/opt/ghc/8.6.5/bin" + echo "$HOME/.cabal/bin" >> $GITHUB_PATH + echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH + echo "/opt/ghc/8.6.5/bin" >> $GITHUB_PATH - name: Install cabal-env run: | mkdir -p $HOME/.cabal/bin diff --git a/boot/ci-windows.template.yml b/boot/ci-windows.template.yml index d38e69d8d92dd0e677d2fa63a82ad55cb51de261..492254d1ad946da2b6778190230b8922151579cd 100644 --- a/boot/ci-windows.template.yml +++ b/boot/ci-windows.template.yml @@ -31,18 +31,10 @@ jobs: needs: test-windows-{{ mangleVersion needs }} {% endfor %} steps: - - name: Install Cabal - run: choco install -fy cabal --version 3.2.0.0 - - name: Install GHC - run: | - choco uninstall -y ghc --all-versions - choco install -y ghc --version {{ job.version }} - - name: Set PATH - run: | - [Environment]::GetEnvironmentVariable("Path") - Write-Host "::add-path::C:\ProgramData\Chocolatey\lib\cabal\tools\cabal-3.2.0.0" - Write-Host "::add-path::C:\ProgramData\Chocolatey\lib\ghc\tools\ghc-{{ job.version }}\bin" - [Environment]::GetEnvironmentVariable("Path") + - uses: actions/setup-haskell@v1.1.4 + with: + ghc-version: '{{ job.version }}' + cabal-version: '3.2.0.0' - name: Print versions run: | [Environment]::GetEnvironmentVariable("Path") diff --git a/cabal-testsuite/PackageTests/ForeignLibs/UseLib.c b/cabal-testsuite/PackageTests/ForeignLibs/UseLib.c index 65770da6380d58a2580b85c0c59a6db50d8f9513..2ed882fe9a6cc275f1587d8c901e9a0a2a77c87c 100644 --- a/cabal-testsuite/PackageTests/ForeignLibs/UseLib.c +++ b/cabal-testsuite/PackageTests/ForeignLibs/UseLib.c @@ -1,4 +1,10 @@ #include <stdio.h> +#include <stdbool.h> + +/* Forward declarations */ +bool myForeignLibInit(); +void myForeignLibExit(); +void sayHi(); int main() { diff --git a/cabal-testsuite/PackageTests/ForeignLibs/csrc/MyForeignLibWrapper.c b/cabal-testsuite/PackageTests/ForeignLibs/csrc/MyForeignLibWrapper.c index 2660c6a335ef444a65436bd259f192a29d843d8e..3347c970e7d5ee3939cb6a6cf913ba75bd8aad89 100644 --- a/cabal-testsuite/PackageTests/ForeignLibs/csrc/MyForeignLibWrapper.c +++ b/cabal-testsuite/PackageTests/ForeignLibs/csrc/MyForeignLibWrapper.c @@ -1,7 +1,8 @@ #include <stdlib.h> +#include <stdbool.h> #include "HsFFI.h" -HsBool myForeignLibInit(void){ +bool myForeignLibInit(void){ int argc = 2; char *argv[] = { "+RTS", "-A32m", NULL }; char **pargv = argv; @@ -11,7 +12,7 @@ HsBool myForeignLibInit(void){ // do any other initialization here and // return false if there was a problem - return HS_BOOL_TRUE; + return true; } void myForeignLibExit(void){ diff --git a/cabal-testsuite/PackageTests/ForeignLibs/my-foreign-lib.cabal b/cabal-testsuite/PackageTests/ForeignLibs/my-foreign-lib.cabal index dd5ce745cf91d559521e7d4e713ced74ff585215..8b63dc24e9e8ca90b4064f50b0ca82801a98f397 100644 --- a/cabal-testsuite/PackageTests/ForeignLibs/my-foreign-lib.cabal +++ b/cabal-testsuite/PackageTests/ForeignLibs/my-foreign-lib.cabal @@ -20,6 +20,7 @@ foreign-library myforeignlib other-modules: MyForeignLib.Hello MyForeignLib.SomeBindings + MyForeignLib.AnotherVal build-depends: base, my-foreign-lib hs-source-dirs: src c-sources: csrc/MyForeignLibWrapper.c @@ -34,6 +35,7 @@ foreign-library versionedlib other-modules: MyForeignLib.Hello MyForeignLib.SomeBindings + MyForeignLib.AnotherVal build-depends: base, my-foreign-lib hs-source-dirs: src c-sources: csrc/MyForeignLibWrapper.c diff --git a/cabal-testsuite/PackageTests/ForeignLibs/setup.test.hs b/cabal-testsuite/PackageTests/ForeignLibs/setup.test.hs index 24032abf49ef771333edd3b400f7a526d05228b9..81d7105eb62a44f698308bd4d55ccd1e2e329a7e 100644 --- a/cabal-testsuite/PackageTests/ForeignLibs/setup.test.hs +++ b/cabal-testsuite/PackageTests/ForeignLibs/setup.test.hs @@ -35,7 +35,8 @@ main = setupAndCabalTest . recordMode DoNotRecord $ do -- Link a C program against the library _ <- runProgramM gccProgram - [ "-o", "uselib" + [ "-std=c11", "-Wall" + , "-o", "uselib" , "UseLib.c" , "-l", "myforeignlib" , "-L", flibdir installDirs ]