- 24 Nov, 2015 2 commits
-
-
Herbert Valerio Riedel authored
Warn about incoherent/non-canonical 'Applicative'/'Monad' instance declarations. Specifically the following invariants are checked: In 'Monad' instances declarations warn if the any of the following conditions does not hold: * If `return` is overridden it must be canonical (i.e. `return = pure`). * If `(>>)` is overridden it must be canonical (i.e. `(>>) = (*>)`). In 'Applicative' instance declarations: * Warn if 'pure' is defined backwards (i.e. `pure = return`). * Warn if '(*>)' is defined backwards (i.e. `(*>) = (>>)`). NB, this warning flag is not enabled via `-Wall` nor `-Wcompat`. This addresses #11128 Reviewers: quchen, austin, bgamari Reviewed By: bgamari Differential Revision: https://phabricator.haskell.org/D1516
-
Herbert Valerio Riedel authored
This is needed to allow subsequent patches to refer to `*>`. While at it, this commit also groups together the `Applicative` definitions to reduce confusion. Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D1513
-
- 23 Nov, 2015 16 commits
-
-
Ben Gamari authored
Otherwise we'll get link time failures as `base` always builds `GHC.ExecutionStack`. Test Plan: Validate Reviewers: austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1519
-
Alan Zimmerman authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
This responds to Trac #11112 by improving the error message when the kind checker discovers something of kind Constraint used when a type is expected
-
Ben Gamari authored
In order to accomplish this we need to ensure that emit DIEs for all DebugBlocks, even those that have been optimized out, lest we end up with undefined symbols of parents at link time. Differential Revision: https://phabricator.haskell.org/D1279
-
Ben Gamari authored
Differential Revision: https://phabricator.haskell.org/D1387
-
Ben Gamari authored
We now only strip block information from DebugBlocks when compiling with `-g1`, intended to be used when only minimal debug information is desired. `-g2` is assumed when `-g` is passed without any integer argument. Differential Revision: https://phabricator.haskell.org/D1281
-
Ben Gamari authored
Differential Revision: https://phabricator.haskell.org/D1198#40948
-
Ben Gamari authored
Differential Revision: https://phabricator.haskell.org/D1198#40948
-
Ben Gamari authored
-
Ben Gamari authored
-
Ben Gamari authored
RIP-relative addressing isn't available on i386.
-
Ben Gamari authored
The casting here is a bit tricky since Dwarf_Addr is always 64-bits. This means we first need to narrow to uintptr_t before casting to/from a pointer for compatibility on 32-bit architectures.
-
Alan Zimmerman authored
-
Ben Gamari authored
-
Ben Gamari authored
31bcf9b6 changed the behavior of WERROR such that it would only apply to the stage 2 build. The reason for this was to avoid silly redundant imports and such breaking validation on different bootstrap compiler versions. Document the fact that WERROR now only applies to the stage 2 build.
-
- 22 Nov, 2015 6 commits
-
-
niteria authored
This fixes a non-determinism bug where depending on the order of uniques allocated, the type variables would be in a different order when abstracted for the purpose of lifting out an expression. Test Plan: I've added a new testcase that reproduces the problem ./validate Reviewers: simonmar, austin, bgamari, simonpj Reviewed By: simonpj Subscribers: nomeata, thomie Differential Revision: https://phabricator.haskell.org/D1504 GHC Trac Issues: #4012
-
Alan Zimmerman authored
At the moment the API Annotations can only be used on the ParsedSource, as there are changes made to the RenamedSource that prevent it from being used to round trip source code. It is possible to build a map from every Located Name in the RenamedSource from its location to the Name, which can then be used when resolved names are required when changing the ParsedSource. However, there are instances where the identifier is not located, specifically (GHC.VarPat name) (GHC.HsVar name) (GHC.UserTyVar name) (GHC.HsTyVar name) Replace each of the name types above with (Located name) Updates the haddock submodule. Test Plan: ./validate Reviewers: austin, goldfire, bgamari Reviewed By: bgamari Subscribers: goldfire, thomie, mpickering Differential Revision: https://phabricator.haskell.org/D1512 GHC Trac Issues: #11019
-
Erik de Castro Lopo authored
Test Plan: Test on Arm and PowerPc. Reviewers: bgamari, thomie, austin Differential Revision: https://phabricator.haskell.org/D1510 GHC Trac Issues: #11060
-
Alan Zimmerman authored
Document extra AnnRarrow annotation on a HsFunTy
-
Herbert Valerio Riedel authored
Using `:` as sed-`s`-expr separator is not a good idea on windows, as this can result in an expression like 's:@INSTALL@:$(subst ../install-sh,E:/msys64/home/foo/ghc/install-sh,@INSTALL@):g' (note the `E:/` drive component) Using `|` instead of `:` has less risk of collision with the substitution expression
-
Herbert Valerio Riedel authored
This sneaked in via 2325bd4e / D1468 / #4012 This is frustrating... we've added a useless 2.4MiB binary blob to our Git history which wastes *everyones* bandwidth for eternity (unless we truncate or rewrite history). We should add lint-checks and/or a pre-receive commit hook test to prevent this in future.
-
- 21 Nov, 2015 6 commits
-
-
roshats authored
This patch allows define and re-define functions in ghci. `let` is not required anymore (but can be used). Idea: If ghci input string can be parsed as statement then run it as statement else run it as declaration. Reviewers: mpickering, bgamari, austin Reviewed By: mpickering, bgamari, austin Subscribers: hvr, mpickering, dterei, thomie Differential Revision: https://phabricator.haskell.org/D1299 GHC Trac Issues: #7253
-
niteria authored
I've run into situations where I need deterministic `tyVarsOfType` and this implementation achieves that and also brings an algorithmic improvement. Union of two `VarSet`s takes linear time the size of the sets and in the worst case we can have `n` unions of sets of sizes `(n-1, 1), (n-2, 1)...` making it quadratic. One reason why we need deterministic `tyVarsOfType` is in `abstractVars` in `SetLevels`. When we abstract type variables when floating we want them to be abstracted in deterministic order. Test Plan: harbormaster Reviewers: simonpj, goldfire, austin, hvr, simonmar, bgamari Reviewed By: simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1468 GHC Trac Issues: #4012
-
niteria authored
This implements `DVarSet`, a deterministic set of Vars, with an interface very similar to `VarSet` with a couple of functions missing. I will need this in changes that follow, one of them will be about changing the type of the set of Vars that `RuleInfo` holds to make the free variable computation deterministic. Test Plan: ./validate I can add new tests if anyone wants me to. Reviewers: simonpj, simonmar, austin, bgamari Reviewed By: simonmar, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1487 GHC Trac Issues: #4012
-
Herbert Valerio Riedel authored
GCC 4.0 and later warn about type-conflicting prototypes for built-in functions such as `strlen`. This is a problem for the via-c backend as it generates code such as typedef void *(*(*StgFunPtr)(void))(void); extern StgFunPtr strlen(); However, by using the `-fno-builtin` flag, GCC is told not to try to auto-detect such built-in functions and instead treat them as ordinary external functions. This also suppresses this warning. This address #7660 Test Plan: IIAM Reviewers: bgamari, austin Reviewed By: austin Subscribers: thomie, erikd Differential Revision: https://phabricator.haskell.org/D1506 GHC Trac Issues: #7660
-
Ben Gamari authored
Reviewers: austin Reviewed By: austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1509
-
Tamar Christina authored
Summary: Only use the merge_sections.ld linker script if SplitSections is enabled. I thought I had a way to make the linker script actually work on Windows and produce object files instead of image files (by using the "INSERT AFTER" linker script command to get the default script's output format setting), but that fix caused ghci to crash with an illegal instruction on startup. Gave up and made a simpler fix of just disabling this for normal builds, as it's only really relevant with SplitSections enabled anyway. Reviewers: austin, thomie, bgamari Reviewed By: austin, thomie Subscribers: Phyx, thomie Differential Revision: https://phabricator.haskell.org/D1505 GHC Trac Issues: #8405
-
- 20 Nov, 2015 5 commits
-
-
Herbert Valerio Riedel authored
This was missing from c5d8162d / D1501 for some reason causing the AIX detection to result in `OSUnknown` rather than `OSAIX`.
-
Ben Gamari authored
This was added in 8988be85, probably due to an incorrect merge resolution. The build system has been building `Stack.hs`.
-
Ben Gamari authored
Previously used GhcVersion, which is apparently the version of the bootstrap compiler. ProjectVersion appears to be the thing to use here.
-
Herbert Valerio Riedel authored
Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D1503
-
Austin Seipp authored
A ource file which was accidently passed as parameter into `:ctags` or `:etags` can be overwritten by tag data. This patch updates documentation to avoid confusion in commands usage and prevents `collateAndWriteTags` from modifying existing source files. Reviewed By: thomie, bgamari, austin Differential Revision: https://phabricator.haskell.org/D1471 GHC Trac Issues: #10989
-
- 19 Nov, 2015 5 commits
-
-
Matthew Pickering authored
Summary: This patch adds documentation for record pattern synonyms (D1258) and bundling pattern synonyms with type constructors in export lists (D1152). There are also other small improvements motivated by #10900. Reviewers: goldfire, bgamari, austin Reviewed By: bgamari Subscribers: goldfire, thomie Differential Revision: https://phabricator.haskell.org/D1325 GHC Trac Issues: #10900
-
Ben Gamari authored
-
strake authored
Reviewers: thomie, hvr, austin, bgamari Reviewed By: bgamari Subscribers: bgamari, thomie Differential Revision: https://phabricator.haskell.org/D1480 GHC Trac Issues: #10444
-
Herbert Valerio Riedel authored
First of all, we need to use -mminimal-toc on IBM AIX AIX's XCOFF is limited to 16k entries in its TOC for 32bit compilation, which quickly overflows with GHC's code generation. Otoh, the Parser.hs module contains more entries than fit into a minimal-toc, so we need to switch back to `-mfull-toc` for that single module again. Then, we also need to set the `THREAD_SAFE` CPP #define in order to unlock the thread-safe `errno` which is essential for the threaded runtime. Depends on D1501 Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: thomie, erikd Differential Revision: https://phabricator.haskell.org/D1502
-
Herbert Valerio Riedel authored
GHC needs to be aware of targetting AIX because AIX requires some special handling for the toolchain (similiar to Solaris) Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: thomie, erikd Differential Revision: https://phabricator.haskell.org/D1501
-