summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* rts/ThreadPaused: Ordering fixesBen Gamari2022-12-161-2/+2
|
* rts/Messages: RefactorBen Gamari2022-12-161-27/+20
| | | | This doesn't change behavior but makes the code a bit easier to follow.
* checkValidInst: Don't expand synonyms when splitting sigma typesRyan Scott2022-12-154-2/+55
| | | | | | | | | | | | | | | Previously, the `checkValidInst` function (used when checking that an instance declaration is headed by an actual type class, not a type synonym) was using `tcSplitSigmaTy` to split apart the `forall`s and instance context. This is incorrect, however, as `tcSplitSigmaTy` expands type synonyms, which can cause instances headed by quantified constraint type synonyms to be accepted erroneously. This patch introduces `splitInstTyForValidity`, a variant of `tcSplitSigmaTy` specialized for validity checking that does _not_ expand type synonyms, and uses it in `checkValidInst`. Fixes #22570.
* Fix bogus test in LintSimon Peyton Jones2022-12-156-79/+66
| | | | | | | | | | | | The Lint check for branch compatiblity within an axiom, in GHC.Core.Lint.compatible_branches was subtly different to the check made when contructing an axiom, in GHC.Core.FamInstEnv.compatibleBranches. The latter is correct, so I killed the former and am now using the latter. On the way I did some improvements to pretty-printing and documentation.
* compiler: Ensure that MutVar operations have necessary barriersBen Gamari2022-12-151-4/+5
| | | | | | | Here we add acquire and release barriers in readMutVar# and writeMutVar#, which are necessary for soundness. Fixes #22468.
* Package Imports: Get candidate packages also from re-exported modulesMatthew Pickering2022-12-1516-3/+147
| | | | | | | | Previously we were just looking at the direct imports to try and work out what a package qualifier could apply to but #22333 pointed out we also needed to look for reexported modules. Fixes #22333
* rts: Ensure that global regs are never passed as fun call argsBen Gamari2022-12-151-3/+3
| | | | | This is in general unsafe as they may be clobbered if they are mapped to caller-saved machine registers. See Note [Register parameter passing].
* hadrian: Enable Cmm instrumentation in TSAN flavourBen Gamari2022-12-151-1/+1
|