Commits on Source (66)
-
This makes the test a bit easier to debug
4664997d -
We use live words rather than live blocks to determine the size of the heap for determining memory retention. Most of the time these two metrics align, but they can come apart in normal usage when using the nonmoving collector. The nonmoving collector leads to a lot of partially occupied blocks. So, using live words is more accurate. They can also come apart when the heap is suffering from high levels fragmentation caused by small pinned objects, but in this case, the block size is the more accurate metric. Since this case is best avoided anyway. It is ok to accept the trade-off that we might try (and probably) fail to return more memory in this case. See also the Note [Statistics for retaining memory] Resolves #23397
66919dcc -
------------------------- Metric Increase: ghc_experimental_dir ghc_experimental_so -------------------------
8dfca66a -
Fixes #24710. The message and documentation for `-Wpartial-fields` were misleading as (a) the warning occurs at definition sites rather than use sites, and (b) the warning relates to the definition of a field independently of the selector function (e.g. because record updates are also partial).
6c469bd2 -
Fixes #10920, an issue where GHCi bails out when started alongside a file named Prelude.hs or Prelude.lhs (even empty file suffices). The in-source Note [GHCi and local Preludes] documents core reasoning. Supplementary changes: * add debug traces for module lookups under -ddump-if-trace; * drop stale comment in GHC.Iface.Load; * reduce noise in -v3 traces from GHC.Utils.TmpFs; * new test, which also exercizes HomeModError.
977b6b64 -
When converting a `ViewP` using `cvtp`, we need to ensure that the view pattern is parenthesized so that the resulting code will parse correctly when roundtripped back through GHC's parser. Fixes #24894.
87cf4111 -
This removes the re-export of cyclicModuleErr from the top-level GHC module.
b05613c5 -
70389749
-
Progress towards #21592
f9e7bd9b -
Refactor occurrences to GHC.Prelude with Prelude within Language/Haskell. Progress towards #21592
00d63245 -
`GHC.Unit.Module` re-exports `ModuleName` from `Language.Haskell.Syntax.Module.Name`. Progress towards #21592
cc846ea5 -
To remove the dependency on GHC.Utils.Misc inside Language.Haskell.Syntax.Module.Name, the instance definition is moved from there into GHC.Unit.Types. Progress towards #21592
24c7d287 -
The function negateOverLitVal is not used within Language.Haskell and therefore can be moved to the respective module inside GHC.Hs. Progress towards #21592
6cbba381 -
The function conDetailsArity is only used inside GHC.Rename.Module. We therefore move it there from Language.Haskell.Syntax.Lit. Progress towards #21592
611aa7c6 -
Progress towards #21592 Specificity, ForAllTyFlag and its' helper functions are extracted from GHC.Types.Var and moved into a new module Language.Haskell.Syntax.Specificity. Note: Eventually (i.e. after Language.Haskell.Syntax.Decls does not depend on GHC.* anymore) these should be moved into Language.Haskell.Syntax.Decls. At this point, this would cause cyclic dependencies.
3d192e5d -
Progress towards #21592 This splits HsSrcBang up, creating the new HsBang within `Language.Haskell.Syntax.Basic`. `HsBang` holds the unpackedness and strictness information, while `HsSrcBang` only adds the SourceText for usage within the compiler directly. Inside the AST, to preserve the SourceText, it is hidden behind the pre-existing extension point `XBindTy`. All other occurrences of `HsSrcBang` were adapted to deconstruct the inner `HsBang`, and when interacting with the `BindTy` constructor, the hidden `SourceText` is extracted/inserted into the `XBindTy` extension point. `GHC.Core.DataCon` exports both `HsSrcBang` and `HsBang` for convenience. A constructor function `mkHsSrcBang` that takes all individual components has been added. Two exceptions has been made though: - The `Outputable HsSrcBang` instance is replaced by `Outputable HsBang`. While being only GHC-internal, the only place it's used is in outputting `HsBangTy` constructors -- which already have `HsBang`. It wouldn't make sense to reconstruct a `HsSrcBang` just to ignore the `SourceText` anyway. - The error `TcRnUnexpectedAnnotation` did not use the `SourceText`, so it too now only holds a `HsBang`.
257d1adc -
9be49379
-
Promote 8 bit and 16 bit signed arguments by sign extension. Fixes #25018
a82121b3 -
In 9.10.1 the "ld command" has been removed, so we fall back to using the more precise "merge objects command" when it's available as LD_STAGE0 is only used to set the object merging command in hadrian. Fixes #24949
564981bd -
There is some convoluted logic which determines whether we build ghci object files are not. In any case, if you set `ghcDynPrograms = pure False` then it forces them to be built. Given we aren't ever building executables with this flavour it's fine to leave `ghcDynPrograms` as the default and it should be a bit faster to build less. Also fixes #24949
a949c792 -
This adds 10-15 minutes to build time, it is a better strategy to precisely enable dumps for the modules which show up prominently in a ticky profile. Given I am one of the only people regularly building ticky compilers I think it's worthwhile to remove these. Fixes #23635
48bd8f8e -
This allows you to write `--flavour=default+ticky_ghc+dump_stg` if you really want STG for all modules.
5b1aefb7 -
There's no need to hand `Nothing`s around... (there was no case with a `BlockId`.)
ab2b60b6 -
The `BlockId` parameter (`bid`) is never used, only handed around. Deleting it simplifies the surrounding code.
71a7fa8c -
As #25033 showed, we were eta-expanding in a way that broke a join point, which messed up Note [CorePrep invariants]. The fix is rather easy. See Wrinkle (EA1) of Note [Eta expansion of arguments in CorePrep]
8bf6fd68 -
96acf823
-
Superseded by output handling of Hadrian
74ec4c06 -
Fixes #25013
ed8a8f0b -
Ticket #24826 reports a regression in 9.10.1 when building from a source distribution. This patch is an attempt to reproduce the issue on CI by more aggressively removing `alex` and `happy` from the environment.
3f9548fe -
hadrian does not utilise the build-tool-depends fields in cabal files and their presence can cause issues when building source distribution (see #24826) Ideally Cabal would support building "full" source distributions which would remove the need for workarounds in hadrian but for now we can patch the build-tool-depends out of the cabal files. Fixes #24826
aba2c9d4 -
It is sufficient to check that the simple test file compiles as it will fail if there are not the relevant library files for the requested way. If you break a way so badly that even a simple executable fails to link (as I did for profiled dynamic way), it will just mean the tests for that way are skipped on CI rather than displayed.
12bb9e7b -
Torsten Schmits authored
The text stated that this affects indentation of layouts nested in do expressions, while it actually affects that of do layouts nested in any other.
46ec0a8e -
The main payload of this change is to hadrian. * Default settings will produced dynamic profiled objects * `-fexternal-interpreter` is turned on in some situations when there is an incompatibility between host GHC and the way attempting to be built. * Very few changes actually needed to GHC There are also necessary changes to the bootstrap plans to work with the vendored Cabal dependency. These changes should ideally be reverted by the next GHC release. In hadrian support is added for building profiled dynamic libraries (nothing too exciting to see there) Updates hadrian to use a vendored Cabal submodule, it is important that we replace this usage with a released version of Cabal library before the 9.12 release. Fixes #21594 ------------------------- Metric Increase: libdir -------------------------
145a6477 -
The hash contains lowercase [a-z0-9] and crucially not _p which meant we sometimes matched on `libHS.._p` profiled shared libraries rather than the normal shared library.
414a6950 -
Implements the FSQRT machop using native assembly rather than a C call. Implements MO_BSwap by producing assembly to do the byte swapping instead of producing a foreign call a C function. In `tar`, the hot loop for `deserialise` got almost 4x faster by avoiding the foreign call which caused spilling live variables to the stack -- this means the loop did 4x more memory read/writing than necessary in that particular case!
dee035bf -
Use M32 allocator to avoid fragmentation when allocating ELF sections. We already did this when NEED_PLT was undefined. Failing to do this led to relocations impossible to fulfil (#24432).
5104ee61 -
52d66984
-
Remove unjustified +8 offset that leads to memory corruption (cf discussion in #24432).
c34fef56 -
This MR make equality fast for (S tys1 `eqType` S tys2), where S is a non-forgetful type synonym. It doesn't affect compile-time allocation much, but then comparison doesn't allocate anyway. But it seems like a Good Thing anyway. See Note [Comparing type synonyms] in GHC.Core.TyCo.Compare and Note [Forgetful type synonyms] in GHC.Core.TyCon Addresses #25009.
280e4bf5 -
When processing files in ghc-exactprint, the usual workflow is to first normalise it with makeDeltaAst, and then operate on it. But we need the original locations to operate on it, in terms of finding things. So restore the original SrcSpan for reference in EpaDelta
cb83c347 -
alpine 3.20 was recently released and uses a new python and sphinx toolchain which could be useful to test.
7bcda869 -
There is some unexplained change to binding behaviour in python-3.12 which requires moving this import from the top-level into the scope of the function. I didn't feel any particular desire to do a deep investigation as to why this changed as the code works when modified like this. No one in the python IRC channel seemed to know what the problem was.
43aa99b8 -
This reduces the number of operations done on each Interface, because supported languages and extensions are determined from architecture and operating system of the build host. This information remains stable across Interfaces, and as such doesn not need to be recovered for each Interface.
86b8ecee -
The TEST_CC variable should be set based on the test compiler, which may be different to the compiler which is set to CC on your system (for example when cross compiling). Fixes #24946
41f1354d -
This patch ensures we taken into account COMPLETE pragmas when we compute whether a pattern is irrefutable. In particular, if a pattern synonym is the sole member of a COMPLETE pragma (without a result TyCon), then we consider a pattern match on that pattern synonym to be irrefutable. This affects the desugaring of do blocks, as it ensures we don't use a "fail" operation. Fixes #15681 #16618 #22004
572fbc44 -
The groups are now split up so it's easier to see which jobs are generated for each platform No change in behaviour, just refactoring.
559a7a7c -
Matthew Pickering authored
Since debian 10 is now EOL we migrate onwards to debian 12 as the basis for most platform independent validation jobs.
20383006 -
The arch argument was ignored when making the jobname, which lead to failures when generating metadata for the alpine_3_18-aarch64 bindist. Fixes #25089
12d3b66c -
The tests which relied on find_so would fail when `test` was run before the tree was built. This was because `find_so` was evaluated too eagerly. We can fix this by waiting to query the location of the libraries until after the compiler has built them.
bace981e -
I made some mistakes in 20383006 * Syntax error * The aarch-deb11 bindist doesn't exist I tested against the latest nightly pipeline locally: ``` nix run .gitlab/generate-ci#generate-job-metadata nix shell -f .gitlab/rel_eng/ -c ghcup-metadata --pipeline-id 98286 --version 9.11.20240715 --fragment --date 2024-07-17 --metadata=/tmp/meta ```
b57792a8 -
Fabricio de Sousa Nascimento authored
Changes the error message when trying to lookup names on GRE that `must_have_parent` but we get an `AmbiguousOccurrence`. The new behavior now points the user to the missing name, instead of the name clash which would be unhelpful in solving their compiling issue. Fixes #24452
6075c584 -
Fabricio de Sousa Nascimento authored
Refactors lookupSubBndrOcc_helper into two functions that separately deal with lookup for type classes and export lists. Removes the Semigroup instance of DisambigInfo in favor of directly filtering the GRE occurences, the refactored logic also fix and issue with a program with multiple references being incorrectly accepted Fix #25014
22d0832a
Showing
- .gitlab-ci.yml 49 additions, 36 deletions.gitlab-ci.yml
- .gitlab/README.md 36 additions, 0 deletions.gitlab/README.md
- .gitlab/ci.sh 6 additions, 2 deletions.gitlab/ci.sh
- .gitlab/generate-ci/gen_ci.hs 139 additions, 67 deletions.gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml 399 additions, 271 deletions.gitlab/jobs.yaml
- .gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py 6 additions, 4 deletions.gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py
- .gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py 14 additions, 11 deletions.gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py
- .gitmodules 3 additions, 0 deletions.gitmodules
- compiler/GHC.hs 8 additions, 7 deletionscompiler/GHC.hs
- compiler/GHC/Builtin/Types.hs 1 addition, 1 deletioncompiler/GHC/Builtin/Types.hs
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs 75 additions, 75 deletionscompiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/AArch64/Instr.hs 22 additions, 1 deletioncompiler/GHC/CmmToAsm/AArch64/Instr.hs
- compiler/GHC/CmmToAsm/AArch64/Ppr.hs 4 additions, 0 deletionscompiler/GHC/CmmToAsm/AArch64/Ppr.hs
- compiler/GHC/CmmToAsm/X86/CodeGen.hs 11 additions, 7 deletionscompiler/GHC/CmmToAsm/X86/CodeGen.hs
- compiler/GHC/Core/ConLike.hs 9 additions, 1 deletioncompiler/GHC/Core/ConLike.hs
- compiler/GHC/Core/DataCon.hs 14 additions, 15 deletionscompiler/GHC/Core/DataCon.hs
- compiler/GHC/Core/Map/Type.hs 6 additions, 4 deletionscompiler/GHC/Core/Map/Type.hs
- compiler/GHC/Core/TyCo/Compare.hs 51 additions, 29 deletionscompiler/GHC/Core/TyCo/Compare.hs
- compiler/GHC/Core/TyCo/Rep.hs-boot 2 additions, 1 deletioncompiler/GHC/Core/TyCo/Rep.hs-boot
- compiler/GHC/Core/TyCon.hs 34 additions, 1 deletioncompiler/GHC/Core/TyCon.hs
.gitlab/README.md
0 → 100644
This diff is collapsed.