Hi all, I just don't have time to look after dragonegg properly any more, so I'm
looking for someone to care over the care and feeding of this project. This not
only means ensuring that it continues to compile and work, it also means
- making sure dragonegg makes use of new LLVM features (eg struct TBAA)
- making sure it works with new versions of GCC, and supports interesting new
- being involved in discussion of changes to LLVM, to ensure they are well
adapted to the needs of dragonegg. For example, it would have been better if
struct TBAA had been designed to be more generic. But I wasn't there to point
out the needs of other languages like Ada, Fortran and Go, so it just ended up
being designed directly for C-like languages (which are rather simple). This
is a natural outcome if the only people giving input are those working on
- fixing the main problems of dragonegg:
(a) debug info is poor.
(b) ABI support is poor. Dragonegg has it's own not very good ABI
implementation for each platform. Yet GCC has an abstract interface
for ABI information. The GCC function call lowering logic is generic,
and just queries the ABI interface. Dragonegg should just use that.
The related problem right now is that, since gcc-4.7, GCC considers all
function pointer types to be equivalent, and throws away any casts.
Since dragonegg's ABI lowering looks at the function pointer type to
decide how many parameters a function gets etc, this means it will get
it wrong if the type was cast in the original code (because "fold" will
have thrown the cast away).
- keeping an eye on the buildbots and investigating problems.
Best wishes, Duncan.