summaryrefslogtreecommitdiff
path: root/hadrian/doc
Commit message (Collapse)AuthorAgeFilesLines
* Rename ghci.sh and build.sh to ghci and build respectivelyXavier Denis2020-02-293-11/+11
| | | | | | Convert hadrian buildscripts to unsuffixed, dashed form final cleanups
* hadrian: Add --broken-test flagBen Gamari2020-02-261-0/+10
| | | | | This exposes the flag of the same name supported by the testsuite driver.
* hadrian: Add execution and target architecture to stage-compilation figureBen Gamari2020-02-141-47/+198
|
* hadrian: Add --test-metrics argumentBen Gamari2020-02-091-0/+3
| | | | | Allowing the test metric output to be captured to a file, a la the METRIC_FILE environment variable of the make build system.
* Fix GhcThreaded settingBen Gamari2020-02-081-0/+2
| | | | | | | | | | | | | | This adopts a patch from NetBSD's packaging fixing the `GhcThreaded` option of the make build system. In addition we introduce a `ghcThreaded` option in hadrian's `Flavour` type. Also fix Hadrian's treatment of the `Use Threaded` entry in `settings`. Previously it would incorrectly claim `Use Threaded = True` if we were building the `threaded` runtime way. However, this is inconsistent with the `make` build system, which defines it to be whether the `ghc` executable is linked against the threaded runtime. Fixes #17692.
* hadrian: Allow override of Cabal configuration in hadrian.settingsBen Gamari2020-02-081-15/+17
| | | | | Fixes #17612 by adding a `cabal.configure.opts` key for `hadrian.settings`.
* Fix typos, via a Levenshtein-style correctorBrian Wignall2020-01-042-2/+2
|
* Hadrian docs: Rename the second "validate" entry to "slow-validate" [ci skip]Sebastian Graf2019-11-301-1/+1
| | | | That would be in line with the implementation.
* hadrian: point link to ghc gitlabAdam Sandberg Eriksson2019-10-261-1/+1
| | | | [skip ci]
* hadrian: Add `validate` and `slow validate` flavoursBen Gamari2019-10-081-0/+22
|
* Hadrian: Add -haddock option for GHCi's :doc commandTakenobu Tani2019-09-241-1/+1
| | | | | | | | | | | | | | This commit adds -haddock option to Hadrian-based build system. To enable :doc command on GHCi, core libraries must be compiled with -haddock option. Especially, the `-haddock` option is essential for a release build. Assuming current GitLab CI condition (.gitlab-ci.yml), I add -haddock option to the default flavour only. This has already been done for Make-based build system. Please see #16415.
* Add documentation for Hadrian expressionsJames Foster2019-08-221-0/+329
| | | | | This commit adds documentation on Hadrian's 'Expr' type and references the documentation in hadrian/README.md
* hadrian: Refactor file patterns for future Shake changes (fixes #17005)James Foster2019-08-061-5/+5
| | | | | | | | | | | | | | | | | Shake will be moving from its current implementation of ?== to one from System.FilePattern. Support for `//` is being dropped, leaving only `*` and `**` as special forms. This commit converts the existing file patterns in Hadrian to the new format. It also removes all occurances of <//> and changes the user-settings docs to remove references to // and add **. The conversion is as follows: - //a ==> **/a - a// ==> a/** - a//b ==> a/**/b
* hadrian/doc: Add some discussion of compilation stagesBen Gamari2019-07-091-0/+984
| | | | | This documents some of the lore surrounding the nature and naming of GHC's stage numbers.
* Hadrian: implement key-value settings for builder optionsAlp Mestanogullari2019-07-091-15/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | They take the general form `foo.bar.baz [+]= some values`, where `=` completely overrides the arguments for a builder and `+=` extends them. We currenly only support settings for updating the GHC and C compiler options, of the form: ``` {stage0, ..., stage3 or *}.{package name or *} .ghc.{c, hs, link, deps, toolargs or *}.opts {stage0, ..., stage3 or *}.{package name or *} .cc.{c, deps or *}.opts ``` The supported settings and their use is covered in the new section of `hadrian/doc/user-settings.md`, while the implementation is explained in a new Note [Hadrian settings]. Most of the logic is implemented in a new module, `Settings.Parser`, which contains key-value assignment/extension parsers as well as utilities for specifying allowed settings at a high-level, generating a `Predicate` from such a description or generating the list of possible completions for a given string. The additions to the `Settings` module make use of this to describe the settings that Hadrian currently supports, and apply all such key-value settings (from the command line and `<root>/hadrian.settings`) to the flavour that Hadrian is going to proceed with. This new setting system comes with support for generating Bash completions, implemented in `hadrian/completion.sh` and Hadrian's `autocomplete` target: > source hadrian/completion.sh > hadrian/build.sh stage1.base.ghc.<TAB> stage1.base.ghc.c.opts stage1.base.ghc.hs.opts stage1.base.ghc.*.opts stage1.base.ghc.deps.opts stage1.base.ghc.link.opts stage1.base.ghc.toolargs.opts
* Hadrian: add --test-root-dirs, to only run specific directories of testsAlp Mestanogullari2019-05-221-0/+31
| | | | | | | | | We can specify several of those, by using the flag multiple times or just once but combining the directories with ':'. Along the way, this patch also fixes the testsuite-related --only flag, so that we can use it many times instead of being force to specify a space-separated list of test in a single --only flag.
* Change GHC.hs to Packages.hs in Hadrian user-settings.mdGiles Anderson2019-05-131-1/+1
| | | | | ... "all packages that are currently built as part of the GHC are defined in src/Packages.hs"
* Generate settings by make/hadrian instead of configureJohn Ericson2019-04-301-0/+11
| | | | This allows it to eventually become stage-specific
* Hadrian: fix ghcDebugged and document itAlp Mestanogullari2019-04-181-0/+15
|
* Hadrian: document -a/--test-acceptAlp Mestanogullari2019-04-122-0/+33
|
* Replace git.haskell.org with gitlab.haskell.org (#16196)Yuriy Syrovetskiy2019-04-041-1/+1
|
* Hadrian: introduce an easy way for users to build with -split-sectionsAlp Mestanogullari2019-03-271-0/+28
| | | | | | | | | | | | | | | Any user can now trivially build any number of Haskell packages with `-split-sections` by using `splitSections`/`splitSectionsIf` on any existing or new flavour: -- build all packages but the ghc library with -split-sections splitSections :: Flavour -> Flavour -- build all packages that satisfy the given predicate -- with --split-sections splitSectionsIf :: (Package -> Bool) -> Flavour -> Flavour See the new section in `doc/user-settings.md`.
* Update Wiki URLs to point to GitLabTakenobu Tani2019-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | This moves all URL references to Trac Wiki to their corresponding GitLab counterparts. This substitution is classified as follows: 1. Automated substitution using sed with Ben's mapping rule [1] Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy... New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy... 2. Manual substitution for URLs containing `#` index Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy...#Zzz New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy...#zzz 3. Manual substitution for strings starting with `Commentary` Old: Commentary/XxxYyy... New: commentary/xxx-yyy... See also !539 [1]: https://gitlab.haskell.org/bgamari/gitlab-migration/blob/master/wiki-mapping.json
* Add a bench flavour to HadrianSebastian Graf2019-03-201-34/+20
|
* Add flavours linkSimon Peyton Jones2019-03-151-0/+1
|
* Rip out object splittingBen Gamari2019-03-051-9/+0
| | | | | | | | | | | | | | | The splitter is an evil Perl script that processes assembler code. Its job can be done better by the linker's --gc-sections flag. GHC passes this flag to the linker whenever -split-sections is passed on the command line. This is based on @DemiMarie's D2768. Fixes Trac #11315 Fixes Trac #9832 Fixes Trac #8964 Fixes Trac #8685 Fixes Trac #8629
* Hadrian: introduce ways to skip some documentation targetsAlp Mestanogullari2019-03-012-1/+59
| | | | | | | | | The initial motivation for this is to have a chance to run the binary distribution rules in our Windows CI without having to install sphinx-build and xelatex there, while retaining the ability to generate haddocks. I just ended up extending this idea a little bit so as to have control over whether we build haddocks, (sphinx) HTML manuals, (sphinx) PDF manuals and (sphinx) manpages.
* Hadrian: add LLVM flavoursAlec Theriault2019-02-101-2/+35
| | | | | | This adds a handful of LLVM flavours and the accompanying documentation. These flavours are mostly uninteresting, but exist in the Make system.
* Add werror function to Flavour.hsMatthew Pickering2019-02-031-0/+11
| | | | | This function makes it easy to turn on `-Werror` in the correct manner to mimic how CI turns on -Werror.
* Update user-settings.md with a pointer to `Packages`Sebastian Graf2019-02-021-1/+5
| | | [skip ci]
* Hadrian: Fix outdated link.Andrey Mokhov2019-01-311-1/+1
|
* Hadrian: Update instructions for building on WindowsAndrey Mokhov2019-01-311-23/+24
| | | | | | The `hadrian/doc/windows.md` file has falled out of date. In particular it still points to the old GitHub repository, and uses incorrect path to GHC. This patch fixes it.
* Add O2 to hsCompiler on stage0 for most hadrian flavours.klebinger.andreas@gmx.at2019-01-311-5/+4
|
* typoAlp Mestanogullari2019-01-161-1/+1
|
* crosslink hadrian/README.md and hadrian/doc/make.mdAlp Mestanogullari2019-01-161-0/+6
|
* Hadrian: Add support for building stage3Matthew Pickering2019-01-092-5/+16
| | | | | | | | | | | | | | | | This ticket enables the building of a `stage3` compiler by making the build logic more consistent and predictable in Hadrian. Two of the main changes are: 1. In order to build anything at stageN we use the package database present at stageN. Fixing #16069 2. `haddock` and `ghc-tags` are built as stage1 executables (with the stage1 compiler) rather than as stage2 compiler. Fixing [hadrian#661](https://github.com/snowleopard/hadrian/issues/661) In order to build a stage3 compiler, you have to set the new `finalStage` hadrian option to `Stage3`.
* hadrian: introduce make-user-oriented docsAlp Mestanogullari2018-12-171-0/+179
| | | | | | | | | | | | | | | | | This commit introduces Hadrian docs specifically targeted at GHC devs who are used to building GHC with the make build system, adapting a good chunk of the following quickstart page we wrote over the last few months: https://ghc.haskell.org/trac/ghc/wiki/Building/Hadrian/QuickStart Reviewers: snowleopard, bgamari Reviewed By: snowleopard Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5446
* Hadrian: introduce userDefaultFlavour, making default flavour overridableAlp Mestanogullari2018-12-171-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | This patch introduces the `userDefaultFlavour` user setting. It should be the name of the default flavour to use when no --flavour argument is passed. Before this patch, we would just always default to... the `default` flavour. With this patch, we default to whatever Flavour whose name is `userDefaultFlavour`, therefore providing a way for users to "persist" their choice of flavour, not having to repeat --flavour=[...] in every hadrian command. Test Plan: Set `userDefaultFlavour = "quickest"`, run `hadrian/build.sh`, check that the quickest flavour is indeed picked. Reviewers: snowleopard, bgamari Reviewed By: snowleopard Subscribers: mpickering, rwbarton, carter GHC Trac Issues: #15890 Differential Revision: https://phabricator.haskell.org/D5454
* Hadrian: ability to run a subset of the testsuiteAlp Mestanogullari2018-12-111-0/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was supposed to be working already but didn't work when we specified several tests with --only. This patch not only fixes this but also makes it possible to specify a subset of tests to run with the TEST environment variable, like the make build system. Here are some examples: hadrian/build.sh test --only=plugins01 hadrian/build.sh test --only="plugins01 plugins02" TEST="plugins01 plugins02" hadrian/build.sh test TEST=plugins03 hadrian/build.sh test --only="plugins01 plugins02" When both the TEST environment variable and the --only flag are used, we simply concatenate the list of tests from both sources and ask the testsuite driver to run them all. This patch addresses #16026. Test Plan: hadrian/build.sh test --only="plugins01 plugins02" Reviewers: bgamari, snowleopard Reviewed By: bgamari, snowleopard Subscribers: rwbarton, carter GHC Trac Issues: #16026 Differential Revision: https://phabricator.haskell.org/D5431
* Add 'hadrian/' from commit '45f3bff7016a2a0cd9a5455a882ced984655e90b'Ben Gamari2018-10-234-0/+525
| | | | | | git-subtree-dir: hadrian git-subtree-mainline: 575b35f4cdc18045bccd42d341d6f25d95c0696c git-subtree-split: 45f3bff7016a2a0cd9a5455a882ced984655e90b
* Remove Hadrian submoduleBen Gamari2018-10-231-7/+0
|
* Bump hadrian submoduleBen Gamari2018-08-051-21/+5
|
* Bump hadrian submoduleBen Gamari2018-06-121-5/+21
|
* Update hadrian submoduleBen Gamari2018-06-071-16/+6
|
* Update Hadrian submoduleAndrey Mokhov2018-04-261-11/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Link to Quick Start guide * Update README.md (hadrian/578) * Fix AppVeyor (hadrian/577) * Fix CircleCI * Generic library rules (hadrian/571) * Fix lint error (hadrian/575) * Fix missing libHSghc-8.5-0.a (hadrian/574) * Fix the path to touchy (hadrian/572) * Fix integer-gmp build (hadrian/568) * Undo fs*.h workaround * Fix copying of fs*.h files during RTS registration (hadrian/566) * Fix Windows build, improve error reporting (hadrian/565) * Fix Windows build (hadrian/563) * Fix boot and configure on AppVeyor (hadrian/561) * Preliminary bindist (hadrian/558, hadrian/555) * Unregister stage0 package first if it needs to be cloned (hadrian/552) * Fix Circle CI (hadrian/553) * Fix warnings (hadrian/547) * Merge pull request hadrian/542 from Mistuke/fix-specific-file * Use Cabal directly in place of ghc-cabal + make build root configurable (hadrian/531) * Add user-defined flavour example for turning off dynamic linking (hadrian/535) * Add clean routines for fs (hadrian/533) * Add 'git' to nativeBuildInputs in shell.nix (hadrian/530) * Add extra include paths when invoking ghc-cabal (hadrian/526) * Merge pull request hadrian/528 from snowleopard/bump-cabal * Merge pull request hadrian/521 from snowleopard/drop-chmod * Change permission bits for build.cabal.sh, fixes hadrian/517 (hadrian/520) * Pin nixpkgs and all-cabal-hashes in shell.nix (hadrian/511) * Add troubleshooting section
* Update Hadrian submoduleAndrey Mokhov2018-02-241-22/+8
| | | | | | | | | | | | | | | * Make shell.nix less broken (hadrian/510) * Add --configure flag to the script * Undo iserv changes (hadrian/507) * Fix ghc-cabal: Parsec modules are now found in libraries/parsec/src (hadrian/506) * Move a bunch of types into dedicated modules (hadrian/502) * Add --quickjump to Haddock (hadrian/505) * Add iserv library (hadrian/504) * Merge pull request hadrian/503 from snowleopard/angerman-patch-1 * Merge pull request hadrian/500 from snowleopard/runtime-deps * Fix Hadrian after Cabal changes (hadrian/498) * Drop custom logic for Scav_thr and Evac_thr (hadrian/497) * Fix Haddock (hadrian/496)
* Bump hadrian submoduleBen Gamari2018-01-261-18/+23
|
* Add hadrian as a submoduleBen Gamari2017-12-081-0/+21
| | | | | It will remain a submodule until we are ready to merge Hadrian into the tree.
* Rip out hadrian subtreeBen Gamari2017-12-084-514/+0
| | | | | Sadly subtrees haven't worked quite as well as we would have liked for developers. See Hadrian #440.
* Pull recent Hadrian changes from upstreamAndrey Mokhov2017-11-151-2/+2
| | | | Merge commit 'c1fcd9b3f60e8420dd228cd4e3efeb9cfa793aa5'