Skip to content

Commit 0dfa35e

Browse files
authored
Update README to reflect current compiler versions and status (#239)
Replace outdated GHC 8.10 references with current compilers (ghc96, ghc98, ghc910, ghc912). Update the flavor table to include lmdb in -iog descriptions. Note that Windows cross-compilation is currently disabled pending nixpkgs-2511 crossThreadsStdenv fix. Update Docker image list to match available compilers. Fixes #114
1 parent 0a1bfba commit 0dfa35e

1 file changed

Lines changed: 22 additions & 19 deletions

File tree

README.md

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,15 @@ Then, (on Linux, macOS, windows WSL) you can use:
3131
nix develop github:input-output-hk/devx#ghc96 --no-write-lock-file --refresh
3232
```
3333

34-
To obtain a haskell development shell for GHC 8.10.7 including `cabal-install`,
34+
To obtain a Haskell development shell for GHC 9.6 including `cabal-install`,
3535
as well as `hls` and `hlint`. If you are on macOS on an Apple Silicon chip
3636
(M1, M2, ...), and want to switch between Intel (x86_64) and Apple Silicon
3737
(aarch64), you can do this by simply passing the corresponding
3838
`--system` argument:
3939
```bash
40-
nix develop github:input-output-hk/devx#ghc810 --no-write-lock-file --refresh --system x86_64-darwin
40+
nix develop github:input-output-hk/devx#ghc96 --no-write-lock-file --refresh --system x86_64-darwin
4141
# ... or:
42-
nix develop github:input-output-hk/devx#ghc810 --no-write-lock-file --refresh --system aarch64-darwin
42+
nix develop github:input-output-hk/devx#ghc96 --no-write-lock-file --refresh --system aarch64-darwin
4343
```
4444

4545
## `direnv` integration
@@ -51,7 +51,7 @@ if ! has nix_direnv_version || ! nix_direnv_version 2.3.0; then
5151
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.3.0/direnvrc" "sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8="
5252
fi
5353
# https://github.com/input-output-hk/devx Slightly opinionated shared GitHub Action for Cardano-Haskell projects
54-
use flake "github:input-output-hk/devx#ghc810-iog"
54+
use flake "github:input-output-hk/devx#ghc96-iog"
5555
```
5656

5757
Refer to [`direnv` and `devx`](./docs/direnv.md) guide for more information.
@@ -77,7 +77,10 @@ This configuration will work immediately in GitHub CodeSpace! For local VSCode D
7777

7878
It's also advised to enable GitHub CodeSpace prebuilds in your repository settings, follow the instructions provided in the [GitHub documentation](https://docs.github.com/en/codespaces/prebuilding-your-codespaces/configuring-prebuilds). This will significantly enhance your development experience by reducing the setup time when opening a new CodeSpace.
7979

80-
List of images available: `ghc810-iog`, `ghc96-iog`, `ghc810-js-iog`, `ghc96-js-iog`, `ghc810-windows-iog`, `ghc96-windows-iog`.
80+
List of images available: `ghc96-iog`, `ghc98-iog`, `ghc910-iog`, `ghc912-iog`, `ghc96-js-iog`, `ghc98-js-iog`.
81+
82+
> [!NOTE]
83+
> Windows cross-compilation images are currently disabled pending a nixpkgs-2511 fix for the `crossThreadsStdenv` bootstrap (mcfgthread/pthreads).
8184
8285
> [!TIP]
8386
> If you wish to utilize the DevContainer as a normal Docker container outside of GitHub or VSCode, remember to prefix your commands with `bash -ic`. This is necessary because the Nix developer environment is loaded through `~/.bashrc`.
@@ -86,35 +89,35 @@ List of images available: `ghc810-iog`, `ghc96-iog`, `ghc810-js-iog`, `ghc96-js-
8689
## Compilers and Flavors
8790

8891
There are multiple compilers available, and usually the latest for each series
89-
from 8.10 to 9.6 (a slight delay between the official release announcement and
92+
from 9.6 to 9.12 (a slight delay between the official release announcement and
9093
the compiler showing up in the devx shell is expected due to integration work
91-
necessary). The current available ones are: `ghc810`, `ghc90`, `ghc92`, `ghc94`, and
92-
`ghc96` (these are the same ones as in [haskell.nix](https://github.com/input-output-hk/haskell.nix) and may contain patches for defects in the official releases).
94+
necessary). The current available ones are: `ghc96`, `ghc98`, `ghc910`, and
95+
`ghc912` (these are the same ones as in [haskell.nix](https://github.com/input-output-hk/haskell.nix) and may contain patches for defects in the official releases).
9396

9497
### Flavors
9598

96-
There are various flavors available as suffixes to the compiler names (e.g. `#ghc810-minimal-iog`).
99+
There are various flavors available as suffixes to the compiler names (e.g. `#ghc96-minimal-iog`).
97100

98101
| Flavor | Description | Example | Included |
99102
| - | - | - | - |
100-
| empty | General Haskell Dev | `#ghc810` | `ghc`, `cabal-install`, `hls`, `hlint` |
101-
| `-iog` | IOG Haskell Dev | `#ghc810` | adds `sodium-vrf`, `blst`, `secp256k1` |
102-
| `-iog-full` | IOG Haskell Dev | `#ghc810` | adds `sodium-vrf`, `blst`, `secp256k1`, `R`, `postgresql` |
103-
| `-minimal` | Only GHC, and Cabal | `#ghc810-minimal` | drops `hls`, `hlint` |
104-
| `-static` | Building static binaries | `#ghc810-static` | Static Haskell Cross-Compiler |
105-
| `-js` | JavaScript Cross-Compiler | `#ghc810-js` | JavaScript Haskell Cross-Compiler |
106-
| `-windows` | Windows Cross-Compiler | `#ghc810-windows` | Windows Haskell Cross-Compiler |
107-
| `-ghc` | GHC Development | `#ghc810-ghc` | GHC Development Compiler |
103+
| empty | General Haskell Dev | `#ghc96` | `ghc`, `cabal-install`, `hls`, `hlint` |
104+
| `-iog` | IOG Haskell Dev | `#ghc96-iog` | adds `sodium-vrf`, `blst`, `secp256k1`, `lmdb` |
105+
| `-iog-full` | IOG Haskell Dev | `#ghc96-iog-full` | adds `sodium-vrf`, `blst`, `secp256k1`, `lmdb`, `R`, `postgresql` |
106+
| `-minimal` | Only GHC, and Cabal | `#ghc96-minimal` | drops `hls`, `hlint` |
107+
| `-static` | Building static binaries | `#ghc96-static` | Static Haskell Cross-Compiler |
108+
| `-js` | JavaScript Cross-Compiler | `#ghc96-js` | JavaScript Haskell Cross-Compiler |
109+
| `-windows` | Windows Cross-Compiler | `#ghc96-windows` | Windows Haskell Cross-Compiler (currently disabled) |
110+
| `-ghc` | GHC Development | `#ghc96-ghc` | GHC Development Compiler |
108111

109112
These can then be combined following this schema:
110113
```
111114
#ghc<ver>[-js|-windows|-static][-minimal][-iog|-iog-full]
112115
```
113116
For example:
114117
```bash
115-
nix develop github:input-output-hk/devx#ghc810-windows-minimal-iog --no-write-lock-file --refresh
118+
nix develop github:input-output-hk/devx#ghc96-static-minimal-iog --no-write-lock-file --refresh
116119
```
117-
... would provide a development shell with a windows cross-compiler as well as cabal, and the IOG specific libraries, but no Haskell Language Server (`hls`), and no HLint.
120+
... would provide a development shell for building static binaries with cabal and the IOG specific libraries, but no Haskell Language Server (`hls`), and no HLint.
118121

119122
A full list of all available `devShells` can be seen with:
120123
```bash

0 commit comments

Comments
 (0)