[prev in list] [next in list] [prev in thread] [next in thread]
List: webkit-dev
Subject: Re: [webkit-dev] Proposal for a new way to handle porting #ifdefs
From: George Staikos <staikos () kde ! org>
Date: 2009-05-06 13:44:44
Message-ID: 1DE6DA8D-9299-450F-9845-76933C1FD5B5 () kde ! org
[Download RAW message or body]
On 5-May-09, at 10:49 AM, Darin Adler wrote:
> On May 4, 2009, at 7:45 PM, George Staikos wrote:
>
>> 1) In some cases some things apply to more than one OS so we have:
>> #if OS(x) || OS(y) || OS(z) ...
>> I think we should use:
>> #if OS(x,y,z)
>
> How? Macros don’t have overloading with the same macro but
> different numbers of parameters.
Hm I guess variable argument macros are not supported everywhere
we need them. Oh well.
On 5-May-09, at 11:16 AM, Maciej Stachowiak wrote:
>
> On May 4, 2009, at 7:45 PM, George Staikos wrote:
>
>>
>> I really like this and it goes in the direction that I was hoping
>> for as well. Hopefully we can get the WINCE port merged upstream
>> before we make this change. :-)
>>
>> Some comments I have:
>>
>> 1) In some cases some things apply to more than one OS so we have:
>> #if OS(x) || OS(y) || OS(z) ...
>> I think we should use:
>> #if OS(x,y,z)
>
> I think using the "||" operator is more clear, except perhaps in
> cases where there is a well-defined OS family, such as the Unix-
> like family of operating systems, or the Windows family. In that
> case, the OS family should get is own macro.
Well my idea probably won't work anyway given that not enough
compilers we need to support can handle it.
>> 1b) WINCE actually includes plenty of WIN but in some cases does
>> things differently. How to make this distinction without lots of
>> && and ||?
>
> Perhaps we need another basic OS macro besides WINCE and WIN, which
> would refer to only full/desktop versions of Windows. Or maybe WIN
> should mean desktop Windows, and some new macro could represent the
> facilities that are common to Windows and Windows CE. Then it's
> just a matter of using the right ifdefs in the right place.
So something like this (for example) in Platform.h?
#if OS(WINMOBILE)
#define WTF_OS_WINCE 1
#endif
#if OS(WINCE) || OS(WINDESKTOP)
#define WTF_OS_WIN 1
#endif
Then OS(WIN) would mean any Windows flavour, and OS(WINCE) would mean
any flavour of Windows CE.
>> Again, fully support these changes and perhaps some more too.
>> Just give us a bit of time to find the right way to merge the
>> WINCE stuff in first please!
>
> I wouldn't expect us to start changing things next week, but since
> generally I've heard support for these changes, I would expect in a
> month or two at most we'll likely start on deploying them. Most
> likely we will come up with a system that allows gradual migration.
> At some point, we'll likely require new code to use new-style
> macros only and not the old PLATFORM stuff.
Great! Well I'm ready to start packaging things up. Will try to
get the first (and most relevant) parts ready this week.
--
George Staikos
Torch Mobile Inc.
http://www.torchmobile.com/
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic