Skip to content

Switch from template-haskell to template-haskell-lift#285

Open
TeofilC wants to merge 1 commit intohaskell:masterfrom
TeofilC:wip/th-lift
Open

Switch from template-haskell to template-haskell-lift#285
TeofilC wants to merge 1 commit intohaskell:masterfrom
TeofilC:wip/th-lift

Conversation

@TeofilC
Copy link
Copy Markdown

@TeofilC TeofilC commented Oct 10, 2025

We switch our dependency on template-haskell to a dependency on template-haskell-lift. This smaller library is more stabler and if we can remove the template-haskell dependency from all boot libraries then template-haskell will be much easier to re-install since it no longer needs to be in GHC's dependency closure.

It also lets us drop a lot of compatibility CPP.

For more information see the GHC proposal that introduced this library: ghc-proposals/ghc-proposals#696

template-haskell-lift is not compatible with versions of GHC before 9.10, so support for earlier versions would either need to be dropped, or we would need to add some CPP.

This GHC MR tests this PR against GHC-HEAD: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/14978

@AshleyYakeley
Copy link
Copy Markdown
Member

I don't think boot libraries (like time) can depend on non-boot libraries (such as template-haskell-lift)?

@TeofilC
Copy link
Copy Markdown
Author

TeofilC commented Oct 11, 2025

I'll add more of a description in a bit but this will become a boot library in 9.14. I'll update the cabal file to only use it for GHCs greater than that

@TeofilC TeofilC marked this pull request as ready for review January 10, 2026 22:15
@TeofilC
Copy link
Copy Markdown
Author

TeofilC commented Apr 3, 2026

Could you take another look @AshleyYakeley ? template-haskell-lift is a boot library as of GHC-9.14 and all the other boot libraries other than bytestring (which is blocked on a CI issue) have switched. If we can get all of the dependencies of lib:ghc to switch then it will make it easier to reinstall the unstable template-haskell library.

(I think bumping the version of mhs should fix the CI failure).

@AshleyYakeley
Copy link
Copy Markdown
Member

OK can you fix the build first?

@AshleyYakeley
Copy link
Copy Markdown
Member

FreeBSD is failing in master, so I'll fix that. I'll update MHS too perhaps.

@AshleyYakeley
Copy link
Copy Markdown
Member

OK I'm sorting out compiler versions. I'll let you know when it's done.

@AshleyYakeley
Copy link
Copy Markdown
Member

OK, I've fixed CI. Please merge master into your branch.

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