summaryrefslogtreecommitdiff
path: root/packages
Commit message (Collapse)AuthorAgeFilesLines
* Implement -jsem: parallelism controlled by semaphoressheaf2023-04-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See https://github.com/ghc-proposals/ghc-proposals/pull/540/ for a complete description for the motivation for this feature. The `-jsem` option allows a build tool to pass a semaphore to GHC which GHC can use in order to control how much parallelism it requests. GHC itself acts as a client in the GHC jobserver protocol. ``` GHC Jobserver Protocol ~~~~~~~~~~~~~~~~~~~~~~ This proposal introduces the GHC Jobserver Protocol. This protocol allows a server to dynamically invoke many instances of a client process, while restricting all of those instances to use no more than <n> capabilities. This is achieved by coordination over a system semaphore (either a POSIX semaphore [6]_ in the case of Linux and Darwin, or a Win32 semaphore [7]_ in the case of Windows platforms). There are two kinds of participants in the GHC Jobserver protocol: - The *jobserver* creates a system semaphore with a certain number of available tokens. Each time the jobserver wants to spawn a new jobclient subprocess, it **must** first acquire a single token from the semaphore, before spawning the subprocess. This token **must** be released once the subprocess terminates. Once work is finished, the jobserver **must** destroy the semaphore it created. - A *jobclient* is a subprocess spawned by the jobserver or another jobclient. Each jobclient starts with one available token (its *implicit token*, which was acquired by the parent which spawned it), and can request more tokens through the Jobserver Protocol by waiting on the semaphore. Each time a jobclient wants to spawn a new jobclient subprocess, it **must** pass on a single token to the child jobclient. This token can either be the jobclient's implicit token, or another token which the jobclient acquired from the semaphore. Each jobclient **must** release exactly as many tokens as it has acquired from the semaphore (this does not include the implicit tokens). ``` Build tools such as cabal act as jobservers in the protocol and are responsibile for correctly creating, cleaning up and managing the semaphore. Adds a new submodule (semaphore-compat) for managing and interacting with semaphores in a cross-platform way. Fixes #19349
* Merge libiserv with ghciSylvain Henry2023-02-171-1/+0
| | | | | | | | | | `libiserv` serves no purpose. As it depends on `ghci` and doesn't have more dependencies than the `ghci` package, its code could live in the `ghci` package too. This commit also moves most of the code from the `iserv` program into the `ghci` package as well so that it can be reused. This is especially useful for the implementation of TH for the JS backend (#22261, !9779).
* Rename Solo[constructor] to MkSoloTorsten Schmits2022-09-211-1/+1
| | | | | | | | | | | Part of proposal 475 (https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0475-tuple-syntax.rst) Moves all tuples to GHC.Tuple.Prim Updates ghc-prim version (and bumps bounds in dependents) updates haddock submodule updates deepseq submodule updates text submodule
* Bump Haskeline and add exceptions as boot libraryBen Gamari2019-11-131-0/+1
| | | | Haskeline now depends upon exceptions. See #16752.
* Update Trac ticket URLs to point to GitLabRyan Scott2019-03-151-1/+1
| | | | | This moves all URL references to Trac tickets to their corresponding GitLab counterparts.
* Remove `parallel` as a submoduleAlec Theriault2019-02-161-1/+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.
* Remove random submoduleBen Gamari2018-07-141-1/+0
| | | | | I believe this was originally introduced to help test DPH, which is now gone.
* Include ghc-heap and libiserv in the "package" file.HE, Tao2018-06-221-0/+2
| | | | | | | | | | | | | | | | Previously, the `make clean` (as well as `make dist-clean`) doesn't work for ghc-heap and libiserv, due to these two libraries are not presented in the "packages" file. Test Plan: [skip ci] Reviewers: bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4878
* vectorise: Put it out of its miseryBen Gamari2018-06-021-5/+1
| | | | | | | | | | | | | | | | | | | | | Poor DPH and its vectoriser have long been languishing; sadly it seems there is little chance that the effort will be rekindled. Every few years we discuss what to do with this mass of code and at least once we have agreed that it should be archived on a branch and removed from `master`. Here we do just that, eliminating heaps of dead code in the process. Here we drop the ParallelArrays extension, the vectoriser, and the `vector` and `primitive` submodules. Test Plan: Validate Reviewers: simonpj, simonmar, hvr, goldfire, alanz Reviewed By: simonmar Subscribers: goldfire, rwbarton, thomie, mpickering, carter Differential Revision: https://phabricator.haskell.org/D4761
* Declare upstram repo location for hsc2hsHerbert Valerio Riedel2017-10-261-1/+1
| | | | [skip ci]
* Add 'stm' package to the global package databaseHerbert Valerio Riedel2017-09-201-1/+1
| | | | | | | | | | | | | | | | | | This is a preparation for `haskeline` picking up a dependency on `stm` real soon now. See https://github.com/judah/haskeline/pull/61 for details. If we figure out a way to not bundle the libraries depended upon by the GHCi executable in the global package database (see #8919 for the original reason why we had to start bundling terminfo/haskeline in the first place) we can get rid of `stm` again... On the bright side, we were able to avoid uploading new `stm` releases for over two years already, so it shouldn't cause too much trouble if GHC imposes a strong preference on the `stm` package's version (this most likely will mostly affect Linux distributions & similiar). While at it, this also update the stm submodule to include relaxed bounds to allow the upcoming base-4.11 version.
* Bump mtl, parsec, text submodulesRyan Scott2017-08-141-2/+2
| | | | | | | | | | | | | | These three submodules have commits which add certain files to their respective .gitignores which GHC's build system produces. Also update the packages file accordingly. Test Plan: If it builds, ship it Reviewers: hvr, austin, bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3842
* Enable building Cabal with parsecHerbert Valerio Riedel2017-08-011-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Cabal's parser has been rewritten in terms of Parsec (which is not enabled yet in Cabal-2.0 by default, but can be enabled by a cabal flag). The plan for Cabal is to drop support for the non-parsec parser, so we need to prepare GHC to cope with new situation. However, this means that lib:Cabal requires three new library dependency submodules, - parsec - text - mtl What complicates matters is that we need to build `ghc-cabal` early on during the bootstrap phase which currently needs to invoke `ghc --make` directly. So these additional dependencies need to be integrated into the monolithic `ghc --make` invocation which produces the `ghc-cabal` executable. Test Plan: `./validate --fast` passed Reviewers: austin, bgamari Subscribers: erikd, phadej, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3757
* Hoopl: remove dependency on Hoopl packageMichal Terepeta2017-06-231-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This copies the subset of Hoopl's functionality needed by GHC to `cmm/Hoopl` and removes the dependency on the Hoopl package. The main motivation for this change is the confusing/noisy interface between GHC and Hoopl: - Hoopl has `Label` which is GHC's `BlockId` but different than GHC's `CLabel` - Hoopl has `Unique` which is different than GHC's `Unique` - Hoopl has `Unique{Map,Set}` which are different than GHC's `Uniq{FM,Set}` - GHC has its own specialized copy of `Dataflow`, so `cmm/Hoopl` is needed just to filter the exposed functions (filter out some of the Hoopl's and add the GHC ones) With this change, we'll be able to simplify this significantly. It'll also be much easier to do invasive changes (Hoopl is a public package on Hackage with users that depend on the current behavior) This should introduce no changes in functionality - it merely copies the relevant code. Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com> Test Plan: ./validate Reviewers: austin, bgamari, simonmar Reviewed By: bgamari, simonmar Subscribers: simonpj, kavon, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3616
* Revert "libffi via submodule"Moritz Angermann2017-05-111-1/+1
| | | | This reverts commit 8d4bce42de7929b0dec7e7d68e66bcfc4d266322.
* libffi via submoduleMoritz Angermann2017-05-111-1/+1
| | | | | | | | | | | | | | | | | | | This is rather annoying. I'd prefer to have a stable release to use. However libffi-3.2.1 has been released November 12, 2014, and libffi-4 is TBD. See also https://github.com/libffi/libffi/issues/296 The core reason for this change is that llvm changed the supported assembly to unified syntax, which libffi-3.2.1 does not use, and hence fails to compile for arm with llvm. For refence, see the following issue: https://github.com/libffi/libffi/issues/191 Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, snowleopard Differential Revision: https://phabricator.haskell.org/D3349
* Rename compact to ghc-compact.Edward Z. Yang2017-02-261-1/+1
| | | | | | | | | | | | | | | | | Summary: The plan is to release a separate library, 'compact', which gives a friendly user-facing interface. This library is just enough so that we can make sure the functionality is working in GHC. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: bgamari, dfeuer, austin, simonmar, hvr Subscribers: thomie, erikd, snowleopard Differential Revision: https://phabricator.haskell.org/D3206
* Make transformers upstream repository location consistent with othersDemi Obenour2016-11-221-1/+1
| | | | | | | | | | Reviewers: bgamari, austin Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2733
* Add compact to packages so it gets cleaned on make clean.Edward Z. Yang2016-10-061-0/+1
| | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Make random an "extra" packageSimon Marlow2016-05-111-1/+1
| | | | | It will get built as part of "validate --slow". We have 11 tests that depend on random, so this enables more tests to work.
* Remove all references to sync-allThomas Miedema2015-07-151-12/+2
|
* Declare official GitHub home of libraries/parallelHerbert Valerio Riedel2014-12-021-1/+1
| | | | | Effective immediately, pushing to the `libraries/parallel` submodule requires pushing via ssh://git@github.com/haskell/parallel.git.
* Don't build old-{time,locale} and haskell{98,2010}Austin Seipp2014-11-201-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: As discussed on ghc-devs@haskell.org and the trac ticket, we're removing these packages from the 7.10 release as they no longer work correctly, and can't easily be made to properly follow the standard as `base` changes over time. This does not remove the packages from the tree, only the build system. https://www.haskell.org/pipermail/ghc-devs/2014-November/007357.html Signed-off-by: Austin Seipp <austin@well-typed.com> Test Plan: iiam Reviewers: hvr, ekmett Reviewed By: hvr, ekmett Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D510 GHC Trac Issues: #9590
* Declare official GitHub home of libraries/deepseqHerbert Valerio Riedel2014-10-161-1/+1
| | | | | | | | Effective immediately, `deepseq` is maintained officially by the core-library-comittee. Moreover, pushing to libraries/deepseq requires pushing to ssh://git@github.com/haskell/deepseq.git from now on. [skip ci]
* Declare official GitHub home of libraries/filepathHerbert Valerio Riedel2014-09-151-1/+1
| | | | | Effective immediately, pushing to libraries/filepath requires pushing to ssh://git@github.com/haskell/filepath.git.
* Declare official GitHub home of libraries/{directory,process}Herbert Valerio Riedel2014-08-251-2/+2
| | | | | | | Effective immediately, pushing to libraries/{directory,process} requires pushing to ssh://git@github.com/haskell/{directory.process}.git. This has been done now even though there's no scripted tooling yet as the GitHub repo was already getting issues filed.
* Update upstream Git repo url for `time` packageHerbert Valerio Riedel2014-07-211-1/+1
| | | | | | | | The `time` package has recently moved its primary upstream location to https://github.com/haskell/time. This leaves `transformers` the only package used by GHC still requiring darcs2git mirroring machinery.
* Declare official github home of libraries/unixHerbert Valerio Riedel2014-07-111-1/+1
| | | | | | | Effective immediately, pushing to libraries/unix requires pushing to ssh://git@github.com/haskell/unix.git. This done now even though there's no scripted tooling yet as the GitHub repo is already receiving pull requests (which are getting merged)
* Convert loose sub-repos into proper submodules (re #8545)Herbert Valerio Riedel2014-06-251-18/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifically, the following sub-repos/modules are converted: - libffi-tarballs - libraries/array - libraries/deepseq - libraries/directory - libraries/dph - libraries/filepath - libraries/haskell2010 - libraries/haskell98 - libraries/hoopl - libraries/hpc - libraries/old-locale - libraries/old-time - libraries/parallel - libraries/process - libraries/stm - libraries/unix - nofib - utils/hsc2hs N.B. ghc-tarballs is not converted as it will probably be handled differently in the future. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Set/update upstream repo url for haddockHerbert Valerio Riedel2014-06-041-2/+5
| | | | | | | | | | | | In the future, some script will use the last column to configure Git to redirect `push` operations to the respective primary Git repo. One way could be via the `pushInsteadOf` facility described in https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Update `sync-all` and `packages` wrt to fold-inHerbert Valerio Riedel2014-04-191-5/+0
| | | | | | | | | | | | | | | | This adapts `sync-all` and `packages` to the recently folded-in Git repositories - `base.git` - `ghc-prim.git` - `integer-gmp.git` - `integer-simple.git` - `template-haskell.git` See #8545 as well as 5f54d67818ee7a74325eed130438beba96510e43 for more details. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Convert haddock into a proper submodule (re #8545)Herbert Valerio Riedel2014-03-231-1/+1
| | | | | | | | This should help contribute content to https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Update `sync-all` and others files w.r.t. merged testsuite (re #8545)Herbert Valerio Riedel2014-01-121-4/+3
| | | | | | | | | | | | | See merge commit 66693401b98cb5aa912948af7bbd2182474f50c4 This commit also adds a check for a left-over testsuite/.git folder to sync-all This way, the first time sync-all is called after updating to a post-testsuite-merge (see #8545) state of ghc.git, the sync-all script aborts with an error message if a `testsuite/.git` folder is detected and thus forces the user to take action. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Fix obsolete mention of `darcs-all` scriptHerbert Valerio Riedel2013-11-041-4/+4
| | | | Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Update `terminfo` to version 0.3.2.6Herbert Valerio Riedel2013-10-311-1/+1
| | | | | | | | | Thus GHC's in-tree version corresponds exactly to [hackage:terminfo-0.3.2.6]. Morever, `terminfo` has moved to GitHub as well (https://github.com/judah/terminfo) so the upstream repo URL in `packages` is updated as well. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Update upstream repo url for `haskeline`Herbert Valerio Riedel2013-10-311-1/+1
| | | | | | | | | | | [hackage:haskeline] has now an official GitHub repo at https://github.com/judah/haskeline.git Consequently, there remain only 3 repos which are Darcs hosted (and thus still require darcs2git mirroring), namely [hackage:time], [hackage:terminfo], and [hackage:transformers]. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Add GitHub upstream repo for `libraries/random`Herbert Valerio Riedel2013-10-271-2/+2
| | | | Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Update `primitive` and `vector` packagesHerbert Valerio Riedel2013-09-261-2/+2
| | | | | | | | | | | | | - `primitive` is updated to upstream's HEAD which is essentially `primitive-0.5.1.0`, plus a core-lint-error workaround for #8355 and some minor cleanups. - `vector` is updated to upstreams `vector-0.10.9.1` release Note: The upstream repo location has changed to GitHub, hence the update in the `packages` file Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Extend `packages` by 4th column for upstream repoHerbert Valerio Riedel2013-09-021-46/+48
| | | | | | | By keeping the repository url in the `packages` file scripts such as source:ghc/sync-all can pick it up. Moreover, it's easier to automatically validate for correctness than the wiki:Repositories/Upstream page.
* Move libffi's tarball into its own repoIan Lynagh2013-07-301-1/+2
| | | | This means that ghc-tarballs is only needed on Windows
* Remove the VCS column from 'packages'Ian Lynagh2013-03-041-49/+48
| | | | It's now always 'git'.
* Put the main ghc tree last in packagesIan Lynagh2013-02-171-1/+1
| | | | | | | This means that "./sync-all commit" will record in submodules first, and then prompt you to record a patch updating the version of the submodules last. Should make it less likely that we forget to update the submodules' versions.
* random is a submoduleIan Lynagh2013-02-031-1/+1
| | | | Looks like I forgot to make it one in the original conversion
* Fix xhtml's entry in the packages file; fixes #7632Ian Lynagh2013-02-011-1/+1
| | | | xhtml is a submodule
* Use a submodule for the time packageIan Lynagh2012-12-021-0/+1
| | | | | This bring the time package into line with how we handle other packages.
* Don't get submodules when 'get'ingIan Lynagh2012-12-021-11/+12
| | | | Leave it to 'git submodule init/update'
* We no longer need to build utf8-stringIan Lynagh2012-07-241-1/+0
| | | | haskeline no longer depends on it
* Use transformers directly, rather than using mtlIan Lynagh2012-05-191-1/+0
| | | | This means we no longer need mtl in a GHC tree.
* Follow upstream mtl and Cabal, add transformers package (#5958)Paolo Capriotti2012-05-071-0/+1
|
* GHC trees no longer include the extensible-exceptions packageIan Lynagh2012-02-211-1/+0
|