Skip to content

Conversation

@TeofilC
Copy link
Contributor

@TeofilC TeofilC commented Oct 10, 2025

This new boot library should be more stable than template-haskell and
should eventually allow us to remove much of the CPP around TH.

It will also make it easier for end-users to reinstall template-haskell
as it will no longer be used by any boot libraries

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

@TeofilC TeofilC force-pushed the wip/th-lift branch 2 times, most recently from 4ccd3a1 to ad2e782 Compare October 16, 2025 22:14
@treeowl
Copy link
Contributor

treeowl commented Oct 16, 2025

Why doesn't the new package support older GHC versions? The CPP seems a bit blecherous.

@TeofilC
Copy link
Contributor Author

TeofilC commented Oct 16, 2025

template-haskell-lift is compatible with GHC>=8.10. But it is only a boot library with GHC>=9.14. So you wouldn't be able to backport new releases of containers to older GHCs as a boot lib (they would build fine from Hackage though).

Let me know what you'd prefer.
Either we can:

  • raise minimum GHC version to 8.10, use th-lift, cannot backport to minor versions of GHC before 9.14
  • Add CPP and only use th-lift when GHC is >=9.14

Eventually though, template-haskell-lift should let us remove all the TH CPP since that should all in that package.

This new boot library should be more stable than template-haskell and
should eventually allow us to remove much of the CPP around TH.

It will also make it easier for end-users to reinstall template-haskell
as it will no longer be used by any boot libraries
@treeowl
Copy link
Contributor

treeowl commented Oct 16, 2025

That's only a potential issue for new releases on old GHC branches, right? I suppose it would be okay to have some CPP temporarily to support that as long as such branches are "supported" by GHC HQ. But wouldn't it be cleaner to just add template-haskell-lift as a boot package in those releases?

@TeofilC
Copy link
Contributor Author

TeofilC commented Oct 17, 2025

Yeah I agree that would be optimal. Unfortunately I don't think we can add new boot libs in minor releases (but I'll ask) since that can be disruptive.

I can commit to removing this CPP when it's no longer necessary though.

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