| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
When passed `--use-system-libffi` then we shouldn't copy and install the
headers from the system package. Instead the headers are expected to be
available as a runtime dependency on the users system.
Fixes #21485 #21487
|
|
|
|
|
|
|
|
|
|
|
| |
This has high potential for oversubcribing as many haddock jobs can be
spawned in parralel which will each request the given number of
capabilities.
Once -jsem is implemented (#19416, !5176) we can expose that haddock via
haddock and use that to pass a semaphore.
Ticket #21136
|
|
|
|
|
|
|
|
|
| |
In 8f71d958 the make build system was made to use split-sections on
linux systems but it appears this logic never made it to hadrian.
There is the split_sections flavour transformer but this doesn't appear
to be used for perf builds on linux.
Closes #21135
|
|
|
|
|
|
|
|
|
|
|
|
| |
The splitSections transformer has been broken since -dynamic-too support
was implemented in hadrian. This is because we actually build the
dynamic way when building the dynamic way, so the predicate would always
fail.
The fix is to just always pass `split-sections` even if it doesn't do
anything for a particular way.
Fixes #21138
|
| |
|
|
|
|
|
| |
Previously the `ipe` and `omit_pragmas` transformers were hackily
defined using the textual key-value syntax. Fix this.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here we deprecate the eventlogging RTS ways and instead enable eventlog
support in the remaining ways. This simplifies packaging and reduces GHC
compilation times (as we can eliminate two whole compilations of the RTS)
while simplifying the end-user story. The trade-off is a small increase
in binary sizes in the case that the user does not want eventlogging
support, but we think that this is a fine trade-off.
This also revealed a latent RTS bug: some files which included `Cmm.h`
also assumed that it defined various macros which were in fact defined
by `Config.h`, which `Cmm.h` did not include. Fixing this in turn
revealed that `StgMiscClosures.cmm` failed to import various spinlock
statistics counters, as evidenced by the failed unregisterised build.
Closes #18948.
|
|
|
|
|
| |
GHC no longers uses libtool for linking and therefore this is no longer
necessary.
|
|
|
|
|
|
|
| |
To ensure that the build benefits from Hadrian's usual logic for building
packages, avoiding #21409.
Closes #21409.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously `test.mk` would try to determine whether the dynamic,
profiling, and vanilla library ways are available by searching for
`PrimOpWrappers.{,dyn_,p_}hi` in directory reported by `ghc-pkg field
ghc-prim library-dirs`. However, this is extremely fragile as
there is no guarantee that there is only one library directory. To
handle the case of multiple `library-dirs` correct we would
have to carry out the delicate task of tokenising the directory list (in
shell, no less).
Since this isn't a task that I am eager to solve, I have rather moved
the detection logic into the testsuite driver and instead perform a test
compilation in each of the ways. This should be more robust than the
previous approach.
I stumbled upon this while fixing #20579.
|
| |
|
|
|
|
|
|
|
|
| |
The package-specific include directories in
Settings.Builders.Common.cIncludeDirs are now redundant since they now
come from Cabal.
Closes #20566.
|
|
|
|
|
|
|
|
| |
Previously we only took `extraLibDirs` and friends from the package
description, ignoring any contribution from the `LocalBuildInfo`. Fix
this.
Fixes #20566.
|
|
|
|
| |
Previously only -dcore-lint was enabled.
|
|
|
|
|
|
| |
This can be disabled by `-fno-dump-with-ways` if not desired.
Finally we will be able to look at both profiled and non-profiled dumps
when compiling with dump flags and we compile in both ways.
|
|
|
|
|
|
|
|
| |
The order in which ways are provided doesn't matter,
so we use a data structure with the appropriate semantics to
represent ways.
Fixes #21378
|
| |
|
| |
|
|
|
|
|
| |
-Wuni-incomplete-patterns and apparent improvements in the pattern match
checker surfaced these.
|
|
|
|
|
| |
Previously the `ipe` and `omit_pragmas` transformers were hackily
defined using the textual key-value syntax. Fix this.
|
|
|
|
| |
Since there may be .o files which are in fact archives.
|
|
|
|
|
|
|
|
| |
Since object files may in fact be archive files, we must ensure that
their contents are merged rather than constructing an
archive-of-an-archive.
See #21068.
|
|
|
|
|
| |
Previously the setup was quite fragile as it had to assume which
arguments were file arguments and which were flags.
|
|
|
|
|
|
|
|
| |
There have been a few instances where this calculation was incorrect, so
we add a non-terminal assertion when now checks they the two
computations indeed compute the same thing.
Fixes #21285
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There was a small chance of a race occuring between the small window of
1. The first package (.conf) file get written into the database
2. hadrian calling "ghc-pkg recache" to refresh the package.conf file
In this window the package database would contain rts.conf but not a
package.cache file, and therefore if ghc was invoked it would error
because it was missing.
To solve this we call "ghc-pkg recache" at when the database is created
by shake by writing the stamp file into the database folder. This also
creates the package.cache file and so avoids the possibility of this
race.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Zubin observed that the bindists contains the utility library
linters-common. There are two options:
1. Make sure only the right files are added into the bindist.. a bit
tricky due to the non-trivial structure of the lib directory.
2. Remove the bad files once they get copied in.. a bit easier
So I went for option 2 but we perhaps should go for option 1 in the
future.
Fixes #21203
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This patchs separates whether -DDEBUG is enabled (i.e. whether debug
assertions are enabled) from whether we are using the debugged RTS
(i.e. GhcDebugged = YES).
This means that we properly skip tests which have been marked with
`when(compiler_debugged(), skip)`.
Fixes #21113, #21153 and #21234
|
| |
|
| |
|
|
|
|
|
|
|
| |
Unfortunately we are simply not currently in a good position to robustly
ship binary distributions which link against C++ code like simdutf.
Fixes #20724.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch basically deletes some ad-hoc handling of Cabal Flags and
replaces it with a correct query of the LocalBuildInfo. The flags in the
local build info can be modified by users by passing hadrian options
For example (!4331)
```
*.genapply.cabal.configure.opts += --flags=unregisterised
```
And all the flags specified by the `Cabal Flags` builder were already
passed to configure properly using `--flags`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you inspect the inside of a wrapper script for hsc2hs you will see
that the cflag and lflag values are concatenated incorrectly.
```
HSC2HS_EXTRA="--cflag=-U__i686--lflag=-fuse-ld=gold"
```
It should instead be
```
HSC2HS_EXTRA="--cflag=-U__i686 --lflag=-fuse-ld=gold"
```
Fixes #21221
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Names appearing in Haddock docstrings are lexed and renamed like any other names
appearing in the AST. We currently rename names irrespective of the namespace,
so both type and constructor names corresponding to an identifier will appear in
the docstring. Haddock will select a given name as the link destination based on
its own heuristics.
This patch also restricts the limitation of `-haddock` being incompatible with
`Opt_KeepRawTokenStream`.
The export and documenation structure is now computed in GHC and serialised in
.hi files. This can be used by haddock to directly generate doc pages without
reparsing or renaming the source. At the moment the operation of haddock
is not modified, that's left to a future patch.
Updates the haddock submodule with the minimum changes needed.
|
|
|
|
|
|
| |
The late cost centre flag was renamed from -fprof-late-ccs
to -fprof-late in 7fe07143, but this change hadn't been
propagated to Hadrian.
|
| |
|
| |
|
|
|
|
| |
Added for no reason in 7ce1b694f7be7fbf6e2d7b7eb0639e61fbe358c6
|
| |
|
|
|
|
|
|
|
|
| |
Cf ticky report before the change:
Entries Alloc Alloc'd Non-void Arguments STG Name
--------------------------------------------------------------------------------
696987 29044128 0 1 L main:Target.trackArgument_go5{v r24kY} (fun)
|
|
|
|
|
|
|
| |
We were failing to pass the style file to `makeindex`, as is done by
the mklatex configuration generated by Sphinx.
Fixes #20913.
|
|
|
|
|
|
| |
As the `hlint` executable is only available in the linters image.
Fixes #21146.
|