-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build and test in GitHub CI #19
Conversation
Using Nix to provide the build environment (GHC, cabal-install, C compiler)
Thanks for your interest and testing effort @runeksvendsen ! Happy to merge your |
Hi @jberthold, I'm very happy to hear from you. I'm glad you're willing to merge this PR with a reduced version matrix. I should note that I have not yet observed errors that happen only for GHC 9.x. So it appears to work. But I don't know enough about this library to say for sure. If it doesn't work on GHC 9.x it would nice with a test case that reveals this. But I'm happy to reduce the number of GHC versions in the matrix. Do you have any preference regarding the three GHC versions you'd like to build with? I'm thinking GHC 8.10 would make sense to include at least. Regarding ARM Mac builds, I can enable that. I believe I disabled it initially because ARM doesn't work for GHC versions before 8.10. I did a CI run with ARM enabled (link) and it appears building packman fails with the following error for GHC versions >= 8.10 (see e.g. this job).
|
My suggestion to use three versions would be to declare those three versions supported, supposedly these should be the most recent GHC versions in that case? However, GHC-9.x support is unknown until it is properly inspected.
The library contains code using internal GHC runtime system types, most importantly types in As for the compilation error on ARM Mac, this code needs to be extended as a first step. The word size will probably just be 64 bit but the ARM architecture is not checked for. |
9.x is not expected to work yet due to, at least, the addition of a closure type in GHC 9.6
I pushed two commits: one that reduces the number of C compilers use (to four in total: 43d5f85) and another that reduces the tested GHC versions to 8.10, 8.8 and 8.6 (6f22a07). All the failures that happen for the two runs related to these changes (as can be seen here runeksvendsen#3) are due to #18 .
I created a commit for this: runeksvendsen@e75ecdd. This makes everything build and the tests pass in CI. I will create a separate issue and PR for this. |
Thanks for adapting. Feel free to merge it.
I have limited bandwidth until next Monday (am on holiday 🇨🇳 ), and then work is starting again, but I might be able to spend some time to check what is going on in #18 (first thing would be to run with debug logging). |
Great! Thank you @jberthold. Enjoy your holiday :-) |
@jberthold thank you for creating this package. I wanted to understand which GHC versions and C compiler versions it works with, so I created a GitHub CI config that builds for multiple versions of each — both for Linux and macOS.
The result of running this CI workflow can be seen in my fork of this repo: runeksvendsen#1 (the same PR but targeting the master branch of my fork).
It reveals a couple of bugs:
detailed
test suites (alltests, quickchecktest) fail withpanic! read @TestSuiteLog ""
for GHC 7.10.3 and 8.0.2 #20Where #20 is rather easy to fix (runeksvendsen@a42fb0e), but the issue behind #18 is not immediately clear to me.
Note: commit dfc0f58 in this PR tests a total of 216 combinations of different operating systems, GHC and C compilers. This has the advantage that it covers a lot of different configurations, but the disadvantage that it's difficult to quickly get an overview of why a given CI run, that has N number of failures, actually failed — e.g. is it the same failure happening multiple times or different errors? For this reason, one could consider reducing the number of different configurations.
TODO
aarch64
support #22 is merged