summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* testsuite: Add test for #16563wip/T16715Ben Gamari2019-06-173-0/+4
|
* ghci: Don't rely on resolution of System.IO to base moduleBen Gamari2019-06-1713-32/+71
| | | | | | | | | 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.
* Bump unix submoduleBen Gamari2019-06-151-0/+0
| | | | Skips `executeFile001` test in `threaded2` way. Fixes #16814.
* Remove duplicates from 'ghc --info' outputAlp Mestanogullari2019-06-141-5/+0
|
* gitlab-ci: Lint the lintersBen Gamari2019-06-142-15/+28
|
* lint: Only apply --interactive lint to testsuite .T filesBen Gamari2019-06-142-7/+18
|
* gitlab-ci: Lint testsuite for framework failuresBen Gamari2019-06-143-2/+15
| | | | | This introduces a new lint job checking for framework failures and listing broken tests.
* PrelRules: Don't break let/app invariant in shiftRuleBen Gamari2019-06-147-5/+53
| | | | | | | | | | | | | | | | | | | 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.
* Implement the -XUnliftedNewtypes extension.Andrew Martin2019-06-14113-202/+1522
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add Outputable instances for Float, Double.Andreas Klebinger2019-06-131-0/+6
|
* Hadrian: remove superfluous dependencies in Rules.CompileAlp Mestanogullari2019-06-131-2/+0
| | | | | | | | 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.
* Remove unused Unique field from StgFCallOpÖmer Sinan Ağacan2019-06-134-13/+9
| | | | Fixes #16696
* Maintain separate flags for C++ compiler invocationsBen Gamari2019-06-1313-34/+48
| | | | | | | 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.
* gitlab-ci: Disable validate-x86_64-linux-deb9 job to reduce loadBen Gamari2019-06-131-2/+6
| | | | Enable artifacts on to ensure we have bindist coverage.
* gitlab-ci: Disable deb9-llvm job, introduce nightly LLVM jobBen Gamari2019-06-131-1/+12
| | | | | This should help alleviate queue times as the LLVM job is one of the longest that we have.
* testsuite: A more portable solution to #9399Ben Gamari2019-06-136-25/+23
| | | | | | | | 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.
* Clean up .circleciBen Gamari2019-06-135-523/+3
| | | | Move prepare-system.sh to .gitlab and remove everything else.
* gitlab-ci: Don't build PDF user's guide on AArch64Ben Gamari2019-06-131-0/+2
| | | | | For reasons I don't understand sphinx seems to fail to produce a .idx file for makeindex.
* users-guide: Fix a few markup issuesBen Gamari2019-06-132-23/+24
| | | | | | | 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.
* Hadrian: Do not allow the Linux jobs to fail anymoreAlp Mestanogullari2019-06-131-1/+0
| | | | | | 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.
* Hadrian: Track RTS library symlink targetsDavid Eichmann2019-06-135-48/+53
| | | | | This requires creating RTS library symlinks when registering, outside of the rule for the registered library file.
* PrelRules: Ensure that string unpack/append rule fires with source notesBen Gamari2019-06-131-11/+18
| | | | | | | | | | | | | | | | | | | | 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.
* Fix #16525: ObjectCode freed wrongly because of lack of info header checkPhuong Trinh2019-06-138-1/+34
| | | | | | | `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.
* Add a few missing llvm-targetsBen Gamari2019-06-132-18/+58
| | | | | | This should finally fix #14261. [skip ci]
* gitlab-ci: Bump Docker imageBen Gamari2019-06-121-1/+1
| | | | Fixes linters.
* testsuite: Don't run tests requiring TH in profasm way when GhcDynamicBen Gamari2019-06-126-5/+15
| | | | | | | | | | Since we can't load profiled objects when GhcDynamic==YES. Affects: * T16737 * T16384 * T16718 * T16619 * T16190
* testsuite: Unbreak galois_raytrace on i386Ben Gamari2019-06-121-5/+0
| | | | | | | 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.
* testsuite: Skip cgrun078 in ghci wayBen Gamari2019-06-121-1/+1
| | | | This test requires FFI usage.
* process: Bump submoduleBen Gamari2019-06-121-0/+0
| | | | | * Skip process005 in ghci way * Mark process002 as fragile in threaded2
* Bump unix submoduleBen Gamari2019-06-121-0/+0
| | | | Marks posix002 as fragile in threaded2 way due to #16550.
* Fix uses of #ifdef/#ifndefBen Gamari2019-06-123-14/+14
| | | | | The linter now enforces our preference for `#if defined()` and `#if !defined()`.
* gitlab-ci: Fetch submodules before running submodule linterBen Gamari2019-06-121-0/+2
|
* linters/check-makefiles: Limit lint to MakefilesBen Gamari2019-06-122-3/+5
| | | | | | 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.
* testsuite: Note intentional typo in T7130Ben Gamari2019-06-121-0/+1
| | | | I earlier accidentally corrected it breaking the test.
* testsuite: Mark T16737 as broken in ghci way due to #16541Ben Gamari2019-06-121-1/+3
|
* testsuite: Mark T16449_2 as broken due to #16742Ben Gamari2019-06-121-1/+1
|
* testsuite: Skip T493 in ghci way.Ben Gamari2019-06-121-1/+1
| | | | | T493 tests #493, which is an FFI test. FFI tests should be skipped in ghci way.
* testsuite: Omit profasm way for cc017Ben Gamari2019-06-121-1/+2
| | | | cc017 requires TH but we can't load dynamic profiled objects.
* testsuite: Mark threadstatus-T9333 as fragile in ghci wayBen Gamari2019-06-121-1/+1
| | | | As noted in #16555.
* testsuite: Fix omit_ways usageBen Gamari2019-06-127-7/+8
| | | | omit_ways expects a list but this was broken in several cases.
* testsuite: Fix fragile_for test modifierBen Gamari2019-06-121-3/+3
|
* testsuite: Skip T7919 in ghci wayBen Gamari2019-06-121-1/+2
| | | | | It times out pretty reliably. It's not clear that much is gained by running this test in the ghci way anyways.
* testsuite: Mark T2783 as fragile in threaded1Ben Gamari2019-06-121-1/+1
| | | | | It was previously marked as broken but it passes non-deterministically. See #2783.
* testsuite: Mark Overflow as broken in hpc wayBen Gamari2019-06-121-1/+1
| | | | As noted in #16543.
* testsuite: Omit tcrun022 in hpc wayBen Gamari2019-06-121-1/+1
| | | | | As noted in #16542, the expected rule doesn't fire. However, this doesn't seem terribly surpring given the circumstances.
* testsuite: Mark T16180 as broken in ghci and ext-interp waysBen Gamari2019-06-121-2/+5
| | | | As noted in #16541.
* testsuite: Mark T14761c as broken in hpc, profasm, and optasm waysBen Gamari2019-06-121-1/+1
| | | | As noted in #16540.
* testsuite: Mark T13910 as broken in optasmBen Gamari2019-06-121-1/+1
| | | | Due to #16537.
* testsuite: Mark T13167 as fragile in threaded2Ben Gamari2019-06-121-1/+1
| | | | As noted in #16536.
* testsuite: Mark hWaitForInput-accurate-stdin as broken in threaded waysBen Gamari2019-06-121-1/+1
| | | | As noted in #16535.