# GHC 9.14.1-alpha2 is now available

**URL:** <https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955>\
**Category:** Announcements\
**Created:** [September 12, 2025, 1:24pm UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955 "2025-09-12T13:24:38Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![bgamari](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/bgamari/32/3599_2.png) [@bgamari](https://discourse.haskell.org/u/bgamari)\
**Post date:** [September 12, 2025, 1:24pm UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/1 "2025-09-12T13:24:38Z")

</div>

The GHC developers are very pleased to announce the availability of the second alpha prerelease of GHC 9.14.1. Binary distributions, source distributions, and documentation are available at [downloads.haskell.org](https://downloads.haskell.org/ghc/9.14.1-alpha2).

GHC 9.14 will bring a number of new features and improvements, including:

- Significant improvements in specialisation:

- Significant improvements in the GHCi debugger

- Record fields can be defined to be non-linear when `LinearTypes` is enabled.

- `RequiredTypeArgments` can now be used in more contexts

- SSE/AVX2 support in the x86 native code generator backend

- A major update of the Windows toolchain

- … and many more

A full accounting of changes can be found in the [release notes](https://downloads.haskell.org/ghc/9.14.1-alpha2/docs/users_guide/9.14.1-notes.html). Given the many specialisation improvements and their potential for regression, we would very much appreciate testing and performance characterisation on downstream workloads.

Observant readers of these prerelease announcements will note that polymorphic specialisation has been dropped from alpha 2. This measure was taken out of an abundance of caution after finding a miscompilation during testing of alpha 1. While this bug will be fixed in the next alpha, we expect to keep polymorphic specialisation disabled by default in the final release. Users needing more aggressive specialisation can explicitly enable this feature with the `-fpolymorphic-specialisation` flag. Depending upon our experience with 9.14.1, we may enable this feature by default in a later minor release.

This is the second of three expected alpha prereleases. We expect the next (third) alpha will come 23 Sept. 2025, with the release candidate coming 7 Oct. 2025.

We would like to thank the Zw3rk stake pool, Well-Typed, Mercury, Channable, Tweag I/O, Serokell, SimSpace, the Haskell Foundation, and other anonymous contributors whose on-going financial and in-kind support has facilitated GHC maintenance and release management over the years. Finally, this release would not have been possible without the hundreds of open-source contributors whose work have made the Haskell ecosystem what it is today.

As always, do give this release a try and open a [ticket](https://gitlab.haskell.org/ghc/homepage/-/issues/new) if you see anything amiss.

---

<div class="post-metadata">

**Author:** ![mpilgrem](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/mpilgrem/32/2529_2.png) [@mpilgrem](https://discourse.haskell.org/u/mpilgrem)\
**Post date:** [September 13, 2025, 10:28pm UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/2 "2025-09-13T22:28:22Z")

</div>

If you want to use with Stack:

Add a `setup-info` dictionary to a configuration file with the applicable entry for your operating system. For example, on Windows, a `stack.yaml`:

```plaintext
snapshot: nightly-2025-09-13 # GHC 9.12.2
compiler: ghc-9.14.0.20250908
compiler-check: match-exact # Anticipate future alpha releases

# Only required before the GHC version has been installed:
setup-info:
  ghc:
    windows64:
      9.14.0.20250908:
        url: https://downloads.haskell.org/ghc/9.14.1-alpha2/ghc-9.14.0.20250908-x86_64-unknown-mingw32.tar.xz
        # Can be extended with SHA protections etc: see https://docs.haskellstack.org/en/stable/yaml_configuration/#setup-info

```

To avoid irritating warnings about Stack not being able to parse GHC 9.14’s `*.hi` files, upgrade to the `master` branch version of Stack. (My plan is to release the next update of Stack once GHC 9.14.1 is released.)

If you tried Alpha 1 with Stack and now want to tidy up, delete its folder and `*.installed` file in the platform folder of Stack’s programs folder (see `stack path --programs`).

---

<div class="post-metadata">

**Author:** ![mpilgrem](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/mpilgrem/32/2529_2.png) [@mpilgrem](https://discourse.haskell.org/u/mpilgrem)\
**Post date:** [September 13, 2025, 10:57pm UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/3 "2025-09-13T22:57:52Z")

</div>

May I ask about the language development:

> Explicit level import support, allowing `import` declarations to explicitly state which compilation stages they are are visible to.

Is that elaborated anywhere?

---

<div class="post-metadata">

**Author:** ![mpilgrem](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/mpilgrem/32/2529_2.png) [@mpilgrem](https://discourse.haskell.org/u/mpilgrem)\
**Post date:** [September 13, 2025, 11:08pm UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/4 "2025-09-13T23:08:59Z")

</div>

If you think it is a bug, I’ll raise a ticket but I note that the User Guide 2.1.12 Included libraries does not list the following GHC 9.14.1-alpha2 boot packages as such:

```
ghc-bignum-1.4
ghc-experimental-9.1400.0
ghc-internal-9.1400.0
ghc-platform-0.1.0.0
ghc-toolchain-0.1.0.0
rts-1.0.3
semaphore-compat-1.0.0
system-cxx-std-lib-1.0

```

Although I appreciate that `rts` is very special.

---

<div class="post-metadata">

**Author:** ![haanss](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/haanss/32/3690_2.png) [@haanss](https://discourse.haskell.org/u/haanss)\
**Post date:** [September 14, 2025, 12:36pm UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/5 "2025-09-14T12:36:33Z")

</div>

> [@mpilgrem](#):
>
> Is that elaborated anywhere?

In the [user guide](https://downloads.haskell.org/ghc/9.14.1-alpha1/docs/users_guide/exts/template_haskell.html#explicit-level-imports).

---

<div class="post-metadata">

**Author:** ![mpickering](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/mpickering/32/4585_2.png) [@mpickering](https://discourse.haskell.org/u/mpickering)\
**Post date:** [September 15, 2025, 11:19am UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/6 "2025-09-15T11:19:17Z")

</div>

There is a [GHC proposal](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0682-explicit-level-imports.rst) and [paper](https://mpickering.github.io/papers/explicit-level-imports.pdf) which explains the idea behind the extension.

---

<div class="post-metadata">

**Author:** ![bgamari](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/bgamari/32/3599_2.png) [@bgamari](https://discourse.haskell.org/u/bgamari)\
**Post date:** [September 15, 2025, 1:54pm UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/7 "2025-09-15T13:54:12Z")

</div>

> [@mpilgrem](#):
>
> If you think it is a bug, I’ll raise a ticket but I note that the User Guide 2.1.12 Included libraries does not list the following GHC 9.14.1-alpha2 boot packages as such:

I have opened [#26421](https://gitlab.haskell.org/ghc/ghc/-/issues/26421) to track this.

---

<div class="post-metadata">

**Author:** ![andreasabel](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/andreasabel/32/1764_2.png) [@andreasabel](https://discourse.haskell.org/u/andreasabel)\
**Post date:** [September 15, 2025, 7:12pm UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/8 "2025-09-15T19:12:25Z")

</div>

For us peasants a release only actually happens when it is in `ghcup`, so not yet available unfortunately…

---

<div class="post-metadata">

**Author:** ![Bodigrim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/bodigrim/32/1457_2.png) [@Bodigrim](https://discourse.haskell.org/u/Bodigrim)\
**Post date:** [September 15, 2025, 8:03pm UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/9 "2025-09-15T20:03:45Z")

</div>

More even like when it is available from `haskell-ci`. Which is why two weeks between alpha releases is rarely sufficient.

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [September 16, 2025, 4:35am UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/10 "2025-09-16T04:35:53Z")

</div>

Releases still are not coordinated with the wider Haskell toolchain group.

That is fine, but you can’t expect things to be synchronous then.

I stopped working on Haskell on weekends. That means things will potentially be delayed longer than usual.

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [September 16, 2025, 5:52am UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/11 "2025-09-16T05:52:27Z")

</div>

Released in GHCup: [Add GHC 9.14.2-alpha2 by bgamari · Pull Request #329 · haskell/ghcup-metadata · GitHub](https://github.com/haskell/ghcup-metadata/pull/329)

---

<div class="post-metadata">

**Author:** ![unhammer](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/unhammer/32/580_2.png) [@unhammer](https://discourse.haskell.org/u/unhammer)\
**Post date:** [September 16, 2025, 9:07am UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/12 "2025-09-16T09:07:48Z")

</div>

I liked the [ghc-proposals/proposals/0682-explicit-level-imports.rst at master · ghc-proposals/ghc-proposals · GitHub](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0682-explicit-level-imports.rst#32consequences-and-payoff) – so IIUC the gist of it seems to be that by enabling `ExplicitLevelImports` and adding some `splice/quote` to your TH imports you may get smaller binaries and faster compilation and linking (and possibly speed up HLS a bit).

---

<div class="post-metadata">

**Author:** ![romes](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/romes/32/2912_2.png) [@romes](https://discourse.haskell.org/u/romes)\
**Post date:** [September 16, 2025, 10:04am UTC](https://discourse.haskell.org/t/ghc-9-14-1-alpha2-is-now-available/12955/13 "2025-09-16T10:04:17Z")

</div>

That’s exactly right.
