Re: [webkit-dev] Breaking other ports

2013-01-30 Thread Adam Barth
On Tue, Jan 29, 2013 at 11:58 PM, Maciej Stachowiak m...@apple.com wrote:
 I agree that the regression should be fixed. But before we discuss that...

 I am puzzled by the apparent stance of Alexey must immediately fix this
 himself or we must revert immediately. That's not the standard we have
 applied in the past to changes that appear generally correct but end up
 breaking the UI of a client of a specific port.

No one said Alexey must immediately fix this himself or we must
revert immediately.  Here's what I said:

If you cannot address the issue immediately, please let me know so
that I can take further action.

Further actions might include me fixing the issue myself.  I hadn't
figured that out yet.  I just needed an answer quickly so that I could
make sure we resolved this issue in the appropriate time frame.

 To me this example seems pretty parallel to the situation
 https://bugs.webkit.org/show_bug.cgi?id=108214. Can anyone explain to me
 why 108214 is being approached so much more aggressively than 52988.

Honestly, it's because you've changed the ground rules for
contributing to WebKit such that it's now ok to break other ports in
some situations.  When Alexey wrote:

The fact that you chose to do an obvious hack instead does not make
it others' responsibility to support it.

I interpreted that to mean he felt justified in extending those ground
rules to parts of WebCore that don't live up to his personal
engineering standards.  I wanted to be clear that I view that as
unacceptable.

Adam
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Feature announcement: Custom Elements

2013-01-30 Thread Hajime Morrita
Hi Maciej, Thanks for your attention!

 For reference: will the feature flag be comprehensive, or will parts of
the implementation/scaffolding be outside the ifdef?

It should be comprehensive. So it will.

Although some trivial inline stubs, like just returning null or false, or
even doing nothing, will be outside the flag
for minimizing if/def disturbance, they'll be optimized out by compilers.

Also, some kind of refactoring might precede to make new features fit in
the code. Such refactoring will be aimed to achieve clear separation of new
additions by, for example, introducing better encapsulation. (Please note
that this is just a general direction of the change. I have no concrete
refactoring plan in my mind at this time.)

As an example, here is the first bit of the change:
https://bugs.webkit.org/attachment.cgi?id=185411action=review

I expect most of the code from this feature to grow under these
CustomElementSomething and accompany classes.

Hope this answers your question.
--
morrita


On Wed, Jan 30, 2013 at 4:52 PM, Maciej Stachowiak m...@apple.com wrote:


 On Jan 29, 2013, at 6:22 PM, Hajime Morrita morr...@chromium.org wrote:

 Hi folks,

 I'm going to implement Custom Elements standard behind
 ENABLE(CUSTOM_ELEMENTS) flag.
 https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html


 For reference: will the feature flag be comprehensive, or will parts of
 the implementation/scaffolding be outside the ifdef?

  - Maciej


 Here is the tracking bug for the feature:
 https://bugs.webkit.org/show_bug.cgi?id=99688

 Note that Mozilla is also working on implementing this.
 https://bugzilla.mozilla.org/show_bug.cgi?id=783129

 Let me know if you have any questions or comments.

 Bests,
 --
 morrita

 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Breaking other ports

2013-01-30 Thread Maciej Stachowiak

On Jan 30, 2013, at 12:21 AM, Adam Barth aba...@webkit.org wrote:

 On Tue, Jan 29, 2013 at 11:58 PM, Maciej Stachowiak m...@apple.com wrote:
 I agree that the regression should be fixed. But before we discuss that...
 
 I am puzzled by the apparent stance of Alexey must immediately fix this
 himself or we must revert immediately. That's not the standard we have
 applied in the past to changes that appear generally correct but end up
 breaking the UI of a client of a specific port.
 
 No one said Alexey must immediately fix this himself or we must
 revert immediately.

In the email I was replying to, James said If Alexey doesn't want to look into 
the regression, which is valid, then the only clear option is to roll it out 
until someone who is familiar with the breakage can look at it If Alexey is 
interested in learning about this and fixing it, that's fine, but in the 
meantime the regression can't be left in the tree.

I think my paraphrase is reasonable. If it's not what James meant, I welcome 
clarification.

 Here's what I said:
 
 If you cannot address the issue immediately, please let me know so
 that I can take further action.
 
 Further actions might include me fixing the issue myself.  I hadn't
 figured that out yet.  I just needed an answer quickly so that I could
 make sure we resolved this issue in the appropriate time frame.

This is probably stating the obvious, but you can't support a no one said 
assertion with a single example of something you said.

Though I was mainly replying to James, you also said:
I filed bug 108214 about the regression.  Please either fix the regression or 
roll out your change.
https://bugs.webkit.org/show_bug.cgi?id=106147#c12

In fact, this was posted at almost the same time as your other comment, and 
likely colored perceptions of what you meant by further action.

So though I wasn't replying to you, I think it would have been reasonable to 
infer a similar position. If that's not what you meant, then that's good news, 
but I think you could have communicated your intent more clearly.

 To me this example seems pretty parallel to the situation
 https://bugs.webkit.org/show_bug.cgi?id=108214. Can anyone explain to me
 why 108214 is being approached so much more aggressively than 52988.
 
 Honestly, it's because you've changed the ground rules for
 contributing to WebKit such that it's now ok to break other ports in
 some situations.  When Alexey wrote:
 
 The fact that you chose to do an obvious hack instead does not make
 it others' responsibility to support it.

Your comment that I cited above seems pretty aggressive to me, and was prior to 
Alexey's comment that you quoted. I think what Alexey said was needlessly 
inflammatory, but it was in response to your needlessly inflammatory remark 
rather than the cause of it. So it seems to me that the suddenly more 
aggressive stance on this type of regression did not originate with Alexey's 
remark, unless you have a time machine.

 I interpreted that to mean he felt justified in extending those ground
 rules to parts of WebCore that don't live up to his personal
 engineering standards.  I wanted to be clear that I view that as
 unacceptable.


Your interpretation seems like quite a stretch. Particularly since we've had an 
in-person conversation about Apple's plans to apply an owners file to WebKit2, 
where the plans were explained in some detail, including mentioning that we had 
no intent whatsoever to apply any such policy to WebCore.

Arguing with your own extrapolated version of someone else's position is likely 
to be perceived a strawman argument. It's not a good thing to do if you want to 
have a good faith discussion. If you actually were sincerely confused about the 
scope of the policy (which I'm somewhat skeptical of, but willing to grant), 
the constructive thing to do would be to ask whether the statement meant what 
you assumed it did, before saying you find it unacceptable.

I know you are fully capable of being reasonable and thoughtful, so I am 
disappointed by the quality of your communication about this issue.[*] I would 
like us all to work well together in the WebKit project, and certainly being 
helpful about fixing regressions is an important part of that. But another 
important part is being reasonable even when you have a problem to report, and 
sometimes even when you feel provoked.

Regards,
Maciej

[*] - And yes, I'm also disappointed by the quality of Alexey's communication - 
it would have been more constructive to start by asking for help investigating 
the regression from Chromium folks than to say what you quote above.

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] WebKit2/Mac and C++11

2013-01-30 Thread Anders Carlsson
Hello!

This is just a friendly heads-up that the Mac specific parts of WebKit2 will 
soon start requiring C++11 features (move semantics and variadic templates 
being the two most important).

Any recent version of Xcode (4.2 or later) should support this, and we're 
already building all of WebKit2 as C++11 on Mac anyway.

- Anders
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit2/Mac and C++11

2013-01-30 Thread Eric Seidel
The future!  Is now! :)

Very exciting.  I hope some day we can use C++11 for the rest of WebCore too.

On Wed, Jan 30, 2013 at 12:17 PM, Anders Carlsson ander...@apple.com wrote:
 Hello!

 This is just a friendly heads-up that the Mac specific parts of WebKit2 will 
 soon start requiring C++11 features (move semantics and variadic templates 
 being the two most important).

 Any recent version of Xcode (4.2 or later) should support this, and we're 
 already building all of WebKit2 as C++11 on Mac anyway.

 - Anders
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit2/Mac and C++11

2013-01-30 Thread Elliott Sprehn
Thanks for the advance warning! :)

- E


On Wed, Jan 30, 2013 at 3:17 PM, Anders Carlsson ander...@apple.com wrote:

 Hello!

 This is just a friendly heads-up that the Mac specific parts of WebKit2
 will soon start requiring C++11 features (move semantics and variadic
 templates being the two most important).

 Any recent version of Xcode (4.2 or later) should support this, and we're
 already building all of WebKit2 as C++11 on Mac anyway.

 - Anders
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] WebKit Wishes

2013-01-30 Thread Eric Seidel
*I wish we only had one build system (it were easy to add/remove/move
files).*
*
I believe changes like http://trac.webkit.org/changeset/74849 are an
unhealthy sign for the project.  Adam is not the only person who has chosen
to empty files instead of removing them.  The pain of updating 8 build
system is so great, we jump through hoops to avoid it.  Which means it took
us months to move JavaScriptCore/wtf to WTF, and will take us years to kill
WebCore/platform.


I wish I felt like reviewers understood/trusted each other more.

*
*I’ve worked at both Apple and Google.  The WebKit community is full of
brilliant engineers.  Yet I frequently feel a lack of trust in my (or
others) judgement, or witness hot-headed remarks on bugs, lists or IRC.  I
don’t think it’s that people don’t trust me after nearly 8 years (!?) on
this project, but rather that we forget, or fail to communicate trust among
ourselves.  Social problems are perhaps harder to solve for us technical
types, but I worry that for many of us it’s just become “us” and “them” and
we’ve stopped trying.


I wish it were easy to work on feature branches.

*
*We have no good solution for features.  For one-patch features, you do
them on your own.  For larger, you maybe use github or most likely you just
land on trunk behind a #define.  None of these have worked well.  Some of
this is the limits of SVN, but it should be trivial for someone to work on
a new feature a long time, w/o endangering trunk or having massive merge
pain every day.  Other projects can do this.  So should we.  This is both
impeding progress, and destabilizing trunk.


I wish we didn’t have to worry about platforms we couldn’t test.

*
*It can’t be the job of the core maintainers to care about all the
peripheral ports which contribute very little core code. Our code needs to
be structured in such a manner that its easy for the core to march forward,
while letting the ports catch up as they need to asynchronously.  Platform
support code shouldn’t even need to be in webkit.org!  Porting webkit.org’s
platform abstractions should be trivial, but core developers (which
probably 90% of them use only 2 ports Mac WK2 + Chromium Linux) shouldn’t
need to worry about keeping all ports working.


I wish that the tree always built and tested cleanly.

*
*Other (much larger) projects than WebKit accomplish this.  Yet somehow
Google pays 2 full-time engineers to watch our bots and yet we fail.  I
know other companies do similar.  Automated rollouts is one solution.
 Branched-based development, or trybots are others.  But at the size and
scale we’re at now, every minute of a broken tree, is 100x or more minutes
of potentially lost developer productivity.


I wish I felt like I could follow what was going on (and trust WebKit to
guard the web, instead of depending on Apple or Google).

*
*We’re the leading browser engine, with hundreds of committers, any of whom
can add an API to 50% of internet browsers with a single commit.  I wish we
had a public process for feature/web-api review.  I wish I felt like both
major companies were willing participants in such.  (Google has an internal
process, but it sees limited use, in part because it’s powerless -- a ‘yes’
from our process is not a ‘yes’ from WebKit.)  I want to feel like I can
better observe and participate in the development of our web-api (and trust
that it’s being done well!) without scanning every changeset just to be
able to comment post-facto.  (This is also reflected in the fact that the
features enabled by the major Apple or Google ports are wildly different,
with seemingly little rhyme or reason.)


I wish WebCore was not trapped by Mac WebKit1’s legacy designs.

*
*WebKit2 is obviously a step towards the future.  But until we can kill the
Widget tree, the insanely fragile loader complexity, and the limits imposed
by the least-common-denominator on classes like ResourceRequest, we’re
still trapped in the past. One of the things I’ve learned in working on
Chromium, is that we were wrong many years ago to fold our platform
abstraction (Qt-implementation) and khtml into one library.  In a
sand-boxed multi-process world, the rendering library is just a hunk of
code running the same on every platform.  And platform code has no place in
our core engine code (aka WebCore).


I write less out of pain, and more out of hope for the future.  I believe
all of these are solvable problems, but I believe we need the will to solve
them.  Apple’s recent announcement of WebKit2 lockdown is clearly one
attempt at some of these.  But for the other 50% of WebKit developers who
don’t work on WebKit2, locking down WebCore is not a good solution.

I think we need to work together to bring about some of these dreams, for
the short and long term health of the WebKit project.

Thank you for listening.

*
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Wishes

2013-01-30 Thread Filip Pizlo
Thanks for sharing this.

On Jan 30, 2013, at 1:28 PM, Eric Seidel e...@webkit.org wrote:

 I wish we only had one build system (it were easy to add/remove/move files).
 
 I believe changes like http://trac.webkit.org/changeset/74849 are an 
 unhealthy sign for the project.  Adam is not the only person who has chosen 
 to empty files instead of removing them.  The pain of updating 8 build system 
 is so great, we jump through hoops to avoid it.  Which means it took us 
 months to move JavaScriptCore/wtf to WTF, and will take us years to kill 
 WebCore/platform.

+1

This is a hard problem.  It is a problem worth solving.

Do you have more thoughts on this, particularly since you know quite well how 
both Xcode and gyp work?

I suspect this is one of those things that it would be hard to achieve 
consensus on since there are so many stakeholders.  But it may be fruitful to 
have a what if discussion about what this might look like.

 
 
 I wish I felt like reviewers understood/trusted each other more.
 
 I’ve worked at both Apple and Google.  The WebKit community is full of 
 brilliant engineers.  Yet I frequently feel a lack of trust in my (or others) 
 judgement, or witness hot-headed remarks on bugs, lists or IRC.  I don’t 
 think it’s that people don’t trust me after nearly 8 years (!?) on this 
 project, but rather that we forget, or fail to communicate trust among 
 ourselves.  Social problems are perhaps harder to solve for us technical 
 types, but I worry that for many of us it’s just become “us” and “them” and 
 we’ve stopped trying.
 
 
 I wish it were easy to work on feature branches.
 
 We have no good solution for features.  For one-patch features, you do them 
 on your own.  For larger, you maybe use github or most likely you just land 
 on trunk behind a #define.  None of these have worked well.  Some of this is 
 the limits of SVN, but it should be trivial for someone to work on a new 
 feature a long time, w/o endangering trunk or having massive merge pain every 
 day.  Other projects can do this.  So should we.  This is both impeding 
 progress, and destabilizing trunk.

I've done this for JSC JIT optimization work before, and I think it worked 
quite well.  The pain of merging the branch back into trunk was bad, but the 
reward was that I had ~2 months of time where I didn't have to worry about 
breaking other people's junk.  Merging only took a week.  One week of pain in 
return for 2 months of bliss?  I'll take that.

I concur that we can do better on this.  I would especially love to see feature 
branching and merging follow a review process as if it were on trunk.  Creating 
a branch involves a bug and a review.  Patches that land on the branch are 
reviewed.  Merging is either reviewed or rubber stamped.

 
 
 I wish we didn’t have to worry about platforms we couldn’t test.
 
 It can’t be the job of the core maintainers to care about all the peripheral 
 ports which contribute very little core code. Our code needs to be structured 
 in such a manner that its easy for the core to march forward, while letting 
 the ports catch up as they need to asynchronously.  Platform support code 
 shouldn’t even need to be in webkit.org!  Porting webkit.org’s platform 
 abstractions should be trivial, but core developers (which probably 90% of 
 them use only 2 ports Mac WK2 + Chromium Linux) shouldn’t need to worry about 
 keeping all ports working.

+1

 
 
 I wish that the tree always built and tested cleanly.
 
 Other (much larger) projects than WebKit accomplish this.  Yet somehow Google 
 pays 2 full-time engineers to watch our bots and yet we fail.  I know other 
 companies do similar.  Automated rollouts is one solution.  Branched-based 
 development, or trybots are others.  But at the size and scale we’re at now, 
 every minute of a broken tree, is 100x or more minutes of potentially lost 
 developer productivity.

I actually think this just goes along with the territory.  Browser engines are 
hard.  Browser engines that achieve the configurability and portability of 
WebKit: even harder.

Maybe I'm naive but I think we're doing quite well on this front given the 
circumstances.  I also suspect that this problem ought to be diminished with 
your other suggestions, particularly having more branch-based development, and 
especially if there was a magical way to simplify building.

 
 
 I wish I felt like I could follow what was going on (and trust WebKit to 
 guard the web, instead of depending on Apple or Google).
 
 We’re the leading browser engine, with hundreds of committers, any of whom 
 can add an API to 50% of internet browsers with a single commit.  I wish we 
 had a public process for feature/web-api review.  I wish I felt like both 
 major companies were willing participants in such.  (Google has an internal 
 process, but it sees limited use, in part because it’s powerless -- a ‘yes’ 
 from our process is not a ‘yes’ from WebKit.)  I want to feel like I can 
 better observe 

Re: [webkit-dev] WebKit Wishes

2013-01-30 Thread Maciej Stachowiak

Hi Eric,

These are great thoughts. I agree with you on all points. One informative 
comment below:

On Jan 30, 2013, at 1:28 PM, Eric Seidel e...@webkit.org wrote:

 I wish we only had one build system (it were easy to add/remove/move files).
 
 I believe changes like http://trac.webkit.org/changeset/74849 are an 
 unhealthy sign for the project.  Adam is not the only person who has chosen 
 to empty files instead of removing them.  The pain of updating 8 build system 
 is so great, we jump through hoops to avoid it.  Which means it took us 
 months to move JavaScriptCore/wtf to WTF, and will take us years to kill 
 WebCore/platform.
 
 
 I wish I felt like reviewers understood/trusted each other more.
 
 I’ve worked at both Apple and Google.  The WebKit community is full of 
 brilliant engineers.  Yet I frequently feel a lack of trust in my (or others) 
 judgement, or witness hot-headed remarks on bugs, lists or IRC.  I don’t 
 think it’s that people don’t trust me after nearly 8 years (!?) on this 
 project, but rather that we forget, or fail to communicate trust among 
 ourselves.  Social problems are perhaps harder to solve for us technical 
 types, but I worry that for many of us it’s just become “us” and “them” and 
 we’ve stopped trying.
 
 
 I wish it were easy to work on feature branches.
 
 We have no good solution for features.  For one-patch features, you do them 
 on your own.  For larger, you maybe use github or most likely you just land 
 on trunk behind a #define.  None of these have worked well.  Some of this is 
 the limits of SVN, but it should be trivial for someone to work on a new 
 feature a long time, w/o endangering trunk or having massive merge pain every 
 day.  Other projects can do this.  So should we.  This is both impeding 
 progress, and destabilizing trunk.
 
 
 I wish we didn’t have to worry about platforms we couldn’t test.
 
 It can’t be the job of the core maintainers to care about all the peripheral 
 ports which contribute very little core code. Our code needs to be structured 
 in such a manner that its easy for the core to march forward, while letting 
 the ports catch up as they need to asynchronously.  Platform support code 
 shouldn’t even need to be in webkit.org!  Porting webkit.org’s platform 
 abstractions should be trivial, but core developers (which probably 90% of 
 them use only 2 ports Mac WK2 + Chromium Linux) shouldn’t need to worry about 
 keeping all ports working.
 
 
 I wish that the tree always built and tested cleanly.
 
 Other (much larger) projects than WebKit accomplish this.  Yet somehow Google 
 pays 2 full-time engineers to watch our bots and yet we fail.  I know other 
 companies do similar.  Automated rollouts is one solution.  Branched-based 
 development, or trybots are others.  But at the size and scale we’re at now, 
 every minute of a broken tree, is 100x or more minutes of potentially lost 
 developer productivity.
 
 
 I wish I felt like I could follow what was going on (and trust WebKit to 
 guard the web, instead of depending on Apple or Google).
 
 We’re the leading browser engine, with hundreds of committers, any of whom 
 can add an API to 50% of internet browsers with a single commit.  I wish we 
 had a public process for feature/web-api review.  I wish I felt like both 
 major companies were willing participants in such.  (Google has an internal 
 process, but it sees limited use, in part because it’s powerless -- a ‘yes’ 
 from our process is not a ‘yes’ from WebKit.)  I want to feel like I can 
 better observe and participate in the development of our web-api (and trust 
 that it’s being done well!) without scanning every changeset just to be able 
 to comment post-facto.  (This is also reflected in the fact that the features 
 enabled by the major Apple or Google ports are wildly different, with 
 seemingly little rhyme or reason.)
 
 
 I wish WebCore was not trapped by Mac WebKit1’s legacy designs.
 
 WebKit2 is obviously a step towards the future.  But until we can kill the 
 Widget tree, the insanely fragile loader complexity, and the limits imposed 
 by the least-common-denominator on classes like ResourceRequest, we’re still 
 trapped in the past. One of the things I’ve learned in working on Chromium, 
 is that we were wrong many years ago to fold our platform abstraction 
 (Qt-implementation) and khtml into one library.  In a sand-boxed 
 multi-process world, the rendering library is just a hunk of code running the 
 same on every platform.  And platform code has no place in our core engine 
 code (aka WebCore).

In designing WebKit2, we tried to avoid some mistakes in the WebKit1 Mac API 
design (such as exposing the underlying network library, exposing our NSView 
hierarchy as part of the API, and giving too much salience to frames). While we 
can't remove those parts of the API entirely, if we get more Mac API clients 
onto WebKit2, then the performance of these details of the WK1 API becomes less 
critical, 

Re: [webkit-dev] WebKit Wishes

2013-01-30 Thread Xan Lopez
Hi Eric,

On Wed, Jan 30, 2013 at 10:28 PM, Eric Seidel e...@webkit.org wrote:
 I wish we didn’t have to worry about platforms we couldn’t test.

 It can’t be the job of the core maintainers to care about all the peripheral
 ports which contribute very little core code. Our code needs to be
 structured in such a manner that its easy for the core to march forward,
 while letting the ports catch up as they need to asynchronously.  Platform
 support code shouldn’t even need to be in webkit.org!  Porting webkit.org’s
 platform abstractions should be trivial, but core developers (which probably
 90% of them use only 2 ports Mac WK2 + Chromium Linux) shouldn’t need to
 worry about keeping all ports working.

I agree this is a hard problem. Also a stressful situation to get
oneself into. Coming up with ways to allow port code to survive core
changes would be excellent for everyone, even for the small ports
people who hack on the core and also cannot easily test Mac WK2,
Chromium Linux or any other port.


 I write less out of pain, and more out of hope for the future.  I believe
 all of these are solvable problems, but I believe we need the will to solve
 them.  Apple’s recent announcement of WebKit2 lockdown is clearly one
 attempt at some of these.  But for the other 50% of WebKit developers who
 don’t work on WebKit2, locking down WebCore is not a good solution.

I agree the WebKit2 lockdown is one attempt at solving this, but
hopefully we can agree it's not a particularly innovative one.
Breaking builds and allowing bugs to pile up while they are fixed is a
nasty situation, one that historically we have tried really hard to
avoid for very well known reasons. I understand in the final analysis
allowing the core to move fast could be more important than having an
healthy ecosystem of minor ports without huge teams behind them, but I
really hope that this is only a temporary solution and that in the
future we'll be able to find better solutions like those that you
suggest in your email.

Also, on a personal note, I've been around for enough years to
remember the time when people trying to get ports started were eagerly
welcomed by Apple employees, who would go out of their way to help us
get started, review our patches when we had no reviewers in our team,
patiently explain this or that part of the code, etc. I made sure to
tell everyone I knew that WebKit was one of the most well managed open
source projects in existence, one of those rare combinations of
success and fidelity to some of the best values that open source
supposedly represents. It is with a bit of sadness that years later I
find that the same project (even the same people) now has a very
different attitude, and that long term contributors who I believe have
modestly helped to make this project more robust and popular are
mostly seen as part of a problem instead of as part of its thriving
community. I suppose wild success has some unfortunate costs.

In any case, I don't want to end on a pessimistic note. I'm sure
there's enough brilliance in this community to come up with better
solutions for everyone, including future ports that do not exist yet
but that might be very relevant in this world that moves at breakneck
pace.

Cheers,

Xan
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Wishes

2013-01-30 Thread Dimitri Glazkov
On Wed, Jan 30, 2013 at 1:28 PM, Eric Seidel e...@webkit.org wrote:

 *
 I wish I felt like reviewers understood/trusted each other more.

 *
 *I’ve worked at both Apple and Google.  The WebKit community is full of
 brilliant engineers.  Yet I frequently feel a lack of trust in my (or
 others) judgement, or witness hot-headed remarks on bugs, lists or IRC.  I
 don’t think it’s that people don’t trust me after nearly 8 years (!?) on
 this project, but rather that we forget, or fail to communicate trust among
 ourselves.  Social problems are perhaps harder to solve for us technical
 types, but I worry that for many of us it’s just become “us” and “them” and
 we’ve stopped trying.*


This is a big one for me (as you would've guessed :).

All others seem surmountable if only we could somehow fix this.

:DG
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Wishes

2013-01-30 Thread Patrick Gansterer
Hi,

Am 30.01.2013 um 22:28 schrieb Eric Seidel:

 I wish we only had one build system (it were easy to add/remove/move files).

I've created CMake files for two different ports at [1] and [2] already, but 
did't get positive feedback from the port-maintainer. So I stopped working on 
it. If any port is still interested in switching to CMake I'd like to help 
creating the required files, but only with feedback of the port-maintainer.

-- Patrick

[1] https://bugs.webkit.org/show_bug.cgi?id=72816
[2] https://bugs.webkit.org/show_bug.cgi?id=73100
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Wishes

2013-01-30 Thread Dirk Pranke
On Wed, Jan 30, 2013 at 1:50 PM, Filip Pizlo fpi...@apple.com wrote:
 Thanks for sharing this.

 On Jan 30, 2013, at 1:28 PM, Eric Seidel e...@webkit.org wrote:

 I wish we only had one build system (it were easy to add/remove/move files).

 I believe changes like http://trac.webkit.org/changeset/74849 are an
 unhealthy sign for the project.  Adam is not the only person who has chosen
 to empty files instead of removing them.  The pain of updating 8 build
 system is so great, we jump through hoops to avoid it.  Which means it took
 us months to move JavaScriptCore/wtf to WTF, and will take us years to kill
 WebCore/platform.


 +1

 This is a hard problem.  It is a problem worth solving.

 Do you have more thoughts on this, particularly since you know quite well
 how both Xcode and gyp work?

 I suspect this is one of those things that it would be hard to achieve
 consensus on since there are so many stakeholders.  But it may be fruitful
 to have a what if discussion about what this might look like.


I think we can solve this problem if we agree that we want to. I think
we haven't in the past mostly because we couldn't reach a consensus
that it was worth solving enough to really try.

I would love to see this fixed and would be glad to work on it. I
think we should at least pursue this far enough to fully understand
what our options are and what the costs and tradeoffs might be; does
anyone disagree, and is anyone else willing to help pitch in?

I think there are several possible ways we could solve this. One would
be to switch to a common meta-build system. My understanding is that
Apple's internal production build processes impose certain constraints
here that I don't fully understand, but I know we've discussed the
possibility of checking in generated project files as a workaround.
Maybe there are other options as well to those constraints? I would
love to discuss this further w/ someone from Apple ...

(Also, just to get this out of the way, I don't think gyp needs to be
the solution).

Another alternative would be to write a script that did support at
least the common use cases (add/move/delete files). There have been
attempts in the past, but they have foundered on at least some
perceived skepticism over how well this would work w/ XCode. That
said, I don't think we've really pushed this to see. At some point
this script might turn into a meta-meta-build system, which might be
silly but also be the shortest path to the finish line.

I suggest if there is interest in this we can start a new thread to
discuss further ...

-- Dirk
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] Removing ENABLE(WEB_INTENTS) code

2013-01-30 Thread Nico Weber
Hi,

I'd like to delete all the ENABLE(WEB_INTENTS) code. As far as I know,
nobody ever shipped this and nobody intents to. Please speak up if
you'd like that code to stick around.

Nico
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] Common build system (was Re: WebKit Wishes)

2013-01-30 Thread Maciej Stachowiak

On Jan 30, 2013, at 3:24 PM, Dirk Pranke dpra...@chromium.org wrote:

 On Wed, Jan 30, 2013 at 1:50 PM, Filip Pizlo fpi...@apple.com wrote:
 Thanks for sharing this.
 
 On Jan 30, 2013, at 1:28 PM, Eric Seidel e...@webkit.org wrote:
 
 I wish we only had one build system (it were easy to add/remove/move files).
 
 I believe changes like http://trac.webkit.org/changeset/74849 are an
 unhealthy sign for the project.  Adam is not the only person who has chosen
 to empty files instead of removing them.  The pain of updating 8 build
 system is so great, we jump through hoops to avoid it.  Which means it took
 us months to move JavaScriptCore/wtf to WTF, and will take us years to kill
 WebCore/platform.
 
 
 +1
 
 This is a hard problem.  It is a problem worth solving.
 
 Do you have more thoughts on this, particularly since you know quite well
 how both Xcode and gyp work?
 
 I suspect this is one of those things that it would be hard to achieve
 consensus on since there are so many stakeholders.  But it may be fruitful
 to have a what if discussion about what this might look like.
 
 
 I think we can solve this problem if we agree that we want to. I think
 we haven't in the past mostly because we couldn't reach a consensus
 that it was worth solving enough to really try.
 
 I would love to see this fixed and would be glad to work on it. I
 think we should at least pursue this far enough to fully understand
 what our options are and what the costs and tradeoffs might be; does
 anyone disagree, and is anyone else willing to help pitch in?
 
 I think there are several possible ways we could solve this. One would
 be to switch to a common meta-build system. My understanding is that
 Apple's internal production build processes impose certain constraints
 here that I don't fully understand, but I know we've discussed the
 possibility of checking in generated project files as a workaround.
 Maybe there are other options as well to those constraints? I would
 love to discuss this further w/ someone from Apple ...

It's far simplest for us if:
(a) There is an Xcode project (or a Makefile) that builds the Mac port checked 
in to source control.
(b) The generated project invokes only tools that are part of the default Mac 
OS X install.

It may not be completely impossible to violate these requirements but it will 
require a lot of bureaucracy.

 (Also, just to get this out of the way, I don't think gyp needs to be
 the solution).
 
 Another alternative would be to write a script that did support at
 least the common use cases (add/move/delete files). There have been
 attempts in the past, but they have foundered on at least some
 perceived skepticism over how well this would work w/ XCode. That
 said, I don't think we've really pushed this to see. At some point
 this script might turn into a meta-meta-build system, which might be
 silly but also be the shortest path to the finish line.
 
 I suggest if there is interest in this we can start a new thread to
 discuss further ...

My preference would be to use a common meta-build system with a comfortably 
human-readable and human-editable syntax, and checked in generated project 
files for those ports that need them.

I think a key to making this work is to get Chromium and the Apple Mac port 
onto a common build system, which will probably require both Google and Apple 
ponying up at least one person to work on this project for a reasonable period 
of time.

I think the plausible meta-build-systems to use would be CMake and Gyp, but in 
both cases it may be necessary to modify them to work well for everyone.

I'd also like to add that I think a key related issue to common build system is 
common feature configuration. The many different ways ports control their 
feature flags is super confusing. I've long wanted to implement common 
configuration management, but have not had time.

Cheers,
Maciej



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Common build system (was Re: WebKit Wishes)

2013-01-30 Thread Laszlo Gombos
Hi !


  I'd also like to add that I think a key related issue to common build
 system is common feature configuration. The many different ways ports
 control their feature flags is super confusing. I've long wanted to
 implement common configuration management, but have not had time.
 

 I think this would be a nice related project, but I wouldn't
 necessarily want to lump the two goals together without understanding
 what we'd be shooting for first. From what I know, CMake's support for
 feature configuration is much more mature than what you can do w/ GYP.
 It could certainly be a good motivator, though.


My recent e-mail (
https://lists.webkit.org/pipermail/webkit-dev/2013-January/023368.html) to
the list was an attempt to address the feature configuration problem -
assuming that that a single build system is not an option.  The idea was to
use C macros to describe the rules for feature configurations and figure
out a way to populate them to the various build systems (potentially using
a C precompiler to eval the macros). Some of feature configuration flags
does not need to be exposed to the build system these can just be
#include-d to the source. I do not think that this is
a technical superiors solution but perhaps it worth considering to discuss
as it relies on tools and syntax we happened to already agree on and I felt
that what might come out of it is better what we have now.

 Best,
  Laszlo
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] Feature announcement: Font Load Events

2013-01-30 Thread Kunihiko Sakamoto
Hello,

I would like to let you know that I plan to add support for the FontLoader
interface to WebCore. It provides ways to detect font loading is actually
occurred and when the loading finished.

The spec is here:
http://dev.w3.org/csswg/css3-fonts/#font-load-events

Here is the tracking bug:
https://bugs.webkit.org/show_bug.cgi?id=98395

Let me know if you have any questions or comments.

Best regards,
Kunihiko
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Common build system (was Re: WebKit Wishes)

2013-01-30 Thread Maciej Stachowiak

On Jan 30, 2013, at 5:46 PM, Laszlo Gombos laszlo.gom...@gmail.com wrote:

 Hi !
 
 
  I'd also like to add that I think a key related issue to common build 
  system is common feature configuration. The many different ways ports 
  control their feature flags is super confusing. I've long wanted to 
  implement common configuration management, but have not had time.
 
 
 I think this would be a nice related project, but I wouldn't
 necessarily want to lump the two goals together without understanding
 what we'd be shooting for first. From what I know, CMake's support for
 feature configuration is much more mature than what you can do w/ GYP.
 It could certainly be a good motivator, though.
 
 My recent e-mail 
 (https://lists.webkit.org/pipermail/webkit-dev/2013-January/023368.html) to 
 the list was an attempt to address the feature configuration problem - 
 assuming that that a single build system is not an option.  The idea was to 
 use C macros to describe the rules for feature configurations and figure out 
 a way to populate them to the various build systems (potentially using a C 
 precompiler to eval the macros). Some of feature configuration flags does not 
 need to be exposed to the build system these can just be #include-d to the 
 source. I do not think that this is a technical superiors solution but 
 perhaps it worth considering to discuss as it relies on tools and syntax we 
 happened to already agree on and I felt that what might come out of it is 
 better what we have now.

My past suggestion: have a separate Port.h header for every file, which turns 
on its set of PLATFORM, ENABLE and USE macros. Platform.h includes exclusively 
definitions of things that can be inferred from the build environment (like 
CPU, COMPILER, OS).

Port.h files could delegate. So for example we might have:

mac/Port.h -- cocoa/Port.h -- apple/Port.h -- default/Port.h

the default Port.h file would include the WebKit project's shared 
recommendations for what features should be on or off. If a flag ends up here 
and we don't know of any port disabling it, we might just remove it.

Including the right Port.h would be handled by include path magic.

That's my idea in a nutshell. It would put all configuration logic into the 
preprocessor instead of a mix of the preprocessor and various build systems.

Regards,
Maciej


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Common build system (was Re: WebKit Wishes)

2013-01-30 Thread Jochen Eisinger
On Thu, Jan 31, 2013 at 1:15 AM, Maciej Stachowiak m...@apple.com wrote:


 On Jan 30, 2013, at 3:24 PM, Dirk Pranke dpra...@chromium.org wrote:

  On Wed, Jan 30, 2013 at 1:50 PM, Filip Pizlo fpi...@apple.com wrote:
  Thanks for sharing this.
 
  On Jan 30, 2013, at 1:28 PM, Eric Seidel e...@webkit.org wrote:
 
  I wish we only had one build system (it were easy to add/remove/move
 files).
 
  I believe changes like http://trac.webkit.org/changeset/74849 are an
  unhealthy sign for the project.  Adam is not the only person who has
 chosen
  to empty files instead of removing them.  The pain of updating 8 build
  system is so great, we jump through hoops to avoid it.  Which means it
 took
  us months to move JavaScriptCore/wtf to WTF, and will take us years to
 kill
  WebCore/platform.
 
 
  +1
 
  This is a hard problem.  It is a problem worth solving.
 
  Do you have more thoughts on this, particularly since you know quite
 well
  how both Xcode and gyp work?
 
  I suspect this is one of those things that it would be hard to achieve
  consensus on since there are so many stakeholders.  But it may be
 fruitful
  to have a what if discussion about what this might look like.
 
 
  I think we can solve this problem if we agree that we want to. I think
  we haven't in the past mostly because we couldn't reach a consensus
  that it was worth solving enough to really try.
 
  I would love to see this fixed and would be glad to work on it. I
  think we should at least pursue this far enough to fully understand
  what our options are and what the costs and tradeoffs might be; does
  anyone disagree, and is anyone else willing to help pitch in?
 
  I think there are several possible ways we could solve this. One would
  be to switch to a common meta-build system. My understanding is that
  Apple's internal production build processes impose certain constraints
  here that I don't fully understand, but I know we've discussed the
  possibility of checking in generated project files as a workaround.
  Maybe there are other options as well to those constraints? I would
  love to discuss this further w/ someone from Apple ...

 It's far simplest for us if:
 (a) There is an Xcode project (or a Makefile) that builds the Mac port
 checked in to source control.
 (b) The generated project invokes only tools that are part of the default
 Mac OS X install.


Another desirable property would be to move to a more automatic way of
handling exported symbols: Currently each port that depends on this feature
has its own .exp file or similar. I think if we could move to something
that would allow for changing WebCore API without having to touch all those
files, e.g. by consistently using WEBCORE_EXPORT macros would be a big win

best
-jochen



 It may not be completely impossible to violate these requirements but it
 will require a lot of bureaucracy.

  (Also, just to get this out of the way, I don't think gyp needs to be
  the solution).
 
  Another alternative would be to write a script that did support at
  least the common use cases (add/move/delete files). There have been
  attempts in the past, but they have foundered on at least some
  perceived skepticism over how well this would work w/ XCode. That
  said, I don't think we've really pushed this to see. At some point
  this script might turn into a meta-meta-build system, which might be
  silly but also be the shortest path to the finish line.
 
  I suggest if there is interest in this we can start a new thread to
  discuss further ...

 My preference would be to use a common meta-build system with a
 comfortably human-readable and human-editable syntax, and checked in
 generated project files for those ports that need them.

 I think a key to making this work is to get Chromium and the Apple Mac
 port onto a common build system, which will probably require both Google
 and Apple ponying up at least one person to work on this project for a
 reasonable period of time.

 I think the plausible meta-build-systems to use would be CMake and Gyp,
 but in both cases it may be necessary to modify them to work well for
 everyone.

 I'd also like to add that I think a key related issue to common build
 system is common feature configuration. The many different ways ports
 control their feature flags is super confusing. I've long wanted to
 implement common configuration management, but have not had time.

 Cheers,
 Maciej



 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Wishes

2013-01-30 Thread Žan Doberšek
On Wed, Jan 30, 2013 at 10:28 PM, Eric Seidel e...@webkit.org wrote:
 I wish it were easy to work on feature branches.

 We have no good solution for features.  For one-patch features, you do them
 on your own.  For larger, you maybe use github or most likely you just land
 on trunk behind a #define.  None of these have worked well.  Some of this is
 the limits of SVN, but it should be trivial for someone to work on a new
 feature a long time, w/o endangering trunk or having massive merge pain
 every day.  Other projects can do this.  So should we.  This is both
 impeding progress, and destabilizing trunk.


I like the idea of developing larger features or multi-patch changes
on a branch.

Relating this with the next two wishes, I'd support this approach if
the whole patchset would be tested on trunk for every port with every
change that's made. The port maintainers (even those working on small
ports) could then fix any build failures or make changes to the
platform-specific code as necessary to make the merging of the branch
a minimal annoyance for everyone. Similarly, when the work on the
branch is deemed finished and there are still ports that would break
upon merging, a sensible time frame, for instance 2 work days, would
be given for the port maintainers to come up with fixes before merging
the branch regardless of the consequences.

The point I'd like to expose is that when using branches, landing
broken branches on broken trunk leads nowhere. That's why it's
important to maintain a building and working trunk, but give all the
ports the possibility of fixing any outstanding issues in the branch
before merging, so the trunk doesn't break (and the breakage loop is
entered).


Regards,
-Z
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev