[webkit-dev] Proposal for a new way to handle porting #ifdefs
Maciej Stachowiak
mjs at apple.com
Mon May 25 00:49:50 PDT 2009
On May 24, 2009, at 10:51 PM, Peter Kasting wrote:
> On Sun, May 24, 2009 at 10:08 PM, Maciej Stachowiak <mjs at apple.com>
> wrote:
> I don't think it should be discounted. It might be helpful to
> clarify why you think ifdefs are a bad solution.
>
> Generally they make it more difficult to read the code (which is
> what I spend 99% of the time doing) without really making it easier
> to find what's in the build (which I only spend 1% of the time doing
> anyway). The reason for this latter is because there's a lot of
> files that look like they're included but I actually don't care
> about, while if you go the "#include foo_bar_gtk.cc" route to handle
> port-specific implementations, it can make it harder for your IDE to
> determine that foo_bar_gtk.cc is an important file (e.g. by doing
> "open foo_bar_gtk.cc" in its command line). (This depends on the
> IDE, of course.)
>
> I would prefer to optimize for reading the code for my port, which
> generally means as few #ifdefs as possible, and pushing as much
> logic into the build system as possible (by including or not
> including various files). It implies things like preferring per-
> port subclasses to port-specific members in the parent class,
> preferring to not include files rather than #ifdef their contents
> away... basically, the opposite of all the decisions WebKit looks to
> have taken :D
I'll agree that a bunch of #ifdefs in the middle of code can be hard
to read. In general though, I'm not sure that optimizing for only
thinking about one port is the right approach. Ideally, we should both
make it easy to work on only port-level stuff, *and* make it practical
for people doing core work with port-specific implications to do what
they need to do. I would even argue we should prioritize ease of core
work over ease of port-specific work, if we should ever face that
tradeoff.
>
> I don't think this is a big deal for most things, and I think the
> cases where it is a big deal have been dealt with well when they've
> come up in the past (from what I've seen as a third party -- usually
> Darin Fisher or someone else on the team is running into them), so
> don't take this as a disgruntled complaint against the current
> system. It's just my preference.
>
> Now, the thing I _would_ like to change is to switch from pathless
> #includes to ones with relative paths -- but that's a totally
> different thread.
That I definitely wouldn't like. It would make it much more painful to
move files. What is the benefit? Maybe UI am missing something.
Regards,
Maciej
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20090525/2b6bf38a/attachment.html>
More information about the webkit-dev
mailing list