| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.,
|
|
|
|
|
| |
The previous representation needlessly limited the array length to
16-bits on 32-bit platforms.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
The previous commit hasn't made it to master yet.
|
|
|
|
| |
Adopts the language suggested by @JakobBruenker.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Bumps haddock submodule.
|
|
|
|
|
| |
We ran it against the .git directory despite the fact that the linter
wants to be run against the repository.
|
| |
|
|
|
|
| |
This statistic is rather unstable. Hopefully fixes #17475.
|
| |
|
| |
|
|
|
|
|
| |
This is an attempt to mitigate #17480 by ensuring that a functional version of
the process library is available before attempting the build.
|
| |
|
|
|
|
|
| |
Metric Increase:
T4801
|
|
|
|
| |
Haskeline now depends upon exceptions. See #16752.
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
As noted in #17458, QuantifiedConstraints and UndecideableInstances
could previously be used to write programs which can loop at runtime.
This was fixed in !1870.
|
|
|
|
| |
By only using 'export' from within bash commands.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
[ci skip]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
This addresses #17456 and also fixes the --metrics-file argument that Hadrian
passes to the testsuite driver.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
A missing prime meant that we were considering the wrong
type in the GHCi debugger, when doing :force on multiple
arguments (issue #17431).
The fix is trivial.
|
|
|
|
|
|
| |
As noted in #17452, this test produces very long file paths which
exceed the Windows MAX_PATH limitation. Mark the test as fragile for not
until we can come up with a better solution.
|
|
|
|
|
|
|
|
|
|
|
| |
This test is quite sensitive to the build configuration as it requires that ghc
have unfoldings, which isn't true in the quick build flavours. I considered
various options to make the test more robust but none of them seemed
particularly appealing. Moreover, Simon PJ was a bit skeptical of the value of
the test to begin with and I strongly suspect that any regression in #7995
would be accompanied by failures in our other compiler performance tests.
Closes #17399.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bizarrely, `saks028` previously failed reliably, but only on Windows
(#17450). The test would exit with a zero exit code but simply didn't
emit the expected text to stderr.
I believe this was due to the fact that the test used `putStrLn`,
resulting in the output ending up on stdout. This worked on other
platforms since (apparently) we redirect stdout to stderr when
evaluating splices. However, on Windows it seems that the redirected
output wasn't flushed as it was on other platforms.
Anyways, it seems like the right thing to do here is to be explicit
about our desire for the output to end up on stderr.
Closes #17450.
|
|
|
|
|
|
|
|
|
| |
As described in #17449, PartialDownsweep is currently fragile due to its
dependence on the error messages produced by the C preprocessor. To eliminate
this dependence we simply ignore stderr output, instead relying on the fact
that the test will exit with a non-zero exit code on failure.
Fixes #17449.
|
|
|
|
|
|
| |
This consistently times out on Windows as described in #17453. I have tried
increasing the timeout multiplier to two yet it stills fails. Disabling
until we have time to investigate.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GHCi script for T16511 had some `rm` commands to clean up output
from previous runs. This should be harmless since stderr was redirected
to /dev/null; however, it seems that this redirection doesn't work on
Windows (perhaps because GHCi uses `cmd` to execute the command-line;
I'm not sure). I tried to fix it but was unable to find a sensible
solution.
Regardless, the cleaning logic is quite redundant now that we run each
test in a hermetic environment. Let's just remove it.
|
|
|
|
| |
This was previously broken due to #16386 yet it passes for me locally.
|
|
|
|
|
| |
It was previously marked as broken due to #12236 however it passes for
me locally while failing on CI.
|
|
|
|
| |
Due to #17447.
|