[Git][ghc/ghc][wip/reinstallable-th] template-haskell: Move wired-ins to ghc-internal
Teo Camarasu (@teo)
gitlab at gitlab.haskell.org
Fri May 24 12:12:29 UTC 2024
Teo Camarasu pushed to branch wip/reinstallable-th at Glasgow Haskell Compiler / GHC
Commits:
2fa4aeb8 by Teo Camarasu at 2024-05-24T13:12:25+01:00
template-haskell: Move wired-ins to ghc-internal
Thus we make `template-haskell` reinstallable and keep it as the public
API for Template Haskell.
All of the wired-in identifiers are moved to `ghc-internal`.
This necessitates also moving much of `ghc-boot-th` into `ghc-internal`.
These modules are then re-exported from `ghc-boot-th` and
`template-haskell`.
To avoid a dependency on `template-haskell` from `lib:ghc`, we instead
depend on the TH ASTs via `ghc-boot-th`.
As `template-haskell` no longer has special status, we can drop the
logic adding an implicit dependency on `template-haskell` when using TH.
We can also drop the `template-haskell-next` package, which was
previously used when bootstrapping.
When bootstrapping, we need to vendor the TH AST modules from
`ghc-internal` into `ghc-boot-th`. This is controlled by the `bootstrap`
cabal flag as before. See Note [Bootstrapping Template Haskell].
We split out a GHC.Internal.TH.Lift module resolving #24752.
This module is only built when not bootstrapping.
Resolves #24703
-------------------------
Metric Increase:
ghc_boot_th_dir
ghc_boot_th_so
-------------------------
- - - - -
30 changed files:
- .gitignore
- compiler/GHC/Builtin/Names/TH.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/HsToCore/Quote.hs
- compiler/GHC/Iface/Recomp.hs
- compiler/GHC/Plugins.hs
- compiler/GHC/Rename/Names.hs
- compiler/GHC/Rename/Splice.hs
- compiler/GHC/Runtime/Interpreter/JS.hs
- compiler/GHC/Tc/Errors/Ppr.hs
- compiler/GHC/Tc/Errors/Types.hs
- compiler/GHC/Tc/Gen/Splice.hs
- compiler/GHC/Tc/Gen/Splice.hs-boot
- compiler/GHC/Tc/Types/TH.hs
- compiler/GHC/ThToHs.hs
- compiler/GHC/Unit/State.hs
- compiler/GHC/Unit/Types.hs
- compiler/ghc.cabal.in
- hadrian/src/Packages.hs
- hadrian/src/Rules/Generate.hs
- hadrian/src/Rules/ToolArgs.hs
- hadrian/src/Settings/Default.hs
- hadrian/src/Settings/Packages.hs
- libraries/base/src/Control/Monad/IO/Class.hs
- libraries/base/src/Data/Array/Byte.hs
- libraries/base/src/Data/Fixed.hs
- libraries/ghc-boot-th/GHC/ForeignSrcLang/Type.hs
- libraries/template-haskell/Language/Haskell/TH/Lib/Map.hs → libraries/ghc-boot-th/GHC/Internal/TH/Lib/Map.hs
- + libraries/ghc-boot-th/GHC/Internal/TH/Ppr.hs
- + libraries/ghc-boot-th/GHC/Internal/TH/PprLib.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/2fa4aeb8c37975764ced1debcd9a39e02270b864
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/2fa4aeb8c37975764ced1debcd9a39e02270b864
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20240524/02ea830e/attachment.html>
More information about the ghc-commits
mailing list