summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* rts: Annotate benign race in pthread ticker's exit test Ben Gamari2021-12-011-0/+1
| | | | | | | | Previously TSAN would report spurious data races due to the unsynchronized access of `exited`. I would have thought that using a relaxed load on `exited` would be enough to convince TSAN that the race was intentional, but apparently not. Closes #20690.
* Factor our `$dir_$distdir_PKGDATA` make variableJohn Ericson2021-12-012-5/+7
| | | | This makes a few things cleaner.
* Avoid raw `echo` in `FPTOOLS_SET_PLATFORM_VARS`John Ericson2021-12-011-1/+1
| | | | This ensures quiet configuring works.
* Switch RTS cabal file / package conf to use Rts.h not Stg.hJohn Ericson2021-12-012-2/+2
| | | | | | | | | | | | | | | | | When we give cabal a configure script, it seems to begin checking whether or not Stg.h is valid, and then gets tripped up on all the register stuff which evidentally requires obscure command line flags to go. We can side-step this by making the test header Rts.h instead, which is more normal. I was a bit sketched out making this change, as I don't know why the Cabal library would suddenly beging checking the header. But I did confirm even without my RTS configure script the header doesn't compile stand-alone, and also the Stg.h is a probably-arbitrary choice since it dates all the way back to 2002 in 2cc5b907318f97e19b28b2ad8ed9ff8c1f401dcc.
* rts.cabal.in: Move `extra-source-files` so it is validJohn Ericson2021-12-011-4/+5
|
* Fix several quoting issues in testsuiteMatthew Pickering2021-12-014-7/+19
| | | | | | | | | This fixes the ./validate script on my machine. I also took the step to add some linters which would catch problems like these in future. Fixes #20506
* users-guide: Describe requirements of DWARF unwindingBen Gamari2021-12-011-0/+10
| | | | As requested in #20702
* testsuite: Print geometric mean of stat metricsBen Gamari2021-12-011-0/+14
| | | | As suggested in #20733.
* Add failing test for #20674Matthew Pickering2021-12-015-0/+36
|
* user-guide: Fix :since: of -XCApiFFIBen Gamari2021-12-011-1/+1
| | | | Closes #20504.
* hadrian: Document fully_static flavour transformerBen Gamari2021-12-011-0/+4
|
* ghc-compact: Update cabal fileBen Gamari2021-12-011-2/+5
| | | | Improve documentation, bump bounds and cabal-version.
* ghc-cabal: Manually specify -XHaskell2010Ben Gamari2021-12-011-1/+2
| | | | | | | Otherwise we end up with issues like #19631 when bootstrapping using GHC 9.2 and above. Fixes #19631.
* hadrian: Don't pass empty paths via -IBen Gamari2021-12-011-2/+2
| | | | | Previously we could in some cases add empty paths to `cc`'s include file search path. See #20578.
* rts/RtsSymbols: Provide a proper prototype for environBen Gamari2021-12-011-1/+5
| | | | | | | Previously we relied on Sym_NeedsProto, but this gave the symbol a type which conflicts with the definition that may be provided by unistd.h. Fixes #20577.
* Dump non-module specific info to file #20316Carrie Xu2021-12-019-21/+41
| | | | | | | | | - Change the dumpPrefix to FilePath, and default to non-module - Add dot to seperate dump-file-prefix and suffix - Modify user guide to introduce how dump files are named - This commit does not affect Ghci dump file naming. See also #17500
* gitlab-ci: Introduce no_tntc jobBen Gamari2021-12-011-0/+8
| | | | A manual job for testing the non-tables-next-to-code configuration.
* rts: Refactor SRT representation selectionBen Gamari2021-12-014-37/+72
| | | | | | The goal here is to make the SRT selection logic a bit clearer and allow configurations which we currently don't support (e.g. using a full word in the info table even when TNTC is used).
* rts/ProfHeap.c: Use setlocale() on platforms where uselocale() is not availablePHO2021-12-012-6/+17
| | | | Not all platforms have per-thread locales. NetBSD doesn't have uselocale() in particular. Using setlocale() is of course not a safe thing to do, but it would be better than no GHC at all.
* Fix caluclation of nonmoving GC elapsed timeMitchell Rosen2021-11-301-2/+2
| | | | Fixes #20751
* docs/users_guide/bugs.rst: RewordingAnton-Latukha2021-11-291-3/+3
| | | | | | | | It is either "slightly" || "significantly". If it is "bogus" - then no quotes around "optimization" & overall using word "bogus" or use quotes in that way in documentation is... Instead, something like "hack" or "heuristic" can be used there.
* Use Monoid in hptSomeThingsBelowUsSylvain Henry2021-11-291-18/+15
| | | | | | | | | | It seems to have a moderate but good impact on perf tests in CI. In particular: MultiLayerModules(normal) ghc/alloc 3125771138.7 3065532240.0 -1.9% So it's likely that huge projects will benefit from this.
* TTG: replace Void/NoExtCon with DataConCantHappenKrzysztof Gogolewski2021-11-2914-147/+134
| | | | | | | | There were two ways to indicate that a TTG constructor is unused in a phase: `NoExtCon` and `Void`. This unifies the code, and uses the name 'DataConCantHappen', following the discussion at MR 7041. Updates haddock submodule
* linker: Introduce linker_verbose debug outputBen Gamari2021-11-296-115/+132
| | | | | | | | This splits the -Dl RTS debug output into two distinct flags: * `+RTS -Dl` shows errors and debug output which scales with at most O(# objects) * `+RTS -DL` shows debug output which scales with O(# symbols)t
* Make ambient MinGW support a proper settingsJohn Ericson2021-11-2714-40/+55
| | | | | | | Get rid of `USE_INPLACE_MINGW_TOOLCHAIN` and use a settings file entry instead. The CPP setting was originally introduced in f065b6b012.
* Fix top-level configure script so --disable-foo worksJohn Ericson2021-11-271-12/+10
|
* Factor our `FP_CAPITALIZE_YES_NO`John Ericson2021-11-275-17/+18
| | | | | This deduplicates converting from yes/no to YES/NO in the configure scripts while also making it safer.
* Allow keywords which can be used as variables to be used with ↵Matthew Pickering2021-11-263-1/+11
| | | | | | | | | | | | | OverloadedDotSyntax There are quite a few keywords which are allowed to be used as variables. Such as "as", "dependency" etc. These weren't accepted by OverloadedDotSyntax. The fix is pretty simple, use the varid production rather than raw VARID. Fixes #20723
* Reflect type change in the haddock commentKai Prott2021-11-261-1/+1
|
* Adapt plugin test caseKai Prott2021-11-261-1/+1
|
* Fix plugin type to GHC.Plugins.PluginKai Prott2021-11-261-1/+1
|
* Simplify printQualificationKai Prott2021-11-261-7/+2
|
* Remove duplicate importKai Prott2021-11-261-1/+0
|
* Improve error message for mis-typed plugins #20671Kai Prott2021-11-263-16/+26
| | | | Previously, when a plugin could not be loaded because it was incorrectly typed, the error message only printed the expected but not the actual type. This commit augments the error message such that both types are printed and the corresponding module is printed as well.
* Rename Data.Array.ByteArray -> Data.Array.ByteBodigrim2021-11-263-8/+8
|
* Rename Data.ByteArray to Data.Array.ByteArray + add TrustworthyBodigrim2021-11-263-8/+9
|
* Kill a use of %n format specifierGreg Steuck2021-11-253-15/+21
| | | | | | | | | | | | | | This format has been used as a security exploit vector for decades now. Some operating systems (OpenBSD, Android, MSVC). It is targeted for removal in C2X standard: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2834.htm This requires extending the debug message function to return the number of bytes written (like printf(3)), to permit %n format specifier in one in one invocation of statsPrintf() in report_summary(). Implemented by Matthias Kilian (kili<AT>outback.escape.de)
* Permit multiple values in config_args for validateGreg Steuck2021-11-251-1/+1
| | | | | The whitespace expansion should be permitted to pass multiple arguments to configure.
* Link against libatomic for 64-bit atomic operationsIlias Tsitsimpis2021-11-251-6/+37
| | | | | | | Some platforms (e.g., armel) require linking against libatomic for 64-bit atomic operations. Fixes #20549
* hadrian: Add `collect_stats` flavour transformerSebastian Graf2021-11-252-0/+20
| | | | | This is useful for later consumption with https://gitlab.haskell.org/bgamari/ghc-utils/-/blob/master/ghc_timings.py
* compiler: Mark GHC.Prelude as Haddock no-homeBen Gamari2021-11-251-0/+1
| | | | This significantly improves Haddock documentation generated by nix.
* Allow boring class declarations in hs-boot filessheaf2021-11-2514-4/+126
| | | | | | | | | | | | | | | | | | | | | | | There are two different ways of declaring a class in an hs-boot file: - a full declaration, where everything is written as it is in the .hs file, - an abstract declaration, where class methods and superclasses are left out. However, a declaration with no methods and a trivial superclass, such as: class () => C a was erroneously considered to be an abstract declaration, because the superclass is trivial. This is remedied by a one line fix in GHC.Tc.TyCl.tcClassDecl1. This patch also further clarifies the documentation around class declarations in hs-boot files. Fixes #20661, #20588.
* Add `llvmOptLevel` to `DynFlags` (#20500)Gergo ERDI2021-11-252-5/+7
|
* Add specific optimization flag for Cmm control flow analysis (#20500)Gergo ERDI2021-11-254-2/+15
|
* Add specific optimization flag for fast PAP calls (#6084, #20500)Gergo ERDI2021-11-254-1/+5
|
* Use `simplify` in non-optimizing build pipeline (#20500)Gergo ERDI2021-11-251-4/+2
|
* GHCi Debugger - Improve RTTIRoland Senn2021-11-253-10/+13
| | | | | | | When processing the heap, use also `APClosures` to create additional type constraints. This adds more equations and therefore improves the unification process to infer the correct type of values at breakpoints. (Fix the `incr` part of #19559)
* drop instance Semigroup InstalledModuleEnvPepe Iborra2021-11-251-1/+4
| | | | Instead, introduce plusInstalledModuleEnv
* Drop instance Semigroup ModuleEnvPepe Iborra2021-11-251-1/+0
| | | | There is more than one possible Semigroup and it is not needed since plusModuleEnv can be used directly
* Monoid instance for InstalledModuleEnvPepe Iborra2021-11-251-0/+3
|