GHC 9.1?

Ben Gamari ben at smart-cactus.org
Tue Mar 2 12:26:34 UTC 2021


Sebastian Graf <sgraf1337 at gmail.com> writes:

> Hi,
>
> I generally would like +0.1 steps, but mostly because it causes less
> head-scratching to everyone new to Haskell. Basically the same argument as
> Richard says.
>
> I can't comment on how far head.hackage (or any tool relies) on odd version
> numbers, I certainly never have. Given that it's all overlays (over which
> we have complete control), does it really matter anyway? When would we say
> <=9.1 rather than <=9.2? Shouldn't 9.1 at one point become binary
> compatible with 9.2, as if it really was "9.2.-1" (according to the PVP,
> 9.2.0 is actually > 9.2, so that won't work)? I think there are multiple
> ways in which we could avoid using 9.1 as the namespace for "somewhere
> between 9.0 and 9.2 exclusively". We have alpha releases, so why don't we
> name it 9.1.nightly?
>
One reason is that our versioning data model (as captured by Data.Version)
now only admits numeric version components. Textual tags were previously
admitted but deprecated in #2496 as there is no clear ordering for such
versions.


>> majormajor.odd.time stamp
>
> TBH, I found the fact that the *configure* date (I think?) is embedded in
> the version rather annoying. I sometimes have two checkouts configured at
> different dates but branching off from the same base commit, so I'm pretty
> sure that interface files are compatible. Yet when I try to run one
> compiler on the package database of the other (because I might have copied
> a compiler invocation from stdout that contained an absolute path), I get
> an error due to the interface file version mismatch. I'd rather have a
> crash or undefined behavior than a check based on the configure date,
> especially since I'm just debugging anyway.

I disagree here. Personally, if I do something non-sensical I would much
rather get predictable version error than be sent off on a wild-goose chase
debugging ghosts. Fixing an incorrect command-line takes a few seconds;
finding a bizarre runtime crash due to subtly wrong ABI may take days.
This is why I generally plop any test command-line of non-trivial length
into a shell script; it makes safely switching between compilers much
easier.

Cheers,

- Ben
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20210302/4f6a118a/attachment.sig>


More information about the ghc-devs mailing list