Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Adam Treat
I am very skeptical that it is feasible to write a gyp generator that would 
output QMake files.  There is a log of magic in those QMake files.  My sense is 
that it would not be trivial by any means.

Plus, I don't like the idea of a meta-meta generators.  Seems way to mickey-
mouse to me.

Adam

On Friday 16 April 2010 12:42:01 am Peter Kasting wrote:
 On Thu, Apr 15, 2010 at 9:15 PM, Kevin Ollivier 
kev...@theolliviers.comwrote:
  Anyway, my $0.02 is that, in terms of immediate bang for the buck, we're
  probably better off trying to synchronize the build systems automatically
  in some way. My perception is that Qt developers will want to use qmake,
  GTK will want to use autotools, etc. and while some build systems could
  certainly be merged (e.g. as you say the Win and Mac projects for WebKit
  itself could be gyp-generated), I don't think we'll ever really narrow
  it down to one master system for a variety of reasons. I do, however,
  think we may be able to narrow the 'build system updating' process down
  to one step / one script that updates all ports simultaneously, and do
  so without too much effort.
 
 If I'm not mistaking you, that seems to be the route Evan is discussing,
 with his concrete proposal being to investigate the feasibility of making
 gyp be the mechanism by which various different build systems can be
 generated from a single place (rather than seven).  Or is this not what you
 were saying?
 
 Since most build systems out there have their data stored in either XML or
 
  plain text, converting a build file list from one build system's data
  format to another is probably not more than a few hours of Python
  hacking, if that.
 
 Indeed, we already have MSVC/XCode/makefile generators for gyp, I would
 assume that given those, a generator for e.g. qmake wouldn't be hard.
 
 I really think someone should seriously consider investing some time and
 
  resources into improving this issue though, updating a build system
  doesn't take long but updating 7-10 build systems on almost a daily
  basis probably adds up to some pretty significant amount of time and
  energy that could probably be spent on better things.
 
 I think that is the shared viewpoint that has led to this discussion.
 
 PK
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Nikolas Zimmermann


Am 16.04.2010 um 16:44 schrieb Adam Treat:

I am very skeptical that it is feasible to write a gyp generator  
that would
output QMake files.  There is a log of magic in those QMake files.   
My sense is

that it would not be trivial by any means.

Plus, I don't like the idea of a meta-meta generators.  Seems way to  
mickey-

mouse to me.


Agreed to a certain degree. Using gyp/whatever to generate qmake  
files, to generate Makefile/Xcode files etc seems akward to me as well.


What we really need to resolve is adding/removing files from  
compilation, that's the most common
task that has to be done in 5+ build systems at the moment. So I have  
a new proposal:


1) Maintain a list of headers/source files to be compiled for ALL  
platforms (ie. dom/Node.cpp, etc..)


2) Keep all existing Makefile.am, WebCore.pro etc files as  
templates, ie. WebCore.pro.template, with a special
variable somewhere marking the $$HEADER_LIST$$ and the $ 
$SOURCE_LIST$$


3) Use a script that generates individual build files (eg.  
WebCore.pro) from WebCore.pro.template, it only
needs to insert the file list with the correct syntax in the  
correct places


4) Keep all platform specific files to be compiled in the individual  
build system files (eg. WebCore.pro.template)


I think we'll never find a consensus on a single build system, there  
are too many different needs. I only care
about the most repetitive work in order to keep the build system  
up2date: adding/removing cross-platform files.


Of course this is some kind of meta-meta build system, but we could  
also agree to move the template files in a WebCore/build-templates
folder and run a update-project-files script after adding/remove  
files, that generates the build files, like WebCore.pro and commit them.
This way only the person who added/removed a file from build would  
need to run that script, instead of every one, this would effectively

hide the meta-meta build system.

If we find an acceptable solution for just adding/removing cross- 
platform buildable files that it would already make me happy :-)


Looking for comments!
Niko

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


Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Kevin Ollivier
Hi Peter,

On Apr 15, 2010, at 9:42 PM, Peter Kasting wrote:

 On Thu, Apr 15, 2010 at 9:15 PM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 Anyway, my $0.02 is that, in terms of immediate bang for the buck, we're 
 probably better off trying to synchronize the build systems automatically in 
 some way. My perception is that Qt developers will want to use qmake, GTK 
 will want to use autotools, etc. and while some build systems could certainly 
 be merged (e.g. as you say the Win and Mac projects for WebKit itself could 
 be gyp-generated), I don't think we'll ever really narrow it down to one 
 master system for a variety of reasons. I do, however, think we may be able 
 to narrow the 'build system updating' process down to one step / one script 
 that updates all ports simultaneously, and do so without too much effort.
 
 If I'm not mistaking you, that seems to be the route Evan is discussing, with 
 his concrete proposal being to investigate the feasibility of making gyp be 
 the mechanism by which various different build systems can be generated from 
 a single place (rather than seven).  Or is this not what you were saying?

I was talking about something far more limited, like converting common build 
file lists from one format to another.

 Since most build systems out there have their data stored in either XML or 
 plain text, converting a build file list from one build system's data format 
 to another is probably not more than a few hours of Python hacking, if that.
 
 Indeed, we already have MSVC/XCode/makefile generators for gyp, I would 
 assume that given those, a generator for e.g. qmake wouldn't be hard.

Perhaps, but in any case, I think the first step there is for the Gyp 
developers to try implementing support and see how it goes. However, from that 
perspective, until Gyp has support for those formats, isn't a discussion about 
switching for other ports a bit premature on the WebKit side? i.e. that would 
be next steps for Gyp, not next steps for WebKit. I'd think Gyp would implement 
support for those formats and then come here and ask people to consider a 
switch. 

Obviously there is something to discuss on the WebKit / Win and WebKit / Mac 
side since Gyp can already handle those, but at least for the other ports I was 
thinking of something less involved than a build system migration of that 
nature (at least, in the sense of moving to it being auto-generated). My 
suggestion was about leaving the actual build system untouched but having it 
include a file (or having a script automatically replace a group of source 
files in the project file) with a generated list of common build files. More 
like a script that generates a patch for each build system when changes are 
made to common build files than auto-generating the whole project file(s). This 
way the ports can continue to work with and maintain their own build system, 
but when a common build file is added or removed, a script is run that makes a 
patch for all build systems. I think that would cover a vast majority of the 
manual hassle involved in managing the cross-platform build files.

Regards,

Kevin

 I really think someone should seriously consider investing some time and 
 resources into improving this issue though, updating a build system doesn't 
 take long but updating 7-10 build systems on almost a daily basis probably 
 adds up to some pretty significant amount of time and energy that could 
 probably be spent on better things.
 
 I think that is the shared viewpoint that has led to this discussion.
 
 PK 

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


[webkit-dev] currentTime() and UTC time

2010-04-16 Thread Yong Li
Hi All

The default implementation of JS Date is calling currentTime() (by
jsCurrentTime()), so it assumes currentTime() returns current UTC time, and
system UTC time can be changed. However, currentTime() is also used in most
cases as a system tick count, which means it should always be monotonically
increasing. I guess we should remove the dependency on currentTime() from JS
Date to fix the confliction.

Any idea?

-Yong
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Kevin Ollivier
Hi Nikolas,

On Apr 16, 2010, at 8:09 AM, Nikolas Zimmermann wrote:

 
 Am 16.04.2010 um 16:44 schrieb Adam Treat:
 
 I am very skeptical that it is feasible to write a gyp generator that would
 output QMake files.  There is a log of magic in those QMake files.  My sense 
 is
 that it would not be trivial by any means.
 
 Plus, I don't like the idea of a meta-meta generators.  Seems way to mickey-
 mouse to me.
 
 Agreed to a certain degree. Using gyp/whatever to generate qmake files, to 
 generate Makefile/Xcode files etc seems akward to me as well.
 
 What we really need to resolve is adding/removing files from compilation, 
 that's the most common
 task that has to be done in 5+ build systems at the moment. So I have a new 
 proposal:
 
 1) Maintain a list of headers/source files to be compiled for ALL platforms 
 (ie. dom/Node.cpp, etc..)
 
 2) Keep all existing Makefile.am, WebCore.pro etc files as templates, ie. 
 WebCore.pro.template, with a special
variable somewhere marking the $$HEADER_LIST$$ and the $$SOURCE_LIST$$
 
 3) Use a script that generates individual build files (eg. WebCore.pro) from 
 WebCore.pro.template, it only
needs to insert the file list with the correct syntax in the correct places
 
 4) Keep all platform specific files to be compiled in the individual build 
 system files (eg. WebCore.pro.template)
 
 I think we'll never find a consensus on a single build system, there are too 
 many different needs. I only care
 about the most repetitive work in order to keep the build system up2date: 
 adding/removing cross-platform files.
 
 Of course this is some kind of meta-meta build system, but we could also 
 agree to move the template files in a WebCore/build-templates
 folder and run a update-project-files script after adding/remove files, 
 that generates the build files, like WebCore.pro and commit them.
 This way only the person who added/removed a file from build would need to 
 run that script, instead of every one, this would effectively
 hide the meta-meta build system.
 
 If we find an acceptable solution for just adding/removing cross-platform 
 buildable files that it would already make me happy :-)

Correct me if I'm wrong, but I thought it would actually be possible to have 
the values for HEADER_LIST and SOURCE_LIST set in a separate file, and that Qt 
and GTK build systems could then just include that file. This way we could 
avoid using templates and such. Just add the included file to the tree (e.g. 
WebCore/sources.inc) and have the Qt and GTK projects include 
WebCore/sources.inc and reference those variables. As I mentioned earlier, I 
actually coded up something using this approach a long time ago back when wx 
was still using Bakefile, but I guess it never caught the attention of projects 
like Qt as I never got any feedback on it. (Or maybe the idea was just so 
obviously flawed somehow. :) Here's the script:

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/update-sources-list.py

It would probably not take long at all to have getWebCoreFilesDict pull from a 
gyp project, XCode project, or whatever we wanted to use as the master file 
list that should be updated. 

Thoughts?

Thanks,

Kevin

 Looking for comments!
 Niko
 
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

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


Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Ojan Vafai
This seems like just a more restricted version of gyp to me. And one that
isn't sufficiently powerful, e.g., what if a platform decides to disable SVG
and doesn't want to compile SVG files? You end up adding some sort of syntax
for that. In the end, you have something that's 90% of the way to a gyp file
and now we have yet another build system.

Whether the build file generation happens when you sync versus when the
person adding the file makes the change is also flexible with gyp. We could
very well use gyp to generate the build files for each platform and check
that in. I don't actually think that's a good idea though. The risk of build
files and gyp files getting out of sync is not worth it.

Ojan

On Fri, Apr 16, 2010 at 8:09 AM, Nikolas Zimmermann 
zimmerm...@physik.rwth-aachen.de wrote:

 Am 16.04.2010 um 16:44 schrieb Adam Treat:

 I am very skeptical that it is feasible to write a gyp generator that
 would
 output QMake files.  There is a log of magic in those QMake files.  My
 sense is
 that it would not be trivial by any means.

 Plus, I don't like the idea of a meta-meta generators.  Seems way to
 mickey-
 mouse to me.


 Agreed to a certain degree. Using gyp/whatever to generate qmake files, to
 generate Makefile/Xcode files etc seems akward to me as well.

 What we really need to resolve is adding/removing files from compilation,
 that's the most common
 task that has to be done in 5+ build systems at the moment. So I have a new
 proposal:

 1) Maintain a list of headers/source files to be compiled for ALL platforms
 (ie. dom/Node.cpp, etc..)

 2) Keep all existing Makefile.am, WebCore.pro etc files as templates, ie.
 WebCore.pro.template, with a special
variable somewhere marking the $$HEADER_LIST$$ and the $$SOURCE_LIST$$

 3) Use a script that generates individual build files (eg. WebCore.pro)
 from WebCore.pro.template, it only
needs to insert the file list with the correct syntax in the correct
 places

 4) Keep all platform specific files to be compiled in the individual build
 system files (eg. WebCore.pro.template)

 I think we'll never find a consensus on a single build system, there are
 too many different needs. I only care
 about the most repetitive work in order to keep the build system up2date:
 adding/removing cross-platform files.

 Of course this is some kind of meta-meta build system, but we could also
 agree to move the template files in a WebCore/build-templates
 folder and run a update-project-files script after adding/remove files,
 that generates the build files, like WebCore.pro and commit them.
 This way only the person who added/removed a file from build would need to
 run that script, instead of every one, this would effectively
 hide the meta-meta build system.

 If we find an acceptable solution for just adding/removing cross-platform
 buildable files that it would already make me happy :-)

 Looking for comments!
 Niko


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

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


Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Peter Kasting
On Fri, Apr 16, 2010 at 8:42 AM, Kevin Ollivier kev...@theolliviers.comwrote:

 Perhaps, but in any case, I think the first step there is for the Gyp
 developers to try implementing support and see how it goes. However, from
 that perspective, until Gyp has support for those formats, isn't a
 discussion about switching for other ports a bit premature on the WebKit
 side? i.e. that would be next steps for Gyp, not next steps for WebKit. I'd
 think Gyp would implement support for those formats and then come here and
 ask people to consider a switch.


Which is basically what we're proposing here.

PK
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Marc-Antoine Ruel
Please guys,

No need to speculate here on what I proposed at the session since Evan
somehow left some details out and let me reinforce some points. For those
who missed the session, please understand that what's Peter said isn't
exactly what we agreed on.

Here's some data points:
- No plan to generate qtmake or makefile.am or whatever else
- No plan to force anyone to switch
- No plan (for now) to get any automatic file list for the checkout (some
build system do that)
- No plan for any template based project generation
- Making a new fully functional backend to gyp *is* involved. It's a big
deal. There's no use in a 95% done build system.

The rough proposal is:
- De-chromify most .gyp and .gypi files currently living in webkit.org,
split the files off as necessary in the process to untangle conditions.
- With coordination with aroben, look at implementing a faithful copy of
apple's win port, with a potential switch over *if it works out*. No
guarantee.
- Some people expressed interest into generating the file list to their
build system and having the build system import the generated project files.
That wouldn't be a complete backend implementation. Obviously, complete
backend implementation at http://code.google.com/p/gyp are welcome as long
as they have unit tests.

What you can do *only if you want*:
- Extract the file list of your port project into a single simple file and
have your build system import this file.

I'm not talking about pushing anyone's back and I have *no intention* to. So
unless you want to actively submit patches towards the proposal, please let
this thread die, it's an unproductive use of my time. I don't plan to do
that in the very short term as I have other things on my plate, I'll
definitely do this incrementally.

M-A

2010/4/16 Peter Kasting pkast...@google.com

 On Fri, Apr 16, 2010 at 8:42 AM, Kevin Ollivier 
 kev...@theolliviers.comwrote:

 Perhaps, but in any case, I think the first step there is for the Gyp
 developers to try implementing support and see how it goes. However, from
 that perspective, until Gyp has support for those formats, isn't a
 discussion about switching for other ports a bit premature on the WebKit
 side? i.e. that would be next steps for Gyp, not next steps for WebKit. I'd
 think Gyp would implement support for those formats and then come here and
 ask people to consider a switch.


 Which is basically what we're proposing here.

 PK

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




-- 
M-A
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Clean way to allow delegates for PopupMenu?

2010-04-16 Thread Gustavo Sverzut Barbieri
On Fri, Apr 16, 2010 at 10:30 AM, Luiz Agostini
luiz.agost...@openbossa.org wrote:

 2010/4/15 Gustavo Sverzut Barbieri barbi...@profusion.mobi

 Hello all,

 I'm part of the EFL port team and we're implementing the PopupMenu,
 however EFL is a different platform as for our port it is just a
 state-full canvas, not relying on any widget set/toolkit, we do not
 have the concept of a menu at all!

 Looking at all existing implementations, they all go straight to
 native platform menus. But we can't as we want to avoid such
 dependencies. What we'd like to have is a delegate, that WebCore calls
 the ChromeClient that is overloaded in WebKit, giving our View user a
 callback with all data.

 The good news is: we did it and it works quite well.

 The bad news is: we cheated and include WebKit/efl/WebCoreSupport from
 PopupMenuEfl.cpp, what a shame! (although some ports *cough qt*
 include in WebCore defines from WebKit)

 In Qt we have an abstract class for popup delegates in WebCore/platform/qt
 and we do the actual popup delegate implementation in
 WebKit/qt/WebCoreSupport. The delegates are implemented in WebKit layer and
 PopupMenuQt has no knowledge about any specific delegates. The only reason
 to include WebKit/qt/WebCoreSupport in PopupMenuQt is to make the call that
 creates the delegate object. It could be avoided adding a method to Chrome
 but at the time I was working on it it was decided that it was not needed.

Yes, it is kinda similar to our, since we looked at your
implementation before doing our. But the problem here is you still
include WebKit files from WebCore.  For *me* it looks like a hack, but
if people do not complain then I can kindly keep it as is, after all
it is working already :-)


 In order to have a clean design, we'd like to know the general opinion
 on how to do it. From what I see Mac already defines a similar call in
 ChromeClient.h:

 #if PLATFORM(MAC)
 ...
        virtual void willPopUpMenu(NSMenu *) { }
 #endif

 in our case, we'd need:

 #if PLATFORM(EFL)
        virtual void showPopupMenu(const IntRect rect, FrameView*
 view, int index) { }
        virtual void hidePopupMenu() { }
 #endif

 so our PopupMenuEfl.cpp will just proxy to these calls.

 However, although Mac does that it may not be the best solution, so to
 avoid endless patches to be discussed at bugzilla I'd like to know
 your opinion on the best way so our patch is right from beginning.


 I think that we could add methods to Chrome and ChromeClient to create the
 delegates. For example:
 PopupMenuDelegate* Chrome::createPopupMenuDelegate(PopupMenuClient* c) {
 return m_client-createPopupMenuDelegate(c); }
 virtual PopupMenuDelegate*
 ChromeClient::createPopupMenuDelegate(PopupMenuClient*) { return 0; }
 Each port could then provide its typedef for PopupMenuDelegate and
 override ChromeClient::createPopupMenuDelegate.

Well, as I said we just need methods to show/hide to keep it done, but
if you want to implement another class PopupMenuDelegate to do it,
then we could do such work as well. We'd like to avoid this delegate
class as our port is C, so we'd need to do it all in C++ plus what we
have done in C already, just to proxy it.


BR,

-- 
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--
MSN: barbi...@gmail.com
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Clean way to allow delegates for PopupMenu?

2010-04-16 Thread Luiz Agostini
2010/4/16 Gustavo Sverzut Barbieri barbi...@profusion.mobi

 On Fri, Apr 16, 2010 at 10:30 AM, Luiz Agostini
 luiz.agost...@openbossa.org wrote:
 
  2010/4/15 Gustavo Sverzut Barbieri barbi...@profusion.mobi
 
  Hello all,
 
  I'm part of the EFL port team and we're implementing the PopupMenu,
  however EFL is a different platform as for our port it is just a
  state-full canvas, not relying on any widget set/toolkit, we do not
  have the concept of a menu at all!
 
  Looking at all existing implementations, they all go straight to
  native platform menus. But we can't as we want to avoid such
  dependencies. What we'd like to have is a delegate, that WebCore calls
  the ChromeClient that is overloaded in WebKit, giving our View user a
  callback with all data.
 
  The good news is: we did it and it works quite well.
 
  The bad news is: we cheated and include WebKit/efl/WebCoreSupport from
  PopupMenuEfl.cpp, what a shame! (although some ports *cough qt*
  include in WebCore defines from WebKit)
 
  In Qt we have an abstract class for popup delegates in
 WebCore/platform/qt
  and we do the actual popup delegate implementation in
  WebKit/qt/WebCoreSupport. The delegates are implemented in WebKit layer
 and
  PopupMenuQt has no knowledge about any specific delegates. The only
 reason
  to include WebKit/qt/WebCoreSupport in PopupMenuQt is to make the call
 that
  creates the delegate object. It could be avoided adding a method to
 Chrome
  but at the time I was working on it it was decided that it was not
 needed.

 Yes, it is kinda similar to our, since we looked at your
 implementation before doing our. But the problem here is you still
 include WebKit files from WebCore.  For *me* it looks like a hack, but
 if people do not complain then I can kindly keep it as is, after all
 it is working already :-)


  In order to have a clean design, we'd like to know the general opinion
  on how to do it. From what I see Mac already defines a similar call in
  ChromeClient.h:
 
  #if PLATFORM(MAC)
  ...
 virtual void willPopUpMenu(NSMenu *) { }
  #endif
 
  in our case, we'd need:
 
  #if PLATFORM(EFL)
 virtual void showPopupMenu(const IntRect rect, FrameView*
  view, int index) { }
 virtual void hidePopupMenu() { }
  #endif
 
  so our PopupMenuEfl.cpp will just proxy to these calls.
 
  However, although Mac does that it may not be the best solution, so to
  avoid endless patches to be discussed at bugzilla I'd like to know
  your opinion on the best way so our patch is right from beginning.
 
 
  I think that we could add methods to Chrome and ChromeClient to create
 the
  delegates. For example:
  PopupMenuDelegate* Chrome::createPopupMenuDelegate(PopupMenuClient* c) {
  return m_client-createPopupMenuDelegate(c); }
  virtual PopupMenuDelegate*
  ChromeClient::createPopupMenuDelegate(PopupMenuClient*) { return 0; }
  Each port could then provide its typedef for PopupMenuDelegate and
  override ChromeClient::createPopupMenuDelegate.

 Well, as I said we just need methods to show/hide to keep it done, but
 if you want to implement another class PopupMenuDelegate to do it,
 then we could do such work as well. We'd like to avoid this delegate
 class as our port is C, so we'd need to do it all in C++ plus what we
 have done in C already, just to proxy it.


I did not suggest a class for PopupMenuDelegate: Each port could then
provide its typedef for PopupMenuDelegate.

Remember PlatformWidget? :-)




 BR,

 --
 Gustavo Sverzut Barbieri
 http://profusion.mobi embedded systems
 --
 MSN: barbi...@gmail.com
 Skype: gsbarbieri
 Mobile: +55 (19) 9225-2202

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


Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Nikolas Zimmermann


Am 16.04.2010 um 18:26 schrieb Ojan Vafai:

This seems like just a more restricted version of gyp to me. And one  
that isn't sufficiently powerful, e.g., what if a platform decides  
to disable SVG and doesn't want to compile SVG files? You end up  
adding some sort of syntax for that. In the end, you have something  
that's 90% of the way to a gyp file and now we have yet another  
build system.


Ermm, we have ENABLE(SVG) blocks around all SVG related files. That  
was not a good example, as those platforms may just compile the SVG*  
files, they are just empty.
So no need to add any syntax for that. That applies to all other  
features as well - we _always_ compile all files, not depending on any  
setting.


Cheers,
Niko
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Clean way to allow delegates for PopupMenu?

2010-04-16 Thread Gustavo Sverzut Barbieri
On Fri, Apr 16, 2010 at 11:21 AM, Luiz Agostini
luiz.agost...@openbossa.org wrote:
 2010/4/16 Gustavo Sverzut Barbieri barbi...@profusion.mobi

 On Fri, Apr 16, 2010 at 10:30 AM, Luiz Agostini
 luiz.agost...@openbossa.org wrote:
 
  2010/4/15 Gustavo Sverzut Barbieri barbi...@profusion.mobi
 
  Hello all,
 
  I'm part of the EFL port team and we're implementing the PopupMenu,
  however EFL is a different platform as for our port it is just a
  state-full canvas, not relying on any widget set/toolkit, we do not
  have the concept of a menu at all!
 
  Looking at all existing implementations, they all go straight to
  native platform menus. But we can't as we want to avoid such
  dependencies. What we'd like to have is a delegate, that WebCore calls
  the ChromeClient that is overloaded in WebKit, giving our View user a
  callback with all data.
 
  The good news is: we did it and it works quite well.
 
  The bad news is: we cheated and include WebKit/efl/WebCoreSupport from
  PopupMenuEfl.cpp, what a shame! (although some ports *cough qt*
  include in WebCore defines from WebKit)
 
  In Qt we have an abstract class for popup delegates in
  WebCore/platform/qt
  and we do the actual popup delegate implementation in
  WebKit/qt/WebCoreSupport. The delegates are implemented in WebKit layer
  and
  PopupMenuQt has no knowledge about any specific delegates. The only
  reason
  to include WebKit/qt/WebCoreSupport in PopupMenuQt is to make the call
  that
  creates the delegate object. It could be avoided adding a method to
  Chrome
  but at the time I was working on it it was decided that it was not
  needed.

 Yes, it is kinda similar to our, since we looked at your
 implementation before doing our. But the problem here is you still
 include WebKit files from WebCore.  For *me* it looks like a hack, but
 if people do not complain then I can kindly keep it as is, after all
 it is working already :-)


  In order to have a clean design, we'd like to know the general opinion
  on how to do it. From what I see Mac already defines a similar call in
  ChromeClient.h:
 
  #if PLATFORM(MAC)
  ...
         virtual void willPopUpMenu(NSMenu *) { }
  #endif
 
  in our case, we'd need:
 
  #if PLATFORM(EFL)
         virtual void showPopupMenu(const IntRect rect, FrameView*
  view, int index) { }
         virtual void hidePopupMenu() { }
  #endif
 
  so our PopupMenuEfl.cpp will just proxy to these calls.
 
  However, although Mac does that it may not be the best solution, so to
  avoid endless patches to be discussed at bugzilla I'd like to know
  your opinion on the best way so our patch is right from beginning.
 
 
  I think that we could add methods to Chrome and ChromeClient to create
  the
  delegates. For example:
  PopupMenuDelegate* Chrome::createPopupMenuDelegate(PopupMenuClient* c) {
  return m_client-createPopupMenuDelegate(c); }
  virtual PopupMenuDelegate*
  ChromeClient::createPopupMenuDelegate(PopupMenuClient*) { return 0; }
  Each port could then provide its typedef for PopupMenuDelegate and
  override ChromeClient::createPopupMenuDelegate.

 Well, as I said we just need methods to show/hide to keep it done, but
 if you want to implement another class PopupMenuDelegate to do it,
 then we could do such work as well. We'd like to avoid this delegate
 class as our port is C, so we'd need to do it all in C++ plus what we
 have done in C already, just to proxy it.

 I did not suggest a class for PopupMenuDelegate: Each port could then
 provide its typedef for PopupMenuDelegate.
 Remember PlatformWidget? :-)

yes, but we still need the hide to get it hidden :-)


-- 
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--
MSN: barbi...@gmail.com
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] python coding style, PEP-8, and 80-column line widths

2010-04-16 Thread Eric Seidel
bike-shedding

I think 80 columns is a waste of time and hurts readability.

Instead of being smart about when we wrap code, 80 adheres to a
blanket rule, discourages long variable/function names, and needlessly
expands code vertically ignoring modern wider-than-long monitors.

The optparse code which was recently re-wrapped is one example of 80c
fail.  Impossible to tell in the wrapped version which arguments are
actually being listed (first argument to the function) because your
eye can't parse the start of each line.

That said.  I'd rather have you and Adam and Chris all working on the
Python than have folks lose interest due to code wrapping.  If the
consensus is 80c, I'll learn to deal. :)

The choice is either:
A. no wrapping rule to match the rest of WebKit
B. 80c to match the official PEP8 spec (and Google code).

I've chosen A. in the past.  Mostly to match my own personal bias I'm sure.

-eric

/bike-shedding

On Wed, Apr 14, 2010 at 5:02 PM, Dirk Pranke dpra...@chromium.org wrote:
 Hi all,

 As I'm sure the discussions in the webkit meeting over the past two
 days made clear, it looks like most of our non-C++ code is getting
 written in Python. Back in January, Adam Barth posted this thread [1]
 where I thought it was agreed we would attempt to follow PEP 8 ([2] -
 the standard Python style guide) faithfully.

 The one (somewhat) controversial aspect of that style guide is that it
 requires a 79-column wide line length.

 More recently, as part of implementing a style checker for Python code
 [3], some have advocated that we should not follow that particular
 restriction, because (a) the WebKit C++ style guide does not follow
 that restriction, and (b) there is a reasonable amount of Python code
 that does not follow the rule today and would have to be brought into
 compliance. In particular, it was asked that we disable the long-line
 check until at least the existing code was brought into compliance.

 As far as (b) goes, there are currently (as of r57510) 1533 long lines
 out of the 35,616 lines found under WebKitTools/Scripts/webkitpy,
 occurring in 120 out 193 .py files. Most of the files that have any
 long lines have less than five [4].

 As far as disabling the check goes, I rather firmly believe that if we
 wish to follow an ~80 column line-length limitation, the check needs
 to be on by default, or else those who aren't used to this convention
 will not follow it and the problem will get worse, not better (as
 evidenced by [5]).

 So, do we want to follow an 80-column limit for Python code, or not,
 and if we do, should we enforce the rule by default or not?

 If the concern is the existing code base I also (reluctantly)
 volunteer to fix the long lines, if that influences the decisions.
 Although I personally believe that code that is less than 80 columns
 wide is easier to read and easier to maintain for a variety of
 reasons, I mostly volunteer to do this because it's just not many
 lines of code and I believe that having style guidelines that aren't
 followed are a Very Bad Thing and hence the fact that we have existing
 violations is a bad reason in this case to argue for not following the
 rule.

 Note that I do not particularly wish to argue the merits of this
 particular style choice, just make (and document) a decision. It's a
 religious position and the interweb is littered with existing
 arguments pro and con that we would likely just rehash here. I raise
 the issue at all only because I had thought that we made a decision
 and then it was changed in relative obscurity in a bug, rather than
 after being discussed here, whch struck me as not the right way to do
 this sort of thing.

 -- Dirk

 [1] https://lists.webkit.org/pipermail/webkit-dev/2010-January/011423.html
 [2] http://www.python.org/dev/peps/pep-0008/
 [3] https://bugs.webkit.org/show_bug.cgi?id=33639
 [4] Stats:
 % find WebKitTools/Scripts/webkitpy -name thirdparty -prune -o -name
 \*.py | wc -l  # 193 .py files
 % find WebKitTools/Scripts/webkitpy -name thirdparty -prune -o -name
 \*.py | xargs wc -l  # 35,316 lines of code
 % find WebKitTools/Scripts/webkitpy -name thirdparty -prune -o -name
 \*.py | xargs awk '{ if (length($0)  79) printf(%s:%d %s\n,
 FILENAME, FNR, $0);}' # all of the long lines
 % find WebKitTools/Scripts/webkitpy -name thirdparty -prune -o -name
 \*.py | xargs awk '{ if (length($0)  79) printf(%s\n, FILENAME);}'
 | sort | uniq -c | wc -l # 120 files w/ long lines
 % find WebKitTools/Scripts/webkitpy -name thirdparty -prune -o -name
 \*.py | xargs awk '{ if (length($0)  79) printf(%s\n, FILENAME);}'
 | sort | uniq -c # distribution by file
 [5] https://bugs.webkit.org/show_bug.cgi?id=37586
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org

Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Nikolas Zimmermann


Am 16.04.2010 um 19:14 schrieb Marc-Antoine Ruel:


Please guys,

No need to speculate here on what I proposed at the session since  
Evan somehow left some details out and let me reinforce some points.  
For those who missed the session, please understand that what's  
Peter said isn't exactly what we agreed on.






What you can do only if you want:
- Extract the file list of your port project into a single simple  
file and have your build system import this file.


I'm not talking about pushing anyone's back and I have no intention  
to. So unless you want to actively submit patches towards the  
proposal, please let this thread die, it's an unproductive use of my  
time. I don't plan to do that in the very short term as I have other  
things on my plate, I'll definitely do this incrementally.


This thread is not only about what you may have proposed in the  
meeting. Please reread the other mails of the thread.
I'm really a bit astonished, reading statments like your last  
sentences above. It's not very polite to state you don't care about  
other opinions and call that an unproductive use of your time.


Cheers,
Niko

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Adam Treat
On Friday 16 April 2010 05:10:25 pm Bill Hoffman wrote:
 Hi,
 
 Adam Treat (tr...@kde.org) suggested that I join this list to talk about
 CMake as an option for a unified cross platform build solution.  My name
 is Bill Hoffman.  I am the lead CMake developer.  My company Kitware
 created and supports CMake.  I think CMake would have a lot to offer the
 WebKit developers.
 
 If you are not familiar with CMake, I did a google tech talk in December
 which can be found here:
 http://www.youtube.com/watch?v=8Ut9o4OdSC0feature=youtube_gdata
 
 Another article about how KDE switched to CMake can be found here:
 Why the KDE project switched to CMake -- and how
 http://lwn.net/Articles/188693/
 
 If you are interested in moving to CMake, I would be interested in
 helping.  If you have any questions about CMake, fire away!
 
 Thanks.
 
 -Bill

I asked Bill to introduce himself here because I think CMake represents the 
best hope for WebKit to find a way out of the current build system 
proliferation we are experiencing.  Of the meta-buildsystems in existence I 
think CMake is by far the most powerful and mature.  CMake is by far the most 
widespread and supported.  It is already used successfully by Open Source 
projects of a comparable scope to WebKit and with similar cross-platform 
needs: LLVM, KDE, Boost.

I know that WebKit already has GYP and QMake meta-buildsystems, but to my 
knowledge both are inferior to CMake.  In fact, I do not think CMake is 
lacking in any important way to the features of GYP.

What's more, the WebKit project has already had a CMake based buildsystem.  
This is what the 'Unity' nascent QtWebkit port used originally.  I think we 
should re-introduce it and seriously consider using CMake as a cross-platform 
solution to our build system proliferation issues.

I highly encourage you all to view the google tech talk above as it gives a 
great introduction to CMake.

Cheers,
Adam
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Eric Seidel
I don't see this as a decision needing pre-approval.

This is a decision needing code.  No one has tried to make Mac, Win,
or other ports use a common system yet.  Obviously converting them in
the end requires buy-in from those ports.  But producing a demo
doesn't/shouldn't.

I eventually plan to look at this task.  When I do, I'll take a peek at CMake.

Someone just needs to sit down and build something.  Then we can make
an informed decision.

-eric

On Fri, Apr 16, 2010 at 2:29 PM, Adam Treat tr...@kde.org wrote:
 On Friday 16 April 2010 05:10:25 pm Bill Hoffman wrote:
 Hi,

 Adam Treat (tr...@kde.org) suggested that I join this list to talk about
 CMake as an option for a unified cross platform build solution.  My name
 is Bill Hoffman.  I am the lead CMake developer.  My company Kitware
 created and supports CMake.  I think CMake would have a lot to offer the
 WebKit developers.

 If you are not familiar with CMake, I did a google tech talk in December
 which can be found here:
 http://www.youtube.com/watch?v=8Ut9o4OdSC0feature=youtube_gdata

 Another article about how KDE switched to CMake can be found here:
 Why the KDE project switched to CMake -- and how
 http://lwn.net/Articles/188693/

 If you are interested in moving to CMake, I would be interested in
 helping.  If you have any questions about CMake, fire away!

 Thanks.

 -Bill

 I asked Bill to introduce himself here because I think CMake represents the
 best hope for WebKit to find a way out of the current build system
 proliferation we are experiencing.  Of the meta-buildsystems in existence I
 think CMake is by far the most powerful and mature.  CMake is by far the most
 widespread and supported.  It is already used successfully by Open Source
 projects of a comparable scope to WebKit and with similar cross-platform
 needs: LLVM, KDE, Boost.

 I know that WebKit already has GYP and QMake meta-buildsystems, but to my
 knowledge both are inferior to CMake.  In fact, I do not think CMake is
 lacking in any important way to the features of GYP.

 What's more, the WebKit project has already had a CMake based buildsystem.
 This is what the 'Unity' nascent QtWebkit port used originally.  I think we
 should re-introduce it and seriously consider using CMake as a cross-platform
 solution to our build system proliferation issues.

 I highly encourage you all to view the google tech talk above as it gives a
 great introduction to CMake.

 Cheers,
 Adam
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Adam Treat
Sure.  Having Bill's and Kitware's help will hopefully make it easier to 
produce such a demo using CMake.  I pledge to help.

We can start with this:

http://trac.webkit.org/log/trunk/CMakeLists.txt?rev=17853

Cheers,
Adam

On Friday 16 April 2010 05:34:45 pm Eric Seidel wrote:
 I don't see this as a decision needing pre-approval.
 
 This is a decision needing code.  No one has tried to make Mac, Win,
 or other ports use a common system yet.  Obviously converting them in
 the end requires buy-in from those ports.  But producing a demo
 doesn't/shouldn't.
 
 I eventually plan to look at this task.  When I do, I'll take a peek at
 CMake.
 
 Someone just needs to sit down and build something.  Then we can make
 an informed decision.
 
 -eric
 
 On Fri, Apr 16, 2010 at 2:29 PM, Adam Treat tr...@kde.org wrote:
  On Friday 16 April 2010 05:10:25 pm Bill Hoffman wrote:
  Hi,
  
  Adam Treat (tr...@kde.org) suggested that I join this list to talk about
  CMake as an option for a unified cross platform build solution.  My name
  is Bill Hoffman.  I am the lead CMake developer.  My company Kitware
  created and supports CMake.  I think CMake would have a lot to offer the
  WebKit developers.
  
  If you are not familiar with CMake, I did a google tech talk in December
  which can be found here:
  http://www.youtube.com/watch?v=8Ut9o4OdSC0feature=youtube_gdata
  
  Another article about how KDE switched to CMake can be found here:
  Why the KDE project switched to CMake -- and how
  http://lwn.net/Articles/188693/
  
  If you are interested in moving to CMake, I would be interested in
  helping.  If you have any questions about CMake, fire away!
  
  Thanks.
  
  -Bill
  
  I asked Bill to introduce himself here because I think CMake represents
  the best hope for WebKit to find a way out of the current build system
  proliferation we are experiencing.  Of the meta-buildsystems in
  existence I think CMake is by far the most powerful and mature.  CMake
  is by far the most widespread and supported.  It is already used
  successfully by Open Source projects of a comparable scope to WebKit and
  with similar cross-platform needs: LLVM, KDE, Boost.
  
  I know that WebKit already has GYP and QMake meta-buildsystems, but to my
  knowledge both are inferior to CMake.  In fact, I do not think CMake is
  lacking in any important way to the features of GYP.
  
  What's more, the WebKit project has already had a CMake based
  buildsystem. This is what the 'Unity' nascent QtWebkit port used
  originally.  I think we should re-introduce it and seriously consider
  using CMake as a cross-platform solution to our build system
  proliferation issues.
  
  I highly encourage you all to view the google tech talk above as it gives
  a great introduction to CMake.
  
  Cheers,
  Adam
  ___
  webkit-dev mailing list
  webkit-dev@lists.webkit.org
  http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] python coding style, PEP-8, and 80-column line widths

2010-04-16 Thread Maciej Stachowiak


On Apr 16, 2010, at 1:48 PM, Eric Seidel wrote:


bike-shedding

I think 80 columns is a waste of time and hurts readability.

Instead of being smart about when we wrap code, 80 adheres to a
blanket rule, discourages long variable/function names, and needlessly
expands code vertically ignoring modern wider-than-long monitors.

The optparse code which was recently re-wrapped is one example of 80c
fail.  Impossible to tell in the wrapped version which arguments are
actually being listed (first argument to the function) because your
eye can't parse the start of each line.

That said.  I'd rather have you and Adam and Chris all working on the
Python than have folks lose interest due to code wrapping.  If the
consensus is 80c, I'll learn to deal. :)

The choice is either:
A. no wrapping rule to match the rest of WebKit
B. 80c to match the official PEP8 spec (and Google code).

I've chosen A. in the past.  Mostly to match my own personal bias  
I'm sure.


I haven't contributed to WebKit's Python code yet, but I will say that  
I agree with Eric's sentiments here. 80-column limit is archaic and  
pointless. No one is developing WebKit on a vt220.


Regards,
Maciej

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


Re: [webkit-dev] python coding style, PEP-8, and 80-column line widths

2010-04-16 Thread David Levin
(I have contributed but not often.) I also agree with  80 columns hurts
readability.

It doesn't take much looking to show a
lothttp://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py#L135of
lineshttp://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py#L259
thathttp://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py#L305
demonstratehttp://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py#L326
thishttp://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py#L449.
However, I understand the desire to just take PEP8 whole. Once you decide to
throw away one item, why not argue about any other (I tend to think 80
columns is the only thing that should be thrown out.)

Sincerely,
dc86ed7c29395f2b0863967f5350dfca4151be9d

On Fri, Apr 16, 2010 at 2:54 PM, Maciej Stachowiak m...@apple.com wrote:


 On Apr 16, 2010, at 1:48 PM, Eric Seidel wrote:

  bike-shedding

 I think 80 columns is a waste of time and hurts readability.

 Instead of being smart about when we wrap code, 80 adheres to a
 blanket rule, discourages long variable/function names, and needlessly
 expands code vertically ignoring modern wider-than-long monitors.

 The optparse code which was recently re-wrapped is one example of 80c
 fail.  Impossible to tell in the wrapped version which arguments are
 actually being listed (first argument to the function) because your
 eye can't parse the start of each line.

 That said.  I'd rather have you and Adam and Chris all working on the
 Python than have folks lose interest due to code wrapping.  If the
 consensus is 80c, I'll learn to deal. :)

 The choice is either:
 A. no wrapping rule to match the rest of WebKit
 B. 80c to match the official PEP8 spec (and Google code).

 I've chosen A. in the past.  Mostly to match my own personal bias I'm
 sure.


 I haven't contributed to WebKit's Python code yet, but I will say that I
 agree with Eric's sentiments here. 80-column limit is archaic and pointless.
 No one is developing WebKit on a vt220.

 Regards,
 Maciej


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

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Maciej Stachowiak


On Apr 16, 2010, at 2:45 PM, Adam Treat wrote:

Sure.  Having Bill's and Kitware's help will hopefully make it  
easier to

produce such a demo using CMake.  I pledge to help.

We can start with this:

http://trac.webkit.org/log/trunk/CMakeLists.txt?rev=17853


Can CMake generate native Xcode and Visual Studio project files? There  
are some people who consider it important to be able to edit, build  
and debug in the IDE.

Can it handle generated sources well?

I think those are the two toughest problems for any candidate unified  
build system.


Regards,
Maciej

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Adam Treat
On Friday 16 April 2010 06:21:39 pm Maciej Stachowiak wrote:
 On Apr 16, 2010, at 2:45 PM, Adam Treat wrote:
  Sure.  Having Bill's and Kitware's help will hopefully make it
  easier to
  produce such a demo using CMake.  I pledge to help.
  
  We can start with this:
  
  http://trac.webkit.org/log/trunk/CMakeLists.txt?rev=17853
 
 Can CMake generate native Xcode and Visual Studio project files? There
 are some people who consider it important to be able to edit, build
 and debug in the IDE.
 Can it handle generated sources well?

It was designed to do precisely that :)  Bill can speak to this, but the 
google tech talk gives a great overview.

Cheers,
Adam
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Maciej Stachowiak


On Apr 16, 2010, at 8:09 AM, Nikolas Zimmermann wrote:



Am 16.04.2010 um 16:44 schrieb Adam Treat:

I am very skeptical that it is feasible to write a gyp generator  
that would
output QMake files.  There is a log of magic in those QMake files.   
My sense is

that it would not be trivial by any means.

Plus, I don't like the idea of a meta-meta generators.  Seems way  
to mickey-

mouse to me.


Agreed to a certain degree. Using gyp/whatever to generate qmake  
files, to generate Makefile/Xcode files etc seems akward to me as  
well.


What we really need to resolve is adding/removing files from  
compilation, that's the most common

task that has to be done in 5+ build systems at the moment.


Besides adding, removing and renaming, the other thing that's really  
hard is adding a new generated source rule. Although this is not  
needed as frequently, I think anyone adding a new code generator  
script that has to work across all WebKit ports would have a hellish  
time of it right now.


If I had to do it myself, I would just skip any ports that don't use  
DerivedSources.make.




So I have a new proposal:

1) Maintain a list of headers/source files to be compiled for ALL  
platforms (ie. dom/Node.cpp, etc..)


2) Keep all existing Makefile.am, WebCore.pro etc files as  
templates, ie. WebCore.pro.template, with a special
   variable somewhere marking the $$HEADER_LIST$$ and the $ 
$SOURCE_LIST$$


3) Use a script that generates individual build files (eg.  
WebCore.pro) from WebCore.pro.template, it only
   needs to insert the file list with the correct syntax in the  
correct places


4) Keep all platform specific files to be compiled in the individual  
build system files (eg. WebCore.pro.template)


I think we'll never find a consensus on a single build system, there  
are too many different needs. I only care
about the most repetitive work in order to keep the build system  
up2date: adding/removing cross-platform files.


I think the proposal above does not handle the derived sources  
problem. It also doesn't handle files that are shared between multiple  
ports but not all ports. It also doesn't provide project files that  
are directly usable by IDEs, on platforms where that is the standard  
way to do development.


Once we start solving problems like that, I suspect we end up with  
something closer in complexity to Gyp or CMake.


Regards,
Maciej


Regards,
Maciej

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Peter Kasting
On Fri, Apr 16, 2010 at 3:35 PM, Maciej Stachowiak m...@apple.com wrote:

 I'm curious if the Chromium folks who created Gyp had any specific reason
 that they ruled out CMake as an option. (I have heard that it was considered
 and rejected.)


CCing a couple people involved if they wish to answer.

PK
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] python coding style, PEP-8, and 80-column line widths

2010-04-16 Thread Dirk Pranke
I think having longer lines of code hurts readability. There is lots
of typographic evidence
to back this up ( e.g.
http://webtypography.net/Rhythm_and_Proportion/Horizontal_Motion/2.1.2/.
Of
course, the typographic commentary applies to text rather than code,
and most text isn't indented,
but I still think it's right). Even where the monitors are wider than
they are tall argument goes, I
prefer to use that space for multiple columns of text, because even if
you do allow 80 char lines,
most lines are shorter and hence you have a lot of wasted space.

Granted, it is a combination of factors. I come from a C-based lineage
of 2-space indentation,
short variable names, and 8-character function names. Those all
combine to make an 80-
character line length workable. People who come from a 4-space (or
greater) indentation,
and the long variable-names style of Java or C++-with-templates will
tend to see things
differently.

-- Dirk

On Fri, Apr 16, 2010 at 3:09 PM, David Levin le...@chromium.org wrote:
 (I have contributed but not often.) I also agree with  80 columns hurts
 readability.
 It doesn't take much looking to show a lot of lines that demonstrate this.
 However, I understand the desire to just take PEP8 whole. Once you decide to
 throw away one item, why not argue about any other (I tend to think 80
 columns is the only thing that should be thrown out.)
 Sincerely,
 dc86ed7c29395f2b0863967f5350dfca4151be9d
 On Fri, Apr 16, 2010 at 2:54 PM, Maciej Stachowiak m...@apple.com wrote:

 On Apr 16, 2010, at 1:48 PM, Eric Seidel wrote:

 bike-shedding

 I think 80 columns is a waste of time and hurts readability.

 Instead of being smart about when we wrap code, 80 adheres to a
 blanket rule, discourages long variable/function names, and needlessly
 expands code vertically ignoring modern wider-than-long monitors.

 The optparse code which was recently re-wrapped is one example of 80c
 fail.  Impossible to tell in the wrapped version which arguments are
 actually being listed (first argument to the function) because your
 eye can't parse the start of each line.

 That said.  I'd rather have you and Adam and Chris all working on the
 Python than have folks lose interest due to code wrapping.  If the
 consensus is 80c, I'll learn to deal. :)

 The choice is either:
 A. no wrapping rule to match the rest of WebKit
 B. 80c to match the official PEP8 spec (and Google code).

 I've chosen A. in the past.  Mostly to match my own personal bias I'm
 sure.

 I haven't contributed to WebKit's Python code yet, but I will say that I
 agree with Eric's sentiments here. 80-column limit is archaic and pointless.
 No one is developing WebKit on a vt220.

 Regards,
 Maciej

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


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


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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman
On Fri, Apr 16, 2010 at 6:38 PM, Peter Kasting pkast...@google.com wrote:
 On Fri, Apr 16, 2010 at 3:35 PM, Maciej Stachowiak m...@apple.com wrote:

 I'm curious if the Chromium folks who created Gyp had any specific reason
 that they ruled out CMake as an option. (I have heard that it was considered
 and rejected.)


I belive I can answer that.  During my talk at google, I met with with
Mark Mentovai and talked to him about Gyp and CMake.  The main thing
that he was trying to avoid was the requirement that CMake be
installed for the build.  That is true, CMake does have to be
installed.  However, CMake is installed on more an more systems.   The
cmake.org site has about 2K downloads per day, and most linux distros
include CMake.   With KDE using CMake, it has become pretty easy to
get.   Apple is also using CMake for the LLVM project, so it should be
installed and accepted at Apple.  I worked with Doug Gregor of the
LLVM team to help him convince the Apple testing folks to allow for
CMake to be installed.

-Bill
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Maciej Stachowiak


On Apr 16, 2010, at 5:50 PM, Bill Hoffman wrote:

On Fri, Apr 16, 2010 at 6:38 PM, Peter Kasting pkast...@google.com  
wrote:
On Fri, Apr 16, 2010 at 3:35 PM, Maciej Stachowiak m...@apple.com  
wrote:


I'm curious if the Chromium folks who created Gyp had any specific  
reason
that they ruled out CMake as an option. (I have heard that it was  
considered

and rejected.)




I belive I can answer that.  During my talk at google, I met with with
Mark Mentovai and talked to him about Gyp and CMake.  The main thing
that he was trying to avoid was the requirement that CMake be
installed for the build.  That is true, CMake does have to be
installed.  However, CMake is installed on more an more systems.   The
cmake.org site has about 2K downloads per day, and most linux distros
include CMake.   With KDE using CMake, it has become pretty easy to
get.   Apple is also using CMake for the LLVM project, so it should be
installed and accepted at Apple.  I worked with Doug Gregor of the
LLVM team to help him convince the Apple testing folks to allow for
CMake to be installed.


FWIW, I don't have CMake installed, and I have everything a typical  
Apple developer would have and then some. I'm running SnowLeopard and  
the latest Xcode. CMake is also not installed by default on Windows  
and I am not sure if it comes with the cygwin distribution we use.


When you say installed, does that mean it *has* to be in some system  
location? Could it be installed somewhere in the WebKit build tree?  
Our scripts download certain needed tools and libraries by default, so  
at least from the WebKit POV this is not necessarily a showstopper.


Also: how hard is the dependency on being installed? Is this a  
solvable problem if it turns out to be a showstopper for some folks?



And finally, I'd still like to hear from the Chromium folks whether  
there were any other issues. This one seems fairly minor.


Regards,
Maciej

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Nico Weber
This is from an earlier thread on this issue on webkit-dev:


We also considered CMake, and had it demonstrably working for some of
our smaller projects as well.  Unfortunately, transitioning to CMake
would have required moving everything over at once, without allowing
for some existing projects to be maintained by hand during a
transition period.  CMake-generated files contain absolute paths, so a
.tar or .zip of the source tree could not be primed with CMake output,
complicating the bootstrapping process for new contributors.  A less
significant factor was that CMake introduced an additional binary
build prerequisite, which would have had to have been installed
everywhere.  Python is already a prerequisite for Chromium, so a
Python tool was easier to deploy.


Nico

(I'm not involved with gyp at all, I just remembered that old thread)

On Fri, Apr 16, 2010 at 6:45 PM, Maciej Stachowiak m...@apple.com wrote:

 On Apr 16, 2010, at 5:50 PM, Bill Hoffman wrote:

 On Fri, Apr 16, 2010 at 6:38 PM, Peter Kasting pkast...@google.com
 wrote:

 On Fri, Apr 16, 2010 at 3:35 PM, Maciej Stachowiak m...@apple.com wrote:

 I'm curious if the Chromium folks who created Gyp had any specific
 reason
 that they ruled out CMake as an option. (I have heard that it was
 considered
 and rejected.)


 I belive I can answer that.  During my talk at google, I met with with
 Mark Mentovai and talked to him about Gyp and CMake.  The main thing
 that he was trying to avoid was the requirement that CMake be
 installed for the build.  That is true, CMake does have to be
 installed.  However, CMake is installed on more an more systems.   The
 cmake.org site has about 2K downloads per day, and most linux distros
 include CMake.   With KDE using CMake, it has become pretty easy to
 get.   Apple is also using CMake for the LLVM project, so it should be
 installed and accepted at Apple.  I worked with Doug Gregor of the
 LLVM team to help him convince the Apple testing folks to allow for
 CMake to be installed.

 FWIW, I don't have CMake installed, and I have everything a typical Apple
 developer would have and then some. I'm running SnowLeopard and the latest
 Xcode. CMake is also not installed by default on Windows and I am not sure
 if it comes with the cygwin distribution we use.

 When you say installed, does that mean it *has* to be in some system
 location? Could it be installed somewhere in the WebKit build tree? Our
 scripts download certain needed tools and libraries by default, so at least
 from the WebKit POV this is not necessarily a showstopper.

 Also: how hard is the dependency on being installed? Is this a solvable
 problem if it turns out to be a showstopper for some folks?


 And finally, I'd still like to hear from the Chromium folks whether there
 were any other issues. This one seems fairly minor.

 Regards,
 Maciej

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

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


Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Marc-Antoine Ruel
2010/4/16 Nikolas Zimmermann zimmerm...@physik.rwth-aachen.de


 Am 16.04.2010 um 19:14 schrieb Marc-Antoine Ruel:

 Please guys,

 No need to speculate here on what I proposed at the session since Evan
 somehow left some details out and let me reinforce some points. For those
 who missed the session, please understand that what's Peter said isn't
 exactly what we agreed on.

 

 What you can do *only if you want*:
 - Extract the file list of your port project into a single simple file and
 have your build system import this file.

 I'm not talking about pushing anyone's back and I have *no intention* to.
 So unless you want to actively submit patches towards the proposal, please
 let this thread die, it's an unproductive use of my time. I don't plan to do
 that in the very short term as I have other things on my plate, I'll
 definitely do this incrementally.


 This thread is not only about what you may have proposed in the meeting.
 Please reread the other mails of the thread.
 I'm really a bit astonished, reading statments like your last sentences
 above. It's not very polite to state you don't care about other opinions and
 call that an unproductive use of your time.

 Cheers,
 Niko


Sorry, I didn't mean to be blunt but we did wear the PM hat and decide AI at
the session. Chromium folks did look at CMake in the past, I'll add comments
related to this build system to the other thread.

-- 
M-A
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman
On Fri, Apr 16, 2010 at 9:45 PM, Maciej Stachowiak m...@apple.com wrote:
 FWIW, I don't have CMake installed, and I have everything a typical Apple
 developer would have and then some. I'm running SnowLeopard and the latest
 Xcode. CMake is also not installed by default on Windows and I am not sure
 if it comes with the cygwin distribution we use.


It can come with cygwin, and nothing is installed on Windows by
default, not even the compiler...   Macports has CMake, and of course
we have binaries at cmake.org.

 When you say installed, does that mean it *has* to be in some system
 location? Could it be installed somewhere in the WebKit build tree? Our
 scripts download certain needed tools and libraries by default, so at least
 from the WebKit POV this is not necessarily a showstopper.


It can be installed anywhere.   There are binaries for all marjor
OS's on www.cmake.org.  It is setup to run from any directory, so you
don't need root or anything to install.

http://www.cmake.org/cmake/resources/software.html

 Also: how hard is the dependency on being installed? Is this a solvable
 problem if it turns out to be a showstopper for some folks?


It has to be installed, if this is a show stopper, then it is a show stopper.

 And finally, I'd still like to hear from the Chromium folks whether there
 were any other issues. This one seems fairly minor.

I would as well.  :)

-Bill
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman
On Fri, Apr 16, 2010 at 9:57 PM, Nico Weber tha...@chromium.org wrote:
 This is from an earlier thread on this issue on webkit-dev:

 
 We also considered CMake, and had it demonstrably working for some of
 our smaller projects as well.  Unfortunately, transitioning to CMake
 would have required moving everything over at once, without allowing
 for some existing projects to be maintained by hand during a
 transition period.  CMake-generated files contain absolute paths, so a
 .tar or .zip of the source tree could not be primed with CMake output,
 complicating the bootstrapping process for new contributors.  A less
 significant factor was that CMake introduced an additional binary
 build prerequisite, which would have had to have been installed
 everywhere.  Python is already a prerequisite for Chromium, so a
 Python tool was easier to deploy.

I think you could do it part way.  CMake has a new feature called
external_project that allows you to download/configure/build packages
using any build system.

-Bill
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Adam Treat
On Friday 16 April 2010 09:58:17 pm Bill Hoffman wrote:
  Also: how hard is the dependency on being installed? Is this a solvable
  problem if it turns out to be a showstopper for some folks?
 
 It has to be installed, if this is a show stopper, then it is a show
 stopper.

To be clear, it just has to be in the path, right?  Which I think could be 
managed ;)

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Marc-Antoine Ruel
Thanks Nico for digging up the archive.

As I said in the other thread, the people at the session mostly looked about
reducing the number of build system, not forcing anyone to use any tool. If
some teams wants to switch to CMake, prefect as long as the number of build
tool reduces. Nobody seemed willing to switch to qtmake. Nobody at the
meeting advocated for CMake.

I don't have first-hand experience about CMake but from I only heard midly
negative comments. The generated xcodeproj and vcproj are far from 'native'
and from f2f discussion, at least one llvm guy isn't happy about CMake and
would rather move it off. The 'native' IDE feel was very high in our
priority list, especially in XCode in fact.


2010/4/16 Adam Treat tr...@kde.org

 On Friday 16 April 2010 09:58:17 pm Bill Hoffman wrote:
   Also: how hard is the dependency on being installed? Is this a
 solvable
   problem if it turns out to be a showstopper for some folks?
 
  It has to be installed, if this is a show stopper, then it is a show
  stopper.

 To be clear, it just has to be in the path, right?  Which I think could be
 managed ;)


I don't know if anyone really cares about the requirement of having another
tool installed on the system or not as an hinderance, I don't mind.

So in the end, if some team want to switch to CMake, just check-in stuff. :)

Not that my opinion counts at all.

-- 
M-A
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman

 We can make binaries available through a convenient download script
 (possibly one that gets a source drop and builds it) if we have to. In fact,
 when WebKit first switched to Subversion, for a while you had to get your
 own copy to even check out the tree.

Sounds good.

 All I'm saying is that it's not *currently* installed out of the box on Mac
 OS X.

Sure.


 So by installed we're just talking about the fact that it's an executable,
 not a script?
Yes, it is a binary.
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman
On Fri, Apr 16, 2010 at 10:04 PM, Adam Treat tr...@kde.org wrote:
 On Friday 16 April 2010 09:58:17 pm Bill Hoffman wrote:
  Also: how hard is the dependency on being installed? Is this a solvable
  problem if it turns out to be a showstopper for some folks?

 It has to be installed, if this is a show stopper, then it is a show
 stopper.

 To be clear, it just has to be in the path, right?  Which I think could be
 managed ;)


No, it is much more than the path.  CMake needs to be around during
the build, and at configure time.  It does system introspection, also
with the makefiles it includes a depend generator.   So, to be clear,
you have to install and run CMake on the machine where you are
building the software.

-Bill
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Maciej Stachowiak


On Apr 16, 2010, at 7:17 PM, Bill Hoffman wrote:

On Fri, Apr 16, 2010 at 10:10 PM, Marc-Antoine Ruel mar...@chromium.org 
 wrote:

Thanks Nico for digging up the archive.
As I said in the other thread, the people at the session mostly  
looked about
reducing the number of build system, not forcing anyone to use any  
tool. If
some teams wants to switch to CMake, prefect as long as the number  
of build
tool reduces. Nobody seemed willing to switch to qtmake. Nobody at  
the

meeting advocated for CMake.
I don't have first-hand experience about CMake but from I only  
heard midly
negative comments. The generated xcodeproj and vcproj are far from  
'native'
and from f2f discussion, at least one llvm guy isn't happy about  
CMake and

would rather move it off. The 'native' IDE feel was very high in our
priority list, especially in XCode in fact.



It is as native as we can make it.   However, we do call cmake during
the build at some points, to overcome shortfalls of the build tool.
Also, to re-run cmake if any of the input files change. Also, basic
system commands like cp can be done with cmake -E copy_file so it is
portable.


Calling cmake during the build would likely be a showstopper for the  
Mac port. As far as I know, Apple's build farm does not have CMake  
installed (at least not on older build trains). And it's not easy to  
convince the build engineers to install custom build tools.


Regards,
Maciej

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


Re: [webkit-dev] CMake as a build system?

2010-04-16 Thread Bill Hoffman
 Calling cmake during the build would likely be a showstopper for the Mac
 port. As far as I know, Apple's build farm does not have CMake installed (at
 least not on older build trains). And it's not easy to convince the build
 engineers to install custom build tools.


I am told they have it now for LLVM.   But, I do not work for Apple,
so I can not verify that.

-Bill
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] [webkit meeting notes] build systems

2010-04-16 Thread Nikolas Zimmermann


Am 16.04.2010 um 18:14 schrieb Kevin Ollivier:


Hi Nikolas,

On Apr 16, 2010, at 8:09 AM, Nikolas Zimmermann wrote:



Am 16.04.2010 um 16:44 schrieb Adam Treat:

I am very skeptical that it is feasible to write a gyp generator  
that would
output QMake files.  There is a log of magic in those QMake  
files.  My sense is

that it would not be trivial by any means.

Plus, I don't like the idea of a meta-meta generators.  Seems way  
to mickey-

mouse to me.


Agreed to a certain degree. Using gyp/whatever to generate qmake  
files, to generate Makefile/Xcode files etc seems akward to me as  
well.


What we really need to resolve is adding/removing files from  
compilation, that's the most common
task that has to be done in 5+ build systems at the moment. So I  
have a new proposal:


1) Maintain a list of headers/source files to be compiled for ALL  
platforms (ie. dom/Node.cpp, etc..)


2) Keep all existing Makefile.am, WebCore.pro etc files as  
templates, ie. WebCore.pro.template, with a special
  variable somewhere marking the $$HEADER_LIST$$ and the $ 
$SOURCE_LIST$$


3) Use a script that generates individual build files (eg.  
WebCore.pro) from WebCore.pro.template, it only
  needs to insert the file list with the correct syntax in the  
correct places


4) Keep all platform specific files to be compiled in the  
individual build system files (eg. WebCore.pro.template)


I think we'll never find a consensus on a single build system,  
there are too many different needs. I only care
about the most repetitive work in order to keep the build system  
up2date: adding/removing cross-platform files.


Of course this is some kind of meta-meta build system, but we could  
also agree to move the template files in a WebCore/build-templates
folder and run a update-project-files script after adding/remove  
files, that generates the build files, like WebCore.pro and commit  
them.
This way only the person who added/removed a file from build would  
need to run that script, instead of every one, this would effectively

hide the meta-meta build system.

If we find an acceptable solution for just adding/removing cross- 
platform buildable files that it would already make me happy :-)


Correct me if I'm wrong, but I thought it would actually be possible  
to have the values for HEADER_LIST and SOURCE_LIST set in a separate  
file, and that Qt and GTK build systems could then just include that  
file. This way we could avoid using templates and such. Just add the  
included file to the tree (e.g. WebCore/sources.inc) and have the Qt  
and GTK projects include WebCore/sources.inc and reference those  
variables. As I mentioned earlier, I actually coded up something  
using this approach a long time ago back when wx was still using  
Bakefile, but I guess it never caught the attention of projects like  
Qt as I never got any feedback on it. (Or maybe the idea was just so  
obviously flawed somehow. :) Here's the script:


http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/update-sources-list.py

It would probably not take long at all to have getWebCoreFilesDict  
pull from a gyp project, XCode project, or whatever we wanted to use  
as the master file list that should be updated.




Hi Kevin,

I think that solution could work, though when reading through the  
other mails, especially Maciejs mail regarding the generated-source  
files, this solution probably is just too simple.
I also take back my proposal, I didn't have certain things in mind  
when writing it, especially not the generated sources..


We do need something more sophisticated.

Have a nice day,
Niko

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