This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [libobjc] Rewrite message forwarding to use libffi

Alexander Malmberg wrote:

What ffi type should I map long long ints to? ffi has macros for all other basic int types, but not for long long ints. Currently, I assume that long long ints are always 64 bits and map to ffi_type_[su]int64.

You should at least add an assertion and comment to that affect.

Unfortunately, the patch also causes four new failures compared to a clean tree.

I think those issues need to be resolved.

I don't know how this will affect other platforms. I'd expect the ffi-based forwarding to work just as well on all platforms supported by libffi, but I don't know what to expect from __builtin_apply on other platforms, or if there are platforms unsupported by libffi where __builtin_apply works well. However, from what I understand, __builtin_apply is pretty evil. :)

I think you are asking the right questions, but you need to get the answers. Which platforms do not support libffi, and are those platforms important?

Mark: Andrew told me to tell you that this is a regression, that rewriting libobjc to use libffi is the easiest way of fixing it, and that he's approved the libobjc parts.

OK for mainline?

I've delegated decisions like this to the appropriate maintainers, so I think it's up to the Objective-C people to make a decision. However, I would encourage them to be conservative. My personal opinion is that this patch is a great step in the right direction, but doesn't quite go far enough. For example, on platforms where libffi is not supported, perhaps you should fall back to the original mechanism. Perhaps you should fix the double/long double problem. In other words, I feel like there are some loose ends that should be tied off before this patch is checked in.

Mark Mitchell
CodeSourcery, LLC
(916) 791-8304

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]