# GHC 9.10.1-alpha2 is now available!

**URL:** <https://discourse.haskell.org/t/ghc-9-10-1-alpha2-is-now-available/9197>\
**Category:** Announcements\
**Created:** [March 29, 2024, 9:30pm UTC](https://discourse.haskell.org/t/ghc-9-10-1-alpha2-is-now-available/9197 "2024-03-29T21:30:04Z")\
**Posts on this page:** 6\
**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:** [March 29, 2024, 9:30pm UTC](https://discourse.haskell.org/t/ghc-9-10-1-alpha2-is-now-available/9197/1 "2024-03-29T21:30:04Z")

</div>

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

We hope to have this release available via ghcup shortly.

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

- The introduction of the `GHC2024` language edition, building upon  
`GHC2021` with the addition of a number of widely-used extensions.

- Partial implementation of the [GHC Proposal #281](https://github.com/ghc-proposals/ghc-proposals/pull/281), allowing visible  
quantification to be used in the types of terms.

- [Extension](https://github.com/ghc-proposals/ghc-proposals/pull/624) of LinearTypes to allow linear `let` and `where`  
bindings

- The implementation of the [exception backtrace proposal](https://github.com/ghc-proposals/ghc-proposals/pull/330), allowing the annotation of exceptions with backtraces, as well  
as other user-defined context

- Further improvements in the info table provenance mechanism, reducing  
code size to allow IPE information to be enabled more widely

- Javascript FFI support in the WebAssembly backend

- Improvements in the fragmentation characteristics of the low-latency  
non-moving garbage collector.

- … and many more

A full accounting of changes can be found in the [release notes](https://downloads.haskell.org/ghc/9.10.1-alpha2/docs/users_guide/9.10.1-notes.html).  
As always, GHC’s release status, including planned future releases, can  
be found on the GHC Wiki [status](https://gitlab.haskell.org/ghc/ghc/-/wikis/GHC-status).

We would like to thank GitHub, IOG, the Zw3rk stake pool,  
Well-Typed, Tweag I/O, Serokell, Equinix, 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  
comprise this release.

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

---

<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:** [March 30, 2024, 8:12am UTC](https://discourse.haskell.org/t/ghc-9-10-1-alpha2-is-now-available/9197/2 "2024-03-30T08:12:19Z")

</div>

> [@bgamari](#):
>
> We hope to have this release available via ghcup shortly.

done [Add GHC 9.10.1-alpha2 · haskell/ghcup-metadata@159705f · GitHub](https://github.com/haskell/ghcup-metadata/commit/159705f7d2699f09e53764ca4cd59fedf8ef9c9e)

---

<div class="post-metadata">

**Author:** ![danidiaz](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/danidiaz/32/92_2.png) [@danidiaz](https://discourse.haskell.org/u/danidiaz)\
**Post date:** [March 30, 2024, 9:36am UTC](https://discourse.haskell.org/t/ghc-9-10-1-alpha2-is-now-available/9197/3 "2024-03-30T09:36:52Z")

</div>

> In accordance with GHC Proposal [#448](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0448-type-variable-scoping.rst), the [`TypeAbstractions`](https://downloads.haskell.org/ghc/9.10.1-alpha2/docs/users_guide/exts/type_abstractions.html#extension-TypeAbstractions) extension has been extended to support `@` -binders in lambdas and function equations

> This feature is an experimental alternative to [`ScopedTypeVariables`](https://downloads.haskell.org/ghc/9.10.1-alpha2/docs/users_guide/exts/scoped_type_variables.html#extension-ScopedTypeVariables), see the [Type Abstractions in Functions](https://downloads.haskell.org/ghc/9.10.1-alpha2/docs/users_guide/exts/type_abstractions.html#type-abstractions-in-functions) section.

> The scope of `a` can be extended to cover the function equation as well by enabling [`ScopedTypeVariables`](https://downloads.haskell.org/ghc/9.10.1-alpha2/docs/users_guide/exts/scoped_type_variables.html#extension-ScopedTypeVariables). Using a separate binder like `@t` is the modern and more flexible alternative for that, capable of handling higher-rank scenarios (see the `higherRank` example below).

So, IIUC, I could set `NoScopedTypeVariables` and rely completely on `TypeAbstractions`?

---

<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:** [March 30, 2024, 2:07pm UTC](https://discourse.haskell.org/t/ghc-9-10-1-alpha2-is-now-available/9197/4 "2024-03-30T14:07:49Z")

</div>

If you are not using GHCup to manage Stack’s use of different versions of GHC, you can configure Stack to try to use this version of GHC by augmenting the default `setup-info` dictionary. For example, on Windows:

```haskell
snapshot: nightly-2024-03-30
compiler: ghc-9.10.0.20240328 # Override the compiler version in the snapshot

# Not needed once Stack has setup GHC 9.10.0.20240328:
setup-info:
  ghc:
    windows64:
      9.10.0.20240328:
        url: https://downloads.haskell.org/ghc/9.10.1-alpha2/ghc-9.10.0.20240328-x86_64-unknown-mingw32.tar.xz
        # Can be extended with SHA protections etc: see https://docs.haskellstack.org/en/stable/yaml_configuration/#setup-info

```

However, I think Stack will fall over with (extract, reformatted for clarity):

```nohighlight
Warning: Stack has not been tested with GHC versions 9.10 and above, and using 9.10.0.20240328,
         this may fail.
Warning: Stack has not been tested with Cabal versions 3.12 and above, but version 3.11.0.0 was
         found, this may fail.
...
[2 of 3] Compiling StackSetupShim ( C:\sr\setup-exe-src\setup-shim-9p6GVs8J.hs, C:\sr\setup-exe-src\setup-shim-9p6GVs8J.o )

C:\sr\setup-exe-src\setup-shim-9p6GVs8J.hs:38:28: error: [GHC-88464]
    Variable not in scope:
      initialBuildSteps
        :: FilePath
           -> PackageDescription
           -> LocalBuildInfo
           -> Distribution.Verbosity.Verbosity
           -> IO ()
   |
38 | | null rest -> initialBuildSteps distPref pkg_descr lbi verbosity
   | ^^^^^^^^^^^^^^^^^

Error: [S-6374]
       While building simple Setup.hs (scroll up to its section to see the error) using:
       ...\x86_64-windows\ghc-9.10.0.20240328\bin\ghc-9.10.0.20240328.exe 
       -rtsopts 
       -threaded 
       -clear-package-db 
       -global-package-db 
       -hide-all-packages 
       -package base 
       -main-is StackSetupShim.mainOverride 
       -package Cabal-3.11.0.0 
       C:\sr\setup-exe-src\setup-9p6GVs8J.hs
       C:\sr\setup-exe-src\setup-shim-9p6GVs8J.hs 
       -o C:\sr\setup-exe-cache\x86_64-windows\tmp-Cabal-simple_9p6GVs8J_3.11.0.0_ghc-9.10.0.20240328.exe
       Process exited with code: ExitFailure 1

```

That is because `Cabal-3.11.0.0` dropped `Distribution.Simple.Build.initialBuildSteps` ([Cabal #9474](https://github.com/haskell/cabal/pull/9474)). ~~I’m looking into that.~~ EDIT: I anticipate that this will resolved in due course.

---

<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:** [March 31, 2024, 12:12am UTC](https://discourse.haskell.org/t/ghc-9-10-1-alpha2-is-now-available/9197/5 "2024-03-31T00:12:05Z")

</div>

The `master` branch version of Stack now accommodates `Cabal-3.11.0.0`. If you are not using GHCup to manage versions of Stack: `stack upgrade --source-only --git`.

---

<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:** [March 31, 2024, 8:08am UTC](https://discourse.haskell.org/t/ghc-9-10-1-alpha2-is-now-available/9197/6 "2024-03-31T08:08:41Z")

</div>

> [@mpilgrem](#):
>
> If you are not using GHCup to manage Stack’s use of different versions of GHC

Correction. You can do the same with ghcup 🙂

Add this to `~/.ghcup/config.yaml`:

```yaml
url-source:
  - StackSetupURL
  - setup-info:
      ghc:
        windows:
          9.10.0.20240328:
            url: https://downloads.haskell.org/ghc/9.10.1-alpha2/ghc-9.10.0.20240328-x86_64-unknown-mingw32.tar.xz
            # Can be extended with SHA protections etc: see https://docs.haskellstack.org/en/stable/yaml_configuration/#setup-info

```

This uses the [same strategy](https://github.com/haskell/ghcup-hs/blob/63e714d1b1a0b1c059ba097c6e0b03cf6b6bd707/lib/GHCup/Platform.hs#L214-L362) and [metadata](https://github.com/haskell/ghcup-hs/blob/63e714d1b1a0b1c059ba097c6e0b03cf6b6bd707/lib/GHCup/Version.hs#L40) to install GHC like stack does, but manages the installation like anything else in GHCup.

More information here: [https://www.haskell.org/ghcup/guide/#using-stacks-setup-info-metadata-to-install-ghc](https://www.haskell.org/ghcup/guide/#using-stacks-setup-info-metadata-to-install-ghc)
