summaryrefslogtreecommitdiff
path: root/libraries
Commit message (Collapse)AuthorAgeFilesLines
* base: fix encoding for JS archSylvain Henry2022-06-151-1/+5
|
* Remove unused seqListSpineSylvain Henry2022-06-131-5/+0
| | | | It isn't used in ghcjs either
* JS Backend: remove misc. warningsdoyougnu2022-06-134-5/+3
|
* JS Backend: ghcjs_HOST_OS --> js_HOST_ARCHdoyougnu2022-06-133-10/+10
|
* JS-Backend: rebased to master 468f919bdoyougnu2022-06-131-1/+0
| | | | | | | | | | | | | | | First rebase of the JS-Backend. This rebase includes the JS backend combined with !7442 (new backend design). Unfortunately we have to short circuit the new backend design because the JS backend takes over after STG and not after StgToCmm. What's working: - hadrian builds JS backend - JS backend outputs .js files and "links" them What still has to be done: - JS backend is missing core js libraries as we add these we discover bugs in the linker and js rts.
* add GHCJS modules to base packageLuite Stegeman2022-06-134-0/+1871
|
* ShortText: add singletonSylvain Henry2022-06-131-0/+5
|
* ghci: Avoid unused-xyz warningsSylvain Henry2022-06-131-2/+4
|
* GHCi.FFI: ignore ffi.h and friends for js-backenddoyougnu2022-06-131-4/+35
|
* ghc-heap: Don't compile Cmm file for JS-Backenddoyougnu2022-06-131-1/+2
|
* base: disable forkOS and bound thread machinerySylvain Henry2022-06-131-2/+33
|
* Base: don't build C and Cmm sources with ghcjsSylvain Henry2022-06-131-13/+15
|
* ghc-prim: avoid building C filesSylvain Henry2022-06-131-12/+13
|
* Deprecate TypeInType extensionHaskellMouse2022-06-066-6/+9
| | | | | | | | | | | | | | | | This commit fixes #20312 It deprecates "TypeInType" extension according to the following proposal: https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0083-no-type-in-type.rst It has been already implemented. The migration strategy: 1. Disable TypeInType 2. Enable both DataKinds and PolyKinds extensions Metric Decrease: T16875
* Bump Cabal submoduleBen Gamari2022-06-011-0/+0
| | | | | | To current `master`. (cherry picked from commit fbb59c212415188486aafd970eafef170516356a)
* Bump bytestring, process, and text submodulesBen Gamari2022-06-011-0/+0
| | | | | | | | | Metric Decrease: T5631 Metric Increase: T18223 (cherry picked from commit 55fcee30cb3281a66f792e8673967d64619643af)
* Language.Haskell.Syntax: Fix docs for PromotedConsT etc.Shlomo Shuck2022-06-011-6/+6
| | | | Fixes ghc/ghc#21675.
* Pure Haskell implementation of GHC.UnicodePierre Le Marre2022-06-0133-12288/+24361
| | | | | | | | | | | | | | | | | | | | | | | | Switch to a pure Haskell implementation of base:GHC.Unicode, based on the implementation of the package unicode-data (https://github.com/composewell/unicode-data/). Approved by CLC as per https://github.com/haskell/core-libraries-committee/issues/59#issuecomment-1132106691. - Remove current Unicode cbits. - Add generator for Unicode property files from Unicode Character Database. - Generate internal modules. - Update GHC.Unicode. - Add unicode003 test for general categories and case mappings. - Add Python scripts to check 'base' Unicode tests outputs and characters properties. Fixes #21375 ------------------------- Metric Decrease: T16875 Metric Increase: T4029 T18304 haddock.base -------------------------
* export IsList from GHC.IsListTeo Camarasu2022-05-294-70/+91
| | | | it is still re-exported from GHC.Exts
* Expand documentation of hIsTerminalDeviceBodigrim2022-05-281-1/+8
|
* Use a class to check validity of withDictwip/withdictKrzysztof Gogolewski2022-05-276-21/+20
| | | | | | | | | | | | This moves handling of the magic 'withDict' function from the desugarer to the typechecker. Details in Note [withDict]. I've extracted a part of T16646Fail to a separate file T16646Fail2, because the new error in 'reify' hides the errors from 'f' and 'g'. WithDict now works with casts, this fixes #21328. Part of #19915
* [base] Fix the links in the Data.Data moduleHécate Moonlight2022-05-261-4/+2
| | | | | | fix #21658 fix #21657 fix #21657
* fix executablePath test for NetBSDFraser Tweedale2022-05-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | executablePath support for NetBSD was added in a172be07e3dce758a2325104a3a37fc8b1d20c9c, but the test was not updated. Update the test so that it works for NetBSD. This requires handling some quirks: - The result of getExecutablePath could include "./" segments. Therefore use System.FilePath.equalFilePath to compare paths. - The sysctl(2) call returns the original executable name even after it was deleted. Add `canQueryAfterDelete :: [FilePath]` and adjust expectations for the post-delete query accordingly. Also add a note to the `executablePath` haddock to advise that NetBSD behaves differently from other OSes when the file has been deleted. Also accept a decrease in memory usage for T16875. On Windows, the metric is -2.2% of baseline, just outside the allowed ±2%. I don't see how this commit could have influenced this metric, so I suppose it's something in the CI environment. Metric Decrease: T16875
* Replace dead link in Haddock documentation of Control.Monad.Fail (fixes #21602)BinderDavid2022-05-261-1/+1
|
* nonmoving: Fix documentation of GC statistics fieldsBen Gamari2022-05-201-11/+8
| | | | | | These were previously incorrect. Fixes #21553.
* testsuite: Add tests for #21336Ben Gamari2022-05-197-0/+47
|
* base: Throw exceptions raised while closing finalized HandlesBen Gamari2022-05-193-7/+60
| | | | Fixes #21336.
* base: Introduce [sg]etFinalizerExceptionHandlerBen Gamari2022-05-196-25/+93
| | | | | This introduces a global hook which is called when an exception is thrown during finalization.
* Bump time submodule to 1.12.2Matthew Pickering2022-05-171-0/+0
| | | | | | This bumps the time submodule to the 1.12.2 release. Fixes #21571
* Fix bad interaction between withDict and the SpecialiserSimon Peyton Jones2022-05-171-0/+9
| | | | | | | | | | | | This MR fixes a bad bug, where the withDict was inlined too vigorously, which in turn made the type-class Specialiser generate a bogus specialisation, because it saw the same overloaded function applied to two /different/ dictionaries. Solution: inline `withDict` later. See (WD8) of Note [withDict] in GHC.HsToCore.Expr See #21575, which is fixed by this change.
* Re-export augment and build from GHC.ListBen Gamari2022-05-132-0/+5
| | | | Resolves https://gitlab.haskell.org/ghc/ghc/-/issues/19127
* Correct base's changelog for 4.16.1.0Hécate Moonlight2022-05-091-4/+9
| | | | | | | This commit reaffects the new Ix instances of the foreign integral types from base 4.17 to 4.16.1.0 closes #21529
* Start 9.6.1-notessheaf2022-05-051-0/+2
| | | | | Updates the documentation notes to start tracking changes for the 9.6.1 release (instead of 9.4).
* add since annotations for instances of ByteArrayTeo Camarasu2022-05-051-0/+9
|
* Fix broken rules for (^) with known small powersMatthew Craven2022-05-051-12/+11
|
* Explain that 'fail s' should run in the monad itselfTom Ellis2022-05-051-0/+4
|
* Assume at least one evaluation for nested SubDemands (#21081, #21133)wip/T21081Sebastian Graf2022-05-031-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See the new `Note [SubDemand denotes at least one evaluation]`. A demand `n :* sd` on a let binder `x=e` now means > "`x` was evaluated `n` times and in any program trace it is evaluated, `e` is > evaluated deeply in sub-demand `sd`." The "any time it is evaluated" premise is what this patch adds. As a result, we get better nested strictness. For example (T21081) ```hs f :: (Bool, Bool) -> (Bool, Bool) f pr = (case pr of (a,b) -> a /= b, True) -- before: <MP(L,L)> -- after: <MP(SL,SL)> g :: Int -> (Bool, Bool) g x = let y = let z = odd x in (z,z) in f y ``` The change in demand signature "before" to "after" allows us to case-bind `z` here. Similarly good things happen for the `sd` in call sub-demands `Cn(sd)`, which allows for more eta-reduction (which is only sound with `-fno-pedantic-bottoms`, albeit). We also fix #21085, a surprising inconsistency with `Poly` to `Call` sub-demand expansion. In an attempt to fix a regression caused by less inlining due to eta-reduction in T15426, I eta-expanded the definition of `elemIndex` and `elemIndices`, thus fixing #21345 on the go. The main point of this patch is that it fixes #21081 and #21133. Annoyingly, I discovered that more precise demand signatures for join points can transform a program into a lazier program if that join point gets floated to the top-level, see #21392. There is no simple fix at the moment, but !5349 might. Thus, we accept a ~5% regression in `MultiLayerModulesTH_OneShot`, where #21392 bites us in `addListToUniqDSet`. T21392 reliably reproduces the issue. Surprisingly, ghc/alloc perf on Windows improves much more than on other jobs, by 0.4% in the geometric mean and by 2% in T16875. Metric Increase: MultiLayerModulesTH_OneShot Metric Decrease: T16875
* libraries/base: docs: Explain relationshipt between `finalizeForeignPtr` and ↵Niklas Hambüchen2022-05-022-10/+22
| | | | | | `*Conc*` creation Fixes https://gitlab.haskell.org/ghc/ghc/-/issues/21420
* typosEric Lindblad2022-05-011-2/+2
|
* ghc-boot: export typesynonyms from GHC.Utils.EncodingAdam Sandberg Ericsson2022-04-301-0/+2
| | | | This makes the Haddocks easier to understand.
* Add a note about instance visibility across component boundariesparsonsmatt2022-04-301-3/+16
| | | | | | | | | | | | | | | | | | | In principle, the *visible* instances are * all instances defined in a prior top-level declaration group (see docs on `newDeclarationGroup`), or * all instances defined in any module transitively imported by the module being compiled However, actually searching all modules transitively below the one being compiled is unreasonably expensive, so `reifyInstances` will report only the instance for modules that GHC has had some cause to visit during this compilation. This is a shortcoming: `reifyInstances` might fail to report instances for a type that is otherwise unusued, or instances defined in a different component. You can work around this shortcoming by explicitly importing the modules whose instances you want to be visible. GHC issue #20529 has some discussion around this. Fixes #20529
* Bump bytestring submoduleBen Gamari2022-04-291-0/+0
| | | | Update to current `master`.
* winio: add support to iserv.Tamar Christina2022-04-283-4/+29
|
* add since annotation for GHC.Stack.CCS.whereFromTeo Camarasu2022-04-281-0/+2
|
* Add INLINE pragmas for Enum helper methodsSimon Peyton Jones2022-04-282-15/+63
| | | | | | | | | | | | | | | | | | | | | | | As #21343 showed, we need to be super-certain that the "helper methods" for Enum instances are actually inlined or specialised. I also tripped over this when I discovered that numericEnumFromTo and friends had no pragmas at all, so their performance was very fragile. If they weren't inlined, all bets were off. So I've added INLINE pragmas for them too. See new Note [Inline Enum method helpers] in GHC.Enum. I also expanded Note [Checking for INLINE loop breakers] in GHC.Core.Lint to explain why an INLINE function might temporarily be a loop breaker -- this was the initial bug report in #21343. Strangely we get a 16% runtime allocation decrease in perf/should_run/T15185, but only on i386. Since it moves in the right direction I'm disinclined to investigate, so I'll accept it. Metric Decrease: T15185
* Bump process submoduleBen Gamari2022-04-281-0/+0
|
* Mark GHC.Prim.PtrEq as Unsafesheaf2022-04-271-1/+1
| | | | | | | This module exports unsafe pointer equality operations, so we accordingly mark it as Unsafe. Fixes #21433
* Documentation for setLocaleEncodingBodigrim2022-04-271-2/+27
|
* Bump text submodule.Ben Gamari2022-04-271-0/+0
| | | | This should fix #21352
* Fix rendering of liftA haddockLi-yao Xia2022-04-251-2/+1
|