summaryrefslogtreecommitdiff
path: root/docs
Commit message (Collapse)AuthorAgeFilesLines
* Display the full type environment when reporting type holesSimon Peyton Jones2013-08-292-273/+322
| | | | | | | This fixes Trac #8191. The patch also adds and documents a new flag -fmax-relevant-bindings=N which lets you control how many bindings in the type environment are shown.
* More docs for -XNumDecimalsAustin Seipp2013-08-282-0/+23
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Wibbles.Austin Seipp2013-08-281-2/+0
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Mention iOS cross compilation in release notes.Austin Seipp2013-08-281-4/+19
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Wibbles.Austin Seipp2013-08-281-4/+0
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Document -XNegativeLiterals in the relase notes.Austin Seipp2013-08-281-0/+14
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Implement -XNumDecimals (#7266)Austin Seipp2013-08-281-0/+15
| | | | | | | | | | | | | | | | | Under -XNumDecimals, it's possible to specify an integer literal using compact "floating point" syntax for any floating literal constant which also happens to be an integer. This lets us write 1.2e6 :: Integer instead of: 1200000 :: Integer This also makes some amendments to the users guide. Authored-by: Shachaf Ben-Kiki <shachaf@gmail.com> Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Rework how iOS does linking (#8127)Austin Seipp2013-08-282-6/+48
| | | | | | | | | | | | | | | | | | | | | | | | iOS has some particular constraints about how applications can be built: * We must generate a static library (.a) since XCode does the final link. * We need to carefully give the right set of arguments to libtool in the case we're generating an archive. * Dynamic linking isn't supported. * It can only be done on OS X. This patch cleans up all of the above. We add a new flag `-staticlib` (only supported on Darwin) that allows us to produce archive files using libtool, and a -pgmlibtool flag to control which 'libtool' executable to use. This fixes #8127. I believe this is the last piece missing from the iOS cross compiler. Authored-by: Luke Iannini <lukexi@me.com> Authored-by: Maxwell Swadling <maxwellswadling@gmail.com> Authored-by: Stephen Blackheath <...@blacksapphire.com> Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Update `-ddump-minimal-imports` entry in user's guideHerbert Valerio Riedel2013-08-271-14/+21
| | | | | | | The entry is updated to mention explicitly the feature implemented for #7957, as well as rewording and improving the docbook markup. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* User guide entry for `:shows paths` sub-commandHerbert Valerio Riedel2013-08-272-1/+23
| | | | | | | | This also adds an entry to the release notes section. See #8172 for more details Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Strings and comments only: 'to to ' fixesGabor Greif2013-08-221-1/+1
| | | | I'd still prefer if a native english speaker would check them.
* Update release notes for GHC 7.8Jan Stolarek2013-08-221-5/+4
|
* Added paragraph to user's guide about Nominal role for SetRichard Eisenberg2013-08-201-0/+14
|
* Added bullet in release notes about roles.Richard Eisenberg2013-08-201-0/+11
|
* Comments onlyGabor Greif2013-08-201-2/+2
|
* Fix Trac #8138.Richard Eisenberg2013-08-162-1/+5
| | | | | | | | The code in CoreLint did not take into account the possibility of ~R# arguments to functions. These can arise in argToPat in SpecConstr. Now, CoreLint does not fail when it sees a ~R# parameter. This commit also updates the core-spec document accordingly.
* Comparison primops return Int# (Fixes #6135)Jan Stolarek2013-08-141-0/+16
| | | | | | | | | | | | This patch modifies all comparison primops for Char#, Int#, Word#, Double#, Float# and Addr# to return Int# instead of Bool. A value of 1# represents True and 0# represents False. For a more detailed description of motivation for this change, discussion of implementation details and benchmarking results please visit the wiki page: http://hackage.haskell.org/trac/ghc/wiki/PrimBool There's also some cleanup: whitespace fixes in files that were extensively edited in this patch and constant folding rules for Integer div and mod operators (which for some reason have been left out up till now).
* Fix invalid users guide synax.Austin Seipp2013-08-111-2/+2
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Release notes for #8108.Austin Seipp2013-08-101-1/+18
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* GHCi: Implement `%l` prompt substitution for line-numberHerbert Valerio Riedel2013-08-101-2/+4
| | | | | | | This commit also updates the GHC user guide section regarding the `set prompt` command and closes #8047. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Added support for writing and checking closed type families is hs-boot files.Richard Eisenberg2013-08-051-1/+7
| | | | | | | | As documented in the users' guide, you can now write type family Foo a where .. in a hs-boot file to declare an abstract closed type family.
* Implement "roles" into GHC.Richard Eisenberg2013-08-027-67/+457
| | | | | | | | | | | | | | | | Roles are a solution to the GeneralizedNewtypeDeriving type-safety problem. Roles were first described in the "Generative type abstraction" paper, by Stephanie Weirich, Dimitrios Vytiniotis, Simon PJ, and Steve Zdancewic. The implementation is a little different than that paper. For a quick primer, check out Note [Roles] in Coercion. Also see http://ghc.haskell.org/trac/ghc/wiki/Roles and http://ghc.haskell.org/trac/ghc/wiki/RolesImplementation For a more formal treatment, check out docs/core-spec/core-spec.pdf. This fixes Trac #1496, #4846, #7148.
* Fix Trac #8020.Richard Eisenberg2013-08-022-5/+9
| | | | | | | The solution is to use a different notion of apartness. See http://research.microsoft.com/en-us/um/people/simonpj/papers/ext-f/axioms-extended.pdf for the gory details. Some comments are also in Notes [Compatibility] and [Apartness] in FamInstEnv.
* Add a warning for empty enumerations; fixes #7881Ian Lynagh2013-08-011-0/+13
| | | | We now give a warning about enumerations like [5 .. 3] :: Int8.
* Add -XNegativeLiterals to the flag listIan Lynagh2013-08-011-0/+6
|
* Document the Negative Literals extensionIan Lynagh2013-07-311-0/+15
|
* Add a warning for overflowing literals; fixes #7895Ian Lynagh2013-07-311-0/+13
|
* Added operational semantics to docs/core-spec.Richard Eisenberg2013-07-315-17/+226
|
* Some release note additions.Austin Seipp2013-07-261-11/+40
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Document -fwarn-pointless-pragmas; fixes #8049Ian Lynagh2013-07-211-0/+14
|
* On second thoughts, don't document -fwarn-alternative-layout-rule-transitionalIan Lynagh2013-07-211-2/+1
| | | | | I think the alternative layout rule flags are deliberately not documented at the moment.
* Sync the list of default warnings with reality; fixes #8060.Ian Lynagh2013-07-211-4/+9
|
* Update docs for readMVar/tryReadMVar.Edward Z. Yang2013-07-161-6/+10
| | | | Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
* Release note for atomicReadMVar and friends.Edward Z. Yang2013-07-101-0/+10
| | | | Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
* Docs for ghci completion command for ghci; part of #5687. Patch from hvr.Ian Lynagh2013-07-071-0/+87
|
* Update user's guide for kind inference for closed type families.Richard Eisenberg2013-06-281-2/+42
|
* Document -XTypeOperators, which had escaped documentation altogether thus farSimon Peyton Jones2013-06-252-5/+55
|
* Fix syntax in some code in the user guide; fixes #8007Ian Lynagh2013-06-221-4/+4
|
* The help flag is --help, not -help; fixes #8005Ian Lynagh2013-06-221-1/+1
|
* Use consistent dashes in the user guideIan Lynagh2013-06-2212-73/+73
| | | | | | We were using a mixture of "&ndash;&ndash;" and "--". We now consistently use "--", which has the advantage that copy/pasting flags will work.
* Remove extra dashes in a flag name in the user guideIan Lynagh2013-06-221-1/+1
|
* Revise implementation of overlapping type family instances.Richard Eisenberg2013-06-216-91/+172
| | | | | | | | | | | | | | | | | | | This commit changes the syntax and story around overlapping type family instances. Before, we had "unbranched" instances and "branched" instances. Now, we have closed type families and open ones. The behavior of open families is completely unchanged. In particular, coincident overlap of open type family instances still works, despite emails to the contrary. A closed type family is declared like this: > type family F a where > F Int = Bool > F a = Char The equations are tried in order, from top to bottom, subject to certain constraints, as described in the user manual. It is not allowed to declare an instance of a closed family.
* Add release note blurb for Clang support.Austin Seipp2013-06-201-0/+7
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Document -fwarn-dodgy-imports changes in release notes. Trac #7167.Austin Seipp2013-06-201-0/+7
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Release note blurb for Linker fixes.Austin Seipp2013-06-161-0/+6
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* --show-options lists all flags. Add user documentation for #7843Jan Stolarek2013-06-132-0/+18
|
* Outline 7.8.1 release notes.Austin Seipp2013-06-081-15/+476
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Implement cardinality analysisSimon Peyton Jones2013-06-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This major patch implements the cardinality analysis described in our paper "Higher order cardinality analysis". It is joint work with Ilya Sergey and Dimitrios Vytiniotis. The basic is augment the absence-analysis part of the demand analyser so that it can tell when something is used never at most once some other way The "at most once" information is used a) to enable transformations, and in particular to identify one-shot lambdas b) to allow updates on thunks to be omitted. There are two new flags, mainly there so you can do performance comparisons: -fkill-absence stops GHC doing absence analysis at all -fkill-one-shot stops GHC spotting one-shot lambdas and single-entry thunks The big changes are: * The Demand type is substantially refactored. In particular the UseDmd is factored as follows data UseDmd = UCall Count UseDmd | UProd [MaybeUsed] | UHead | Used data MaybeUsed = Abs | Use Count UseDmd data Count = One | Many Notice that UCall recurses straight to UseDmd, whereas UProd goes via MaybeUsed. The "Count" embodies the "at most once" or "many" idea. * The demand analyser itself was refactored a lot * The previously ad-hoc stuff in the occurrence analyser for foldr and build goes away entirely. Before if we had build (\cn -> ...x... ) then the "\cn" was hackily made one-shot (by spotting 'build' as special. That's essential to allow x to be inlined. Now the occurrence analyser propagates info gotten from 'build's stricness signature (so build isn't special); and that strictness sig is in turn derived entirely automatically. Much nicer! * The ticky stuff is improved to count single-entry thunks separately. One shortcoming is that there is no DEBUG way to spot if an allegedly-single-entry thunk is acually entered more than once. It would not be hard to generate a bit of code to check for this, and it would be reassuring. But it's fiddly and I have not done it. Despite all this fuss, the performance numbers are rather under-whelming. See the paper for more discussion. nucleic2 -0.8% -10.9% 0.10 0.10 +0.0% sphere -0.7% -1.5% 0.08 0.08 +0.0% -------------------------------------------------------------------------------- Min -4.7% -10.9% -9.3% -9.3% -50.0% Max -0.4% +0.5% +2.2% +2.3% +7.4% Geometric Mean -0.8% -0.2% -1.3% -1.3% -1.8% I don't quite know how much credence to place in the runtime changes, but movement seems generally in the right direction.
* Update docs for "set prompt2"Ian Lynagh2013-06-041-0/+10
|
* Fix #5863Jose Pedro Magalhaes2013-05-211-0/+3
|