Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
88dd5c3
Conditionalize the ghc-internal dependency on the ghc version.
angerman Sep 5, 2025
76bddf5
compiler: allow building with boot compiler that doesn't have ghc-int…
angerman Sep 5, 2025
e5e830f
ghc-pkg: Add support for mermaid diagram generation for markdown files
angerman Sep 5, 2025
04708ed
ghc-pkg: Add support for --target
angerman Sep 5, 2025
b5bcf1f
Improve error handling in 'getPackageArchives'
hasufell Sep 4, 2025
ba6f872
Allow Core plugins to access unoptimized Core (#23337)
hsyl20 Sep 4, 2025
067692f
Testsuite: fix debug_rts detection
hsyl20 Sep 5, 2025
5a01984
Print fully qualified unit names in name mismatch
hsyl20 Sep 5, 2025
5aaa33a
T16180: indicate that the stack isn't executable
hsyl20 Sep 4, 2025
2ee1915
Fix some tests (statically linked GHC vs libc)
hsyl20 Sep 4, 2025
5a27157
testsuite: adapt to cabal update, and gate plugins-external by ghc_dy…
angerman Sep 2, 2025
53535b4
testsuite: T20010 isn't broken on linux/non-dynamic only. It's also b…
angerman Sep 2, 2025
992c0c1
testsuite: T13786 does not appear broken on linux with non-dynamic.
angerman Sep 2, 2025
196e11f
deriveConstant: support symbols in the .bss section (#26393)
hsyl20 Sep 9, 2025
3e5d9a6
Add note about stage2
angerman Sep 9, 2025
93c492e
compiler: add better 'could not execute: ' error messageShowing that …
angerman Sep 9, 2025
d72f392
ghc-toolchain: add output-settings
angerman Sep 9, 2025
8409cfe
genprimopcode: add --wrappers/--prim-module
angerman Sep 9, 2025
68ded79
ghc-config: add more fields
angerman Sep 9, 2025
59ba4e7
unlit: use rts prefix
angerman Sep 9, 2025
9d79773
Add .envrc
angerman Sep 9, 2025
0c85671
feat: Modularize RTS and extract headers/filesystem utilities
Aug 28, 2025
e1b6ea3
cabal: use feature/cross-compile branch
angerman Sep 9, 2025
86b6a9a
libffi: drop
angerman Sep 9, 2025
8ea99ed
system-cxx-std-lib: use cxx instead of c
angerman Sep 9, 2025
37f75a5
compiler: add -no-rts flag
angerman Sep 9, 2025
6ecabf2
remove configure.ac to prevent merge conflicts when rebuilding it
angerman Sep 10, 2025
6e2190b
feat: Implement cabal-based multi-stage build system
hsyl20 Nov 15, 2024
9480245
rts: split into sub libraries
angerman Sep 9, 2025
8bace4b
testsuite: rts split adjustments
angerman Sep 9, 2025
f78984b
Ignore LLVM Version
angerman Sep 6, 2025
da64dee
Link against rts sublib too
hasufell Sep 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Check if nix-direnv is already loaded; if not, source it
if ! has nix_direnv_reload; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.7/direnvrc" "sha256-bn8WANE5a91RusFmRI7kS751ApelG02nMcwRekC/qzc="
fi

# Use the specified flake to enter the Nix development environment
use flake github:input-output-hk/devx#ghc98-minimal-ghc
75 changes: 75 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: CI

# Trigger the workflow on push or pull request, but only for the master branch
on:
pull_request:
types:
- opened
- synchronize
push:
branches: [master]

workflow_dispatch:

jobs:
cabal:
name: ${{ matrix.plat }} / ghc ${{ matrix.ghc }}
runs-on: "${{ fromJSON('{\"x86_64-linux\": \"ubuntu-24.04\", \"aarch64-linux\": \"ubuntu-24.04-arm\", \"x86_64-darwin\": \"macos-latest\", \"aarch64-darwin\": \"macos-latest\"}')[matrix.plat] }}"

strategy:
fail-fast: false
matrix:
plat:
- x86_64-linux
# - aarch64-linux # disabled: waiting for devx images to be fixed
# - x86_64-darwin # disabled: waiting for devx images to be fixed
- aarch64-darwin
ghc: ['98'] # bootstrapping compiler

steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"

- uses: input-output-hk/actions/devx@latest
with:
platform: ${{ matrix.plat }}
compiler-nix-name: 'ghc98'
minimal: true
ghc: true

- name: Update hackage
shell: devx {0}
run: cabal update

# The Makefile will run configure (and boot 😞), we also need to create a
# synthetic package before running configure. Once this nuissance is fixed
# we can do proper configure + make again. Until then... we have to live
# with the hack of running everything from the make target.
# - name: Configure the build
# shell: devx {0}
# run: ./configure

- name: Build the bindist
shell: devx {0}
run: make CABAL=$PWD/_build/stage0/bin/cabal

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.plat }}-bindist
path: _build/bindist

- name: Run the testsuite
shell: devx {0}
run: make test CABAL=$PWD/_build/stage0/bin/cabal

- name: Upload test results
uses: actions/upload-artifact@v4
if: ${{ !cancelled() }} # upload test results even if the testsuite failed to pass
with:
name: ${{ matrix.plat }}-testsuite-results
path: |
_build/test-perf.csv
_build/test-summary.txt
_build/test-junit.xml
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,9 @@ missing-win32-tarballs
VERSION
GIT_COMMIT_ID

/libraries/ghc-boot-th-next/.synth-stamp
/libraries/ghc-boot-th-next/ghc-boot-th-next.cabal.in

# -------------------------------------------------------------------------------------
# when using a docker image, one can mount the source code directory as the home folder
# -------------------------------------------------------------------------------------
Expand Down
7 changes: 2 additions & 5 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@
ignore = untracked
[submodule "libraries/Cabal"]
path = libraries/Cabal
url = https://gitlab.haskell.org/ghc/packages/Cabal.git
url = https://github.com/stable-haskell/Cabal.git
ignore = untracked
branch = stable-haskell/feature/cross-compile
[submodule "libraries/containers"]
path = libraries/containers
url = https://gitlab.haskell.org/ghc/packages/containers.git
Expand Down Expand Up @@ -99,10 +100,6 @@
path = utils/hsc2hs
url = https://gitlab.haskell.org/ghc/hsc2hs.git
ignore = untracked
[submodule "libffi-tarballs"]
path = libffi-tarballs
url = https://gitlab.haskell.org/ghc/libffi-tarballs.git
ignore = untracked
[submodule "gmp-tarballs"]
path = libraries/ghc-internal/gmp/gmp-tarballs
url = https://gitlab.haskell.org/ghc/gmp-tarballs.git
Expand Down
Loading
Loading