summaryrefslogtreecommitdiff
path: root/libraries
Commit message (Collapse)AuthorAgeFilesLines
* Update Trac ticket URLs to point to GitLabRyan Scott2019-03-1531-48/+48
| | | | | This moves all URL references to Trac tickets to their corresponding GitLab counterparts.
* TH: support raw bytes literals (#14741)Sylvain Henry2019-03-086-1/+51
| | | | | | | | | | | | | | | | | | | GHC represents String literals as ByteString internally for efficiency reasons. However, until now it wasn't possible to efficiently create large string literals with TH (e.g. to embed a file in a binary, cf #14741): TH code had to unpack the bytes into a [Word8] that GHC then had to re-pack into a ByteString. This patch adds the possibility to efficiently create a "string" literal from raw bytes. We get the following compile times for different sizes of TH created literals: || Size || Before || After || Gain || || 30K || 2.307s || 2.299 || 0% || || 3M || 3.073s || 2.400s || 21% || || 30M || 8.517s || 3.390s || 60% || Ticket #14741 can be fixed if the original code uses this new TH feature.
* Fix #16392: revertCAFs in external interpreter when necessaryPhuong Trinh2019-03-072-1/+9
| | | | | | | | | We revert CAFs when loading/adding modules in ghci (presumably to refresh execution states and to allow for object code to be unloaded from the runtime). However, with `-fexternal-interpreter` enabled, we are only doing it in the ghci process instead of the external interpreter process where the cafs are allocated and computed. This makes sure that revertCAFs is done in the appropriate process no matter if that flag is present or not.
* Visible dependent quantificationRyan Scott2019-03-015-6/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements GHC proposal 35 (https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0035-forall-arrow.rst) by adding the ability to write kinds with visible dependent quantification (VDQ). Most of the work for supporting VDQ was actually done _before_ this patch. That is, GHC has been able to reason about kinds with VDQ for some time, but it lacked the ability to let programmers directly write these kinds in the source syntax. This patch is primarly about exposing this ability, by: * Changing `HsForAllTy` to add an additional field of type `ForallVisFlag` to distinguish between invisible `forall`s (i.e, with dots) and visible `forall`s (i.e., with arrows) * Changing `Parser.y` accordingly The rest of the patch mostly concerns adding validity checking to ensure that VDQ is never used in the type of a term (as permitting this would require full-spectrum dependent types). This is accomplished by: * Adding a `vdqAllowed` predicate to `TcValidity`. * Introducing `splitLHsSigmaTyInvis`, a variant of `splitLHsSigmaTy` that only splits invisible `forall`s. This function is used in certain places (e.g., in instance declarations) to ensure that GHC doesn't try to split visible `forall`s (e.g., if it tried splitting `instance forall a -> Show (Blah a)`, then GHC would mistakenly allow that declaration!) This also updates Template Haskell by introducing a new `ForallVisT` constructor to `Type`. Fixes #16326. Also fixes #15658 by documenting this feature in the users' guide.
* Cleanup iserv/iserv-proxyMoritz Angermann2019-02-284-13/+39
| | | | | | | | | | | | This adds trace messages that include the processes name and as such make debugging and following the communication easier. It also adds a note regarding the fwd*Call proxy-communication logic between the proxy and the slave. The proxy will now also poll for 60s to wait for the remote iserv to come up. (Alternatively you can start the remote process beforehand; and just have iserv-proxy connect to it)
* base: Allow fusion for zip7 and relatedAlexandre2019-02-243-0/+34
| | | | | | | | | | | | | | | | | | Fixes #14037. Metric Decrease: T9872b T9872d Reviewers: bgamari, simonpj, hvr Reviewed By: simonpj Subscribers: AndreasK, simonpj, osa1, dfeuer, rwbarton, carter GHC Trac Issues: #14037 Differential Revision: https://phabricator.haskell.org/D5249
* hWaitForInput-accurate-socket testTom Sydney Kerckhove2019-02-233-0/+25
|
* Build and copy libffi shared libraries correctly and enable dynamically ↵David Eichmann2019-02-221-0/+0
| | | | | | | | | | | | | | linking ghc. Test Plan: Ensure build environment does NOT have a system libffi installed (you may want to use a nix environment). Then `hadrian/build.sh -c --flavour=default` Reviewers: bgamari Subscribers: rwbarton, carter GHC Trac Issues: #15837
* Text.ParserCombinators.ReadP: use NonEmpty in FinalVaibhav Sagar2019-02-211-19/+22
| | | | | | The `Final` constructor needed to maintain the invariant that the list it is provided is always non-empty. Since NonEmpty is in `base` now, I think it would be better to use it for this purpose.
* Add comments about how zip fusionSimon Peyton Jones2019-02-202-26/+65
| | | | | | Alexandre Balde (rockbmb) points out that the fusion technology for foldr2, zip, zipWith, etc is undocumented. This patch adds comments to explain.
* Bump ghc version to 8.9Ryan Scott2019-02-201-1/+5
| | | | | | | Along the way, I discovered that `template-haskell.cabal` was hard-coding the GHC version (in the form of its `ghc-boot-th` version bounds), so I decided to make life a little simpler in the future by generating `template-haskell.cabal` with autoconf.
* base: Document errno behaviour in haddocks.Niklas Hambüchen2019-02-191-1/+5
| | | Also add an implementation comment for details.
* Fix Haddock comment for Integer datatypeAlexandre Baldé2019-02-181-2/+6
| | | | | | | | | | | | Move implementation notes for Integer to Haddock named section Revert documentation named chunk change [skip ci] Haddock's named chunk feature was not used correctly in this case, as it cannot export only parts of a Haddock top level comment. As such, it was removed and replaced by a message informing the end- user to browse the source code for detailed information.
* Remove `parallel` as a submoduleAlec Theriault2019-02-161-0/+0
| | | | | | | | | | | `parallel` is used in exactly one place in the GHC tree: the T2317 test. It seems almost by accident that it is a submodule; libraries needed only for tests should net be included as submodules (see `QuickCheck`, `async`, `haskell98`, `regex-compat`, `utf8-string`, `vector` and more for examples). T2317 will now get run only when `parallel` is installed instead of `parallel` being required for the testsuite to run.
* Minor documentation fix in GHC.ForeignPtrÖmer Sinan Ağacan2019-02-161-5/+3
|
* Properly escape character literals in HaddocksAlec Theriault2019-02-155-14/+14
| | | | | | | | Character literals in Haddock should not be written as plain `'\n'` since single quotes are for linking identifiers. Besides, since we want the character literal to be monospaced, we really should use `@\'\\n\'@`. [skip ci]
* Implement -Wredundant-record-wildcards and -Wunused-record-wildcardsMatthew Pickering2019-02-144-5/+5
| | | | | | | | | -Wredundant-record-wildcards warns when a .. pattern binds no variables. -Wunused-record-wildcards warns when none of the variables bound by a .. pattern are used. These flags are enabled by `-Wall`.
* Add `liftedTyped` to `Lift` classAlec Theriault2019-02-132-4/+59
| | | | | | | | Implements GHC proposal 43, adding a `liftTyped` method to the `Lift` typeclass. This also adds some documentation to `TExp`, describing typed splices and their advantages over their untyped counterparts. Resolves #14671.
* Fix typos [skip ci]Alexandre Esteves2019-02-131-2/+2
|
* Update parallel submoduleHerbert Valerio Riedel2019-02-131-0/+0
|
* Update array submoduleHerbert Valerio Riedel2019-02-121-0/+0
|
* Fix invalid doc commentAlec Theriault2019-02-101-16/+22
| | | | | | The invalid doc comments were exposed by 24b39ce53eedad4cefc30f6786542d2072d1f9b0. The fix is to properly escaped the `{-` and `-}` in the doc comments. Some other miscallaneous markup issues are also fixed.
* Update directory submoduleHerbert Valerio Riedel2019-02-081-0/+0
|
* Update filepath submoduleHerbert Valerio Riedel2019-02-081-0/+0
|
* Add a changelog for base 4.14.0.0Langston Barrett2019-02-082-1/+6
|
* TestEquality instance for ComposeLangston Barrett2019-02-081-1/+13
|
* Update hpc submoduleHerbert Valerio Riedel2019-02-081-0/+0
|
* Update terminfo submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update stm submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update process submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update parsec submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update haskeline submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update deepseq submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update unix submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* Update text submoduleHerbert Valerio Riedel2019-01-311-0/+0
|
* hWaitForInput-accurate-stdin testBen Gamari2019-01-313-0/+53
|
* Use ByteString to represent Cmm string literals (#16198)Sylvain Henry2019-01-312-5/+10
| | | | Also used ByteString in some other relevant places
* Add a RTS option -xp to load PIC object anywhere in address spaceZejun Wu2019-01-301-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This re-applies {D5195} with fixes for i386: * Fix unused label warnings, see {D5230} or {D5273} * Fix a silly bug introduced by moving `#if` {P190} Add a RTS option -xp to load PIC object anywhere in address space. We do this by relaxing the requirement of <0x80000000 result of `mmapForLinker` and implying USE_CONTIGUOUS_MMAP. We also need to change calls to `ocInit` and `ocGetNames` to avoid dangling pointers when the address of `oc->image` is changed by `ocAllocateSymbolExtra`. Test Plan: See {D5195}, also test under i386: ``` $ uname -a Linux watashi-arch32 4.18.5-arch1-1.0-ARCH #1 SMP PREEMPT Tue Aug 28 20:45:30 CEST 2018 i686 GNU/Linux $ cd testsuite/tests/th/ && make test ... ``` will run `./validate` on stacked diff. Reviewers: simonmar, bgamari, alpmestan, trommler, hvr, erikd Reviewed By: simonmar Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5289
* Compile count{Leading,Trailing}Zeros to corresponding x86_64 instructions ↵Dmitry Ivanov2019-01-303-0/+34
| | | | | | | under -mbmi2 This works similarly to existing implementation for popCount. Trac ticket: #16086.
* testsuite: Use makefile_testBen Gamari2019-01-302-7/+5
| | | | | This eliminates most uses of run_command in the testsuite in favor of the more structured makefile_test.
* Revert "Batch merge"Ben Gamari2019-01-306-42/+7
| | | | This reverts commit 76c8fd674435a652c75a96c85abbf26f1f221876.
* Batch mergeBen Gamari2019-01-306-7/+42
|
* Fix incorrectly named configure optionsAlec Theriault2019-01-271-2/+2
| | | | | | Although we should use 'AC_ARG_ENABLE' for boolean flags, it also means options get named '--enable-*', not '--with-*'. This should unbreak the --with-intree-gmp option.
* Update Cabal submodule to latest master branch tipHerbert Valerio Riedel2019-01-271-0/+0
|
* Update binary submodule to latest master branch tipHerbert Valerio Riedel2019-01-271-0/+0
|
* testsuite: Mark hWaitForInput-accurate-socket as requiring unixBen Gamari2019-01-271-1/+1
| | | | It imports System.Posix.IO.
* A few typofixesGabor Greif2019-01-232-3/+3
|
* Error out of invalid Int/Word bit shiftsAlec Theriault2019-01-234-26/+80
| | | | | | | | | | | | | Although the Haddock's for `shiftL` and `shiftR` do require the number of bits to be non-negative, we should still check this before calling out to primitives (which also have undefined behaviour for negative bit shifts). If a user _really_ wants to bypass checks that the number of bits is sensible, they already have the aptly-named `unsafeShiftL`/`unsafeShiftR` at their disposal. See #16111.
* Hadrian: support in-tree GMPAlec Theriault2019-01-232-2/+4
| | | | | | | | | | | | | | | | | | | | | | Summary: This adds top-level configure flags '--with-intree-gmp' and '--with-framework-preferred', both of which are especially relevant on MacOS. Besides gaining two new flags, Hadrian also had to be taught what to do with the 'framework' in .cabal files. Test Plan: ./boot && ./configure --with-intree-gmp && ./hadrian/build.sh ./boot && ./configure --with-gmp-framework-preferred && ./hadrian/build.sh # on macos Reviewers: carter, snowleopard, alpmestan, hvr, goldfire, bgamari Subscribers: rwbarton, erikd GHC Trac Issues: #16001 Differential Revision: https://phabricator.haskell.org/D5417
* Minor typo in docs for KProxyJoachim Breitner2019-01-231-1/+1
| | | | really minor, but it annoyed me when reading it :-)