-
9995c2b7
by Serge S. Gulin at 2025-05-04T17:13:36+03:00
Support for ARM64 Windows (LLVM-enabled) (fixes #24603)
1. Add Windows AArch64 cross-compilation support via CI jobs
Introduce new CI configurations for cross-compiling to Windows ARM64 using Debian12Wine, FEX, and MSYS2.
Configure toolchain variables for LLVM MinGW and Wine emulation in CI pipelines.
2. Adjust compiler and RTS for AArch64 Windows compatibility
Reserve register `x18` on Windows and Darwin platforms in AArch64 codegen.
Handle Windows-specific relocations and data sections in AArch64 assembler.
Update PEi386 linker to recognize ARM64 binaries and support exception handling.
Adjust LLVM target definitions and data layouts for new architectures.
Update `ghc-toolchain` and build scripts to handle `TablesNextToCode` on Windows ARM64.
3. Enhance CI scripts and stability
Modify `ci.sh` to handle mingw cross-targets, fixing GHC executable paths and test execution.
Use `diff -w` in tests to ignore whitespace differences, improving cross-platform consistency.
4. Refactor and clean up code
Remove redundant imports in hello.hs test.
Improve error messages and checks for unsupported configurations in the driver.
Add `EXDEV` error code to `errno.js`.
Add async/sync flags to IO logs at `base.js`.
Improve POSIX compatibility for file close at `base.js`: decrease indeterminism for mixed cases of async and sync code.
5. Update dependencies: `Cabal`, `Win32`, `directory`, `process`, `haskeline`, and `unix`.
submodule
Co-authored-by: Cheng Shao <terrorjack@type.dance>
Co-authored-by: Dmitrii Egorov <egorov.d.i@icloud.com>
Co-authored-by: Andrei Borzenkov <root@sandwitch.dev>
-
50fa8165
by Javran Cheng at 2025-05-05T05:55:39-04:00
Suppress unused do-binding if discarded variable is Any or ZonkAny.
Consider example (#25895):
> do { forever (return ()); blah }
where `forever :: forall a b. IO a -> IO b`.
Nothing constrains `b`, so it will be instantiates with `Any` or
`ZonkAny`.
But we certainly don't want to complain about a discarded do-binding.
Fixes #25895
-
27705207
by Apoorv Ingle at 2025-05-05T20:23:00-05:00
- Remove one `SrcSpan` field from `VAExpansion`. It is no longer needed.
- Make `tcExpr` take a `Maybe HsThingRn` which will be passed on to tcApp and used by splitHsApps to determine a more accurate `AppCtx`
- `tcXExpr` is less hacky now
- do not look through HsExpansion applications
- kill OrigPat and remove HsThingRn From VAExpansion
- look through XExpr ExpandedThingRn while inferring type of head
- always set in generated code after stepping inside a ExpandedThingRn
- fixing record update error messages
- remove special case of tcbody from tcLambdaMatches
- wrap last stmt expansion in a HsPar so that the error messages are prettier
- remove special case of dsExpr for ExpandedThingTc
- make EExpand (HsExpr GhcRn) instead of EExpand HsThingRn
- fixing error messages for rebindable
-
e1ba0c2c
by Apoorv Ingle at 2025-05-05T20:23:00-05:00
some progress on tick
-
3e146809
by Apoorv Ingle at 2025-05-05T20:23:00-05:00
remove adhoc cases from ticks
-
41a42e55
by Apoorv Ingle at 2025-05-05T20:23:00-05:00
fix the case where head of the application chain is an expanded expression and the argument is a type application c.f. T19167.hs
-
cc46e9c6
by Apoorv Ingle at 2025-05-05T20:23:00-05:00
move setQLInstLevel inside tcInstFun
-
a8a9edda
by Apoorv Ingle at 2025-05-05T20:23:00-05:00
ignore ds warnings originating from gen locations
-
c0c01891
by Apoorv Ingle at 2025-05-05T20:23:00-05:00
filter expr stmts error msgs
-
486cee8b
by Apoorv Ingle at 2025-05-05T20:23:00-05:00
exception for AppDo while making error ctxt
-
7dcd5b45
by Apoorv Ingle at 2025-05-05T20:23:00-05:00
moving around things for locations and error ctxts
-
6c4e8559
by Apoorv Ingle at 2025-05-05T20:23:00-05:00
popErrCtxt doesn't push contexts and popErrCtxts in the first argument to bind and >> in do expansion statements
-
f1936171
by Apoorv Ingle at 2025-05-05T20:24:45-05:00
accept test cases with changed error messages
-------------------------
Metric Decrease:
T9020
-------------------------
-
4dc324fd
by Apoorv Ingle at 2025-05-05T20:24:54-05:00
look through PopErrCtxt while splitting exprs in application chains