RTS headers don't compile as C++
GHC's RTS headers can't be included from C++, as they contain constructs like this
dbl_link_replace(bdescr *new, bdescr *old, bdescr **list)
(notice the 'new'). This is the case for the headers shipped with 7.6.3 and still seems to be in the HEAD version.
Since the code has the usual
#ifdef __cplusplus
extern "C" {
#endif
all over the place, I assume the C++ incompatibility is simply an oversight? In any case, it would seem highly unusual to have a C interface that can't be consumed from C++. It seems all the incompatibilities could be removed with at worst a small amount of inconvenience, and automatic checking for C++ compatibility on each build could be added.
Trac metadata
Trac field | Value |
---|---|
Version | 7.6.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Runtime System |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | simonmar |
Operating system | |
Architecture |