[Git][ghc/ghc][wip/T24652] Remove unecessary stage0 packages
Teo Camarasu (@teo)
gitlab at gitlab.haskell.org
Fri Apr 19 12:55:00 UTC 2024
Teo Camarasu pushed to branch wip/T24652 at Glasgow Haskell Compiler / GHC
Commits:
290143b6 by Teo Camarasu at 2024-04-19T10:18:45+01:00
Remove unecessary stage0 packages
Historically quite a few packages had to be stage0 as they depended on
`template-haskell` and that was stage0. In #23536 we made it so that was
no longer the case. This allows us to remove a bunch of packages from
this list.
A few still remain. A new version of `Win32` is required by
`semaphore-compat`. Including `Win32` in the stage0 set requires also
including `filepath` because otherwise Hadrian's dependency logic gets
confused. Once our boot compiler has a newer version of `Win32` all of
these will be able to be dropped.
Resolves #24652
- - - - -
2 changed files:
- hadrian/src/Rules/ToolArgs.hs
- hadrian/src/Settings/Default.hs
Changes:
=====================================
hadrian/src/Rules/ToolArgs.hs
=====================================
@@ -132,15 +132,11 @@ mkToolTarget es p = do
-- critically the `exe:ghc` component as that depends on the GHC library
-- which takes a while to compile.
toolTargets :: [Package]
-toolTargets = [ binary
- , bytestring
- , cabalSyntax
+toolTargets = [ cabalSyntax
, cabal
, compiler
- , containers
, directory
, process
- , exceptions
, filepath
, osString
-- , ghc -- # depends on ghc library
@@ -157,12 +153,8 @@ toolTargets = [ binary
, hsc2hs -- # executable
, hpc
, hpcBin -- # executable
- , mtl
- , parsec
, time
, templateHaskellNext
- , text
- , transformers
, semaphoreCompat
, unlit -- # executable
] ++ if windowsHost then [ win32 ] else [ unix ]
=====================================
hadrian/src/Settings/Default.hs
=====================================
@@ -80,40 +80,38 @@ stageBootPackages = return
stage0Packages :: Action [Package]
stage0Packages = do
cross <- flag CrossCompiling
- return $ [ binary
- , bytestring
- , cabalSyntax
+ return $ [ cabalSyntax
, cabal
, compiler
- , containers
- , directory
- , process
- , exceptions
- , filepath
+ , directory -- depends on filepath
+ , filepath -- depends on os-string
, ghc
- , runGhc
, ghcBoot
, ghcBootThNext
- , ghcPlatform
, ghcHeap
+ , ghcPkg
+ , ghcPlatform
, ghcToolchain
, ghci
- , ghcPkg
, haddock
- , hsc2hs
+ , hp2ps
, hpc
, hpcBin
- , mtl
- , osString
- , parsec
- , semaphoreCompat
- , time
+ , hsc2hs
+ , osString -- new library not yet present for boot compilers
+ , process -- depends on filepath
+ , runGhc
+ , semaphoreCompat -- depends on
, templateHaskellNext
- , text
- , transformers
+ , time -- depends on win32
, unlit
- , hp2ps
, if windowsHost then win32 else unix
+ -- We must use the in-tree `Win32` as the version
+ -- bundled with GHC 9.6 is too old for `semaphore-compat`.
+ -- Once 9.6 is no longer a boot compiler, we can drop win32/unix.
+ -- These depend on `filepath`/`os-string` through an automatic flag
+ -- that confused Hadrian, so we must make those a stage0 package as well.
+ -- Once we drop `Win32`/`unix` it should be possible to drop those too.
]
++ [ terminfo | not windowsHost, not cross ]
++ [ timeout | windowsHost ]
@@ -143,12 +141,14 @@ stage1Packages = do
[ libraries0 -- Build all Stage0 libraries in Stage1
, [ array
, base
+ , binary
+ , bytestring
, containers
, deepseq
, exceptions
, ghc
- , ghcBootTh
, ghcBignum
+ , ghcBootTh
, ghcCompact
, ghcExperimental
, ghcInternal
@@ -158,11 +158,15 @@ stage1Packages = do
, hp2ps
, hsc2hs
, integerGmp
+ , mtl
+ , parsec
, pretty
, rts
, semaphoreCompat
- , templateHaskell
, stm
+ , templateHaskell
+ , text
+ , transformers
, unlit
, xhtml
, if winTarget then win32 else unix
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/290143b660beb1b602065a880cda116f8a3afe30
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/290143b660beb1b602065a880cda116f8a3afe30
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/20240419/4c50f6f1/attachment-0001.html>
More information about the ghc-commits
mailing list