[Git][ghc/ghc][wip/T23109] 50 commits: gitlab-ci: Don't use .full-ci to run test-primops
Simon Peyton Jones (@simonpj)
gitlab at gitlab.haskell.org
Tue Feb 11 16:33:25 UTC 2025
Simon Peyton Jones pushed to branch wip/T23109 at Glasgow Haskell Compiler / GHC
Commits:
9a59b026 by Ben Gamari at 2025-02-04T10:00:18-05:00
gitlab-ci: Don't use .full-ci to run test-primops
test-primops depends upon the existence of validate jobs, yet these do
not exist in the context of nightly jobs, which .full-ci includes.
- - - - -
7cc08550 by Ben Gamari at 2025-02-04T18:34:49-05:00
CorePrep: Name `sat` binders more descriptively
- - - - -
fb40981d by Ben Gamari at 2025-02-04T18:35:26-05:00
ghc-toolchain: Parse i686 triples
This is a moniker used for later 32-bit x86 implementations
(Pentium Pro and later).
Fixes #25691.
- - - - -
02794411 by Cheng Shao at 2025-02-04T18:36:03-05:00
compiler: remove unused assembleOneBCO function
This patch removes the unused assembleOneBCO function from the
bytecode assembler.
- - - - -
db19c8a9 by Matthew Pickering at 2025-02-05T23:16:50-05:00
perf: Replace uses of genericLength with strictGenericLength
genericLength is a recursive function and marked NOINLINE. It is not
going to specialise. In profiles, it can be seen that 3% of total compilation
time when computing bytecode is spend calling this non-specialised
function.
In addition, we can simplify `addListToSS` to avoid traversing the input
list twice and also allocating an intermediate list (after the call to
reverse).
Overall these changes reduce the time spend in 'assembleBCOs' from 5.61s
to 3.88s. Allocations drop from 8GB to 5.3G.
Fixes #25706
- - - - -
5622a14a by Matthew Pickering at 2025-02-05T23:17:27-05:00
perf: nameToCLabel: Directly manipulate ByteString rather than going via strings
`nameToCLabel` is called from `lookupHsSymbol` many times during
bytecode linking. We can save a lot of allocations and time by directly
manipulating the bytestrings rather than going via intermediate lists.
Before: 2GB allocation, 1.11s
After: 260MB allocation, 375ms
Fixes #25719
-------------------------
Metric Decrease:
MultiLayerModulesTH_OneShot
-------------------------
- - - - -
66c7f656 by Matthew Pickering at 2025-02-06T17:15:25-05:00
interpreter: Fix INTERP_STATS profiling code
The profiling code had slightly bitrotted since the last time it was
used. This just fixes things so that if you toggle the INTERP_STATS
macro then it just works and prints out the stats.
Fixes #25695
- - - - -
f71c2835 by Matthew Pickering at 2025-02-06T17:16:02-05:00
perf: Key the interpreter symbol cache by Name rather than FastString
Profiles showed that about 0.2s was being spend constructing the keys
before looking up values in the old symbol cache.
The performance of this codepath is critical as it translates directly
to a delay when a user evaluates a function like `main` in the
interpreter.
Therefore we implement a solution which keys the cache(s) by `Name`
rather than the symbol directly, so the cache can be consulted before
the symbol is constructed.
Fixes #25731
- - - - -
8f8d3a90 by Ben Gamari at 2025-02-08T01:17:28-05:00
base: Label threads forked by IO operations
Addresses part of #25452.
Addresses core-libraries-committee#305.
- - - - -
28600825 by Ben Gamari at 2025-02-08T01:17:28-05:00
base: Label threads forked by System.Timeout
Addresses part of #25452.
Addresses core-libraries-committee#305.
- - - - -
8a249827 by Ben Gamari at 2025-02-08T01:17:28-05:00
base: Label signal handling threads
Addresses part of #25452.
Addresses core-libraries-committee#305.
- - - - -
26af26f0 by Ben Gamari at 2025-02-08T01:17:28-05:00
base: Label Windows console event handling threads
Addresses part of #25452.
Addresses core-libraries-committee#305.
- - - - -
bf9c3d4f by Ben Gamari at 2025-02-08T01:17:28-05:00
ghci: Label evaluation sandbox thread
Addresses part of #25452.
Addresses core-libraries-committee#305.
- - - - -
38f78ce5 by Ben Gamari at 2025-02-08T01:17:28-05:00
base: Add changelog entry for addition of thread labels
Addresses #25452.
Addresses core-libraries-committee#305.
- - - - -
c100deb5 by Ben Gamari at 2025-02-08T01:18:05-05:00
gen-ci: Clean up style
This cleans up a number of stylistic inconsistencies although it's still
far from perfect.
- - - - -
c4a7680a by Ben Gamari at 2025-02-08T01:18:05-05:00
gen-ci: Properly encapsulate GitLab predicates
- - - - -
52b6539b by M Farkas-Dyck at 2025-02-08T11:34:51-08:00
Avoid partiality in `Language.Haskell.Syntax.Expr`, `GHC.Hs.Expr`, `GHC.Rename.Expr`, etc.
In particular, use `NonEmpty` where appropriate:
- the argument of `FieldLabelString`
- the argument of `HsMultiIf`
- `grhssGRHSs`
Decreases overall compile-time allocation by about 0.1% in the benchmark suite (min -0.8%, max +0.3%).
Metric Decrease:
T3294
- - - - -
a566da92 by Ben Gamari at 2025-02-10T03:21:49-05:00
gitlab-ci: Bump docker images
Closes #25693.
- - - - -
a7e23f01 by Ben Gamari at 2025-02-10T03:21:49-05:00
hadrian: Drop uses of head/tail
To silence warnings with GHC 9.10
- - - - -
12752f0c by Ben Gamari at 2025-02-10T03:21:49-05:00
hadrian: Disable x-data-list-nonempty-unzip warning
- - - - -
46f89882 by Simon Peyton Jones at 2025-02-11T13:56:21+00:00
Make newtype instances opaque
I think this will help with #23109
Wibbles
Allow SelCo for newtype classes
Experimental change
Wibble
Furher wibbles
Further improvments
Further wibbles
esp exprIsConLike
Run classop rule first
Newtype classops are small
needs comments
- - - - -
e3969c24 by Simon Peyton Jones at 2025-02-11T13:56:21+00:00
Wibble imports
- - - - -
8d1bc5e4 by Simon Peyton Jones at 2025-02-11T13:56:21+00:00
Wibbles
Notably: define and use mkNewTypeDictApp
- - - - -
ad0aa6a8 by Simon Peyton Jones at 2025-02-11T13:58:09+00:00
Make newtype-class data constructors not inline
This variant tries
* Making the data constructor for a newtype class not inline
* exprIsConApp_maybe treats it like a normal data constructor
* CoreToStg discards it (perhaps CorePrep should do that instead)
* Some as-it-turns-out unforced changes to corePrepPgm that makes
it pass all TyCons, not just the data tycons
* Significantly simpler story in mkNewTypeDictApp
- - - - -
c9479535 by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Wibble
- - - - -
30cde81a by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Get rid of newtype classes in CorePrep not CoreToStg
- - - - -
3b34c5ea by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Comment out bits that I think are no longer necessary
* Extra field in ClassOpId,
and classOpDictApp_maybe in Simplify.Iteration
* Newtype classes being injective
* Don't preInlineUnconditionally Dfuns
* mkNewTypeDictApp
* Zonking of unfoldings (only necessary for those local dfuns)
- - - - -
b0da8945 by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Wibble
- - - - -
acc205e0 by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Allow pushDataCon on ClassTyCon newtypes
The fact that there is no *actual* data constructor in the end i
kind-of-irrelevant, and we turn out to get quite a lot of
class-op (d |> co)
where co : C t1 ~R C t2
- - - - -
42be7541 by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Wibbles to merge
- - - - -
fb5eaadf by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Make newtype classes pretend to be injective
- - - - -
1148b425 by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Make class datacons be have-no-unfolding
Fixes the problem reported in #20689 @Mikolaj
- - - - -
ee65554c by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
wibble
- - - - -
720ea842 by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Don't make a closure table for type data decls
- - - - -
4ffd6329 by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Make UanaryClass a new AlgTyConRhs
work in progress, won't compile
- - - - -
aa6fdfb2 by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
More wibbles
- - - - -
afbc9779 by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
More wibbbles
- - - - -
4258fc18 by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
More wibbles
- - - - -
6f6a63bc by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Unused bindings
- - - - -
c21f886d by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Unused import
- - - - -
f8d45b8c by Simon Peyton Jones at 2025-02-11T13:58:10+00:00
Wibbles
- - - - -
46d31a92 by Simon Peyton Jones at 2025-02-11T13:58:11+00:00
Wibbles
- - - - -
cfe728f7 by Simon Peyton Jones at 2025-02-11T13:58:11+00:00
Wibble
- - - - -
f0349afb by Simon Peyton Jones at 2025-02-11T13:58:11+00:00
Wibbles
Remove tyConAlgDataCons_maybe, and tyConSingleAlgDataCon_maybe
Rename dontUnbox to canUnboxType (flippping sign)
- - - - -
2882688c by Simon Peyton Jones at 2025-02-11T13:58:11+00:00
Rebase wibbles
- - - - -
547dbf95 by Simon Peyton Jones at 2025-02-11T13:58:11+00:00
More rebase wibbles
- - - - -
ed8cd4af by Simon Peyton Jones at 2025-02-11T13:58:11+00:00
Yet more rebase wibbles
- - - - -
a6ab2047 by Simon Peyton Jones at 2025-02-11T13:58:11+00:00
Wibble imports
- - - - -
50d804c5 by Simon Peyton Jones at 2025-02-11T13:58:11+00:00
Import wibble
- - - - -
660c4b1d by Simon Peyton Jones at 2025-02-11T16:33:02+00:00
Adjust type of evCast
..to avoid gratuitous breakage
- - - - -
136 changed files:
- .gitlab-ci.yml
- .gitlab/generate-ci/gen_ci.hs
- compiler/GHC.hs
- compiler/GHC/ByteCode/Asm.hs
- compiler/GHC/ByteCode/InfoTable.hs
- compiler/GHC/ByteCode/Linker.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/FamInstEnv.hs
- compiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Opt/Arity.hs
- compiler/GHC/Core/Opt/DmdAnal.hs
- compiler/GHC/Core/Opt/Simplify/Env.hs
- compiler/GHC/Core/Opt/Simplify/Iteration.hs
- compiler/GHC/Core/Opt/Simplify/Utils.hs
- compiler/GHC/Core/Opt/Specialise.hs
- compiler/GHC/Core/Opt/WorkWrap/Utils.hs
- compiler/GHC/Core/SimpleOpt.hs
- compiler/GHC/Core/TyCo/Rep.hs
- compiler/GHC/Core/TyCon.hs
- compiler/GHC/Core/Type.hs
- compiler/GHC/Core/Unfold.hs
- compiler/GHC/Core/UsageEnv.hs
- compiler/GHC/Core/Utils.hs
- compiler/GHC/CoreToStg.hs
- compiler/GHC/CoreToStg/Prep.hs
- + compiler/GHC/Data/List/NonEmpty.hs
- compiler/GHC/Driver/Main.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Utils.hs
- compiler/GHC/HsToCore/Arrows.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Foreign/Call.hs
- compiler/GHC/HsToCore/GuardedRHSs.hs
- compiler/GHC/HsToCore/Pmc.hs
- compiler/GHC/HsToCore/Pmc/Desugar.hs
- compiler/GHC/HsToCore/Quote.hs
- compiler/GHC/HsToCore/Ticks.hs
- compiler/GHC/Iface/Decl.hs
- compiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Iface/Syntax.hs
- compiler/GHC/Iface/Tidy.hs
- compiler/GHC/Linker/Loader.hs
- compiler/GHC/Parser.y
- compiler/GHC/Parser/PostProcess.hs
- compiler/GHC/Prelude/Basic.hs
- compiler/GHC/Rename/Expr.hs
- compiler/GHC/Rename/Module.hs
- compiler/GHC/Rename/Utils.hs
- compiler/GHC/Runtime/Interpreter.hs
- compiler/GHC/Runtime/Interpreter/Types.hs
- + compiler/GHC/Runtime/Interpreter/Types/SymbolCache.hs
- compiler/GHC/StgToByteCode.hs
- compiler/GHC/StgToCmm.hs
- compiler/GHC/Tc/Errors.hs
- compiler/GHC/Tc/Errors/Ppr.hs
- compiler/GHC/Tc/Errors/Types.hs
- compiler/GHC/Tc/Gen/Bind.hs
- compiler/GHC/Tc/Gen/Expr.hs
- compiler/GHC/Tc/Gen/Match.hs
- compiler/GHC/Tc/Instance/Class.hs
- compiler/GHC/Tc/Instance/Family.hs
- compiler/GHC/Tc/Solver/Default.hs
- compiler/GHC/Tc/Solver/Dict.hs
- compiler/GHC/Tc/Solver/Equality.hs
- compiler/GHC/Tc/Solver/Monad.hs
- compiler/GHC/Tc/Solver/Solve.hs
- compiler/GHC/Tc/TyCl/Build.hs
- compiler/GHC/Tc/TyCl/Instance.hs
- compiler/GHC/Tc/TyCl/PatSyn.hs
- − compiler/GHC/Tc/Types/EvTerm.hs
- compiler/GHC/Tc/Types/Evidence.hs
- compiler/GHC/Tc/Types/Origin.hs
- compiler/GHC/Tc/Utils/TcMType.hs
- compiler/GHC/Tc/Zonk/Type.hs
- compiler/GHC/ThToHs.hs
- compiler/GHC/Types/Demand.hs
- compiler/GHC/Types/Error/Codes.hs
- compiler/GHC/Types/Id.hs
- compiler/GHC/Types/Id/Make.hs
- compiler/GHC/Types/RepType.hs
- compiler/GHC/Types/TyThing.hs
- compiler/Language/Haskell/Syntax/Expr.hs
- compiler/ghc.cabal.in
- hadrian/src/Hadrian/Utilities.hs
- hadrian/src/Oracles/ModuleFiles.hs
- hadrian/src/Rules/Dependencies.hs
- hadrian/src/Settings/Parser.hs
- libraries/base/changelog.md
- libraries/base/src/Control/Concurrent.hs
- libraries/base/src/System/Timeout.hs
- libraries/ghc-boot/GHC/Data/SizedSeq.hs
- libraries/ghc-internal/src/GHC/Internal/Conc/Signal.hs
- libraries/ghc-internal/src/GHC/Internal/Event/Windows/ConsoleEvent.hsc
- libraries/ghci/GHCi/Run.hs
- rts/Interpreter.c
- rts/Interpreter.h
- rts/RtsMain.c
- testsuite/tests/core-to-stg/T14895.stderr
- testsuite/tests/core-to-stg/T24124.stderr
- testsuite/tests/count-deps/CountDepsAst.stdout
- testsuite/tests/count-deps/CountDepsParser.stdout
- testsuite/tests/dmdanal/sigs/T21888.stderr
- testsuite/tests/ghc-api/exactprint/T22919.stderr
- testsuite/tests/ghc-api/exactprint/ZeroWidthSemi.stderr
- testsuite/tests/ghci/should_run/T21052.stdout
- testsuite/tests/interface-stability/base-exports.stdout
- testsuite/tests/interface-stability/base-exports.stdout-javascript-unknown-ghcjs
- testsuite/tests/interface-stability/base-exports.stdout-mingw32
- testsuite/tests/interface-stability/base-exports.stdout-ws-32
- testsuite/tests/module/mod185.stderr
- testsuite/tests/numeric/should_compile/T15547.stderr
- testsuite/tests/parser/should_compile/DumpParsedAst.stderr
- testsuite/tests/parser/should_compile/DumpParsedAstComments.stderr
- testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
- testsuite/tests/parser/should_compile/DumpSemis.stderr
- testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr
- testsuite/tests/parser/should_compile/KindSigs.stderr
- testsuite/tests/parser/should_compile/T20718.stderr
- testsuite/tests/parser/should_compile/T20846.stderr
- testsuite/tests/perf/compiler/hard_hole_fits.stderr
- testsuite/tests/printer/Test20297.stdout
- testsuite/tests/printer/Test24533.stdout
- testsuite/tests/simplCore/should_compile/T17366.stderr
- testsuite/tests/simplCore/should_compile/T17966.stderr
- testsuite/tests/simplCore/should_compile/T20040.stderr
- testsuite/tests/simplCore/should_compile/T23083.stderr
- testsuite/tests/simplStg/should_compile/T15226b.stderr
- testsuite/tests/simplStg/should_compile/T19717.stderr
- testsuite/tests/tcplugins/CtIdPlugin.hs
- + testsuite/tests/th/EmptyGuard.hs
- + testsuite/tests/th/EmptyGuard.stderr
- testsuite/tests/th/all.T
- testsuite/tests/wasm/should_run/control-flow/LoadCmmGroup.hs
- utils/check-exact/ExactPrint.hs
- utils/check-exact/Transform.hs
- utils/ghc-toolchain/src/GHC/Toolchain/ParseTriple.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/ff1f263c3a453f84d69aef83b1e115e6b9c089bc...660c4b1d5aaa730a7b54bf3ad443ab0b7829b33b
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/ff1f263c3a453f84d69aef83b1e115e6b9c089bc...660c4b1d5aaa730a7b54bf3ad443ab0b7829b33b
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/20250211/35e1a284/attachment-0001.html>
More information about the ghc-commits
mailing list