Skip to content

Commit 7f2c738

Browse files
hsyl20claude
andcommitted
Bump version to 9.6.166 for Plinth 1.66
The third component of the version now encodes the Plinth version the compiler targets (1.66 -> 166) rather than being an opaque marker, so that users can tell which plutus-tx a given uplc-ghc has to be used with. Nothing else in the version conveyed that, and the coupling is strict: uplc-ghc only compiles Plinth code against the plutus-tx it was built against, which plinth-test.cabal pins to ^>=1.66.0.0. Re-releases of the same Plinth version are distinguished by the fourth component (9.6.166.X for RELEASE=YES, 9.6.166.DATE otherwise), so the trailing release counter that the old 1501 carried in the third component is dropped. Also document the scheme in configure.ac, which recorded neither the meaning of 1501 nor that the minor is written with two digits -- a future Plinth 1.7 must map to 170, not 17, or the version silently goes backwards. Note that 166 is numerically below 1501. Nothing was ever published as 1501 (there are no tags yet), so no public version regresses; doing this before the first release keeps the numbering coherent from v1 onward. Since the version is part of the package unit-ids and keys cabal's store directory (ghc-9.6.166-plinth), this invalidates existing _build trees and any dependencies previously built against 9.6.1501. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent ea69cbb commit 7f2c738

1 file changed

Lines changed: 22 additions & 5 deletions

File tree

configure.ac

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,33 @@ dnl
1313
# see what flags are available. (Better yet, read the documentation!)
1414
#
1515

16-
AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.6.1501], [glasgow-haskell-bugs@haskell.org], [ghc-AC_PACKAGE_VERSION])
16+
AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.6.166], [glasgow-haskell-bugs@haskell.org], [ghc-AC_PACKAGE_VERSION])
1717
# Version on master must be X.Y (not X.Y.Z) for ProjectVersionMunged variable
1818
# to be useful (cf #19058). However, the version must have three components
1919
# (X.Y.Z) on stable branches (e.g. ghc-9.2) to ensure that pre-releases are
2020
# versioned correctly.
2121

22-
# Note for Plinth release: Up to four version components are supported and,
23-
# we want a distinct version from upstream GHC. Therefore we use:
24-
# - 9.6.1501.DATE for RELEASE=NO (version in this file is [9.6.1501])
25-
# - 9.6.1501.X for RELEASE=YES (add X to version: [9.6.1501.X])
22+
# Note for Plinth release: up to four version components are supported (the
23+
# maximum tools accept) and we want a version distinct from upstream GHC's.
24+
#
25+
# The third component encodes the Plinth version this compiler targets, using
26+
# a two-digit minor: Plinth 1.66 -> 166 (a future 1.7 is 170, not 17). Bump it
27+
# whenever the plutus submodule is updated, and keep the plutus-tx bound in
28+
# plinth/test/plinth-test.cabal in step: uplc-ghc only compiles Plinth code
29+
# against the plutus-tx it was built with, and nothing else in the version
30+
# would tell a user which one that is.
31+
#
32+
# The fourth component distinguishes builds of the same Plinth version:
33+
# - 9.6.166.DATE for RELEASE=NO (version in this file is [9.6.166])
34+
# - 9.6.166.X for RELEASE=YES, X counting re-releases from 1
35+
#
36+
# 166 is numerically below the previous 1501, which encoded a release counter
37+
# in this component; nothing was ever published as 1501, so no public version
38+
# went backwards.
39+
#
40+
# Note that this version also keys cabal's store directory
41+
# (~/.cabal/store/ghc-9.6.166-plinth), so each Plinth version gets its own
42+
# store and cannot reuse ABI-incompatible artifacts built by another.
2643
#
2744
# In GHC 9.8+ we don't need to modify the version anymore, just the
2845
# "Project Unit Id" from ghc --info

0 commit comments

Comments
 (0)