summaryrefslogtreecommitdiff
path: root/libraries
Commit message (Collapse)AuthorAgeFilesLines
* Add predicates for testing if IOError is ResourceVanished.Andrew Martin2019-09-132-0/+29
| | | | | This adds isResourceVanished, resourceVanishedErrorType, and isResourceVanishedErrorType to System.IO.Error, resolving #14730.
* Bump Cabal submodule to 3.1Sebastian Graf2019-09-121-0/+0
| | | | | | | | ------------------------- Metric Increase: haddock.Cabal T4029 -------------------------
* Windows: make openTempFile fully atomic.Tamar Christina2019-09-112-29/+47
|
* Make sure all boolean settings entries use `YES` / `NO`John Ericson2019-09-051-3/+3
| | | | | | | | | Some where using `True` / `False`, a legacy of when they were in `Config.hs`. See #16914 / d238d3062a9858 for a similar problem. Also clean up the configure variables names for consistency and clarity while we're at it. "Target" makes clear we are talking about outputted code, not where GHC itself runs.
* Use C99 Fixed width types to avoid hack in base's configureJohn Ericson2019-09-013-27/+22
| | | | Define MD5Context in terms of `uint*_t` and don't use `HsFFI.h`.
* Some tweaks in GHC.Compact haddocksÖmer Sinan Ağacan2019-08-271-14/+17
|
* base: Reintroduce fusion for scanrTDecki2019-08-222-1/+46
| | | | While avoiding #16943.
* Remove unused imports of the form 'import foo ()' (Fixes #17065)James Foster2019-08-153-3/+1
| | | | | | | | | | | These kinds of imports are necessary in some cases such as importing instances of typeclasses or intentionally creating dependencies in the build system, but '-Wunused-imports' can't detect when they are no longer needed. This commit removes the unused ones currently in the code base (not including test files or submodules), with the hope that doing so may increase parallelism in the build system by removing unnecessary dependencies.
* Fix binary distributionTamar Christina2019-08-131-1/+0
|
* Consolidate `TablesNextToCode` and `GhcUnreigsterised` in configure (#15548)Joachim Breitner2019-08-101-0/+3
| | | | | | | | | | | | | | | | | | | | `TablesNextToCode` is now a substituted by configure, where it has the correct defaults and error handling. Nowhere else needs to duplicate that, though we may want the compiler to to guard against bogus settings files. I renamed it from `GhcEnableTablesNextToCode` to `TablesNextToCode` to: - Help me guard against any unfixed usages - Remove any lingering connotation that this flag needs to be combined with `GhcUnreigsterised`. Original reviewers: Original subscribers: TerrorJack, rwbarton, carter Original Differential Revision: https://phabricator.haskell.org/D5082
* Revert "Make scanr a good producer and consumer"Ben Gamari2019-08-072-18/+2
| | | | | | This reverts commit 4e1dfc3767167dddd0e151a2df8305b12aa0f49c. Due to #16943.
* testsuite: Add tests for #16943Ben Gamari2019-08-075-0/+23
|
* Introduce a type for "platform word size", use it instead of IntÖmer Sinan Ağacan2019-08-061-3/+35
| | | | | | | | We introduce a PlatformWordSize type and use it in platformWordSize field. This removes to panic/error calls called when platform word size is not 32 or 64. We now check for this when reading the platform config.
* Add Note [RuntimeRep and PrimRep] in RepTypeRichard Eisenberg2019-07-291-0/+2
| | | | | | | | | | Also adds Note [Getting from RuntimeRep to PrimRep], which deocuments a related thorny process. This Note addresses #16964, which correctly observes that documentation for this thorny design is lacking. Documentation only.
* base: add Functor, Applicative, Monad, Alternative, MonadPlus, Generic and ↵Fumiaki Kinoshita2019-07-282-0/+46
| | | | Generic1 instances to Kleisli
* ghc-heap: implement WEAK closure type #16974Adam Sandberg Eriksson2019-07-266-0/+84
|
* TemplateHaskell: reifyType (#16976)Vladislav Zavialov2019-07-265-1/+22
|
* Make stage 1 GHC target independentJohn Ericson2019-07-241-2/+2
| | | | | Now that the target macros are not being used, we remove them. This prevents target hardcoding regressions.
* Do not ignore events deletion when events to be added are provided (#16916)Ivan Kasatenko2019-07-211-4/+4
| | | | | | | | | | | Kqueue/kevent implementation used to ignore events to be unsubscribed from when events to be subscribed to were provided. This resulted in a lost notification subscription, when GHC runtime didn't listen for any events, yet the kernel considered otherwise and kept waking up the IO manager thread. This commit fixes this issue by always adding and removing all of the provided subscriptions.
* Added do-notation examples for Functor, Applicative and Monad combinators.Baldur Blöndal2019-07-204-0/+179
|
* testsuite: Mark T4808 as broken in threaded2 wayBen Gamari2019-07-181-1/+1
| | | | As noted in #16909.
* testsuite: Skip forking tests in profiled waysBen Gamari2019-07-182-0/+0
| | | | | | | As noted in #11645 and #8862, forking and profiling don't go well together. Bumps hpc and unix submodules.
* testsuite: Mark hWaitForInput-accurate-stdin as broken in all threaded waysBen Gamari2019-07-181-1/+1
| | | | Previously it was not marked as broken in profthreaded
* Create {Int,Word}32RepJohn Ericson2019-07-173-0/+4
| | | | | | | This prepares the way for making Int32# and Word32# the actual size they claim to be. Updates binary submodule for (de)serializing the new runtime reps.
* rename type parameter in `instance Applicative ((->) a)`, fixing #16928xplorld2019-07-141-1/+1
|
* Expunge #ifdef and #ifndef from the codebaseJohn Ericson2019-07-143-8/+8
| | | | | | | | These are unexploded minds as far as the linter is concerned. I don't want to hit in my MRs by mistake! I did this with `sed`, and then rolled back some changes in the docs, config.guess, and the linter itself.
* Remove LLVM_TARGET platform macrosJohn Ericson2019-07-141-0/+1
| | | | | Instead following @angerman's suggestion put them in the config file. Maybe we could re-key llvm-targets someday, but this is good for now.
* Remove purely external primopsJohn Ericson2019-07-145-1/+111
| | | | | | | | | | | | The compiler doesn't create uses nor compiles the uses that exist specially. These are just plain C-- FFI. These `await*` ones are especially important to so convert because "true" primops are hard to make platform-specific currently. The other exports are part of this commit so this module always exports something, which avoids silly CPP elsewhere. More will be added later once `foreign import prim` is extended.
* base: Data.Fixed: make HasResolution poly-kinded (#10055, #15622)Ashley Yakeley2019-07-132-6/+17
|
* Deduplicate "unique subdir" code between GHC and CabalJohn Ericson2019-07-093-0/+74
| | | | | | The code, including the generated module with the version, is now in ghc-boot. Config.hs reexports stuff as needed, ghc-pkg doesn't need any tricks at all.
* Fix #16895 by checking whether infix expression operator is a variablenineonine2019-07-052-6/+13
|
* Bump parsec submodule to 3.1.14.0Ben Gamari2019-07-041-0/+0
|
* Bump template-haskell version to 2.16.0.0Ryan Scott2019-07-032-2/+2
| | | | | | | Commit cef80c0b9edca3d21b5c762f51dfbab4c5857d8a debuted a breaking change to `template-haskell`, so in order to guard against it properly with CPP, we need to bump the `template-haskell` version number accordingly.
* Fix #15843 by extending Template Haskell AST for tuples to support sectionsnineonine2019-07-025-21/+66
|
* No atomics on arm32; this will just yield stubs.Moritz Angermann2019-07-021-0/+2
| | | | | | | | | | | | | | | As such the internal linker will fail for them. The alternative would be to implement them as stubs in the linker and have them barf when called. > Not all operations are supported by all target processors. If a particular operation cannot be implemented on the target processor, a warning is generated and a call an external function is generated. The external function carries the same name as the built-in version, with an additional suffix ‘_n’ where n is the size of the data type. (https://gcc.gnu.org/onlinedocs/gcc/_005f_005fsync-Builtins.html)
* getExecutablePath: get path from sysctl on FreeBSDFraser Tweedale2019-06-271-0/+47
|
* Bump Cabal submodule to what will become 3.0.0.0Ben Gamari2019-06-251-0/+0
| | | | | Metric Increase: haddock.Cabal
* Bump containers submodule to v0.6.2.1Ben Gamari2019-06-251-0/+0
|
* ghci: Don't rely on resolution of System.IO to base moduleBen Gamari2019-06-222-0/+37
| | | | | | | | | Previously we would hackily evaluate a textual code snippet to compute actions to disable I/O buffering and flush the stdout/stderr handles. This broke in a number of ways (#15336, #16563). Instead we now ship a module (`GHC.GHCi.Helpers`) with `base` containing the needed actions. We can then easily refer to these via `Orig` names.
* testsuite: Mark T3372 as fragile on WindowsBen Gamari2019-06-211-0/+2
| | | | | | | | On Windows we must lock package databases even when opening for read-only access. This means that concurrent GHC sessions are very likely to fail with file lock contention. See #16773.
* ghc-pkg needs settings file to un-hardcode target platformJohn Ericson2019-06-193-1/+123
| | | | This matches GHC itself getting the target platform from there.
* Add 'stringEncodeArch' and 'stringEncodeOS' to GHC.PlatformJohn Ericson2019-06-191-0/+61
|
* Move 'Platform' to ghc-bootJohn Ericson2019-06-192-0/+191
| | | | | | | ghc-pkg needs to be aware of platforms so it can figure out which subdire within the user package db to use. This is admittedly roundabout, but maybe Cabal could use the same notion of a platform as GHC to good affect too.
* Add more newtype-derived instances to Data.Ord.DownFumiaki Kinoshita2019-06-182-4/+26
| | | | | Metric Increase: haddock.base
* Data.Ord: give a field name getDown to DownFumiaki Kinoshita2019-06-183-4/+21
|
* base/Event/Poll: Drop POLLRDHUP enum itemBen Gamari2019-06-161-12/+0
| | | | | | Previously the Event enumeration produced by hsc2hs would sometimes include a currently-unused POLLRDHUP item. This unused binding would result in a build failure. Drop it.
* testsuite: Add assertions that way lists are in fact listsBen Gamari2019-06-152-2/+2
| | | | | | Previously there were a few cases where operations like `omit_ways` were incorrectly passed a single way (e.g. `omit_ways('threaded2')`). This won't work as the author expected.
* testsuite: Skip hDuplicateTo001 in concurrent waysBen Gamari2019-06-151-1/+2
| | | | As noted in #16819, this operation is racy under concurrent execution.
* Bump unix submoduleBen Gamari2019-06-151-0/+0
| | | | Skips `executeFile001` test in `threaded2` way. Fixes #16814.
* Implement the -XUnliftedNewtypes extension.Andrew Martin2019-06-147-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | GHC Proposal: 0013-unlifted-newtypes.rst Discussion: https://github.com/ghc-proposals/ghc-proposals/pull/98 Issues: #15219, #1311, #13595, #15883 Implementation Details: Note [Implementation of UnliftedNewtypes] Note [Unifying data family kinds] Note [Compulsory newtype unfolding] This patch introduces the -XUnliftedNewtypes extension. When this extension is enabled, GHC drops the restriction that the field in a newtype must be of kind (TYPE 'LiftedRep). This allows types like Int# and ByteArray# to be used in a newtype. Additionally, coerce is made levity-polymorphic so that it can be used with newtypes over unlifted types. The bulk of the changes are in TcTyClsDecls.hs. With -XUnliftedNewtypes, getInitialKind is more liberal, introducing a unification variable to return the kind (TYPE r0) rather than just returning (TYPE 'LiftedRep). When kind-checking a data constructor with kcConDecl, we attempt to unify the kind of a newtype with the kind of its field's type. When typechecking a data declaration with tcTyClDecl, we again perform a unification. See the implementation note for more on this. Co-authored-by: Richard Eisenberg <rae@richarde.dev>