summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* rts/nonmoving: Enable selector optimisation by defaultwip/nonmoving-gc-fixesBen Gamari2021-09-283-12/+1
|
* rts/primops: Fix write barrier in stg_atomicModifyMutVarzuzhBen Gamari2021-09-281-4/+4
| | | | | | | Previously the call to dirty_MUT_VAR in stg_atomicModifyMutVarzuzh was missing its final argument. Fixes #20414.
* rts/nonmoving: Rename mark_* to trace_*Ben Gamari2021-09-281-42/+42
| | | | These functions really do no marking; they merely trace pointers.
* nonmoving: Fix and factor out mark_trec_chunkBen Gamari2021-09-281-22/+17
| | | | | We need to ensure that the TRecChunk itself is marked, in addition to the TRecs it contains.
* hadrian: Update comments on verbosity handlingMatthew Pickering2021-09-282-2/+14
|
* hadrian: Update documentation for new verbosity optionsMatthew Pickering2021-09-282-37/+5
|
* ci: Increase default verbosity level to `-V` (Verbose)Matthew Pickering2021-09-281-0/+1
| | | | | | | | | Given the previous commit, `-V` allows us to see some useful information in CI (such as the call stack on failure) which normally people don't want to see. As a result the $VERBOSE variable now tweaks the diagnostic level one level higher (to Diagnostic), which produces a lot of output.
* hadrian: Rework the verbosity levelsMatthew Pickering2021-09-286-26/+27
| | | | | | | | | | | | | Before we really only had two verbosity levels, normal and verbose. There are now three levels: Normal: Commands show stderr (no stdout) and minimal build failure messages. Verbose (-V): Commands also show stdout, build failure message contains callstack and additional information Diagnostic (-VV): Very verbose output showing all command lines and passing -v3 to cabal commands. -V is similar to the default verbosity from before (but a little more verbose)
* hadrian: Remove deprecated tracing functionsMatthew Pickering2021-09-2814-27/+27
|
* hadrian: Reduce default verbosityMatthew Pickering2021-09-283-3/+28
| | | | | | | | | | | | | | | | | | | | | | | | | This change reduces the default verbosity of error messages to omit the stack trace information from the printed output. For example, before all errors would have a long call trace: ``` Error when running Shake build system: at action, called at src/Rules.hs:39:19 in main:Rules at need, called at src/Rules.hs:61:5 in main:Rules * Depends on: _build/stage1/lib/package.conf.d/ghc-9.3.conf * Depends on: _build/stage1/compiler/build/libHSghc-9.3.a * Depends on: _build/stage1/compiler/build/GHC/Tc/Solver/Rewrite.o * Depends on: _build/stage1/compiler/build/GHC/Tc/Solver/Rewrite.o _build/stage1/compiler/build/GHC/Tc/Solver/Rewrite.hi at cmd', called at src/Builder.hs:330:23 in main:Builder at cmd, called at src/Builder.hs:432:8 in main:Builder * Raised the exception: ``` Which can be useful but it confusing for GHC rather than hadrian developers. Ticket #20386
* Add `-dsuppress-core-sizes` flag (#20342)Sylvain Henry2021-09-2825-8/+201
| | | | | This flag is used to remove the output of core stats per binding in Core dumps.
* driver: Fix Ctrl-C handling with -j1Matthew Pickering2021-09-281-27/+35
| | | | | | | | | Even in -j1 we now fork all the work into it's own thread so that Ctrl-C exceptions are thrown on the main thread, which is blocked waiting for the work thread to finish. The default exception handler then picks up Ctrl-C exception and the dangling thread is killed. Fixes #20292
* Remove NoGhcTc usage from HsMatchContextArtyom Kuznetsov2021-09-2813-39/+70
| | | | | | NoGhcTc is removed from HsMatchContext. As a result of this, HsMatchContext GhcTc is now a valid type that has Id in it, instead of Name and tcMatchesFun now takes Id instead of Name.
* gitlab-ci: Ensure that temporary home existsBen Gamari2021-09-271-1/+2
|
* gitlab-ci: Don't rely on $HOME when pushing test metricsBen Gamari2021-09-242-9/+14
| | | | | As of cbfc0e933660626c9f4eaf5480076b6fcd31dceb we set $HOME to a non-existent directory to ensure hermeticity.
* Constant-folding for timesInt2# (#20374)Sylvain Henry2021-09-234-0/+94
|
* testsuite: Ensure that C++11 is used in T20199Ben Gamari2021-09-231-1/+1
| | | | Otherwise we are dependent upon the C++ compiler's default language.
* gitlab-ci: Unset MACOSX_DEPLOYMENT_TARGET in stage0 buildBen Gamari2021-09-231-0/+3
| | | | | Otherwise we may get warnings from the toolchain if the bootstrap compiler was built with a different deployment target.
* rts: Ensure that headers don't refer to undefined __STDC_VERSION__Ben Gamari2021-09-231-0/+6
| | | | | | | | | Previously the C/C++ language version check in STG could throw an undefined macro warning due to __STDC_VERSION__ when compiled with a C++ compiler. Fix this by defining __STDC_VERSION__==0 when compiling with a C++ compiler. Fixes #20394.
* testsuite: Fix gnu sed-ismBen Gamari2021-09-232-2/+2
| | | | | The BSD sed implementation doesn't allow `sed -i COMMAND FILE`; one must rather use `sed -i -e COMMAND FILE`.
* testsuite: Don't use cc directly in section_alignment testBen Gamari2021-09-231-1/+1
|
* testsuite: Make unsigned_reloc_macho_x64 and section_alignment makefile_testsBen Gamari2021-09-231-2/+2
|
* testsuite: Fix ipeMapBen Gamari2021-09-231-0/+1
| | | | ipeMap.c failed to #include <string.h>
* testsuite: Pass CFLAGS to hsc2hs testsBen Gamari2021-09-234-10/+19
|
* configure: Clarify meaning of CabalHaveLibffiBen Gamari2021-09-233-7/+3
| | | | | Previously the meaning of this flag was unclear and as a result I suspect that CabalHaveLibffi could be incorrectly False.
* configure: Fix copy/paste errorBen Gamari2021-09-231-1/+1
| | | | | | Previously both the --with-system-libffi path and the non--with-system-libffi path set CabalUseSystemLibFFI=True. This was wrong.
* hadrian: Pass CFLAGS to gmp configureGHC GitLab CI2021-09-231-0/+4
|
* gitlab-ci: bash fixesBen Gamari2021-09-231-3/+3
|
* Ensure that cabal update is invoked before buildingBen Gamari2021-09-231-2/+7
|
* gitlab-ci: Use correct CABAL executableBen Gamari2021-09-231-1/+1
|
* gitlab-ci: Ensure that CABAL_DIR is a Windows pathBen Gamari2021-09-231-2/+8
| | | | Otherwise cabal-install falls over.
* ci: Add version to cache keyBen Gamari2021-09-231-20/+21
|
* configure: Add check for whether CC supports --targetBen Gamari2021-09-233-1/+42
|
* configure: Move nm search logic to new fileBen Gamari2021-09-232-33/+41
|
* ci: More surgical use of nix in Darwin buildsBen Gamari2021-09-236-164/+337
|
* ci: Move phase timing logic into ci.shBen Gamari2021-09-232-101/+33
|
* ci: Isolate build from HOMEBen Gamari2021-09-232-15/+25
|
* ci: Consolidate handling of cabal cacheBen Gamari2021-09-232-10/+24
| | | | | | Previously the cache persistence was implemented as various ad-hoc `cp` commands at the end of the individual CI scripts. Here we move all of this logic into `ci.sh`.
* ci: Drop redundant `cabal update`sBen Gamari2021-09-232-5/+2
| | | | `cabal update` is already implied by `ci.sh setup`.
* Use Info Table Provenances to decode cloned stack (#18163)Sven Tennie2021-09-2340-205/+886
| | | | | | | | | | | | | | | | Emit an Info Table Provenance Entry (IPE) for every stack represeted info table if -finfo-table-map is turned on. To decode a cloned stack, lookupIPE() is used. It provides a mapping between info tables and their source location. Please see these notes for details: - [Stacktraces from Info Table Provenance Entries (IPE based stack unwinding)] - [Mapping Info Tables to Source Positions] Metric Increase: T12545
* Introduce stack snapshotting / cloning (#18741)Sven Tennie2021-09-2324-28/+650
| | | | | | | | | | | | | | Add `StackSnapshot#` primitive type that represents a cloned stack (StgStack). The cloning interface consists of two functions, that clone either the treads own stack (cloneMyStack) or another threads stack (cloneThreadStack). The stack snapshot is offline/cold, i.e. it isn't evaluated any further. This is useful for analyses as it prevents concurrent modifications. For technical details, please see Note [Stack Cloning]. Co-authored-by: Ben Gamari <bgamari.foss@gmail.com> Co-authored-by: Matthew Pickering <matthewtpickering@gmail.com>
* base: Generalize newStablePtrPrimMVarSven Tennie2021-09-231-2/+2
| | | | | Make it polymorphic in the type of the MVar's value. This simple generalization makes it usable for `MVar a` instead of only `MVar ()` values.
* deriveConstants: Add hie.yamlSven Tennie2021-09-231-0/+1
|
* Typo [skip ci]wip/typo-cgMatthew Pickering2021-09-231-1/+1
|
* Remove unused, undocumented debug/dump flag `-ddump-vt-trace`. See 20403.Benjamin Maurer2021-09-223-5/+0
|
* Fix minor inconsistency in documentationalirezaghey2021-09-221-2/+2
| | | | fixes #20388
* Link with libm dynamically (#19877)Sylvain Henry2021-09-2211-10/+26
| | | | The compiler should be independent of the target.
* Convert Diagnostics in GHC.Tc.Gen.* (Part 2)Aaron Allen2021-09-224-114/+330
| | | | | | Converts diagnostics in: (#20116) - GHC.Tc.Gen.Default - GHC.Tc.Gen.Export
* Clarify that malloc, free etc. are the ones from stdlib.hOleg Grenrus2021-09-221-0/+5
|
* hadrian: Disable verbose timing informationMatthew Pickering2021-09-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Before the output contain a lot of verbose information about timining various things to do with shake which wasn't so useful for developers. ``` shakeArgsWith 0.000s 0% Function shake 0.010s 0% Database read 0.323s 12% === With database 0.031s 1% Running rules 2.301s 86% ========================= Pool finished (1786 threads, 5 max) 0.003s 0% Cleanup 0.000s 0% Total 2.669s 100% Build completed in 2.67s ``` Now the output just contains the last line ``` Build completed in 2.67s ``` Ticket #20381