Skip to content

Time to fork bytestring into a stable legacy and new feature releases unblocking progress. #234

@vdukhovni

Description

@vdukhovni

The bytestring package has for some time been mired in a backwards-compatibility straitjacket. Support for GHC going back all the way to ~7.0 makes it difficult to release updates that take advantage of new GHC features.

I propose that the after 0.10.10.1 is cut, the next bytestring version should be 0.11.0.0 (or 1.0?), and should require the version of base included with GHC 8.12.1. This can merge #191, #174, and any other worthwhile PRS that are challenging to support with GHC 7.

This would not mean that bytestring becomes unsupported with GHC 7.x, and early 8.x releases. Rather a separate stable branch can still be used to fix bugs or backport worthy features that would be released as new 0.10.x versions. Presumably, when cabal is choosing a version of bytestring to build with GHC 7.x and early 8.x, it would not choose one that requires base from 8.12.

It might even make sense to make the base version constraint for the new bytestring be strict equality, rather than a floor, and cut a new version with each release of base. This stops short of actually merging bytestring into base, but recognises that it has not really been possible to make independent updates anyway, because bytestring is a boot library bundled with GHC.

One way or another, the current stasis should I think be resolved.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions