[GHC] #8400: Migrate the RTS to use libuv (or libev, or libevent)

GHC ghc-devs
Fri Oct 4 04:44:55 UTC 2013


#8400: Migrate the RTS to use libuv (or libev, or libevent)
----------------------------+----------------------------------------------
        Reporter:  schyler  |            Owner:  simonmar
            Type:  feature  |           Status:  new
  request                   |        Milestone:
        Priority:  normal   |          Version:
       Component:  Runtime  |         Keywords:
  System                    |     Architecture:  Unknown/Multiple
      Resolution:           |       Difficulty:  Project (more than a week)
Operating System:           |       Blocked By:
  Unknown/Multiple          |  Related Tickets:  635, 7353
 Type of failure:           |
  None/Unknown              |
       Test Case:           |
        Blocking:           |
----------------------------+----------------------------------------------

Comment (by tibbe):

 Replying to [comment:4 schyler]:
 > Wouldn't it be faster to move all of the I/O stuff into the RTS as C and
 then only end up back in haskell-land when an fd event is finished?

 As I mentioned do *something* in the RTS instead of in a separate Haskell
 thread is probably going to be somewhat faster than what we do today.

 > In this case, libuv is probably appropriate.

 It will likely not work, as libuv want to own the thread to drive the
 event loop. The scheduler needs to own the thread for it to work. Perhaps
 we could run libuv in a separate thread like we do with the I/O manager
 today. I also don't know if libuv is thread safe. We most likely want to
 make some assumptions/optimizations based on our special needs and I'm not
 sure if libuv can support that efficiently. In the end performance will
 probably be best if we call the underlying system calls directly.

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



More information about the ghc-tickets mailing list