summaryrefslogtreecommitdiff
path: root/hadrian/src/Settings
Commit message (Collapse)AuthorAgeFilesLines
* ci: Try not buffering python outputMatthew Pickering2021-11-031-1/+2
|
* make build system: RTS should use dist-install not distJohn Ericson2021-10-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | This is the following find and replace: - `rts/dist` -> `rts/dist-install` # for paths - `rts_dist` -> `rts_dist-install` # for make rules and vars - `,dist` -> `,dist-install` # for make, just in rts/ghc.mk` Why do this? Does it matter when the RTS is just built once? The answer is, yes, I think it does, because I want the distdir--stage correspondence to be consistent. In particular, for #17191 and continuing from d5de970dafd5876ef30601697576167f56b9c132 I am going to make the headers (`rts/includes`) increasingly the responsibility of the RTS (hence their new location). However, those headers are current made for multiple stages. This will probably become unnecessary as work on #17191 progresses and the compiler proper becomes more of a freestanding cabal package (e.g. a library that can be downloaded from Hackage and built without any autoconf). However, until that is finished, we have will transitional period where the RTS and headers need to agree on dirs for multiple stages. I know the make build system is going away, but it's not going yet, so I need to change it to unblock things :).
* hadrian: Turn the `static` flavour into a transformerBen Gamari2021-10-271-55/+0
| | | | | This turns the `static` flavour into the `+fully_static` flavour transformer.
* Hadrian: display command line above errors (#20490)Sylvain Henry2021-10-151-1/+12
|
* ci: test in-tree compiler in hadrianZubin Duggal2021-10-131-8/+2
|
* hadrian, testsuite: Teach Hadrian to query the testsuite driver for dependenciesZubin Duggal2021-10-131-11/+19
| | | | Issues #19072, #17728, #20176
* hadrian: Introduce `static` flavourBen Gamari2021-10-122-1/+56
|
* hadrian: Remove deprecated tracing functionsMatthew Pickering2021-09-282-4/+4
|
* Move `/includes` to `/rts/include`, sort per package betterJohn Ericson2021-08-094-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | In order to make the packages in this repo "reinstallable", we need to associate source code with a specific packages. Having a top level `/includes` dir that mixes concerns (which packages' includes?) gets in the way of this. To start, I have moved everything to `rts/`, which is mostly correct. There are a few things however that really don't belong in the rts (like the generated constants haskell type, `CodeGen.Platform.h`). Those needed to be manually adjusted. Things of note: - No symlinking for sake of windows, so we hard-link at configure time. - `CodeGen.Platform.h` no longer as `.hs` extension (in addition to being moved to `compiler/`) so as not to confuse anyone, since it is next to Haskell files. - Blanket `-Iincludes` is gone in both build systems, include paths now more strictly respect per-package dependencies. - `deriveConstants` has been taught to not require a `--target-os` flag when generating the platform-agnostic Haskell type. Make takes advantage of this, but Hadrian has yet to.
* hadrian: Add exe suffix to executables in testsuiteMatthew Pickering2021-07-271-4/+4
|
* validate: update quick-validate flavour for validation with --fastAlina Banerjee2021-07-272-12/+18
|
* rts: Don't declare libCffi as bundled when using system libffiBen Gamari2021-07-271-0/+2
| | | | | Previously the rts's cabal file would claim that it bundled libffi, even if we are using the system's libffi. Fixes #19869.
* hadrian: Always specify flag values explicitlyBen Gamari2021-07-271-23/+21
| | | | | Previously we would often allow cabal flags to default, making it harder than necessary to reason about the effective build configuration.
* rts: Break up adjustor logicBen Gamari2021-07-271-6/+5
|
* hadrian: Don't add empty -I argumentswip/hadrian/libffi-includesBen Gamari2021-07-251-1/+1
| | | | | | Previously hadrian would add a -I$FfiIncludeDir flag to compiler invocations even if FfiIncludeDir was null, resulting in compilation errors.
* Pass '-x c++' and '-std=c++11' to `cc` for cpp files, in HadrianEthan Kiang2021-07-062-4/+11
| | | | | '-x c++' was found to be required on Darwin Clang 11 and 12. '-std=c++' was found to be needed on Clang 12 but not 11.
* Fix libffi on PowerPCPeter Trommler2021-06-281-6/+1
| | | | | | | | | Update submodule libffi-tarballs to upstream commit 4f9e20a. Remove C compiler flags that suppress warnings in the RTS. Those warnings have been fixed by libffi upstream. Fixes #19885
* rts: move xxxHash out of the user namespaceTamar Christina2021-06-241-4/+2
|
* hadrian: Pass correct leading_underscore configuration to testsMatthew Pickering2021-06-231-0/+2
|
* Make 'count-deps' a ghc/util standalone programShayne Fletcher2021-06-052-1/+3
| | | | | | | | - Move 'count-deps' into 'ghc/utils' so that it can be called standalone. - Move 'testsuite/tests/parser/should_run/' tests 'CountParserDeps' and 'CountAstDeps' to 'testsuite/tests/count-deps' and reimplement in terms of calling the utility - Document how to use 'count-deps' in 'ghc/utils/count-deps/README'
* Revert "hadrian: Don't always links against libffi"Matthew Pickering2021-05-251-1/+2
| | | | This reverts commit 673ff667c98eafc89e6746d1ac69d33b8330d755.
* [hadrian] Do not add full tool pathsMoritz Angermann2021-05-251-1/+6
| | | | | | This prohuibits CC=clang to work generically and will always bake in the clang that is found on the build machine in PATH, what ever clang that might be. It might not even be on the final host.
* hadrian: Reorganise modules so KV parser can be used to define transformersMatthew Pickering2021-05-222-2/+2
|
* hadrian: Build check-ppr and check-exact using normal hadrian rules when in-treeMatthew Pickering2021-05-191-1/+1
| | | | Fixes #19606 #19607
* hadrian: Don't always links against libffiMatthew Pickering2021-05-111-2/+1
| | | | | | | | | The RTS flag `ffi` is set to either True or False depending on whether we want to link against `libffi`, therefore in order to work out whether to add the build tree to the arguments we check whether `ffi` is in the extraLibs or not before adding the argument. Fixes #16022
* Don't produce platformConstants fileSylvain Henry2021-04-101-1/+0
| | | | It isn't used for anything anymore
* Remove dynamic-by-default (#16782)Sylvain Henry2021-04-072-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dynamic-by-default was a mechanism to automatically select the -dynamic way for some targets. It was implemented in a convoluted way: it was defined as a flavour option, hence it couldn't be passed as a global settings (which are produced by `configure` before considering flavours), so a build system rule was used to pass -DDYNAMIC_BY_DEFAULT to the C compiler so that deriveConstants could infer it. * Make build system has it disabled for 8 years (951e28c0625ece7e0db6ac9d4a1e61e2737b10de) * It has never been implemented in Hadrian * Last time someone tried to enable it 1 year ago it didn't work (!2436) * Having this as a global constant impedes making GHC multi-target (see !5427) This commit fully removes support for dynamic-by-default. If someone wants to reimplement something like this, it would probably need to move the logic in the compiler. (Doing this would probably need some refactoring of the way the compiler handles DynFlags: DynFlags are used to store and to pass enabled ways to many parts of the compiler. It can be set by command-line flags, GHC API, global settings. In multi-target GHC, we will use DynFlags to load the target platform and its constants: but at this point with the current DynFlags implementation we can't easily update the existing DynFlags with target-specific options such as dynamic-by-default without overriding ways previously set by the user.)
* Add -Wcompat to hadrianOleg Grenrus2021-03-311-0/+1
| | | | Update submodules haskeline and hpc
* GHC Exactprint main commitAlan Zimmerman2021-03-201-2/+2
| | | | | | | | Metric Increase: T10370 parsing001 Updates haddock submodule
* hadrian: Pass -fno-use-rpaths to GHC while linkingBen Gamari2021-03-061-0/+4
| | | | | | | This mirrors the make build system and ensures that we don't end up with references to the build directory in the final executable. Fixes #19485.
* Build event logging rts in all flavours except GhcinGhci.Andreas Klebinger2021-03-032-2/+2
| | | | This applies the fix for #19033 to all the other flavours as well.
* Fix Windows build with autoconf >=2.70 (#19189)Sylvain Henry2021-02-271-1/+1
|
* Hadrian: Add support for packages with C++ filesMatthew Pickering2021-02-052-1/+19
|
* hadrian: Introduce ghci-wrapper packageBen Gamari2021-01-301-0/+2
| | | | | This wraps the existing GHCi wrapper script (driver/ghci/ghci.c) in a cabal file and adds the package to Hadrian.
* Reduce default test verbosityMatthew Pickering2021-01-281-1/+8
|
* Hadrian: Pass -jshakethreads to Haddock invocationsalexbiehl2021-01-171-1/+3
|
* Implement Unique supply with Addr# atomic primopSylvain Henry2021-01-051-16/+0
| | | | | | | | Before this patch the compiler depended on the RTS way (threaded or not) to use atomic incrementation or not. This is wrong because the RTS is supposed to be switchable at link time, without recompilation. Now we always use atomic incrementation of the unique counter.
* hadrian: disable ghc package environments #18988Adam Sandberg Ericsson2020-12-221-0/+1
|
* hadrian: build the _l and _thr_l rts flavours in the develN flavoursAdam Sandberg Ericsson2020-12-081-1/+1
| | | | | The ghc binary requires the eventlog rts since fc644b1a643128041cfec25db84e417851e28bab
* hadrian: fix ghc-pkg uses (#17601)Sylvain Henry2020-11-281-6/+24
| | | | | Make sure ghc-pkg doesn't read the compiler "settings" file by passing --no-user-package-db.
* hadrian: Drop redundant flavour definitionsBen Gamari2020-11-223-56/+0
| | | | | Drop the profiled, LLVM, and ThreadSanitizer flavour definitions as these can now be realized with flavour transformers.
* hadrian: Add a viaLlvmBackend modifierBen Gamari2020-11-221-6/+2
| | | | | Note that this also slightly changes the semantics of these flavours as we only use LLVM for >= stage1 builds.
* Merge remote-tracking branch 'origin/wip/tsan/all'Ben Gamari2020-11-081-0/+9
|\
| * rts: Infrastructure for testing with ThreadSanitizerBen Gamari2020-10-241-0/+9
| |
* | testsuite: Add --top flag to driverGHC GitLab CI2020-11-021-1/+1
| | | | | | | | | | This allows us to make `config.top` a proper Path. Previously it was a str, which caused the Ghostscript detection logic to break.
* | hadrian: Don't quote metric baseline argumentBen Gamari2020-10-281-1/+1
|/ | | Previously this was quoted inappropriately.
* Hadrian: add quick-debug flavourSylvain Henry2020-10-091-0/+7
|
* Add quick-validate Hadrian flavour (quick + -Werror)Sylvain Henry2020-09-191-1/+10
|
* Rename ghci flag into internal-interpreterSylvain Henry2020-09-161-7/+8
| | | | | "ghci" as a flag name was confusing because it really enables the internal-interpreter. Even the ghci library had a "ghci" flag...
* Don't quote argument to Hadrian's test-env flag (#18656)Ryan Scott2020-09-121-1/+1
| | | | | | | Doing so causes the name of the test environment to gain an extra set of double quotes, which changes the name entirely. Fixes #18656.