Skip to content
Snippets Groups Projects
Forked from Glasgow Haskell Compiler / GHC
214 commits behind the upstream repository.
Serge S. Gulin's avatar
Serge S. Gulin authored
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: default avatarCheng Shao <terrorjack@type.dance>
Co-authored-by: default avatarDmitrii Egorov <egorov.d.i@icloud.com>
Co-authored-by: default avatarAndrei Borzenkov <root@sandwitch.dev>
9995c2b7
History
Name Last commit Last update
..
adjustor
eventlog
hooks
include
js
linker
posix
sm
wasm
win32
.dir-locals.el
.gitignore
.tsan-suppressions
ARMOutlineAtomicsSymbols.h
Adjustor.c
Adjustor.h
Apply.cmm
Apply.h
Arena.c
Arena.h
AutoApply.h
AutoApplyVecs.h
BeginPrivate.h
Capability.c
Capability.h
CheckUnload.c
CheckUnload.h
CheckVectorSupport.c
CheckVectorSupport.h
CloneStack.c
CloneStack.h
ClosureFlags.c
ClosureSize.c
Compact.cmm
Continuation.c
Continuation.h
ContinuationOps.cmm
Disassembler.c
Disassembler.h
EndPrivate.h
Exception.cmm
Excn.h
ExecPage.c
FileLock.c
FileLock.h
ForeignExports.c
ForeignExports.h
GetEnv.h
GetTime.h
Globals.c
Globals.h
Hash.c
Hash.h
Heap.c
HeapStackCheck.cmm
Hpc.c
HsFFI.c
IOManager.c
IOManager.h
IOManagerInternals.h
IPE.c
IPE.h
Inlines.c
Interpreter.c
Interpreter.h
Jumps.h
Jumps_D.cmm
Jumps_V16.cmm
Jumps_V32.cmm
Jumps_V64.cmm
LdvProfile.c
LdvProfile.h
Libdw.c
Libdw.h
LibdwPool.c
LibdwPool.h
Linker.c
LinkerInternals.h
Makefile
Messages.c
Messages.h
OldARMAtomic.c
PathUtils.c
PathUtils.h
Pool.c
Pool.h
Prelude.h
PrimOps.cmm
Printer.c
Printer.h
ProfHeap.c
ProfHeap.h
ProfHeapInternal.h
ProfilerReport.c
ProfilerReport.h
ProfilerReportJson.c
ProfilerReportJson.h
Profiling.c
Profiling.h
Proftimer.c
Proftimer.h
RaiseAsync.c
RaiseAsync.h
ReportMemoryMap.c
ReportMemoryMap.h
RetainerProfile.c
RetainerProfile.h
RetainerSet.c
RetainerSet.h
RtsAPI.c
RtsDllMain.c
RtsDllMain.h
RtsFlags.c
RtsFlags.h
RtsMain.c
RtsMessages.c
RtsProbes.d
RtsSignals.h
RtsStartup.c
RtsSymbolInfo.c
RtsSymbolInfo.h
RtsSymbols.c
RtsSymbols.h
RtsUtils.c
RtsUtils.h
SMPClosureOps.h
STM.c
STM.h
Schedule.c
Schedule.h
Sparks.c
Sparks.h
SpinLock.c
StableName.c
StableName.h
StablePtr.c
StablePtr.h
StaticPtrTable.c
StaticPtrTable.h
Stats.c
Stats.h
StgCRun.c
StgCRunAsm.S
StgMiscClosures.cmm
StgPrimFloat.c
StgPrimFloat.h
StgRun.h
StgStartup.cmm
StgStdThunks.cmm
TSANUtils.c
Task.c
Task.h
ThreadLabels.c
ThreadLabels.h
ThreadPaused.c
ThreadPaused.h
Threads.c
Threads.h
Ticker.h
Ticky.c
Ticky.h
Timer.c
Timer.h
TopHandler.c
TopHandler.h
Trace.c
Trace.h
TraverseHeap.c
TraverseHeap.h
TraverseHeapTest.c
Updates.cmm
Updates.h
WSDeque.c
WSDeque.h
Weak.c
Weak.h
ZeroSlop.c
configure.ac
external-symbols.list.in
fs_rts.h
gen_event_types.py
ghcplatform.h.bottom
ghcplatform.h.top.in
rts.buildinfo.in
rts.cabal
xxhash.h