summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fix testwip/safer-haskellMatthew Pickering2018-11-201-1/+1
|
* Add -fno-safe-haskell flagMatthew Pickering2018-11-207-5/+47
| | | | | | | | | | | | | | | | Summary: This flag can be set to turn off the Safe Haskell checks. Whether a module is marked Safe/Unsafe/Trustworthy is ignored when this flag to set. Reviewers: bgamari Subscribers: rwbarton, carter GHC Trac Issues: #15920 Differential Revision: https://phabricator.haskell.org/D5360
* Don't track free variables in STG syntax by defaultSebastian Graf2018-11-1916-376/+408
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Currently, `CoreToStg` annotates `StgRhsClosure`s with their set of non-global free variables. This free variable information is only needed in the final code generation step (i.e. `StgCmm.codeGen`), which leads to transformations such as `StgCse` and `StgUnarise` having to maintain this information. This is tiresome and unnecessary, so this patch introduces a trees-to-grow-like approach that only introduces the free variable set into the syntax tree in the code gen pass, along with a free variable analysis on STG terms to generate that information. Fixes #15754. Reviewers: simonpj, osa1, bgamari, simonmar Reviewed By: osa1 Subscribers: rwbarton, carter GHC Trac Issues: #15754 Differential Revision: https://phabricator.haskell.org/D5324
* hadrian: make it possible to run the testsuite with quickest and quickAlp Mestanogullari2018-11-191-2/+6
| | | | | | | | | | | | | | | | | | | | | | | More generally, we so far assumed that the testsuite would be executed with a flavour that's as comprehensive as perf in terms of available RTS and library flavours (at least vanilla + dynamic + prof). This would manifest itself concretely by needing 3 "ways" of the iserv program, unconditionally. We now only require the ways among vanilla, dynamic and prof that we can find in our current Flavour's rtsWays. Test Plan: hadrian/build.sh --flavour={quick, quickest} test now goes through (with a few failing tests, of course). Reviewers: bgamari, tdammers Reviewed By: tdammers Subscribers: mpickering, RyanGlScott, rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5355
* eventlog: Log the current stack size when stack overflowsMatthew Pickering2018-11-192-1/+10
| | | | | | | | | | Reviewers: maoe, bgamari, erikd, simonmar Reviewed By: simonmar Subscribers: rwbarton, carter, sjorn3 Differential Revision: https://phabricator.haskell.org/D5287
* Tiny refactor in exitSchedulerÖmer Sinan Ağacan2018-11-191-3/+1
|
* Fix typo in docsChris Done2018-11-181-1/+1
| | | I've been reading this line of docs for years and it ruffles my feathers.
* Introduce Int16# and Word16#Abhiroop Sarkar2018-11-1734-77/+952
| | | | | | | | | | | | This builds off of D4475. Bumps binary submodule. Reviewers: carter, AndreasK, hvr, goldfire, bgamari, simonmar Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D5006
* Fix trac #15702, as a followon to fix for #13704.Chris Smith2018-11-176-14/+44
| | | | | | | | | | | | | | | | | | Summary: The effect of this change is that -main-is changes the default export list for the main module, but does not apply the same change to non-main modules. This fixes some cases where -main-is was used to wrap a module that expected that default behavior (exporting `main`, even when that wasn't the main entry point name). Reviewers: mpickering, monoidal, bgamari Subscribers: rwbarton, carter GHC Trac Issues: #13704, #15702 Differential Revision: https://phabricator.haskell.org/D5322
* Minor refactoringGabor Greif2018-11-171-13/+13
| | | | PR: https://github.com/ghc/ghc/pull/223/
* Remove -Wamp flag (#11477)roland2018-11-171-0/+2
| | | | | | | | | | | | | | | | | Summary: Add line "The deprecated ghc-flag -Wamp has been removed." to the release notes for 8.8.1 Reviewers: bgamari, monoidal Reviewed By: monoidal Subscribers: rwbarton, carter GHC Trac Issues: #11477 Differential Revision: https://phabricator.haskell.org/D5296
* More compact Outputable instance for `Uniq(D)Set`Sebastian Graf2018-11-172-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Until now, `UniqSet` and `UniqDSet` inherited their `Outputable` instances from `UniqFM` and `UniqDFM`. That made for verbose and redundant output. This patch rectifies that by pretty-printing these sets in common math notation. E.g., previously, we would render `UniqSet`s like this: [s2fE :-> x_s2fE, s2fF :-> y_s2fF, s2fG :-> z_s2fG, s2fH :-> g_s2fH] Now, they're are printed like this: {x_s2fE, y_s2fF, z_s2fG, g_s2fH} Reviewers: simonpj, bgamari, AndreasK, dfeuer, osa1 Reviewed By: osa1 Subscribers: osa1, rwbarton, carter GHC Trac Issues: #15879 Differential Revision: https://phabricator.haskell.org/D5315
* Speed up MonadUtils.mapMaybeMSimon Jakobi2018-11-171-5/+4
| | | | | | | | | | | | Summary: This version is nearly 2x faster according to a few small benchmarks. Reviewers: bgamari, monoidal Reviewed By: monoidal Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5344
* Fix #12906: GHC fails to typecheck Main module without mainRoland Senn2018-11-174-6/+23
| | | | | | | | | | | | | | | | | | Summary: The function fail is no longer called immediately after adding the no-main error message to the TcM monad. The rest of the module will be typechecked. Test Plan: make test TEST=T12906 Reviewers: dfeuer, RyanGlScott, ezyang, mpickering, bgamari Reviewed By: RyanGlScott Subscribers: rwbarton, carter GHC Trac Issues: #12906 Differential Revision: https://phabricator.haskell.org/D5338
* Fix #12525: Remove derived bindings from the TyThings from getBindingsRoland Senn2018-11-174-2/+35
| | | | | | | | | | | | | | | | | | Summary: Remove derived OccNames from the list of TyThings returned by the function GHC.getBindings. Therefore the output of the `:show bindings `command will not contain names generated by GHC. Test Plan: make test TEST=T12525 Reviewers: austin, hvr, alanz, angerman, thomie, bgamari, osa1 Reviewed By: osa1 Subscribers: simonpj, osa1, rwbarton, carter GHC Trac Issues: #12525 Differential Revision: https://phabricator.haskell.org/D5326
* Building GHC with hadrian on FreeBSDKrzysztof Gogolewski2018-11-171-2/+2
| | | | | | | | | | | | | | | Summary: I'm currently trying to make `hadrian` work as a build system on FreeBSD (https://ghc.haskell.org/trac/ghc/ticket/15860). I'm still having some issues with `libgmp` but one can get a working `ghc` using `--integer-simple` and this patch. Reviewers: bgamari, erikd, alpmestan Reviewed By: alpmestan Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5335
* fix T15898Alp Mestanogullari2018-11-171-1/+0
| | | | | | | | | | | | | | | | | Summary: validate is currently broken [1] on master, this patches addresses the failure by removing an expected stdout file for T15898 since no output is generated there. [1]: https://circleci.com/gh/ghc/ghc/11416 Test Plan: TEST=T15898 ./validate Reviewers: bgamari Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5345
* NCG: New code layout algorithm.Andreas Klebinger2018-11-1734-334/+2374
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch implements a new code layout algorithm. It has been tested for x86 and is disabled on other platforms. Performance varies slightly be CPU/Machine but in general seems to be better by around 2%. Nofib shows only small differences of about +/- ~0.5% overall depending on flags/machine performance in other benchmarks improved significantly. Other benchmarks includes at least the benchmarks of: aeson, vector, megaparsec, attoparsec, containers, text and xeno. While the magnitude of gains differed three different CPUs where tested with all getting faster although to differing degrees. I tested: Sandy Bridge(Xeon), Haswell, Skylake * Library benchmark results summarized: * containers: ~1.5% faster * aeson: ~2% faster * megaparsec: ~2-5% faster * xml library benchmarks: 0.2%-1.1% faster * vector-benchmarks: 1-4% faster * text: 5.5% faster On average GHC compile times go down, as GHC compiled with the new layout is faster than the overhead introduced by using the new layout algorithm, Things this patch does: * Move code responsilbe for block layout in it's own module. * Move the NcgImpl Class into the NCGMonad module. * Extract a control flow graph from the input cmm. * Update this cfg to keep it in sync with changes during asm codegen. This has been tested on x64 but should work on x86. Other platforms still use the old codelayout. * Assign weights to the edges in the CFG based on type and limited static analysis which are then used for block layout. * Once we have the final code layout eliminate some redundant jumps. In particular turn a sequences of: jne .foo jmp .bar foo: into je bar foo: .. Test Plan: ci Reviewers: bgamari, jmct, jrtc27, simonmar, simonpj, RyanGlScott Reviewed By: RyanGlScott Subscribers: RyanGlScott, trommler, jmct, carter, thomie, rwbarton GHC Trac Issues: #15124 Differential Revision: https://phabricator.haskell.org/D4726
* Fix a typo in the description of -fabstract-refinement-hole-fitsDmitry Ivanov2018-11-171-1/+1
|
* user's guide: typo in ViewPatterns exampleBen Price2018-11-171-1/+1
|
* Some assertions and comments in schedulerÖmer Sinan Ağacan2018-11-173-3/+10
| | | | | | | | | | | | | | Test Plan: I can't validate this because of existing errors with the debug runtime. I'll see if this introduces any new failures. Reviewers: simonmar, bgamari, erikd Reviewed By: simonmar Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5337
* Add missing stderr file for Trac #15898Simon Peyton Jones2018-11-161-0/+52
|
* More efficient, non-allocating unsafeLookupStaticPtrÖmer Sinan Ağacan2018-11-163-6/+6
| | | | | | | | | | | | | | | | We now allocate the key to spt on C stack rather than in Haskell heap, avoiding allocating in `unsafeLookupStaticPtr`. This should be slightly more efficient. Test Plan: Validated locally Reviewers: simonmar, hvr, bgamari, erikd Reviewed By: simonmar Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5333
* bump haddock submoduleAlp Mestanogullari2018-11-161-0/+0
| | | | | | | | | | | | | | | | | | | | | Summary: ae2c9b40f5b6bf272251d1f4107c60003f541b62 introduced some changes that broke haddock, [1] fixed them and this patch bumps the haddock submodule to include the fixes. [1]: https://github.com/haskell/haddock/pull/970 Test Plan: build haddock (make or hadrian) Reviewers: bgamari, AndreasK Reviewed By: AndreasK Subscribers: osa1, AndreasK, rwbarton, carter GHC Trac Issues: #15900 Differential Revision: https://phabricator.haskell.org/D5341
* Smarter HsType pretty-print for promoted dataconsSimon Peyton Jones2018-11-1523-95/+162
| | | | | | | | | | | | | | | | | | | | | Fix Trac #15898, by being smarter about when to print a space before a promoted data constructor, in a HsType. I had to implement a mildly tiresome function HsType.lhsTypeHasLeadingPromotionQuote It has multiple cases, of course, but it's very simple. The patch improves the error-message output in a bunch of cases, and (to my surprise) actually fixes a bug in the output of T14343 (Trac #14343), thus - In the expression: _ :: Proxy '('( 'True, 'False), 'False) + In the expression: _ :: Proxy '( '( 'True, 'False), 'False) I discovered that there were two copies of the PromotionFlag type (a boolean, with helpfully named data cons), one in IfaceType and one in HsType. So I combined into one, PromotionFlag, and moved it to BasicTypes. That's why quite a few files are touched, but it's all routine.
* Comments adding to the fix for Trac #15859Simon Peyton Jones2018-11-152-5/+28
|
* Comments only, about polykinded TyConAppsSimon Peyton Jones2018-11-151-1/+13
| | | | See Trac #15704 comment:8ff
* Fix a bug in SRT generation (#15892)Simon Marlow2018-11-153-1/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The logic in `Note [recursive SRTs]` was correct. However, my implementation of it wasn't: I got the associativity of `Set.difference` wrong, which led to an extremely subtle and difficult to find bug. Fortunately now we have a test case. I was able to cut down the code to something manageable, and I've added it to the test suite. Test Plan: Before (using my stage 1 compiler without the fix): ``` ====> T15892(normal) 1 of 1 [0, 0, 0] cd "T15892.run" && "/home/smarlow/ghc/inplace/bin/ghc-stage1" -o T15892 T15892.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -Werror=compat -dno-debug-output -O cd "T15892.run" && ./T15892 +RTS -G1 -A32k -RTS Wrong exit code for T15892(normal)(expected 0 , actual 134 ) Stderr ( T15892 ): T15892: internal error: evacuate: strange closure type 0 (GHC version 8.7.20181113 for x86_64_unknown_linux) Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug Aborted (core dumped) *** unexpected failure for T15892(normal) =====> T15892(g1) 1 of 1 [0, 1, 0] cd "T15892.run" && "/home/smarlow/ghc/inplace/bin/ghc-stage1" -o T15892 T15892.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -Werror=compat -dno-debug-output -O cd "T15892.run" && ./T15892 +RTS -G1 -RTS +RTS -G1 -A32k -RTS Wrong exit code for T15892(g1)(expected 0 , actual 134 ) Stderr ( T15892 ): T15892: internal error: evacuate: strange closure type 0 (GHC version 8.7.20181113 for x86_64_unknown_linux) Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug Aborted (core dumped) ``` After (using my stage 2 compiler with the fix): ``` =====> T15892(normal) 1 of 1 [0, 0, 0] cd "T15892.run" && "/home/smarlow/ghc/inplace/test spaces/ghc-stage2" -o T15892 T15892.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -Werror=compat -dno-debug-output cd "T15892.run" && ./T15892 +RTS -G1 -A32k -RTS =====> T15892(g1) 1 of 1 [0, 0, 0] cd "T15892.run" && "/home/smarlow/ghc/inplace/test spaces/ghc-stage2" -o T15892 T15892.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -Werror=compat -dno-debug-output cd "T15892.run" && ./T15892 +RTS -G1 -RTS +RTS -G1 -A32k -RTS ``` Reviewers: bgamari, osa1, erikd Reviewed By: osa1 Subscribers: rwbarton, carter GHC Trac Issues: #15892 Differential Revision: https://phabricator.haskell.org/D5334
* hadrian: build ghc-iserv-dynDavid Eichmann2018-11-143-15/+22
| | | | | | | | | | | | | ... in addition to ghc-iserv and ghc-iserv-prof, as it is required to get 10+ tests to pass Reviewers: bgamari, alpmestan Reviewed By: alpmestan Subscribers: alpmestan, rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5327
* Make `UniqDSet` a newtypeSebastian Graf2018-11-137-46/+79
| | | | | | | | | | | | | | | | | | | | Summary: This brings the situation of `UniqDSet` in line with `UniqSet`. @dfeuer said in D3146#92820 that he would do this, but probably never got around to it. Validated locally. Reviewers: AndreasK, mpickering, bgamari, dfeuer, simonpj Reviewed By: simonpj Subscribers: simonpj, rwbarton, carter, dfeuer GHC Trac Issues: #15879, #13114 Differential Revision: https://phabricator.haskell.org/D5313
* circleci: Disable pushing of test metrics if not validating upstreamBen Gamari2018-11-121-0/+4
|
* Correct link to GHC API in docs index.Shao Cheng2018-11-121-1/+1
|
* compareByPreference: handle the integer-gmp vs -simple caseAlp Mestanogullari2018-11-121-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, it assumes the package names are identical and this breaks in the case where integer-gmp is in one package db and integer-simple in another. This became a problem with the commit: fc2ff6dd7496a33bf68165b28f37f40b7d647418. Instead of following the precedence information, leading to the right choice, the current code would compare the integer-gmp and integer-simple versions and pick integer-gmp because it happened to have a greater version, despite having a lower precedence. See https://github.com/snowleopard/hadrian/issues/702 for a comprehensive report about the problem. This effectively un-breaks integer-simple builds with hadrian. Test Plan: hadrian/build.sh --integer-simple Reviewers: snowleopard, bgamari Reviewed By: bgamari Subscribers: snowleopard, rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5266
* Remove StgBinderInfo and related computation in CoreToStgÖmer Sinan Ağacan2018-11-1210-248/+61
| | | | | | | | | | | | | | | | | | | | | | - The StgBinderInfo type was never used in the code gen, so the type, related computation in CoreToStg, and some comments about it are removed. See #15770 for more details. - Simplified CoreToStg after removing the StgBinderInfo computation: removed StgBinderInfo arguments and mfix stuff. The StgBinderInfo values were not used in the code gen, but I still run nofib just to make sure: 0.0% change in allocations and binary sizes. Test Plan: Validated locally Reviewers: simonpj, simonmar, bgamari, sgraf Reviewed By: sgraf Subscribers: AndreasK, sgraf, rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5232
* Fix #15594 (--abi-hash with Backpack sometimes fails)Edward Z. Yang2018-11-118-3/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: For holes, its necessary to "see through" the instantiation of the hole to get accurate family instance dependencies. For example, if B imports <A>, and <A> is instantiated with F, we must grab and include all of the dep_finsts from F to have an accurate transitive dep_finsts list. However, we MUST NOT do this for regular modules. First, for efficiency reasons, doing this bloats the the dep_finsts list, because we *already* had those modules in the list (it wasn't a hole module, after all). But there's a second, more important correctness consideration: we perform module renaming when running --abi-hash. In this case, GHC's contract to the user is that it will NOT go and read out interfaces of any dependencies (https://github.com/haskell/cabal/issues/3633); the point of --abi-hash is just to get a hash of the on-disk interfaces for this *specific* package. If we go off and tug on the interface for /everything/ in dep_finsts, we're gonna have a bad time. (It's safe to do do this for hole modules, though, because the hmap for --abi-hash is always trivial, so the interface we request is local. Though, maybe we ought not to do it in this case either...) Signed-off-by: Edward Z. Yang <ezyang@fb.com> Test Plan: validate Reviewers: alexbiehl, goldfire, bgamari Subscribers: ppk, shlevy, rwbarton, carter GHC Trac Issues: #15594 Differential Revision: https://phabricator.haskell.org/D5123
* Respect naming conventions in module RnUnbound.hs in fix for #15611Roland Senn2018-11-111-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | Summary: The patch https://phabricator.haskell.org/D5284 didn't respect the local naming conventions in module compiler/rename/RnUnbound.hs: - Top level functions names are written in camelCase. - Local function names in where clauses are written as names_with_underscores. This patch restores these conventions. Test Plan: make test TESTS="T15611a T15611b" Reviewers: DavidEichmann, monoidal, hvr, mpickering, bgamari Reviewed By: mpickering Subscribers: rwbarton, carter GHC Trac Issues: #15611 Differential Revision: https://phabricator.haskell.org/D5308
* Ignore .gdb_history filesBen Gamari2018-11-111-0/+1
| | | | | | | | | | | | Summary: I tend to accumulate these and they are often quite useful to keep around. Reviewers: monoidal Reviewed By: monoidal Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5320
* iserv: Fix typo in cabal fileMatthew Pickering2018-11-111-1/+1
| | | | | | | | | | Reviewers: bgamari, RyanGlScott Reviewed By: RyanGlScott Subscribers: RyanGlScott, rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5311
* GHCi does not need a main functionroland2018-11-115-3/+13
| | | | | | | | | | | | | | | | Summary: In GHCi we don't check anymore, whether a main function is exported. Test Plan: make test TEST=T11647 Reviewers: hvr, osa1, monoidal, mpickering, bgamari Reviewed By: osa1, mpickering Subscribers: rwbarton, carter GHC Trac Issues: #11647 Differential Revision: https://phabricator.haskell.org/D5162
* Fix #15845 by defining etaExpandFamInstLHS and using itRyan Scott2018-11-089-34/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Both #9692 and #14179 were caused by GHC being careless about using eta-reduced data family instance axioms. Each of those tickets were fixed by manually whipping up some code to eta-expand the axioms. The same sort of issue has now caused #15845, so I figured it was high time to factor out the code that each of these fixes have in common. This patch introduces the `etaExpandFamInstLHS` function, which takes a family instance's type variables, LHS types, and RHS type, and returns type variables and LHS types that have been eta-expanded if necessary, in the case of a data family instance. (If it's a type family instance, `etaExpandFamInstLHS` just returns the supplied type variables and LHS types unchanged). Along the way, I noticed that many references to `Note [Eta reduction for data families]` (in `FamInstEnv`) had slightly bitrotted (they either referred to a somewhat different name, or claimed that the Note lived in a different module), so I took the liberty of cleaning those up. Test Plan: make test TEST="T9692 T15845" Reviewers: goldfire, bgamari Reviewed By: goldfire Subscribers: rwbarton, carter GHC Trac Issues: #15845 Differential Revision: https://phabricator.haskell.org/D5294
* testsuite: Save performance metrics in git notes.David Eichmann2018-11-0721-1737/+1020
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes the following improvement: - Automatically records test metrics (per test environment) so that the programmer need not supply nor update expected values in *.T files. - On expected metric changes, the programmer need only indicate the direction of change in the git commit message. - Provides a simple python tool "perf_notes.py" to compare metrics over time. Issues: - Using just the previous commit allows performance to drift with each commit. - Currently we allow drift as we have a preference for minimizing false positives. - Some possible alternatives include: - Use metrics from a fixed commit per test: the last commit that allowed a change in performance (else the oldest metric) - Or use some sort of aggregate since the last commit that allowed a change in performance (else all available metrics) - These alternatives may result in a performance issue (with the test driver) having to heavily search git commits/notes. - Run locally, performance tests will trivially pass unless the tests were run locally on the previous commit. This is often not the case e.g. after pulling recent changes. Previously, *.T files contain statements such as: ``` stats_num_field('peak_megabytes_allocated', (2, 1)) compiler_stats_num_field('bytes allocated', [(wordsize(64), 165890392, 10)]) ``` This required the programmer to give the expected values and a tolerance deviation (percentage). With this patch, the above statements are replaced with: ``` collect_stats('peak_megabytes_allocated', 5) collect_compiler_stats('bytes allocated', 10) ``` So that programmer must only enter which metrics to test and a tolerance deviation. No expected value is required. CircleCI will then run the tests per test environment and record the metrics to a git note for that commit and push them to the git.haskell.org ghc repo. Metrics will be compared to the previous commit. If they are different by the tolerance deviation from the *.T file, then the corresponding test will fail. By adding to the git commit message e.g. ``` # Metric (In|De)crease <metric(s)> <options>: <tests> Metric Increase ['bytes allocated', 'peak_megabytes_allocated'] \ (test_env='linux_x86', way='default'): Test012, Test345 Metric Decrease 'bytes allocated': Test678 Metric Increase: Test711 ``` This will allow the noted changes (letting the test pass). Note that by omitting metrics or options, the change will apply to all possible metrics/options (i.e. in the above, an increase for all metrics in all test environments is allowed for Test711) phabricator will use the message in the description Reviewers: bgamari, hvr Reviewed By: bgamari Subscribers: rwbarton, carter GHC Trac Issues: #12758 Differential Revision: https://phabricator.haskell.org/D5059
* Revert "CircleCI: Build DWARF-enabled Linux bindists"Ben Gamari2018-11-072-30/+0
| | | | This reverts commit 406978c478e4b14e677f396499420d7b8e5d21fd.
* Revert "Multiple fixes / improvements for LLVM backend"Ben Gamari2018-11-075-67/+62
| | | | This reverts commit adcb5fb47c0942671d409b940d8884daa9359ca4.
* Revert "Fix for T14251 on ARM"Ben Gamari2018-11-072-90/+39
| | | | This reverts commit d8495549ba9d194815c2d0eaee6797fc7c00756a.
* [LlvmCodeGen] Fixes for Int8#/Word8#Michal Terepeta2018-11-072-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes two isssues: - Using bitcast for MO_XX_Conv Arguments to a bitcast must be of the same size. We should be using `trunc` and `zext` instead. - Using unsupported MO_*_QuotRem for LLVM The two primops `MO_*_QuotRem` are not supported by the LLVM backend, so we shouldn't use them for `Int8#`/`Word8#` (just as we do not use them for `Int#`/`Word#`). Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com> Test Plan: manually run tests with WAY=llvm Reviewers: bgamari, simonmar Reviewed By: bgamari Subscribers: rwbarton, carter GHC Trac Issues: #15864 Differential Revision: https://phabricator.haskell.org/D5304
* CircleCI: Build DWARF-enabled Linux bindistsBen Gamari2018-11-072-0/+30
|
* Bump directory submodule to 1.3.3.1Ben Gamari2018-11-071-0/+0
|
* integer-gmp: Fix TBA in changelogBen Gamari2018-11-071-1/+1
|
* Actually add test for #15859.Richard Eisenberg2018-11-051-0/+13
| | | | Oops. Forgot to `git add`.
* Fix #15859 by checking, not assuming, an ArgFlagRichard Eisenberg2018-11-053-6/+11
| | | | | | | | We thought that visible dependent quantification was impossible in terms, but Iceland Jack discovered otherwise in #15859. This fixes an ASSERT failure that arose. test case: dependent/should_fail/T15859