| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
Previously we would hackily evaluate a textual code snippet to compute
actions to disable I/O buffering and flush the stdout/stderr handles.
This broke in a number of ways (#15336, #16563).
Instead we now ship a module (`GHC.GHCi.Helpers`) with `base` containing
the needed actions. We can then easily refer to these via `Orig` names.
|
|
|
|
| |
Skips `executeFile001` test in `threaded2` way. Fixes #16814.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This introduces a new lint job checking for framework failures and
listing broken tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously shiftRule would rewrite as invalid shift like
```
let x = I# (uncheckedIShiftL# n 80)
in ...
```
to
```
let x = I# (error "invalid shift")
in ...
```
However, this breaks the let/app invariant as `error` is not
okay-for-speculation. There isn't an easy way to avoid this so let's not
try. Instead we just take advantage of the undefined nature of invalid
shifts and return zero.
Fixes #16742.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GHC Proposal: 0013-unlifted-newtypes.rst
Discussion: https://github.com/ghc-proposals/ghc-proposals/pull/98
Issues: #15219, #1311, #13595, #15883
Implementation Details:
Note [Implementation of UnliftedNewtypes]
Note [Unifying data family kinds]
Note [Compulsory newtype unfolding]
This patch introduces the -XUnliftedNewtypes extension. When this
extension is enabled, GHC drops the restriction that the field in
a newtype must be of kind (TYPE 'LiftedRep). This allows types
like Int# and ByteArray# to be used in a newtype. Additionally,
coerce is made levity-polymorphic so that it can be used with
newtypes over unlifted types.
The bulk of the changes are in TcTyClsDecls.hs. With -XUnliftedNewtypes,
getInitialKind is more liberal, introducing a unification variable to
return the kind (TYPE r0) rather than just returning (TYPE 'LiftedRep).
When kind-checking a data constructor with kcConDecl, we attempt to
unify the kind of a newtype with the kind of its field's type. When
typechecking a data declaration with tcTyClDecl, we again perform a
unification. See the implementation note for more on this.
Co-authored-by: Richard Eisenberg <rae@richarde.dev>
|
| |
|
|
|
|
|
|
|
|
| |
Each package's object files were 'need'ing the library files of all transitive
dependencies of the current package, whichi is pointless since the said
libraries are not needed until we link those object files together.
This fixes #16759.
|
|
|
|
| |
Fixes #16696
|
|
|
|
|
|
|
| |
Previously we would pass flags intended for the C compiler to the C++
compiler (see #16738). This would cause, for instance, `-std=gnu99` to
be passed to the C++ compiler, causing spurious test failures. Fix this
by maintaining a separate set of flags for C++ compilation invocations.
|
|
|
|
| |
Enable artifacts on to ensure we have bindist coverage.
|
|
|
|
|
| |
This should help alleviate queue times as the LLVM job is one of the
longest that we have.
|
|
|
|
|
|
|
|
| |
Previously we used an awful hybrid batch script/Bourne shell script to
allow this test to run both on Windows and Linux (fixing #9399).
However, this breaks on some libc implementations (e.g. musl). Fix this.
Fixes #16798.
|
|
|
|
| |
Move prepare-system.sh to .gitlab and remove everything else.
|
|
|
|
|
| |
For reasons I don't understand sphinx seems to fail to produce a .idx
file for makeindex.
|
|
|
|
|
|
|
| |
Strangely these were only causing the build to fail in the aarch64-linux
job, despite Sphinx throwing errors in all jobs I checked.
Also changes some `#ifdef`s to `#if defined` to satisfy the linter.
|
|
|
|
|
|
| |
MR !1151 makes the Hadrian/Linux job pass by fixing the last two test failures,
so we can now be stricter and not allow those jobs to fail anymore, easily
letting us see when patches introduce test failures.
|
|
|
|
|
| |
This requires creating RTS library symlinks when registering, outside
of the rule for the registered library file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the presence of source notes could hide nested applications
of `unpackFoldrCString#` from our constant folding logic. For instance,
consider the expression:
```haskell
unpackFoldrCString# "foo" c (unpackFoldrCString# "baz" c n)
```
Specifically, ticks appearing in two places can defeat the rule:
a. Surrounding the inner application of `unpackFoldrCString#`
b. Surrounding the fold function, `c`
The latter caused the `str_rules` testcase to fail when `base` was built
with `-g3`.
Fixes #16740.
|
|
|
|
|
|
|
| |
`checkUnload` currently doesn't check the info header of static objects.
Thus, it may free an `ObjectCode` struct wrongly even if there's still a
live static object whose info header lies in a mapped section of that
`ObjectCode`. This fixes the issue by adding an appropriate check.
|
|
|
|
|
|
| |
This should finally fix #14261.
[skip ci]
|
|
|
|
| |
Fixes linters.
|
|
|
|
|
|
|
|
|
|
| |
Since we can't load profiled objects when GhcDynamic==YES. Affects:
* T16737
* T16384
* T16718
* T16619
* T16190
|
|
|
|
|
|
|
| |
galois_raytrace was previously broken on i386 due to use of x87
arithmethic on that platform. However,
42504f4a575395a35eec5c3fd7c9ef6e2b54e68e removes x87 support; this
resulted in an unexpected pass. Unmark this test as broken.
|
|
|
|
| |
This test requires FFI usage.
|
|
|
|
|
| |
* Skip process005 in ghci way
* Mark process002 as fragile in threaded2
|
|
|
|
| |
Marks posix002 as fragile in threaded2 way due to #16550.
|
|
|
|
|
| |
The linter now enforces our preference for `#if defined()` and
`#if !defined()`.
|
| |
|
|
|
|
|
|
| |
Previously we would apply this rule, which is only intended for
testsuite Makefiles, to all files. This lead to a number of
false-positives in all.T files.
|
|
|
|
| |
I earlier accidentally corrected it breaking the test.
|
| |
|
| |
|
|
|
|
|
| |
T493 tests #493, which is an FFI test. FFI tests should be skipped
in ghci way.
|
|
|
|
| |
cc017 requires TH but we can't load dynamic profiled objects.
|
|
|
|
| |
As noted in #16555.
|
|
|
|
| |
omit_ways expects a list but this was broken in several cases.
|
| |
|
|
|
|
|
| |
It times out pretty reliably. It's not clear that much is gained by
running this test in the ghci way anyways.
|
|
|
|
|
| |
It was previously marked as broken but it passes non-deterministically.
See #2783.
|
|
|
|
| |
As noted in #16543.
|
|
|
|
|
| |
As noted in #16542, the expected rule doesn't fire. However, this
doesn't seem terribly surpring given the circumstances.
|
|
|
|
| |
As noted in #16541.
|
|
|
|
| |
As noted in #16540.
|
|
|
|
| |
Due to #16537.
|
|
|
|
| |
As noted in #16536.
|
|
|
|
| |
As noted in #16535.
|