summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Packages: Don't use expectJustwip/no-expectJustBen Gamari2019-11-191-5/+8
| | | | | Throw a slightly more informative error on failure. Motivated by the errors seen in !2160.
* nonmoving: Drop redundant write barrier on stack underflowBen Gamari2019-11-191-10/+0
| | | | | | | | | | | | | Previously we would push stack-carried return values to the new stack on a stack overflow. While the precise reasoning for this barrier is unfortunately lost to history, in hindsight I suspect it was prompted by a missing barrier elsewhere (that has been since fixed). Moreover, there the redundant barrier is actively harmful: the stack may contain non-pointer values; blindly pushing these to the mark queue will result in a crash. This is precisely what happened in the `stack003` test. However, because of a (now fixed) deficiency in the test this crash did not trigger on amd64.
* testsuite: Increase width of stack003 testBen Gamari2019-11-191-5/+11
| | | | | | Previously the returned tuple seemed to fit in registers on amd64. This meant that non-moving collector bug would cause the test to fail on i386 yet not amd64.
* nonmoving: Fix handling on large object marking on 32-bitBen Gamari2019-11-191-4/+7
| | | | | | | | | Previously we would reset the pointer pointing to the object to be marked to the beginning of the block when marking a large object. This did no harm on 64-bit but on 32-bit it broke, e.g. `arr020`, since we align pinned ByteArray allocations such that the payload is 8 byte-aligned. This means that the object might not begin at the beginning of the block.,
* nonmoving: Rework mark queue representationBen Gamari2019-11-192-23/+18
| | | | | The previous representation needlessly limited the array length to 16-bits on 32-bit platforms.
* nonmoving: Fix incorrect masking in mark queue type testBen Gamari2019-11-191-2/+2
| | | | | | We were using TAG_BITS instead of TAG_MASK. This happened to work on 64-bit platforms where TAG_BITS==3 since we only use tag values 0 and 3. However, this broken on 32-bit platforms where TAG_BITS==2.
* nonmoving: Use correct info table pointer accessorBen Gamari2019-11-192-19/+7
| | | | | | | | | | | Previously we used INFO_PTR_TO_STRUCT instead of THUNK_INFO_PTR_TO_STRUCT when looking at a thunk. These two happen to be equivalent on 64-bit architectures due to alignment considerations however they are different on 32-bit platforms. This lead to #17487. To fix this we also employ a small optimization: there is only one thunk of type WHITEHOLE (namely stg_WHITEHOLE_info). Consequently, we can just use a plain pointer comparison instead of testing against info->type.
* rts: Add missing include of SymbolExtras.hBen Gamari2019-11-191-0/+1
| | | | This broke the Windows build.
* Properly account for libdw paths in make build systemBen Gamari2019-11-194-3/+14
| | | | Should finally fix #17255.
* Packages.hs: use O(n*log(n)) ordNub instead of O(n*n) nubÖmer Sinan Ağacan2019-11-191-6/+6
| | | | | As reported in #8173 in some environments package lists can get quite long, so we use more efficient ordNub instead of nub on package lists.
* Enable USE_PTHREAD_FOR_ITIMER also on FreeBSDViktor Dukhovni2019-11-191-0/+3
| | | | | | | | | | | If using a pthread instead of a timer signal is more reliable, and has no known drawbacks, then FreeBSD is also capable of supporting this mode of operation (tested on FreeBSD 12 with GHC 8.8.1, but no reason why it would not also work on FreeBSD 11 or GHC 8.6). Proposed by Kevin Zhang in: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241849
* Give seq a more precise type and remove magicBen Gamari2019-11-1911-170/+142
| | | | | | | | | | | | | | | | | | | | | `GHC.Prim.seq` previously had the rather plain type: seq :: forall a b. a -> b -> b However, it also had a special typing rule to applications where `b` is not of kind `Type`. Issue #17440 noted that levity polymorphism allows us to rather give it the more precise type: seq :: forall (r :: RuntimeRep) a (b :: TYPE r). a -> b -> b This allows us to remove the special typing rule that we previously required to allow applications on unlifted arguments. T9404 contains a non-Type application of `seq` which should verify that this works as expected. Closes #17440.
* desugar: Drop stale Note [Matching seqId]Ben Gamari2019-11-191-6/+0
| | | | | The need for this note vanished in eae703aa60f41fd232be5478e196b661839ec3de.
* Optimize MonadUnique instances based on IO (#16843)nineonine2019-11-1911-121/+79
| | | | | Metric Decrease: T14683
* testsuite: Skip T17414 on LinuxBen Gamari2019-11-171-0/+4
| | | | | | It is typical for $TMP to be a small tmpfson Linux. This test will fail in such cases since we must create a file larger than the filesystem. See #17459.
* Turn some comments into GHC.Hs.Utils into haddocksAndreas Klebinger2019-11-171-37/+46
|
* Fixed issue #17435, missing Data instancesMario Blažević2019-11-172-0/+16
|
* Fix random typos [skip ci]nineonine2019-11-178-9/+9
|
* exceptions: Bump submodule back to masterBen Gamari2019-11-171-0/+0
| | | | The previous commit hasn't made it to master yet.
* users-guide: Address #17329Ben Gamari2019-11-171-7/+7
| | | | Adopts the language suggested by @JakobBruenker.
* Make test 16916 more stable across runsIvan Kasatenko2019-11-171-2/+2
|
* testsuite: Don't collect residency for T4801Ben Gamari2019-11-171-1/+0
| | | | | | I previously increased the size of the acceptance window from 2% to 5% but this still isn't enough. Regardless, measuring bytes allocated should be sufficient to catch any regressions.
* Bump version to 8.10.0Ben Gamari2019-11-173-1/+1
| | | | Bumps haddock submodule.
* gitlab-ci: Fix submodule linterBen Gamari2019-11-171-2/+2
| | | | | We ran it against the .git directory despite the fact that the linter wants to be run against the repository.
* users-guide: Drop 8.6.1 release notesBen Gamari2019-11-152-293/+0
|
* testsuite: Increase acceptance window of T4801Ben Gamari2019-11-151-1/+1
| | | | This statistic is rather unstable. Hopefully fixes #17475.
* llvm-targets: Update with Clang 9wip/llvm9Ben Gamari2019-11-151-23/+23
|
* Bump supported LLVM version to 9.0Ben Gamari2019-11-152-2/+2
|
* gitlab-ci: Install process to global pkgdb before starting buildBen Gamari2019-11-151-0/+2
| | | | | This is an attempt to mitigate #17480 by ensuring that a functional version of the process library is available before attempting the build.
* gitlab-ci: Allow Windows to fail againBen Gamari2019-11-141-0/+1
|
* base: Bump version to 4.14.0.0Ben Gamari2019-11-1431-25/+22
| | | | | Metric Increase: T4801
* Bump Haskeline and add exceptions as boot libraryBen Gamari2019-11-139-21/+61
| | | | Haskeline now depends upon exceptions. See #16752.
* Only pass mod_location with HscRecomp instead of the entire ModSummaryÖmer Sinan Ağacan2019-11-133-15/+12
| | | | | | | | HscRecomp users only need the ModLocation of the module being compiled, so only pass that to users instead of the entire ModSummary Metric Decrease: T4801
* Print name prefixly in the Outputable instance for StandaloneKindSigRyan Scott2019-11-134-1/+20
| | | | | | | | | Issue #17461 was occurring because the `Outputable` instance for standalone kind signatures was simply calling `ppr` on the name in the kind signature, which does not add parentheses to infix names. The solution is simple: use `pprPrefixOcc` instead. Fixes #17461.
* users guide: Fix broken linkBen Gamari2019-11-131-1/+5
|
* testsuite: Add test for #17458Ben Gamari2019-11-133-0/+59
| | | | | | As noted in #17458, QuantifiedConstraints and UndecideableInstances could previously be used to write programs which can loop at runtime. This was fixed in !1870.
* hadrian: fix Windows CI scriptAlp Mestanogullari2019-11-131-3/+2
| | | | By only using 'export' from within bash commands.
* Ensure that coreView/tcView are able to inlineBen Gamari2019-11-1340-246/+224
| | | | | | | | | | | | | | | | | | | | Previously an import cycle between Type and TyCoRep meant that several functions in TyCoRep ended up SOURCE import coreView. This is quite unfortunate as coreView is intended to be fused into a larger pattern match and not incur an extra call. Fix this with a bit of restructuring: * Move the functions in `TyCoRep` which depend upon things in `Type` into `Type` * Fold contents of `Kind` into `Type` and turn `Kind` into a simple wrapper re-exporting kind-ish things from `Type` * Clean up the redundant imports that popped up as a result Closes #17441. Metric Decrease: T4334
* Document CmmTopInfo typeÖmer Sinan Ağacan2019-11-131-0/+2
| | | | [ci skip]
* testsuite: don't collect compiler stats in collect_runtime_residencyAlp Mestanogullari2019-11-121-1/+1
| | | | | | | | | | | | | | | | | | | We instead want to collect the runtime stats (with collect_stats, instead of collect_compiler_stats). This should fix a number of perf tests failures we have been seeing, where we suddenly started measuring metrics we didn't intend to measure, which tend to fall outside of the acceptance window. Metric Decrease: lazy-bs-alloc T3586 Metric Increase: space_leak_001 T4801 T5835 T12791
* ci: push perf test metrics even when the testsuite doesn't passAlp Mestanogullari2019-11-111-1/+1
| | | | | | | | | | | | | | | | The corresponding commit might introduce a regression on a perf test, in which case we certainly want to record it. The testsuite might also fail because of a test unrelated to performance, in which case we want to record that the perf test results were good. Either way, we likely want to record them under all circumstances but we don't without this patch. Metric Decrease: T3586 Metric Increase: lazy-bs-alloc
* testsuite: Disable T4334 in nonmoving_thr waywip/alp/hadrian-ci-metricsfileBen Gamari2019-11-111-2/+3
|
* hadrian: export METRICS_FILE to make it accessible to perf notes scriptAlp Mestanogullari2019-11-112-5/+4
| | | | | This addresses #17456 and also fixes the --metrics-file argument that Hadrian passes to the testsuite driver.
* testsuite: Don't check_stats at runtime if not requestedwip/T17387Ben Gamari2019-11-101-4/+9
| | | | | | Previously we would call check_stats to check the runtime metrics even if the test definition hadn't requested it. This would result in an error since the .stats file doesn't exist.
* testsuite: Use small allocation area when measuring residencyBen Gamari2019-11-105-83/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | As suggested in #17387; this helps reduce the variance in our residency sampling. Metric Increase: T10370 T3586 lazy-bs-alloc Metric Decrease 'compile_time/peak_megabytes_allocated': T1969 Metric Decrease 'runtime/bytes allocated': space_leak_001 Metric Increase 'compile_time/bytes allocated': T1969 Metric Increase 'runtime/peak_megabytes_allocated': space_leak_001 Metric Decrease: T3064 T9675
* testsuite: Mark tests fragile in threaded2 as fragile in all concurrent waysBen Gamari2019-11-106-4/+4
|
* Fix #17405 by not checking imported equationsRichard Eisenberg2019-11-1017-177/+241
| | | | | | | | | | | | | Previously, we checked all imported type family equations for injectivity. This is very silly. Now, we check only for conflicts. Before I could even imagine doing the fix, I needed to untangle several functions that were (in my opinion) overly complicated. It's still not quite as perfect as I'd like, but it's good enough for now. Test case: typecheck/should_compile/T17405
* Update release notes about #16512 / #17405.Richard Eisenberg2019-11-101-0/+12
|
* Improve SPECIALIZE pragma error messages (Fixes #12126)Alina Banerjee2019-11-106-8/+10
|
* Fix incorrect pluralsBrian Wignall2019-11-091-1/+1
|