Commits on Source (38)
-
openat/fstatat/unlinkat/dup are now used in the recent release of the `directory` and `file-io` packages. As such, these functions are (indirectly) used in the following tests one we'll bump the `directory` submodule (see !13122): - openFile008 - jsOptimizer - T20509 - bkpcabal02 - bkpcabal03 - bkpcabal04
27dceb42 -
The primary reason for this bump is to fix the warning from `ghc-pkg check`: ``` Warning: include-dirs: /data/home/ubuntu/.ghcup/ghc/9.6.2/lib/ghc-9.6.2/lib/../lib/aarch64-linux-ghc-9.6.2/directory-1.3.8.1/include doesn't exist or isn't a directory ``` This also requires adding the `file-io` package as a boot library (which is discussed in #25145) Fixes #23594 #25145
c68be356 -
We are producing bindists where the target triple is aarch64-alpine-linux when it should be aarch64-unknown-linux This is because the bootstrapped compiler originally set the target triple to `aarch64-alpine-linux` which is when propagated forwards by setting `bootstrap_target` from the bootstrap compiler target. In order to break this chain we explicitly specify build/host/target for aarch64-alpine. This requires a new configure flag `--enable-ignore-` which just switches off a validation check that the target platform of the bootstrap compiler is the same as the build platform. It is the same, but the name is just wrong. These commits can be removed when the bootstrap compiler has the correct target triple (I looked into patching this on ci-images, but it looked hard to do correctly as the build/host platform is not in the settings file). Fixes #25200
4ee094d4 -
e0e0f2b2
-
-- migration from haskell.nix
63a27091 -
This is a reinterpretation of GHC Proposal #409 that avoids a breaking change introduced in fa0dbaca "Implements the Exportable Named Default proposal" Consider a module M that has no explicit export list: module M where default (Rational) Should it export the default (Rational)? The proposal says "yes", and there's a test case for that: default/DefaultImport04.hs However, as it turns out, this change in behavior breaks existing programs, e.g. the colour-2.3.6 package can no longer be compiled, as reported in #25206. In this patch, we make implicit exports of defaults conditional on the NamedDefaults extension. This fix is unintrusive and compliant with the existing proposal text (i.e. it does not require a proposal amendment). Should the proposal be amended, we can go for a simpler solution, such as requiring all defaults to be exported explicitly. Test case: testsuite/tests/default/T25206.hs
aaab3d10 -
The lazy structure (a list) in a strict field in `DmdType` is not fully forced which leads to a very large thunk build-up. It seems there is likely still more work to be done here as it seems we may be trading space usage for work done. For now, this is the right choice as rather than using all the memory on my computer, compilation just takes a little bit longer. See #25196
3a5bebf8 -
We need to ensure that when we convert an `InvisP` (invisible type pattern) to a `Pat`, we parenthesize it (at precedence `appPrec`) so that patterns such as `@(a :: k)` will parse correctly when roundtripped back through the parser. Fixes #25209.
c2525e9e -
Sjoerd Visscher authored
This flag makes sure to avoid recompilation of the code when generating documentation by only reading the .hi and .hie files, and throw an error if it can't find them.
Unverified1499764f -
This commit adds `isByteArrayWeaklyPinned#` and `isMutableByteArrayWeaklyPinned#` primops. These check if a bytearray is *weakly* pinned. Which means it can still be explicitly moved by the user via compaction but won't be moved by the RTS. This moves us one more stop closer to nailing down #22255.
768fe644 -
Fixes #25211 When linking bytecode for TH from interface core bindings with `-fprefer-byte-code`, foreign sources are loaded from the interface as well and compiled to object code in an ad-hoc manner. The results are then loaded by the interpreter, whose way may differ from the current build's target way. This patch ensures that foreign objects are compiled with the interpreter's way.
83e70b14 -
This patch fixes an error message in checkClosure() when the closure has already been evacuated. The previous logic was meant to print the evacuated closure's type in the error message, but it was completely wrong, given info was not really an info table, but a tagged pointer that points to the closure's new address.
0d3bc2fa -
GCC and CLang translate the built-in `atomic_thread_fence(memory_order_acquire)` to `dmb ishld`, which is a bit less restrictive than `dmb ish` (which also implies stores.)
fb0a4e5c -
Performance metrics collected via 'perf' can be more accurate for run-time performance than GHC's rts, due to the usage of hardware counters. We allow performance tests to also record PMU events according to 'perf list'.
a45f1488 -
ce61fca5
-
6dfb9471
-
This commit adds extra logic when looking up a record constructor. If GHC.Rename.Env.lookupOccRnConstr returns a TyCon (as it may, due to the logic explained in Note [Pattern to type (P2T) conversion]), we emit an error saying that the data constructor is not in scope. This avoids the compiler falling over shortly thereafter, in the call to 'lookupConstructorInfo' inside 'GHC.Rename.Env.lookupRecFieldOcc', because the record constructor would not have been a ConLike. Fixes #25056
da306610 -
When there are multiple threads they can race to create a temporary file, in some situations the thread will create ghc_1.c and in some it will create ghc_2.c. This filename ends up in the debug info for object files after compiling a C file, therefore contributes to object nondeterminism. In order to fix this we store a prefix in `TmpFs` which serves to namespace temporary files. The prefix is populated from the counter in TmpFs when the TmpFs is forked. Therefore the TmpFs must be forked outside the thread which consumes it, in a deterministic order, so each thread always receives a TmpFs with the same prefix. This assumes that after the initial TmpFs is created, all other TmpFs are created from forking the original TmpFs. Which should have been try anyway as otherwise there would be file collisions and non-determinism. Fixes #25224
9c354beb -
Sven Tennie authored
This architecture wasn't supported before. Co-authored-by:
Moritz Angermann <moritz.angermann@gmail.com>
3a767377 -
Sven Tennie authored
Increase the delay a bit to be able to run this test on slower computers (e.g. RISCV64 LicheePi 4a.)
0371de6d -
Sven Tennie authored
This architecture wasn't supported before. Co-authored-by:
Moritz Angermann <moritz.angermann@gmail.com>
8d7f8882 -
Sven Tennie authored
The architecture's behaviour differs from the test's expectations. See comment in code why this is okay.
c82ab120 -
Sven Tennie authored
It works and thus can be tested.
1d6e0f7c -
Sven Tennie authored
RISCV64 needs a specific code flushing sequence (involving fence.i) when new code is created/loaded.
0b2ba0da -
Sven Tennie authored
We're relying on some GCC/Clang builtins. These need to be visible to the linker (and not be stripped away.)
c7c15820 -
Sven Tennie authored
As we got a RTS linker for this architecture now, we can enable GHCi for it.
41237342 -
Sven Tennie authoredc9f6a91a
-
Sven Tennie authored
Ensure that parameters and return values are correctly processed. A dedicated test (like this) helps to get the subtleties of calling conventions easily right.
1769afef -
Sven Tennie authored
Will be squashed later. For now it's convenient to have a separate commit.
fa0313d7 -
Sven Tennie authored
Likely a mistake during merge.
6a790662 -
Sven Tennie authored6fdedddc
-
Sven Tennie authored0680e603
-
Sven Tennie authoredf0c7c300
-
Sven Tennie authored
This should prevent memory leaks.
ac90700a -
Sven Tennie authored
This is closer to the assembly instruction and should reduce confusion.
c3beff6c -
Sven Tennie authored
The check was non-sense.
230bb190 -
Sven Tennie authored
The reference was a Lichee Pi 4a RISCV64 machine.
98685673
Showing
- .gitlab/generate-ci/flake.lock 6 additions, 6 deletions.gitlab/generate-ci/flake.lock
- .gitlab/generate-ci/gen_ci.hs 37 additions, 9 deletions.gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml 65 additions, 2 deletions.gitlab/jobs.yaml
- .gitmodules 3 additions, 0 deletions.gitmodules
- CODEOWNERS 1 addition, 0 deletionsCODEOWNERS
- compiler/CodeGen.Platform.h 101 additions, 1 deletioncompiler/CodeGen.Platform.h
- compiler/GHC/Builtin/primops.txt.pp 19 additions, 1 deletioncompiler/GHC/Builtin/primops.txt.pp
- compiler/GHC/Cmm/CLabel.hs 2 additions, 0 deletionscompiler/GHC/Cmm/CLabel.hs
- compiler/GHC/CmmToAsm.hs 2 additions, 1 deletioncompiler/GHC/CmmToAsm.hs
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs 7 additions, 3 deletionscompiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/AArch64/Instr.hs 6 additions, 3 deletionscompiler/GHC/CmmToAsm/AArch64/Instr.hs
- compiler/GHC/CmmToAsm/AArch64/Ppr.hs 2 additions, 1 deletioncompiler/GHC/CmmToAsm/AArch64/Ppr.hs
- compiler/GHC/CmmToAsm/Dwarf/Constants.hs 3 additions, 1 deletioncompiler/GHC/CmmToAsm/Dwarf/Constants.hs
- compiler/GHC/CmmToAsm/PIC.hs 9 additions, 0 deletionscompiler/GHC/CmmToAsm/PIC.hs
- compiler/GHC/CmmToAsm/RV64.hs 58 additions, 0 deletionscompiler/GHC/CmmToAsm/RV64.hs
- compiler/GHC/CmmToAsm/RV64/CodeGen.hs 2216 additions, 0 deletionscompiler/GHC/CmmToAsm/RV64/CodeGen.hs
- compiler/GHC/CmmToAsm/RV64/Cond.hs 42 additions, 0 deletionscompiler/GHC/CmmToAsm/RV64/Cond.hs
- compiler/GHC/CmmToAsm/RV64/Instr.hs 835 additions, 0 deletionscompiler/GHC/CmmToAsm/RV64/Instr.hs
- compiler/GHC/CmmToAsm/RV64/Ppr.hs 715 additions, 0 deletionscompiler/GHC/CmmToAsm/RV64/Ppr.hs
- compiler/GHC/CmmToAsm/RV64/RegInfo.hs 41 additions, 0 deletionscompiler/GHC/CmmToAsm/RV64/RegInfo.hs
compiler/GHC/CmmToAsm/RV64.hs
0 → 100644
compiler/GHC/CmmToAsm/RV64/CodeGen.hs
0 → 100644
This diff is collapsed.
compiler/GHC/CmmToAsm/RV64/Cond.hs
0 → 100644
compiler/GHC/CmmToAsm/RV64/Instr.hs
0 → 100644
compiler/GHC/CmmToAsm/RV64/Ppr.hs
0 → 100644
compiler/GHC/CmmToAsm/RV64/RegInfo.hs
0 → 100644