[ghc-steering-committee] #380 GHC2021: Current status

Joachim Breitner mail at joachim-breitner.de
Fri Dec 4 10:57:05 UTC 2020


Hi,

Am Freitag, den 04.12.2020, 09:57 +0000 schrieb Simon Marlow:
> Right, we better be clear about ForeignFunctionInterface. Those who
> voted ForeignFunctionInterface: no, do you *really* want to turn off
> an extension that's already part of the Haskell standard?

In fact, the following extensions are implied by Haskell2010:

    ImplicitPrelude
    StarIsType
    CUSKs
    MonomorphismRestriction
    DatatypeContexts
    TraditionalRecordSyntax
    EmptyDataDecls
    ForeignFunctionInterface
    PatternGuards
    DoAndIfThenElse
    RelaxedPolyRec

And the following non-Haskell2010 extensions are on by default (but not
in Haskell2010 mode):

    NondecreasingIndentation
    NoDatatypeContexts

I should have written the ballot consistently relative to Haskell2010,
it’s a mixed bag right now, inherited from the survey. Or should it be
relative to the GHC’s unnamed “default mode” (which is neither
Haskell98 nor Haskell2010)?

Anyways, one goal for GHC2021 is that it will subsume this unnamed
default mode.


So let’s see:

Interesting ones:

StarIsType
  -- ^ 5 votes. Those who voted no, did you do that knowing
that it’s
       on by default these days?

CUSKs
  -- ^ Legacy feature according to the docs, but the replacement
       StandaloneKindSignatures only has 50% votes so far.
       We probably need exactly one of the two.
       Both are new 8.10.

MonomorphismRestriction
  -- ^ 4 votes. Those who voted no, did you do that knowing that it’s
       part of Haskell2010? (I admit I didn’t)

ForeignFunctionInterface
  -- ^ 4 votes. Those who voted no, did you do that knowing that it’s
       part of Haskell2010?

NondecreasingIndentation
  -- ^ Currently on by default, but off in Haskell2010
       2 votes.
       Docs at https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/bugs.html#context-free-syntax
       Do we really want to turn it off? There must have been a good
       reason for GHC to have different default behavior so far?

Boring ones:

ImplicitPrelude
  -- ^ Obviously stays
DatatypeContexts
  -- ^ 0 votes. This goes away. Yay!
TraditionalRecordSyntax
  -- ^ NoTraditionalRecordSyntax has zero votes, so can stay
EmptyDataDecls
  -- ^ 10 votes, so can stay
PatternGuards
  -- ^ NoPatternGuards has zero votes, so can stay
DoAndIfThenElse
  -- ^ wasn’t even on the ballot, probably a consequence of
       
https://gitlab.haskell.org/ghc/ghc/-/issues/18631
       I assume this stays unless someone disagrees.
RelaxedPolyRec
  -- ^ Impossible to turn off, so this stays.


Sorry for the confusion, next time round will be easier, when there is
a clear base line (i.e. GHC2021).

Cheers,
Joachim


-- 
Joachim Breitner
  mail at joachim-breitner.de
  http://www.joachim-breitner.de/




More information about the ghc-steering-committee mailing list