Skip to content
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

Support GHC 9.12 #100

Merged
merged 3 commits into from
Feb 5, 2025
Merged

Conversation

halostatue
Copy link
Contributor

GHC 9.12 uses base 4.21 and ghc-prim 0.13; I also

When compiling with GHC 9.12.1, I got GHC-90584. I'm not a Haskell
programmer, so I made the simplest changes that could work — I don't
know how one would make the deriving Typeable conditional based on
GHC version or if there would be some other way to do that.

@halostatue
Copy link
Contributor Author

I noticed that pandoc specifies base >= 4.12 && < 5; is there a good reason to not go with < 5 for unicode-transforms?

jgm pushed a commit to jgm/unicode-collation that referenced this pull request Jan 23, 2025
I'm not a Haskell programmer, so I would hope this is sufficient to make
this work. I have also opened composewell/unicode-transforms#100 to
upgrade that to build for GHC 9.12.

This is in support of getting pandoc to build with GHC 9.12 for
MacPorts.
@harendra-kumar
Copy link
Member

Sorry for the delay in reviewing this PR. Can you please make the suggested change and we will merge it ASAP.

There are also some CI errors in GHC 8.4/8.6, we need to either drop support of these compilers or fix the errors. We can open another issue/PR for that.

@harendra-kumar
Copy link
Member

Since Typeable issue is only a warning and the rest of the changes are only bounds change we can just revise the package on hackage and everything should work. It won't be necessary to upload the new changes.

@harendra-kumar
Copy link
Member

While we are at it, we can also update these:

$ cabal outdated
Outdated dependencies:
QuickCheck >=2.1 && <2.15 (latest: 2.15.0.1)
tasty-bench >=0.2.5 && <0.4 (latest: 0.4.1)

GHC 9.12 uses base 4.21 and ghc-prim 0.13; I also

When compiling with GHC 9.12.1, I got GHC-90584. I'm not a Haskell
programmer, so I made the simplest changes that could work — I don't
know how one would make the `deriving Typeable` conditional based on
GHC version or if there would be some other way to do that.
@halostatue halostatue force-pushed the haskell-9-12-support branch from 16adc81 to ff52ed2 Compare February 5, 2025 04:18
@halostatue
Copy link
Contributor Author

While we are at it, we can also update these:

$ cabal outdated
Outdated dependencies:
QuickCheck >=2.1 && <2.15 (latest: 2.15.0.1)
tasty-bench >=0.2.5 && <0.4 (latest: 0.4.1)

Just saw this. Can do.

Should base be changed to < 5?

@halostatue
Copy link
Contributor Author

I ask in part because MacPorts committed a change to its pandoc port which uses cabal build --allow-newer as it appears that this happens periodically and because there's few people who use Haskell and have to rediscover these changes to get them upstreamed, so…

@harendra-kumar
Copy link
Member

Should base be changed to < 5?

I am neutral on it, we can ask @wismill and @Bodigrim as well. There is a risk if there is some breakage in base, though that is a very minimal risk. Hackage trustees advise to use the stricter major version constraint on base. Also, if we have to change bounds on other packages anyway (e.g. ghc-prim in this case) then there is no advantage of relaxing base.

@harendra-kumar
Copy link
Member

I have revised the package on hackage, updating the bounds, so we do not have to upload a new release.

@halostatue
Copy link
Contributor Author

OK. Let me push the version updates up.

@harendra-kumar
Copy link
Member

There are also some CI errors in GHC 8.4/8.6, we need to either drop support of these compilers or fix the errors.

This should be easy to workaround. Only benchmark build is failing so we can disable that on these CIs:

See https://github.com/composewell/unicode-transforms/blob/master/.github/workflows/packcheck.yml#L155 . In the CI stanza we can add :

            pack_options: >-
              DISABLE_BENCH=y

same for 8.4.4 CI as well.

@halostatue
Copy link
Contributor Author

That should get it working, except the s390x test, which appear to be failing for reasons completely out of the code's control.

@harendra-kumar
Copy link
Member

Yeah, I do not know what needs to be done for s390 - I raised #101 for this.

@harendra-kumar
Copy link
Member

Ok, looks like all done, I am merging it as soon as the CIs complete unless you have something else in mind.

@harendra-kumar
Copy link
Member

We can optionally update the tested-with field in the cabal file to include 9.10 and 9.12 .

@halostatue
Copy link
Contributor Author

I'm fine either way, but it will be ~18h before I get a chance to update anything.

@harendra-kumar harendra-kumar merged commit 4c4783b into composewell:master Feb 5, 2025
15 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants