The cabal release team brings you the release of the cabal-install
tool, version 3.12.1.0. This is the first release of the tool in the 3.12 series, and, hence, the first cabal-install
supporting Cabal 3.12 packaged with GHC 9.10.1. We also update the three main libraries.
- cabal-install: The command-line interface for Cabal and Hackage.
- Cabal: A framework for packaging Haskell software
- Cabal-syntax: A library for working with .cabal files
- cabal-install-solver: The command-line interface for Cabal and Hackage.
The binaries for cabal-install
are available on our website and can be installed via the GHCup main channel. As usual, cabal update && cabal install cabal-install-3.12.1.0
is an option too. Our binaries are signed by "Brandon S. Allbery <allbery.b@gmail.com>"
(the key is hosted on keyserver.ubuntu.com
).
We expect the official GHCup channel to be updated with the 3.12.1.0 binaries soon.
What is new
Performance
- Significant speedups during cabal startup due to use of the latest
tar
Project Organization
- Support for asm, cmm, and js sources in executable components
- Support for per-component builds when coverage is enabled
- Haskell files in explicit source directories take precedence over autogenerated Haskell files
- Fix precedence for
PATH
forbuild-tools-depends
(executables fromPATH
don’t shadow executables frombuild-tool-depends
anymore)
UX
- Errors now have error codes, which will be documented on https://errors.haskell.org
- A new subcommand,
cabal path
, which can be used to get information about the paths cabal will use within a project - Support for authentication tokens for uploading to Hackage
-
--(test-)show-details=direct
is now the default - Shorten solver rejection messages by removing repetition
- Show provenance of project constraints
Interaction with GHC
- Support for loading multiple components into one repl session
- Support for the
--semaphore
flag to enable interaction with GHC Job Server protocol - Support for
GHC2024
- Support for language extensions
ExtendedLiterals
¸ListTuplePuns
, andTypeAbstractions
Other Compilers
- Micro Haskell (MHS) has been added as a known compiler. We don’t have support for driving it yet, though.
See the release notes for more details and other changes.
Contributors
50^2, Adam Gundry, Andrea Bedini, Andreas Abel, Andreas Klebinger, Arjun Kathuria, Artem Pelenitsyn, BasLaa, Bas Laarakker, Ben Gamari, Bodigrim, Brandon Chinn, brandon s allbery kf8nh, Bryan Richter, Colton Clemmer, Csaba Hruska, cydparser, Daniel Trstenjak, David Binder, David Christiansen, Edwin Marshall, Elodie Lander, Erik de Castro Lopo, Felix Yan, fendor, Finley, Francesco Ariis, Francesco Gazzetta, Fraser Tweedale, Gershom Bazerman, Hamish Mackenzie, Hécate Moonlight, Ikko Eltociear Ashimine, Jana Chadt, Javier Sagredo, Jean-Paul Calderone, Jens Petersen, Jessica Hamilton, John Paul Adrian Glaubitz, Josh Meredith, Julia Longtin, Julian Ospald, Kazuki Okamoto, Kristen Kozak, Krzysztof Gogolewski, liamzee, Liisi Kerik, Lin Runze, Malte Neuss, malteneuss, Marcin Szamotulski, Matthew Pickering, Mel Zuser, Michael Peyton Jones, Mike Pilgrem, Mikolaj Konarski, mixphix, Oleg Grenrus, Ondřej Šebek, Patrick Augusto, Patrick Dougherty, Peter Becich, Phil de Joux, Pierre Le Marre, Rebecca Turner, Rodrigo Mesquita, Ryan Scott, Samuel Thibault, Sander, Sebastian Tee, Sergey Vinokurov, Shae Erisson, sheaf, Simon Hengel, Siyuan Chen, Sören Tempel, SuganyaAK, Suganya Raju, Sylvain Henry, Taylor Fausak, Teo Camarasu, Tom Ellis, tomjaguarpaw, Tommy Bidne, Tom Smeding, Torsten Schmits, Tristan Cacqueray, Troels Henriksen, Wismill, Yvan Sraka, Zoe Zuser
We thank all contributors as well as our reviewers, QA testers, devops, and others without whom this release wouldn’t be possible.
Feedback
Please, report any issues you notice with the 3.12.1.0 release on our GitHub: GitHub - haskell/cabal: Official upstream development repository for Cabal and cabal-install
— cabal release team (Artem, Brandon, Francesco, Gershom, Hécate, Mikołaj)