[GHC] #14375: Implement with# primop

GHC ghc-devs at haskell.org
Thu Dec 27 06:16:33 UTC 2018


#14375: Implement with# primop
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                Owner:  bgamari
            Type:  bug               |               Status:  new
        Priority:  highest           |            Milestone:  8.8.1
       Component:  Compiler          |              Version:  8.2.1
      Resolution:                    |             Keywords:  JoinPoints
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #14346            |  Differential Rev(s):  ​Phab:D4110
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by osa1):

 * differential:  ​Phab:D4110, Phab:D4189 => ​Phab:D4110


Comment:

 This ticket is really confusing so I talked to Ben on this. Here's the
 current
 status:

 - #14346 is fixed but the `touch#` primop is essentially still broken. The
   suggestion of ticket:14346#comment:18 suggested implementing some hacks
 in
   simplifier to avoid removing unreachable continuation if the
 continuation
   calls `touch#`, but that's not implemented and as far as I can see there
 are
   no plans on implementing it (with no explicit reason to not to). Instead
 we
   want to use `with#` whenever possible.

   To fix the problem with #14346 we introduced some `NOINLINE`s to
 functions
   that use `touch#`, so simplifier now can't see that the `touch#` is
 unreacable
   and remove it.

 - This ticket has two ideas:
   1. A new primop `with#`. This is being implemented in Phab:D4110.
   2. A more efficient implementation plan for primops that take
 continuations.
      This is being implemented in Phab:D4647, although it seems to be
 dormant
      now (last update from the author is in Jun).

 To keep things more manageble (and avoid the communication problems we had
 with
 e.g. #15696) let's track the progress for (2) in another ticket and only
 worry
 about (1) here. If we really want (2) before (1) then we can consider the
 ticket
 for (1) as a blocker, and move on to this ticket after (2).

 (I'm removing Phab:D4189 from the diffs list)

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14375#comment:24>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list