You would have to be pretty careful to make them open-kinded.  You'd need to 
make sure that the implementation of these primops (which is quite complicated) 
never touches or moves that result value.  Maybe it is so, and if so it'd be 
useful -- but should be *prominently* document in the RTS C code that 
implements them.

I'm afraid I don't know what "some kind of staging issue" is.

Simon

|  -----Original Message-----
|  From: ghc-devs <ghc-devs-boun...@haskell.org> On Behalf Of David Feuer
|  Sent: 02 October 2020 21:43
|  To: ghc-devs <ghc-devs@haskell.org>
|  Subject: Help making exception-related primops open-kinded
|  
|  I'm pretty sure raiseIO#, catch#, maskAsyncExceptions#, and so on can
|  have open-kinded results. For example, we currently have
|  
|  catch#
|    :: (State# RealWorld -> (# State# RealWorld, a #) )
|    -> (b -> State# RealWorld -> (# State# RealWorld, a #) )
|    -> State# RealWorld
|    -> (# State# RealWorld, a #)
|  
|  but I think we *should* be able to have
|  
|  catch#
|    :: (State# RealWorld -> (# State# RealWorld, o #) )
|    -> (b -> State# RealWorld -> (# State# RealWorld, o #) )
|    -> State# RealWorld
|    -> (# State# RealWorld, o #)
|  
|  This should allow us to avoid boxing things just to be able to get
|  them out of a `catch#` or `maskAsyncExceptions#` block. But when I
|  tried just changing the types in primops.txt.pp, I got a type mismatch
|  error that seems to suggest some sort of GHC build staging issue. How
|  can I work around this? See
|  https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitl
|  ab.haskell.org%2Fghc%2Fghc%2F-
|  %2Fmerge_requests%2F4192%2Fdiffs&amp;data=02%7C01%7Csimonpj%40microsof
|  t.com%7C249daeec340348eae7a208d86713c76c%7C72f988bf86f141af91ab2d7cd01
|  1db47%7C1%7C0%7C637372681930831064&amp;sdata=y3czpdaLEC5TVJD3EAbiDN3cH
|  PDJfA5%2BnfQnFrU%2Bs3E%3D&amp;reserved=0 for my
|  attempt.
|  _______________________________________________
|  ghc-devs mailing list
|  ghc-devs@haskell.org
|  https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.
|  haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-
|  devs&amp;data=02%7C01%7Csimonpj%40microsoft.com%7C249daeec340348eae7a2
|  08d86713c76c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637372681930
|  831064&amp;sdata=PRcbOsfSWbmNT2GTPQjPQqU2c1Fh%2FpHezIRz7Z9pE6c%3D&amp;
|  reserved=0
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to