summaryrefslogtreecommitdiff
path: root/testsuite
Commit message (Collapse)AuthorAgeFilesLines
* testsuite: Don't crash on encoding failure in printBen Gamari2020-01-241-2/+6
| | | | | | If the user doesn't use a Unicode locale then the testsuite driver would previously throw framework failures due to encoding failures. We now rather use the `replace` error-handling strategy.
* testsuite/T16930: Don't rely on gnu grep specific --includeBen Gamari2020-01-242-12/+12
| | | | In BSD grep this flag only affects directory recursion.
* testsuite: Mark T6132 as broken on FreeBSDBen Gamari2020-01-241-1/+3
|
* testsuite: Disable tests that assume name of libstdc++ on FreeBSDBen Gamari2020-01-242-3/+16
|
* testsuite: Don't ask sed to operate in-place on symlinksBen Gamari2020-01-241-0/+4
| | | | | Some sed implementations (e.g. FreeBSD) refuse to operate in-place on symlinks.
* testsuite: Widen acceptance window of T1969Ben Gamari2020-01-241-1/+3
| | | | | I have seen >20% fluctuations in this number, leading to spurious failures.
* testsuite: Preserve more information in framework failuresBen Gamari2020-01-201-1/+1
| | | | | Namely print the entire exception in hopes that this will help track down #17649.
* llvmGen: Fix #14251Ben Gamari2020-01-201-2/+1
| | | | | | | | | | | | | | Fixes the calling convention for functions passing raw SSE-register values by adding padding as needed to get the values in the right registers. This problem cropped up when some args were unused an dropped from the live list. This folds together 2e23e1c7de01c92b038e55ce53d11bf9db993dd4 and 73273be476a8cc6c13368660b042b3b0614fd928 previously from @kavon. Metric Increase: T12707 ManyConstructors
* Handle TagToEnum in the same big case as the other primopsJohn Ericson2020-01-162-0/+44
| | | | | | | | | | | | | Before, it was a panic because it was handled above. But there must have been an error in my reasoning (another caller?) because #17442 reported the panic was hit. But, rather than figuring out what happened, I can just make it impossible by construction. By adding just a bit more bureaucracy in the return types, I can handle TagToEnum in the same case as all the others, so the big case is is now total, and the panic is removed. Fixes #17442
* Fix LANG=C for readelf invocation in T14999Sylvain Henry2020-01-121-1/+1
| | | | The test fails when used with LANG=fr_FR.UTF-8
* Fix more typos, via an improved Levenshtein-style correctorBrian Wignall2020-01-128-12/+12
|
* Don't zap to Any; error insteadRichard Eisenberg2020-01-1224-74/+173
| | | | | | | | | This changes GHC's treatment of so-called Naughty Quantification Candidates to issue errors, instead of zapping to Any. Close #16775. No new test cases, because existing ones cover this well.
* Overloaded Quotation Brackets (#246)Matthew Pickering2020-01-1246-25/+231
| | | | | | | | | | | | | | | | | | This patch implements overloaded quotation brackets which generalise the desugaring of all quotation forms in terms of a new minimal interface. The main change is that a quotation, for example, [e| 5 |], will now have type `Quote m => m Exp` rather than `Q Exp`. The `Quote` typeclass contains a single method for generating new names which is used when desugaring binding structures. The return type of functions from the `Lift` type class, `lift` and `liftTyped` have been restricted to `forall m . Quote m => m Exp` rather than returning a result in a Q monad. More details about the feature can be read in the GHC proposal. https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0246-overloaded-bracket.rst
* Print Core type applications with no whitespace after @ (#17643)Ryan Scott2020-01-0830-184/+149
| | | | | | | | | | | This brings the pretty-printer for Core in line with how visible type applications are normally printed: namely, with no whitespace after the `@` character (i.e., `f @a` instead of `f @ a`). While I'm in town, I also give the same treatment to type abstractions (i.e., `\(@a)` instead of `\(@ a)`) and coercion applications (i.e., `f @~x` instead of `f @~ x`). Fixes #17643.
* Monomorphize HsModule to GhcPs (#17642)Ryan Scott2020-01-071-2/+2
| | | | | | | | Analyzing the call sites for `HsModule` reveals that it is only ever used with parsed code (i.e., `GhcPs`). This simplifies `HsModule` by concretizing its `pass` parameter to always be `GhcPs`. Fixes #17642.
* testsuite: Fix Windows platform testBen Gamari2020-01-071-2/+1
| | | | | | | | Previously we used platform.system() and while this worked fine (e.g. returned `Windows`, as expected) locally under both msys and MingW64 Python distributions, it inexplicably returned `MINGW64_NT-10.0` under MingW64 Python on CI. It seems os.name is more reliable so we now use that instead..
* configure: Find Python3 for testsuiteBen Gamari2020-01-071-1/+1
| | | | | In addition, we prefer the Mingw64 Python distribution on Windows due to #17483.
* testsuite: Mark T17073 as broken on WindowsBen Gamari2020-01-071-1/+2
| | | | Due to #17607.
* Module hierarchy: Iface (cf #13009)Sylvain Henry2020-01-062-5/+5
|
* testsuite: Mark cgrun057 as fragile on all platformsBen Gamari2020-01-041-1/+1
| | | | | | I have seen this fail both on x86-64/Debian 9 and armv7/Debian 9 See #17554.
* Split integerGmpInternals test in several partsSylvain Henry2020-01-049-175/+247
| | | | | This is to prepare for ghc-bignum which implements some but not all of gmp functions.
* Update to Cabal submodule to v3.2.0.0-alpha3Oleg Grenrus2020-01-041-7/+5
| | | | | Metric Increase: haddock.Cabal
* Add Cmm related hooksSylvain Henry2020-01-041-1/+1
| | | | | | | | | | | | | * stgToCmm hook * cmmToRawCmm hook These hooks are used by Asterius and could be useful to other clients of the GHC API. It increases the Parser dependencies (test CountParserDeps) to 184. It's still less than 200 which was the initial request (cf https://mail.haskell.org/pipermail/ghc-devs/2019-September/018122.html) so I think it's ok to merge this.
* Fix typos, via a Levenshtein-style correctorBrian Wignall2020-01-0445-53/+50
|
* Testsuite: update some Haddock testsVladislav Zavialov2019-12-3112-8/+60
| | | | | | | | | | | | Fixed tests: * haddockA039: added to all.T * haddockE004: replaced with T17561 (marked as expect_broken) New tests: * haddockA040: deriving clause for a data instance * haddockA041: haddock and CPP #include
* Module hierarchy (#13009): StgSylvain Henry2019-12-312-2/+2
|
* testsuite: Enlarge acceptance window for T1969Ben Gamari2019-12-301-1/+1
| | | | | | | | As noted in #17624, it's quite unstable, especially, for some reason, on i386 and armv7 (something about 32-bit platforms perhaps?). Metric Increase: T1969
* perf_notes: Add --zero-y argumentBen Gamari2019-12-301-12/+25
| | | | | This makes it easier to see the true magnitude of fluctuations. Also do some house-keeping in the argument parsing department.
* testsuite: Disable derefnull when built with LLVMBen Gamari2019-12-301-4/+4
| | | | | | LLVM does not guarantee any particular semantics when dereferencing null pointers. Consequently, this test actually passes when built with the LLVM backend.
* driver: Include debug level in the recompilation check hashBen Gamari2019-12-304-0/+18
| | | | Fixes #17586.
* testsuite: Mark cgrun057 as fragile on ARMBen Gamari2019-12-271-0/+1
| | | | | As reported in #17554. Only marking on ARM for now although there is evidence to suggest that the issue may occur on other platforms as well.
* fixup! Fix endian handling w.r.t. CPP macro WORDS_BIGENDIANStefan Schulze Frielinghaus2019-12-241-1/+1
|
* Fix endian handling w.r.t. CPP macro WORDS_BIGENDIANStefan Schulze Frielinghaus2019-12-241-0/+4
| | | | | | Include header file `ghcautoconf.h` where the CPP macro `WORDS_BIGENDIAN` is defined. This finally fixes #17337 (in conjunction with commit 6c59cc71dc).
* lookupBindGroupOcc: recommend names in the same namespace (#17593)Ryan Scott2019-12-203-0/+17
| | | | | | | | | | | Previously, `lookupBindGroupOcc`'s error message would recommend all similar names in scope, regardless of whether they were type constructors, data constructors, or functions, leading to the confusion witnessed in #17593. This is easily fixed by only recommending names in the same namespace, using the `nameSpacesRelated` function. Fixes #17593.
* Handle large ARR_WORDS in heap census (fix #17572)Sylvain Henry2019-12-193-0/+19
| | | | | | | | We can do a heap census with a non-profiling RTS. With a non-profiling RTS we don't zero superfluous bytes of shrunk arrays hence a need to handle the case specifically to avoid a crash. Revert part of a586b33f8e8ad60b5c5ef3501c89e9b71794bbed
* Add GHC-API logging hooksSylvain Henry2019-12-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | * Add 'dumpAction' hook to DynFlags. It allows GHC API users to catch dumped intermediate codes and information. The format of the dump (Core, Stg, raw text, etc.) is now reported allowing easier automatic handling. * Add 'traceAction' hook to DynFlags. Some dumps go through the trace mechanism (for instance unfoldings that have been considered for inlining). This is problematic because: 1) dumps aren't written into files even with -ddump-to-file on 2) dumps are written on stdout even with GHC API 3) in this specific case, dumping depends on unsafe globally stored DynFlags which is bad for GHC API users We introduce 'traceAction' hook which allows GHC API to catch those traces and to avoid using globally stored DynFlags. * Avoid dumping empty logs via dumpAction/traceAction (but still write empty files to keep the existing behavior)
* testsuite: Mark print002 as fragile on ARMBen Gamari2019-12-171-1/+1
| | | | | | | | | Due to #17557. Also accepting spurious performance change. Metric Decrease: T1969
* Revert "testsuite: Mark cgrun057 as broken on ARMv7"Ben Gamari2019-12-171-1/+0
| | | | This reverts commit 6cfc47ec8a478e1751cb3e7338954da1853c3996.
* testsuite: Mark T5435_* tests as broken on ARMBen Gamari2019-12-171-6/+16
| | | | | `T5435_v_asm_a`, `T5435_v_asm_b`, and `T5435_v_gcc` all fail on ARMv7. See #17559.
* testsuite: Make ghc_built_by_llvm check more preciseBen Gamari2019-12-172-7/+11
| | | | | | | | | | Previously it would hackily look at the flavour name to determine whether LLVM was used to build stage2 ghc. However, this didn't work at all with Hadrian and would miss cases like ARM where we use the LLVM backend by default. See #16087 for the motivation for why ghc_built_by_llvm is needed at all. This should catch one of the ARMv7 failures described in #17555.
* testsuite: Mark T14028 as broken on ARMv7Ben Gamari2019-12-171-0/+1
| | | | Due to #17558.
* testsuite: Mark T13825-debugger as broken on ARMv7Ben Gamari2019-12-171-1/+3
| | | | Due to #17557.
* testsuite: Mark T10272 as broken on ARMv7Ben Gamari2019-12-171-3/+4
| | | | Due to #17556.
* testsuite: Mark prog001 as fragile on ARMv7Ben Gamari2019-12-171-0/+1
| | | | Due to #17555.
* testsuite: Mark cgrun057 as broken on ARMv7Ben Gamari2019-12-171-0/+1
| | | | | Due to #17554. It's very surprising that this only occurs on ARMv7 but this is the only place I've seen this failure thusfar.
* Do more validity checks for quantified constraintsRichard Eisenberg2019-12-166-1/+16
| | | | | | Close #17583. Test case: typecheck/should_fail/T17563
* testsuite: Add test for #17549Ben Gamari2019-12-122-0/+7
|
* testsuite: Simplify and clarify performance test baseline searchBen Gamari2019-12-123-69/+48
| | | | | | | The previous implementation was extremely complicated, seemingly to allow the local and CI namespaces to be searched incrementally. However, it's quite unclear why this is needed and moreover the implementation seems to have had quadratic runtime cost in the search depth(!).
* Warn on inferred polymorphic recursionRichard Eisenberg2019-12-1115-1/+91
| | | | | | | | | | | Silly users sometimes try to use visible dependent quantification and polymorphic recursion without a CUSK or SAK. This causes unexpected errors. So we now adjust expectations with a bit of helpful messaging. Closes #17541 and closes #17131. test cases: dependent/should_fail/T{17541{,b},17131}
* Ignore unary constraint tuples during typechecking (#17511)Ryan Scott2019-12-102-0/+10
| | | | | | | | | | | | | | We deliberately avoid defining a magical `Unit%` class, for reasons that I have expounded upon in the newly added `Note [Ignore unary constraint tuples]` in `TcHsType`. However, a sneaky user could try to insert `Unit%` into their program by way of Template Haskell, leading to the interface-file error observed in #17511. To avoid this, any time we encounter a unary constraint tuple during typechecking, we drop the surrounding constraint tuple application. This is safe to do since `Unit% a` and `a` would be semantically equivalent (unlike other forms of unary tuples). Fixes #17511.