-
Notifications
You must be signed in to change notification settings - Fork 13
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
Add support for 32 bit architectures #67
Conversation
I have tried building this in a 32 bit chroot (with ghc Even building with tests disabled, Related: haskell/cabal#6602 |
Probably - name: install
run: |
apt-get update -y
apt-get install -y ghc libghc-quickcheck2-dev libghc-tasty-dev libghc-tasty-quickcheck-dev git make curl libghc-exceptions-dev |
run: | | ||
cabal --version | ||
cabal update | ||
cabal configure --enable-tests --constraint="quickcheck-classes -aeson -semigroupoids -vector" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Try
cabal configure --enable-tests --constraint="quickcheck-classes -aeson -semigroupoids -vector" | |
cabal configure --enable-tests --constraint="quickcheck-classes -aeson -semigroupoids -vector" --constraint "semirings -unordered-containers" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i can probably remove all the constraints. Just do not want to make too many big changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you actually want to add constraints, not remove them :)
The goal is to build as little as possible to avoid intermittent fdTryLock
issues.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was hoping to upgrade the cabal-install
version to one where the fdTryLock
issue is fixed.
@erikd I tried this PR on i386. I had to change
and
I can provide the whole list of tests that fail, if that would help. |
@iliastsi That change seems to make sense. Would you be able to post a git patch here in the comments or submit a PR against this branch? However, the main issue is that I cannot seem to get |
Hi @erikd, any chance to look at these test failures? |
Sorry, escaped my notice. Will look at this some time between now and Monday. |
Dang, forgot about this weekends in a row. |
@erikd Any update on this? It would be great if we can fix it in time for the next version of Debian. |
@iliastsi I use and love Debian, but I see little point in doing this just so the package is available for a little used architecture in Debian. Fixing this, and making the code compile and pass all tests on 32 bit and 64 bit systems is rather difficult. |
I understand. Unfortunately, there are other packages that use |
Unfortunately fixing this requires an enormous amount of work. The underlying problem is that Therefore there are a couple of possible fixes:
I am currently leaning towards the first, but that would require the implementation of a My real feeling is, why can't 32 bit systems just die. |
I have done a huge chunk of the first option and all tests pass in 64 bits, but there are a number of failings tests of 32 bits. |
Ran into a GHC bug: https://gitlab.haskell.org/ghc/ghc/-/issues/22654 (which then turned out not to be a bug). |
f6d33f6
to
fb12338
Compare
@iliastsi This is failing in CI on |
This requires: * Addition of Data.WideWord.Word64 top support 32 bit systems (which do not have a Word64 type) as well as primitives that do addition, subraction and multiplication with carry on unboxed values. * Implement all operations on Int128, Word126, Word256 etc in terms of Data.WideWord.Word64 so that these work on 32 bit systems.
@erikd Awesome work, thanks for this! Looking forward to update to GHC |
Upstream has already released |
Closes: #36