Skip to content

Conversation

@andreabedini
Copy link
Member

@andreabedini andreabedini commented Oct 28, 2025

  • docs(readme): consolidate building and contributing guides into README

- Delete separate HACKING.md and INSTALL.md files, consolidating their content into README.md for a unified reference
- Update README to reflect Stable Haskell Edition fork with GitHub issue tracker at stable-haskell/ghc
- Revise clone instructions to point to GitHub stable-haskell/ghc repository instead of GitLab
- Simplify build instructions to use make-based build system with clearer GHCup setup steps
- Integrate developer contribution guidelines and communication channels directly into README
- Update dependency references and remove outdated tool links (Happy, Alex)
- Add test suite running instructions to building section
- Reorganize content with clearer section headers for Getting Started, Useful Resources, and communication channels
@andreabedini andreabedini force-pushed the wip/andrea/rewrite-readme branch from da46c19 to e96697c Compare October 28, 2025 03:49
@andreabedini andreabedini changed the title wip/andrea/rewrite readme docs(readme): consolidate building and contributing guides into README Oct 28, 2025
@andreabedini andreabedini mentioned this pull request Oct 29, 2025
Comment on lines +159 to +164
### IRC

If you're an IRC user, be sure to drop by the official `#ghc` channel
on [Libera.Chat](https://libera.chat). Many (but not all) of the
developers and committers are actively there during a variety of
hours.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be discord.

Comment on lines +168 to +183
In the event IRC does not work or if you'd like a bigger audience, GHC
has several mailing lists for this purpose. The most important one is
[ghc-devs](http://www.haskell.org/pipermail/ghc-devs/), which is where
the developers actively hang out and discuss incoming changes and
problems.

There is no strict standard about where you post patches - either in
`ghc-devs` or in the bug tracker. Ideally, please put it in the bug
tracker with test cases or relevant information in a ticket, and set
the ticket status to `patch`. By doing this, we'll see the patch
quickly and be able to review. This will also ensure it doesn't get
lost. But if the change is small and self contained, feel free to
attach it to your email, and send it to `ghc-devs`.

Furthermore, if you're a developer (or want to become one!) you're
undoubtedly also interested in the other mailing lists:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For upstream ghc development, you can follow the following two mailing lists if you are interested.

(or we just completely drop this from our README)

Comment on lines 91 to 94

Hacking & Developing GHC
========================
Contributing to GHC
===================

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure we need this section at all, other than for "ask questions on discord".

Both the bootstrap compiler and cabal-install can be easily installed with
[GHCup](https://www.haskell.org/ghcup/):

$ ghcup install ghc 9.8.4
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
$ ghcup install ghc 9.8.4
$ ghcup install ghc --set 9.8.4

Then we can remove the explicit line 55

$ ./boot
$ ./configure
$ hadrian/build # can also say '-jX' for X number of jobs
$ make CABAL=$PWD/_build/stage0/bin/cabal
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find the CABAL=foo part ridiculous tbh. Can we get rid of this?

On Windows, you need an extra repository containing some build tools.
These can be downloaded for you by configure. This only needs to be done once by running:
On Windows, you should run the build command from an appropriate
environment (e.g., MSYS2).
Copy link
Member

@hasufell hasufell Nov 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That can actually cause more problems, because msys2 doesn't understand single backslash, causing issues with cabal.

I'm currently testing whether something like ghcup run -m -- make CABAL=_build/stage0/bin/cabal works better.

But it might not matter and we need to fix the cabal side either way.

almost always a win regardless of how many cores you have. As a simple rule,
you should have about N+1 jobs, where `N` is the amount of cores you have.)
This gives you the default build, which includes everything
optimised and built in various ways (eg. profiling libs are built).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we building profiling?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants