RTS dependency on POSIX signals

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

RTS dependency on POSIX signals

Jakub Zalewski
Dear all,

I am working on porting GHC to [native client](https://developer.chrome.com/native-client) and I am currently trying to figure out how to port the RTS.

On POSIX systems RTS seems to depend on two POSIX signals: timer signal and interrupt signal; while native client has very limited POSIX signal support --- for instance it does not define *siginfo_t* (which is referenced in the base package).

So far, I know how to deal with the dependency on the timer signal, as while browsing the source code in rts/posix/Itimer.c, I noticed that on iOS the timer is not using POSIX signals to implement the timer signal.

I wanted to ask if there are any other POSIX signal dependencies in the RTS, and would it safe to disable any signal handling in the RTS if I know that there will be no interrupt signals sent to the RTS?

Best wishes,
Jakub

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: RTS dependency on POSIX signals

Jason Dagit-3


On Wed, Jul 1, 2015 at 3:14 PM, Jakub Zalewski <[hidden email]> wrote:
Dear all,

I am working on porting GHC to [native client](https://developer.chrome.com/native-client) and I am currently trying to figure out how to port the RTS.

On POSIX systems RTS seems to depend on two POSIX signals: timer signal and interrupt signal; while native client has very limited POSIX signal support --- for instance it does not define *siginfo_t* (which is referenced in the base package).

So far, I know how to deal with the dependency on the timer signal, as while browsing the source code in rts/posix/Itimer.c, I noticed that on iOS the timer is not using POSIX signals to implement the timer signal.

I wanted to ask if there are any other POSIX signal dependencies in the RTS, and would it safe to disable any signal handling in the RTS if I know that there will be no interrupt signals sent to the RTS?

I don't know the answer to your question, but for an additional data point  you might look at the HalVM: https://github.com/galoisinc/halvm

For the specific case of timers it may not be helpful (for all I know it uses some xen magic to get a timer interrupt), but it should be similar to native-client support in that the HalVM provides the RTS with a stripped down libc.

Jason

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs