wither the Platform

Yitzchak Gale gale at sefer.org
Sun Mar 22 14:23:23 UTC 2015

Mark Lentczner wrote:
> 1) Abandon the Platform…
> 2) Slim the Platform. Pare it back to GHC + base + a smaller set of
> "essential" libs + tools. Keeps a consistent build layout and installation
> mechanism for Haskell.
> 3) Re-conceive the Platform. Take a very minimal install approach, coupled
> with close integration with a curated library set that makes it easy to have
> a rich canonical, stable environment. This was the core idea around my "GPS
> Haskell" thoughts from last September - but there would be much to work out
> in this direction.

I vote for (3) but in a way that it would *not* be much work.
We should definitely do the Platform, but with much *less* work.

The most important reason we need the Platform is as
a default selection of quality basic libraries. We should not abandon
that concept. Curated package sets do not replace that - the
Platform is not just packages that build together. Nor do OS
packagers. The platform is a community-wide set of basic default
packages that are mature, well tested, all work together well,
and stable.

The second most important role of the Platform is a web site
where you can get a clear picture of how to download and install
a default Haskell installation for your platform, and a simple view
of where we are in the parade of releases. That should also continue.

The hardest work of the Platform was its role as a way to bootstrap a
Haskell installation. That is what made it so hard for HP to keep up
with GHC releases, and what consequently gave people the impression
that HP is always old. That work doesn't need to be done as part of the
Platform anymore. We should leverage other good work people are
doing to create installers, and stop doing it as part of the HP process.

The most important part of an HP release should be a cabal package
that provides the packages in the platform, at the right versions, with
a specification of the recommended GHC version as a pre-requisite.

Perhaps we can also provide an HP-branded slick installer for some
platforms that does everything in one click, built as a thin wrapper of
some existing installer. But that should not delay the official release
of an HP version. It's just a nice-to-have extra.

Once we pare down the work needed for an HP release, we should
release new versions of HP quite often - *more* often than GHC
releases, not less often.

Another thing we should fix is the (now false) impression that HP
gets in the way of installing other packages and versions due to
cabal hell. We should make "require-sandbox" the default setting
in the cabal config file. I would go further - I would add a cabal
feature to create a sandbox automatically unless "--user" or
"--global" is specified explicitly. I would make "foo installed" a
default constraint (that is easy to override) for all platform packages,
which solves virtually all cabal hell problems (assuming you are
using a sandbox) and will not keep things old if we release often.


More information about the Libraries mailing list