[ghc-steering-committee] Proposal UnliftedArray#: recommend acceptance

Iavor Diatchki iavor.diatchki at gmail.com
Tue May 8 20:37:53 UTC 2018


Seems reasonable to me.

On Tue, May 8, 2018 at 9:17 AM Simon Marlow <marlowsd at gmail.com> wrote:

> UnliftedArray# has been proposed by Andrew Martin:
> https://github.com/ghc-proposals/ghc-proposals/pull/112
>
> In a nutshell, the proposal is to add new primitive types UnliftedArray#
> and MutableUnliftedArray#
>
> data UnliftedArray# :: TYPE 'UnliftedRep -> TYPE 'UnliftedRep
> data MutableUnliftedArray# :: TYPE 'LiftedRep -> TYPE 'UnliftedRep -> TYPE
> 'UnliftedRep
>
> with the appropriate set of primops, e.g.
>
> indexUnliftedArray# :: forall (a :: TYPE 'UnliftedRep). UnliftedArray# a
> -> Int# -> a
>
> This makes complete sense and it is what we would have done from the
> start, except that we only recently gained the ability to talk about type
> variables that range over unlifted types.
>
> UnliftedArray# subsumes some existing rather ugly sets of primops that
> were added because we lacked the ability to define the more general
> version, like ArrayArray# And ByteArrayArray#, also including the hilarious
>
> indexArrayArrayArray# :: ArrayArray# -> Int# -> ArrayArray#
>
> All of this can be defined in terms of the general UnliftedArray#. (the
> migration will be easier if we can use UnliftedNewtypes to define
> ArrayArray# in terms of UnliftedArray#, otherwise we have to keep the
> original versions in the compiler, but I don't think the exact mechanism
> matters all that much for the purposes of accepting or rejecting the
> proposal).
>
> Incidentally we might also want UnliftedMutVar#, UnliftedMVar#,
> UnliftedTVar#, and maybe UnliftedStablePtr# but that's for another proposal.
>
> I propose that we accept this. Any objections?
>
> Cheers
> Simon
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20180508/ed407eed/attachment.html>


More information about the ghc-steering-committee mailing list