Use gcc's libffi to replace Adjustor.c and ByteCodeFFI.hs?
libffi
is a library that comes with gcc and provides FFI functionality (dynamic calls, closures) for a wide range of platforms. It has a liberal license that is compatible with GHC's.
libffi
could replace Adjustor.c in the RTS and the ByteCodeFFI module in GHCi. The benefits would be:
-
It works on more platforms than we currently support, and it
handles more of the dark corners than we do (eg. struct returns?).
-
It would ease the task of porting GHC
-
Replaces a wad of very difficult non-portable code in GHC with code
written and actively maintained by others.
On the other hand, it is possible that our Adjustor.c code is faster, because it is more specialised to the task.
Trac metadata
Trac field | Value |
---|---|
Version | 6.4.1 |
Type | Task |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Runtime System |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | Unknown |
Architecture | Unknown |