summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* testsuite: Drop testheapalloced.cwip/T22414Ben Gamari2022-12-211-100/+0
| | | | | | | As noted in #22414, this file (which appears to be a benchmark for characterising the one-step allocator's MBlock cache) is currently unreferenced. Remove it. Closes #22414.
* Fix an assertion check in addToEqualCtListSimon Peyton Jones2022-12-214-9/+42
| | | | | | | The old assertion saw that a constraint ct could rewrite itself (of course it can) and complained (stupid). Fixes #22645
* Fix shadowing lacuna in OccurAnalSimon Peyton Jones2022-12-215-23/+129
| | | | | | | | | | | | Issue #22623 demonstrated another lacuna in the implementation of wrinkle (BS3) in Note [The binder-swap substitution] in the occurrence analyser. I was failing to add TyVar lambda binders using addInScope/addOneInScope and that led to a totally bogus binder-swap transformation. Very easy to fix.
* rts: explicitly store return value of ccall checkClosure to prevent type ↵Ying-Ruei Liang (TheKK)2022-12-211-1/+2
| | | | error (#22617)
* Abstract over the right free varsSimon Peyton Jones2022-12-215-53/+142
| | | | | | | | | | | | | | | | | Fix #22459, in two ways: (1) Make the Specialiser not create a bogus specialisation if it is presented by strangely polymorphic dictionary. See Note [Weird special case in SpecDict] in GHC.Core.Opt.Specialise (2) Be more careful in abstractFloats See Note [Which type variables to abstract over] in GHC.Core.Opt.Simplify.Utils. So (2) stops creating the excessively polymorphic dictionary in abstractFloats, while (1) stops crashing if some other pass should nevertheless create a weirdly polymorphic dictionary.
* Fix testsBodigrim2022-12-211-1/+1
| | | | | | | T13253 imports MonadTrans, which acquired a quantified constraint in transformers-0.6, thus increase in allocations Metric Increase: T13253
* Update submodule transformers to 0.6.0.4Bodigrim2022-12-211-0/+0
|
* Update submodule haskeline to HEAD (to allow transformers-0.6)Bodigrim2022-12-211-0/+0
|
* Allow transformers-0.6 in ghc, ghci, ghc-bin and hadrianBodigrim2022-12-214-4/+4
|
* Make GHC.Driver.Main.hscTcRnLookupRdrName to return NonEmptyBodigrim2022-12-204-28/+27
|
* GHCi.UI: avoid head and tail in parseCallEscape and aroundBodigrim2022-12-201-16/+18
|
* GHCi.UI: fix various usages of head and tailBodigrim2022-12-201-28/+25
|
* configure: Use AS_HELP_STRING instead of AC_HELP_STRINGBen Gamari2022-12-201-1/+1
| | | | | | The latter has been deprecated. See #22566.
* configure: Drop uses of AC_PROG_CC_C99Ben Gamari2022-12-203-48/+0
| | | | | | | As noted in #22566, this macro is deprecated as of autoconf-2.70 `AC_PROG_CC` now sets `ac_cv_prog_cc_c99` itself. Closes #22566.
* packaging: Fix upload_ghc_libs.py scriptMatthew Pickering2022-12-201-3/+8
| | | | | | | This change reflects the changes where .cabal files are now generated by hadrian rather than ./configure. Fixes #22518
* Scrub some partiality in `GHC.Cmm.Info.Build`: `doSRTs` takes a `[(CAFSet, ↵M Farkas-Dyck2022-12-204-9/+23
| | | | CmmDecl)]` but truly wants a `[(CAFSet, CmmStatics)]`.
* testsuite: Mark T16392 as fragile on windowswip/fragile-testMatthew Pickering2022-12-201-1/+3
| | | | See #22649
* rts/libdw: Silence uninitialized usage warningsBen Gamari2022-12-181-3/+3
| | | | | | | | As noted in #22538, previously some GCC versions warned that various locals in Libdw.c may be used uninitialized. Although this wasn't strictly true (since they were initialized in an inline assembler block) we fix this by providing explicit empty initializers. Fixes #22538
* rts: Drop racy assertionBen Gamari2022-12-181-0/+3
| | | | | | | 0e274c39bf836d5bb846f5fa08649c75f85326ac added an assertion in `dirty_MUT_VAR` checking that the MUT_VAR being dirtied was clean. However, this isn't necessarily the case since another thread may have raced us to dirty the object.
* Correct `exitWith` Haddocksamesgen2022-12-181-7/+5
| | | | The `IOError`-specific `catch` in the Prelude is long gone.
* ci: support hello.wasm in ci.sh cross testing logicCheng Shao2022-12-171-0/+4
|
* compiler: make .wasm the default executable extension on wasm32Cheng Shao2022-12-172-4/+5
| | | | Following convention as in other wasm toolchains. Fixes #22594.
* base: add missing autoconf checks for waitpid/umaskCheng Shao2022-12-172-0/+12
| | | | These are not present in wasi-libc. Required for fixing #22589
* compiler: add optional tail-call support in wasm NCGCheng Shao2022-12-167-32/+87
| | | | | | | | | When the `-mtail-call` clang flag is passed at configure time, wasm tail-call extension is enabled, and the wasm NCG will emit `return_call`/`return_call_indirect` instructions to take advantage of it and avoid the `StgRun` trampoline overhead. Closes #22461.
* compiler: change fallback function signature to Cmm function signature in ↵Cheng Shao2022-12-161-2/+4
| | | | | | | | | | wasm NCG In the wasm NCG, when handling a `CLabel` of undefined function without knowing its function signature, we used to fallback to `() -> ()` which is accepted by `wasm-ld`. This patch changes it to the signature of Cmm functions, which equally works, but would be required when we emit tail call instructions.
* compiler: add missing export list of GHC.CmmToAsm.Wasm.FromCmmCheng Shao2022-12-161-63/+7
| | | | Also removes some unreachable code here.
* compiler: remove obsolete commented code in wasm NCGCheng Shao2022-12-161-1/+0
| | | | | It was just a temporary hack to workaround a bug in the relooper, that bug has been fixed long before the wasm backend is merged.
* testsuite: Mark T9405 as fragile instead of broken on WindowsCheng Shao2022-12-161-1/+1
| | | | It's starting to pass again, and the unexpected pass blocks CI.
* Accept allocations increase on WindowsBodigrim2022-12-160-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is because of `filepath-1.4.100.0` and AFPP, causing increasing round-trips between lists and ByteArray. See #22625 for discussion. Metric Increase: MultiComponentModules MultiComponentModulesRecomp MultiLayerModules MultiLayerModulesRecomp T10421 T10547 T12150 T12227 T12234 T12425 T13035 T13253 T13253-spj T13701 T13719 T15703 T16875 T18140 T18282 T18304 T18698a T18698b T18923 T20049 T21839c T21839r T5837 T6048 T9198 T9961 TcPlugin_RewritePerf hard_hole_fits
* Bump submodule directory to 1.3.8.0 and hpc to HEADBodigrim2022-12-162-0/+0
|
* rts: Note race with wakeBlockingQueueBen Gamari2022-12-161-1/+2
|
* rts: Ensure that all accesses to pending_sync are atomicBen Gamari2022-12-161-2/+2
|
* rts: Statically allocate capabilitiesBen Gamari2022-12-163-19/+19
| | | | This is a rather simplistic way of solving #17289.
* rts: Use ordered accesses instead of explicit barriersBen Gamari2022-12-162-8/+6
|
* rts: Fix ordering of makeStableNameBen Gamari2022-12-161-5/+3
|
* compiler: Use release store in eager blackholingBen Gamari2022-12-161-2/+2
|
* rts: Style fixBen Gamari2022-12-161-6/+3
|
* PrimOps: Fix benign MutVar raceBen Gamari2022-12-161-2/+2
| | | | Relaxed ordering is fine here since the later CAS implies a release.
* rts: Encapsulate sched_stateBen Gamari2022-12-1610-42/+53
|
* rts: Encapsulate access to capabilities arrayBen Gamari2022-12-1623-148/+156
|
* rts: Encapsulate recent_activity accessBen Gamari2022-12-165-25/+45
| | | | | This makes it easier to ensure that it is accessed using the necessary atomic operations.
* rts/Timer: Always use atomic operationsBen Gamari2022-12-163-17/+41
| | | | | | As noted in #22447, the existence of the pthread-based ITimer implementation means that we cannot assume that the program is single-threaded.
* rts: Always use atomics for context_switch and interruptBen Gamari2022-12-164-12/+17
| | | | Since these are modified by the timer handler.
* ghc: Fix data race in dump file handlingBen Gamari2022-12-161-12/+21
| | | | | | | Previously the dump filename cache would use a non-atomic update which could potentially result in lost dump contents. Note that this is still a bit racy since the first writer may lag behind a later appending writer.
* rts: Introduce getNumCapabilitiesBen Gamari2022-12-1632-122/+130
| | | | | | And ensure accesses to n_capabilities are atomic (although with relaxed ordering). This is necessary as RTS API callers may concurrently call into the RTS without holding a capability.
* Improve heap memory barrier NoteBen Gamari2022-12-165-105/+193
| | | | | Also introduce MUT_FIELD marker in Closures.h to document mutable fields.
* rts/stm: Fix memory ordering in readTVarIO#Ben Gamari2022-12-161-2/+1
| | | | See #22421.
* rts: Use fences instead of explicit barriersBen Gamari2022-12-165-31/+44
|
* Introduce SET_INFO_RELEASE for CmmBen Gamari2022-12-163-4/+3
|
* eventlog: Silence spurious data raceBen Gamari2022-12-161-1/+3
|