Re: [webkit-dev] Buildsystem cleanup

2013-04-10 Thread Kevin Ollivier
Hi Patrick,

On Apr 10, 2013, at 8:12 PM, Patrick Gansterer wrote:

[snip]

 1. There's also the Wx port, but they don't seem very interested in
 switching and it seems the build system is very low maintenance.
 
 There is still a patch at webkit.org/b/73100 for adding CMake files for Wx.

The decision has already been made to remove wx from the tree (I need to whip 
up a patch when I have time…), so it probably isn't worth spending time on 
this. 

Regards,

Kevin

 -- Patrick
 
 ___
 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] Is the wxWidgets port maintained?

2013-02-12 Thread Kevin Ollivier
 level -- Chromium's Content
 layer or https://code.google.com/p/chromiumembedded/.  Maybe one of
 those options are a better solution for a port like Wx with limited
 resources?

Yes, in fact, that's an idea that has been stewing in my head a while now. It's 
mostly an issue of wxWebKit already being used in and working fine for a few 
projects, so there isn't a pressing need to deal with this issue right now, but 
I suspect when I need to start a new project, that will probably be the route I 
take. Part of the hesitation, though, is that I honestly find this project a 
lot of fun to hack on. :) By and large, I really do find this a great project 
and community to be a part of.

 Again, my apologies to you Kevin for my part in all this.

You mean for helping me start this port in the first place, which was a godsend 
to me in the work I was and am doing, and has led to me learning a great deal 
over the years? Or, do you mean for getting the ball rolling that today leads 
me to have the other cross-platform WebKit options you mentioned, like Chromium 
and Qt, to choose from if I wanted to switch? Well... okay then, apology 
accepted. :)

I've got some other comments to make, but I've got some stuff I need to get out 
the door, so there will probably be emails trickling out over the next couple 
days or so. I just felt compelled to respond to this message first, as I think 
in every instance you, and many others in the community, have really only tried 
to be helpful, and that is deeply appreciated. Please don't beat yourself up 
over that!

Thanks,

Kevin

 On Mon, Feb 11, 2013 at 7:44 PM, Benjamin Poulain benja...@webkit.org wrote:
 On Mon, Feb 11, 2013 at 6:17 PM, Kevin Ollivier kev...@theolliviers.com
 wrote:
 
 To be honest, I think I know more about the wx port, and would probably be
 better able to cleanly remove it from the tree, than you would. As I've said
 from the start, I'll remove it if that's what people want, but I do think
 the severity of this problem is being exaggerated, and going from posing the
 question of project status to giving a one week eviction notice in less than
 24 hours seems a bit rash to say the least. I wish I could get paid good
 money to spend my time doing things like creating patches to remove inactive
 files from source trees. :) As it stands, though, this wasn't exactly on my
 TODO list for this week as of, say, this morning, and I do have plenty on it
 right now. I'm already even regretting how much time I've put into this
 discussion.
 
 
 I am sorry, I should have given more context.
 
 There is visibly a growing discontent in the community about the cost
 imposed from small ports. Just two weeks ago, there were 2 threads
 discussing the cost of peripheral ports.
 I am convinced a part of this is technical. The project has not changed its
 policies while the number of ports was growing. While duplicated code and
 interfaces was okay when there were only 3 ports, it has become a pain when
 we have 7+ ports to updates.
 
 This weekend, I was looking at technical ways to reduce the problems, and
 the wx port looks like one of the issue. Everyone with whom I have discussed
 that today seems to agree.
 
 You said yourself As things stand, I'd not only be okay with, but actually
 prefer, that no other port maintainers do anything to try and fix the wx
 build.. The best way to achieve that and reduce the maintenance for
 everyone is to have the wx port developed outside the tree. Which is why I
 propose to do the change.
 
 To think, it was wx and GTK that started the whole WebKit porting
 experiment in the first place, thanks to the gracious help of the WebKit
 community, and particularly Eric, and now I feel like the project can't push
 me out the door fast enough. ;-)
 
 Please be patient, I will take care of it, but I doubt I will manage it
 this week.
 
 
 In his email WebKit Wishes, Eric said It can’t be the job of the core
 maintainers to care about all the peripheral ports which contribute very
 little core code.
 I also think it is just not fair having hundred of peoples taking care of
 updating the port.
 
 There is no rush to move the port out of the tree. I suggested this week in
 order to have a definite timeline but there is no urgency. If there is
 interest in the wxWidgets community to make the port actively developed,
 that would be a great solution too.
 You do not have to do the change by yourself. I'd be happy to start if that
 helps you, and you can refine the changes.
 
 Cheers,
 Benjamin
 
 ___
 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 mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit

Re: [webkit-dev] Is the wxWidgets port maintained?

2013-02-11 Thread Kevin Ollivier
Hi Benjamin,

On Feb 10, 2013, at 7:23 PM, Benjamin Poulain wrote:

 Hi again,
 
 While looking into DRT changes, I notice there is zero activity on the 
 wxWidgets implementation.
 Looking at WebCore/WebKit, excluding general changes, the last commit for 
 wxWidgets is 6 months old: http://trac.webkit.org/changeset/126457
 
 So...is the port still active?
 Maybe it should live outside webkit.org like the Haiku port?

The project is not dead per-se, but it's true that it's not very active these 
days. Recently, I haven't had a lot of time to devote to the port. The other 
big factor has been that I've been the only active contributor to the port 
pretty much since its inception, which has made patch submission pretty 
difficult due to the challenge of finding a reviewer with knowledge of the wx 
code. As a result, the wx activity on trunk will look pretty sparse since I'm 
making most of my changes on the wx port's git repo on gitorious.org rather 
than submitting patches for trunk. When it comes to trunk, I basically just 
periodically submit build fixes for any build breakages in order to merge and 
update my git mirror.

I actually have recently been working on a patch to get trunk building again, 
though. The path of least resistance for me would simply be to ask people to 
ignore the wx port in their changes, but leave it in the tree. git is much 
better about these things, but I still remember what a pain it was to maintain 
the entire port in an svn branch back in the day, and I'd rather not re-try 
that experiment unless I really have to. If people feel strongly that I should 
approach things another way, though, I'm certainly open to ideas.

Thanks,

Kevin

 Benjamin
 ___
 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] Is the wxWidgets port maintained?

2013-02-11 Thread Kevin Ollivier

On Feb 11, 2013, at 12:27 PM, Benjamin Poulain wrote:

 On Mon, Feb 11, 2013 at 11:27 AM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 I actually have recently been working on a patch to get trunk building again, 
 though. The path of least resistance for me would simply be to ask people to 
 ignore the wx port in their changes, but leave it in the tree. git is much 
 better about these things, but I still remember what a pain it was to 
 maintain the entire port in an svn branch back in the day, and I'd rather not 
 re-try that experiment unless I really have to. If people feel strongly that 
 I should approach things another way, though, I'm certainly open to ideas.
 
 Asking people to ignore wx is basically the same as having the code outside 
 the tree. Having the code outside the tree would make this change effective 
 instead of having one more rule to the project.
 
 Looking at the history of wx's WebKit and platform code, the vast majority of 
 changes are from Apple/Google. I think it is unfair to have many people 
 maintain your code while you develop the project outside of the tree.
 
 Given the data, I am in favor of removing the wx port from webkit.org and 
 have it be a separate tree on Gitorious or GitHub.
 What are the main pain points of developing outside webkit.org for you? Is 
 there anything that can be done in the structure to simplify such changes?

My big concern is not losing history while moving the wx files out of the tree 
and into a git branch, and also at the same time not losing the ability to 
merge the rest of trunk safely. Though I haven't investigated the process yet, 
so I don't know how easy or hard it may be. 

Thanks,

Kevin

 Benjamin

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


Re: [webkit-dev] Is the wxWidgets port maintained?

2013-02-11 Thread Kevin Ollivier
Hi Martin,

On Feb 11, 2013, at 12:47 PM, Martin Robinson wrote:

 On Mon, Feb 11, 2013 at 11:27 AM, Kevin Ollivier
 kev...@theolliviers.com wrote:
 
 The project is not dead per-se, but it's true that it's not very active
 these days. Recently, I haven't had a lot of time to devote to the port. The
 other big factor has been that I've been the only active contributor to the
 port pretty much since its inception, which has made patch submission pretty
 difficult due to the challenge of finding a reviewer with knowledge of the
 wx code. As a result, the wx activity on trunk will look pretty sparse since
 I'm making most of my changes on the wx port's git repo on gitorious.org
 rather than submitting patches for trunk. When it comes to trunk, I
 basically just periodically submit build fixes for any build breakages in
 order to merge and update my git mirror.
 
 Regardless of whether the Wx port stays in the tree, I think you
 should consider changing your build system. I believe the only port
 that uses waf is Wx, so using cmake or gyp will make your work a lot
 easier.

Actually, it will, if anything, increase the workload. Because I use waf, I am 
able to use Python to auto-generate the list of sources to build. In other 
words, I tell it to build all sources in a defined list of base source 
directories, along with all sources in baseDirectory/portName subdirs (where in 
this case I set portName to wx) and FileNameportName.cpp (e.g. FileNameWX.cpp 
if the port is wx), along with some additional similar rules for USE defines, 
like CF. Then if there are exceptions to these rules, I just filter them out of 
the results or explicitly add files when I need to, say if I need to compile a 
single Mac port source file. Since the WebKit tree is well-structured, this 
approach works quite well, with me having to define exceptions fairly rarely. 
The main issue I run into seems to be derived sources files that are no longer 
built / used but are still being generated. The performance hit of this is 
about 1 added second to my build, though on slower machines 
 it might be a couple seconds. For me, it's negligible given the benefit I get 
from it.

As an example, I'm still at the linking phase right now on Mac (dealing with 
the removal of the libWebKitLibrarySnowLeopard.a and a couple other things), 
but my patch so far to catch up with 6 months of changes in trunk is right now 
at 19KB, and about 30 lines or so of that is actually the build system changes. 
The number of exceptions I needed to add to the build over that time is 4, and 
I added about as many build directories to the list as well. I suspect if we 
were to accumulate the changes to cmake and gyp files over those 6 months, it 
will probably be well above 30-40 lines. Sure, I wouldn't have written all 
those lines myself, but sharing work with other developers is still more work 
for any individual developer than having the computer do the work for you. :)

Everyone tells me how great cmake and gyp is, but I'm not sure any of them have 
taken any time out to actually investigate whether or not waf is as good as or 
better than their preferred tool. (It's not as good as auto-generating project 
files, but it's also in Python so integrating it with gyp would probably be a 
simple task.) I've often wanted to take some time out to get other ports 
building with it, as it probably would take a day or two at most, but I lack 
both the time and expertise in other ports to spend much time on that. Much of 
the code in there already is port-agnostic, with most wx-specific bits in a 
port_name == wx check, but of course there's the issue of the various 
port-specific build configurations and such for each port.

Regards,

Kevin

 --Martin

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


Re: [webkit-dev] Is the wxWidgets port maintained?

2013-02-11 Thread Kevin Ollivier

On Feb 11, 2013, at 2:13 PM, Brent Fulgham wrote:

 Hi Everyone,
 
 On Mon, Feb 11, 2013 at 1:51 PM, Ryosuke Niwa rn...@webkit.org wrote:
 Asking people to ignore wx is basically the same as having the code outside 
 the tree. Having the code outside the tree would make this change effective 
 instead of having one more rule to the project.
 
 My big concern is not losing history while moving the wx files out of the 
 tree and into a git branch, and also at the same time not losing the ability 
 to merge the rest of trunk safely. Though I haven't investigated the process 
 yet, so I don't know how easy or hard it may be. 
 
 I kindly ask you to let us remove it from trunk in that case.
 
 Given that we have 400+ contributors, having a port that's only maintained by 
 a single person on trunk imposes a significant maintenance burden on others 
 even if you said that people can break Wx port because not everyone reads 
 this thread and wouldn't necessarily know your intent.
 
 I would be sad if the WebKit project started to exclude ports simply because 
 they were (largely) maintained by a single person. I do agree that it's not 
 fair to other ports if the primary developer is not working to keep the port 
 building, but life happens and sometimes a lone developer cannot stay on top 
 of the rapidly-changing source base.
 
 Having these ports in the main tree is a good thing, in my opinion, because 
 it helps avoid fragmentation, and often the refactoring required to enable 
 these ports provides architectural benefits to the project as a whole.

FWIW, I think it'd be pretty simple to add a generic rule that if you want your 
port to benefit from shared maintenance, you must set up a build bot on the 
waterfall and/or an EWS bot. In fact, I personally think this ought to be a 
rule regardless of what happens to the wx port, as IMHO it's pretty much a 
pre-requisite for allowing people contributors on other ports to make changes 
to your code safely. 

Thanks,

Kevin

 -Brent

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


Re: [webkit-dev] Is the wxWidgets port maintained?

2013-02-11 Thread Kevin Ollivier

On Feb 11, 2013, at 2:01 PM, Martin Robinson wrote:

 On Mon, Feb 11, 2013 at 1:41 PM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 
 Actually, it will, if anything, increase the workload. Because I use waf, I 
 am able to use Python to auto-generate the list of sources to build. In 
 other words, I tell it to build all sources in a defined list of base source 
 directories, along with all sources in baseDirectory/portName subdirs (where 
 in this case I set portName to wx) and FileNameportName.cpp (e.g. 
 FileNameWX.cpp if the port is wx), along with some additional similar rules 
 for USE defines, like CF. Then if there are exceptions to these rules, I 
 just filter them out of the results or explicitly add files when I need to, 
 say if I need to compile a single Mac port source file. Since the WebKit 
 tree is well-structured, this approach works quite well, with me having to 
 define exceptions fairly rarely. The main issue I run into seems to be 
 derived sources files that are no longer built / used but are still being 
 generated. The performance hit of this is about 1 added second to my build, 
 though on slower machin
 es it might be a couple seconds. For me, it's negligible given the benefit I 
get from it.
 
 If I understand correctly, gyp is also capable of this kind of
 wildcard inclusion and exclusion. This will be the tool that allows
 the gyp build to be shared among many ports with the same source
 lists.

Yes, but that is not what I see when I check, say, Source/WebCore/WebCore.gypi. 
Which, BTW, has had around 500 revisions in it over the past 6 months in 
comparison to the ~10 lines of changes to source files in my patch-in-progress. 
So while gyp itself might have that feature in it, for whatever reason, the 
WebKit projects do not utilize that feature right now, so in practice, a switch 
to gyp means a switch away from rule-based compilation.

Plus, my overarching reason for switching away from a tool like gyp or bakefile 
was to get away from using domain-specific languages for build tools. In short, 
waf doesn't have a syntax, it has an API. With waf and Python, I don't have to 
worry about fitting my design goals into some project file format built perhaps 
by someone with a different set of needs than mine. If I need it, I just code 
it. On-demand automated dependency download is one example of this. Another 
thing on my TODO list, actually, is to integrate in a little tool I have 
started coding up called 'gattai', http://sf.net/projects/gattai, which aims to 
be able to pull and, if necessary, build the various deps a project needs in 
source or binary form.

And yet another thing I wanted to play with actually was having it dynamically 
generate AllInOne.cpp files for various directories and profile how much of a 
speed change there is in the builds by doing so. I suspect that we could 
squeeze out some considerable gains that way.

Anyway, those are just some examples. Just wanted to say that for me, the 
rule-based compilation is certainly one of the most used features of waf, but 
it's far from the only thing I chose it for. 
 
 The situation we have now is that we have many build systems,
 so we probably need to think about discarding some awesome ones [1]
 for ones that are popular with our peers. If the Wx port were to move
 out of the tree, obviously this isn't a huge deal -- just a
 suggestion.
 
 1. All things being equal, waf looks to be the best replacement for
 autotools for WebKitGTK+. I've heard it's faster than both scons and
 cmake and it supports 'make install' and 'make dist.' Sadly, not all
 things are equal at svn.webkit.org, so gyp or cmake are the best hope
 at the moment.

Yes, it's light years faster than Scons, and I don't know about cmake but 
honestly, I have a hard time thinking my build could get much faster than waf 
makes it, aside from speeding up the compiler itself. Efficient use of multiple 
cores, and smart dependency tracking both help considerably. 

Anyway, I do understand your point about adoption, and it's the primary reason 
I don't really say much on the issue. I think waf has a lot of things going for 
it, some of which I feel are pretty well-suited to a project like WebKit, but 
if people already have their minds set on other tools, that's pretty much the 
end of the conversation.

Thanks,

Kevin

 --Martin

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


Re: [webkit-dev] Is the wxWidgets port maintained?

2013-02-11 Thread Kevin Ollivier

On Feb 11, 2013, at 3:33 PM, Dirk Pranke wrote:

 On Mon, Feb 11, 2013 at 3:26 PM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 
 On Feb 11, 2013, at 2:01 PM, Martin Robinson wrote:
 
 On Mon, Feb 11, 2013 at 1:41 PM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 
 Actually, it will, if anything, increase the workload. Because I use waf, 
 I am able to use Python to auto-generate the list of sources to build. In 
 other words, I tell it to build all sources in a defined list of base 
 source directories, along with all sources in baseDirectory/portName 
 subdirs (where in this case I set portName to wx) and 
 FileNameportName.cpp (e.g. FileNameWX.cpp if the port is wx), along with 
 some additional similar rules for USE defines, like CF. Then if there are 
 exceptions to these rules, I just filter them out of the results or 
 explicitly add files when I need to, say if I need to compile a single Mac 
 port source file. Since the WebKit tree is well-structured, this approach 
 works quite well, with me having to define exceptions fairly rarely. The 
 main issue I run into seems to be derived sources files that are no longer 
 built / used but are still being generated. The performance hit of this is 
 about 1 added second to my build, though on slower mach
 in
 es it might be a couple seconds. For me, it's negligible given the benefit I 
 get from it.
 
 If I understand correctly, gyp is also capable of this kind of
 wildcard inclusion and exclusion. This will be the tool that allows
 the gyp build to be shared among many ports with the same source
 lists.
 
 Yes, but that is not what I see when I check, say, 
 Source/WebCore/WebCore.gypi. Which, BTW, has had around 500 revisions in it 
 over the past 6 months in comparison to the ~10 lines of changes to source 
 files in my patch-in-progress. So while gyp itself might have that feature 
 in it, for whatever reason, the WebKit projects do not utilize that feature 
 right now, so in practice, a switch to gyp means a switch away from 
 rule-based compilation.
 
 
 There's two different things going on here: ease of maintenance, and
 reproducibility. Using wildcards in the (meta-)build file itself can
 make things easier but make it harder to get reproducible builds since
 you might accidentally include files in the tree you didn't want.
 
 When you're on a minority port, having wildcards certainly makes your
 life easier because you don't have to track every change we make
 explicitly, and it's probably easier for you to ensure you're doing
 things correctly in your own checkouts, so you don't have to worry
 about reproducibility as much.

If the filesystem always follows clearly defined rules, then I'd argue that 
reproducibility would not be an issue, though. WebKit currently doesn't always, 
but the vast majority of times it does. The cases where it doesn't are few and 
far between, and I don't think fixes would be all that difficult. You can 
always create specific locations, like perhaps a Shared directory, for any 
special cases that should explicitly be added by more than one, but a subset 
of, ports, and can't be properly encapsulated into a feature or use define. 
(For example, the WhateverNone.cpp are one of the special exceptions I have to 
account for, and they could go in there.)

I think the concern is really that this approach seems 'implicit' rather than 
'explicit'. With clear filesystem rules, though, it's not actually implicit. A 
file going into one of the directories listed as a primary build dir means it 
is to be built by all ports. So long as the project defines said rules, the act 
of putting it there is explicit, and expresses intent. This also, BTW, 
addresses the problem of old stuff being left in the tree. To remove it from 
the build, you have to remove it, so you can just leave it sitting in the tree 
for someone to stumble across later. (I'm pretty sure a number of the 
exceptions I define in waf are actually examples of this.)

 On the other hand, if you were to convert to using the same gypi files
 we were using, then you wouldn't have to track every change we make,
 either; you'd get them for free.

Yes, but this mechanism relies on WebKit's policies about fixing others' build 
systems to be effective. waf, on the other hand, removes that task almost 
entirely. Plus, see my other comments about all the other benefits of using a 
meta-build system. (And BTW, on that topic, in newer versions of waf there is 
even a build system kit that provides a starting point for building your own 
build system off of waf. :)

Thanks,

Kevin

 -- Dirk

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


Re: [webkit-dev] Is the wxWidgets port maintained?

2013-02-11 Thread Kevin Ollivier

On Feb 11, 2013, at 3:37 PM, Ryosuke Niwa wrote:

 On Mon, Feb 11, 2013 at 3:26 PM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 
 On Feb 11, 2013, at 2:01 PM, Martin Robinson wrote:
 
  On Mon, Feb 11, 2013 at 1:41 PM, Kevin Ollivier kev...@theolliviers.com 
  wrote:
 
  Actually, it will, if anything, increase the workload. Because I use waf, 
  I am able to use Python to auto-generate the list of sources to build. In 
  other words, I tell it to build all sources in a defined list of base 
  source directories, along with all sources in baseDirectory/portName 
  subdirs (where in this case I set portName to wx) and 
  FileNameportName.cpp (e.g. FileNameWX.cpp if the port is wx), along with 
  some additional similar rules for USE defines, like CF. Then if there are 
  exceptions to these rules, I just filter them out of the results or 
  explicitly add files when I need to, say if I need to compile a single Mac 
  port source file. Since the WebKit tree is well-structured, this approach 
  works quite well, with me having to define exceptions fairly rarely. The 
  main issue I run into seems to be derived sources files that are no longer 
  built / used but are still being generated. The performance hit of this is 
  about 1 added second to my build, though on slower machin
  es it might be a couple seconds. For me, it's negligible given the benefit I 
 get from it.
 
  If I understand correctly, gyp is also capable of this kind of
  wildcard inclusion and exclusion. This will be the tool that allows
  the gyp build to be shared among many ports with the same source
  lists.
 
 Yes, but that is not what I see when I check, say, 
 Source/WebCore/WebCore.gypi. Which, BTW, has had around 500 revisions in it 
 over the past 6 months in comparison to the ~10 lines of changes to source 
 files in my patch-in-progress. So while gyp itself might have that feature in 
 it, for whatever reason, the WebKit projects do not utilize that feature 
 right now, so in practice, a switch to gyp means a switch away from 
 rule-based compilation.
 
 We do! WebCore.gypi just lists all files and 
 http://trac.webkit.org/browser/trunk/Source/WebCore/WebCore.gyp/WebCore.gyp 
 defines what gets built on each platform.

Sorry if I wasn't clear, but by rule-based compilation, I mean not having a 
WebCore.gypi to maintain at all. waf needs no such file because it checks the 
filesystem with a set of rules to determine what sources to build. 

Thanks,

Kevin

 - R. Niwa
 

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


Re: [webkit-dev] Is the wxWidgets port maintained?

2013-02-11 Thread Kevin Ollivier

On Feb 11, 2013, at 5:03 PM, Dirk Pranke wrote:

 On Mon, Feb 11, 2013 at 4:30 PM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 
 On Feb 11, 2013, at 3:33 PM, Dirk Pranke wrote:
 
 On Mon, Feb 11, 2013 at 3:26 PM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 
 On Feb 11, 2013, at 2:01 PM, Martin Robinson wrote:
 
 On Mon, Feb 11, 2013 at 1:41 PM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 
 Actually, it will, if anything, increase the workload. Because I use 
 waf, I am able to use Python to auto-generate the list of sources to 
 build. In other words, I tell it to build all sources in a defined list 
 of base source directories, along with all sources in 
 baseDirectory/portName subdirs (where in this case I set portName to wx) 
 and FileNameportName.cpp (e.g. FileNameWX.cpp if the port is wx), 
 along with some additional similar rules for USE defines, like CF. Then 
 if there are exceptions to these rules, I just filter them out of the 
 results or explicitly add files when I need to, say if I need to compile 
 a single Mac port source file. Since the WebKit tree is well-structured, 
 this approach works quite well, with me having to define exceptions 
 fairly rarely. The main issue I run into seems to be derived sources 
 files that are no longer built / used but are still being generated. The 
 performance hit of this is about 1 added second to my build, though on 
 slower ma
 chin
 es it might be a couple seconds. For me, it's negligible given the benefit 
 I get from it.
 
 If I understand correctly, gyp is also capable of this kind of
 wildcard inclusion and exclusion. This will be the tool that allows
 the gyp build to be shared among many ports with the same source
 lists.
 
 Yes, but that is not what I see when I check, say, 
 Source/WebCore/WebCore.gypi. Which, BTW, has had around 500 revisions in 
 it over the past 6 months in comparison to the ~10 lines of changes to 
 source files in my patch-in-progress. So while gyp itself might have that 
 feature in it, for whatever reason, the WebKit projects do not utilize 
 that feature right now, so in practice, a switch to gyp means a switch 
 away from rule-based compilation.
 
 
 There's two different things going on here: ease of maintenance, and
 reproducibility. Using wildcards in the (meta-)build file itself can
 make things easier but make it harder to get reproducible builds since
 you might accidentally include files in the tree you didn't want.
 
 When you're on a minority port, having wildcards certainly makes your
 life easier because you don't have to track every change we make
 explicitly, and it's probably easier for you to ensure you're doing
 things correctly in your own checkouts, so you don't have to worry
 about reproducibility as much.
 
 If the filesystem always follows clearly defined rules, then I'd argue that 
 reproducibility would not be an issue, though. WebKit currently doesn't 
 always, but the vast majority of times it does. The cases where it doesn't 
 are few and far between, and I don't think fixes would be all that 
 difficult. You can always create specific locations, like perhaps a Shared 
 directory, for any special cases that should explicitly be added by more 
 than one, but a subset of, ports, and can't be properly encapsulated into a 
 feature or use define. (For example, the WhateverNone.cpp are one of the 
 special exceptions I have to account for, and they could go in there.)
 
 
 I think the concern is really that this approach seems 'implicit' rather 
 than 'explicit'. With clear filesystem rules, though, it's not actually 
 implicit. A file going into one of the directories listed as a primary build 
 dir means it is to be built by all ports. So long as the project defines 
 said rules, the act of putting it there is explicit, and expresses intent. 
 This also, BTW, addresses the problem of old stuff being left in the tree. 
 To remove it from the build, you have to remove it, so you can just leave it 
 sitting in the tree for someone to stumble across later. (I'm pretty sure a 
 number of the exceptions I define in waf are actually examples of this.)
 
 I'm not sure we're talking about the same sort of concerns. The case
 I'm talking about when you have a makefile that says something like
 SRCS=*.cpp. Then, I have to remember to save a local copy of a file as
 foo.cpp.orig rather than foo_orig.cpp, and if I want to rename a file
 I have to actually rename it rather than copy it (or at least remember
 to delete it).
 
 I think you're talking more about conventions over which directories
 contain files for each port?

Yes, that was what I was talking about. I tend to avoid making copies of files 
like what you describe so as not to clutter my local tree. If I'm going to make 
substantial or more experimental changes, I just move it onto a git branch so I 
can just wipe everything if it doesn't pan out. 

 
 On the other hand, if you were to convert to using the same gypi files
 we were

Re: [webkit-dev] Is the wxWidgets port maintained?

2013-02-11 Thread Kevin Ollivier

On Feb 11, 2013, at 5:20 PM, Benjamin Poulain wrote:

 On Mon, Feb 11, 2013 at 5:11 PM, Ryosuke Niwa rn...@webkit.org wrote:
 On Mon, Feb 11, 2013 at 4:53 PM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 I know you're speaking more in general here, but just to be clear, over the 
 past 6 months, the data hit that WebKit engineers have taken on account of 
 the wx port is close to 0 bytes. The only time svn up or git fetch has pulled 
 anything related to wx is when other developers attempted to update the wx 
 port based on changes made to common code. As things stand, I'd not only be 
 okay with, but actually prefer, that no other port maintainers do anything to 
 try and fix the wx build. This way the port is not causing anyone else a 
 burden except occasionally when I do land some fixes. As I said in my reply 
 to Brent, I think a no build bot / no shared maintenance project rule is 
 not only reasonable, as a practical matter it is required.
 
 I'd argue that others contributors having to know to ignore Wx port's code is 
 the most significant cost. How is a new contributor supposed to know to 
 ignore Wx port code?
 
 It looks like everyone agree wx would be better maintained outside webkit.org.
 
 Kevin just need to find a technical solution to the problem of maintaining 
 the history.
 
 I will make a patch removing wxWidgets from the tree.
 Kevin, can you communicate when you are ready for the transition? I'd like to 
 do that this week if that is okay with you.

To be honest, I think I know more about the wx port, and would probably be 
better able to cleanly remove it from the tree, than you would. As I've said 
from the start, I'll remove it if that's what people want, but I do think the 
severity of this problem is being exaggerated, and going from posing the 
question of project status to giving a one week eviction notice in less than 24 
hours seems a bit rash to say the least. I wish I could get paid good money to 
spend my time doing things like creating patches to remove inactive files from 
source trees. :) As it stands, though, this wasn't exactly on my TODO list for 
this week as of, say, this morning, and I do have plenty on it right now. I'm 
already even regretting how much time I've put into this discussion.

To think, it was wx and GTK that started the whole WebKit porting experiment in 
the first place, thanks to the gracious help of the WebKit community, and 
particularly Eric, and now I feel like the project can't push me out the door 
fast enough. ;-) 

Please be patient, I will take care of it, but I doubt I will manage it this 
week.

Regards,

Kevin

 Benjamin

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


Re: [webkit-dev] Moving WTF out of JavaScriptCore (revisited)

2011-11-04 Thread Kevin Ollivier
Hi Darin,

On Nov 2, 2011, at 4:42 PM, Darin Adler wrote:

 On Nov 2, 2011, at 4:09 PM, Mark Rowe wrote:
 
 There are a few related goals here that I'm aware of:
 a) Separate WTF out of JavaScriptCore since it doesn't logically belong 
 there, but was simply a convenient home for it.
 b) Separate WebCore/platform out of WebCore to help avoid layering 
 violations.
 c) Rework the Mac build process so that we can eliminate forwarding headers 
 and remove the duplication of .xcconfig files.
 
 The process for addressing a) and b) will be similar:
 1) Move the relevant code from its current location to the new location.
 2) Create a new Xcode project that builds the desired output in the 
 appropriate fashion. Update other build systems as is applicable.
 3) Apple starts including the new project in our build process.
 
 Step (2) here involves coming up with a good solution for export control in 
 both the WTF and platform cases. Today we use an explicit .exp file for 
 JavaScriptCore and WebCore on Mac and I believe a .def file in the Apple 
 Windows WebKit port. So there might be a necessary first step of moving to a 
 different export approach. And I know someone has been working on that.

If you guys want to go the route of finishing up the export macros work, let me 
know and I'll see what I can do. I probably can't devote a lot of time to it 
for the next week or two, but I'd like to see this fixed regardless of if it's 
used to move forward the WTF split, obviously, so I can put a higher priority 
on it if I know there are reviewers waiting to land things. :) 

FWIW, I did distinguish between JS and WTF symbol export macros in the work 
I've been doing, so the macros approach will support the split as-is.

Thanks,

Kevin

 -- Darin
 ___
 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] Moving WTF out of JavaScriptCore (revisited)

2011-11-04 Thread Kevin Ollivier
Hi Mark,

On Nov 4, 2011, at 10:59 AM, Mark Rowe wrote:

 
 On 2011-11-04, at 10:57, Kevin Ollivier wrote:
 
 Hi Steve,
 
 On Nov 4, 2011, at 9:12 AM, Steve Falkenburg wrote:
 
 
 On Nov 4, 2011, at 8:48 AM, Kevin Ollivier wrote:
 
 Step (2) here involves coming up with a good solution for export control 
 in both the WTF and platform cases. Today we use an explicit .exp file 
 for JavaScriptCore and WebCore on Mac and I believe a .def file in the 
 Apple Windows WebKit port. So there might be a necessary first step of 
 moving to a different export approach. And I know someone has been 
 working on that.
 
 If you guys want to go the route of finishing up the export macros work, 
 let me know and I'll see what I can do. I probably can't devote a lot of 
 time to it for the next week or two, but I'd like to see this fixed 
 regardless of if it's used to move forward the WTF split, obviously, so I 
 can put a higher priority on it if I know there are reviewers waiting to 
 land things. :) 
 
 FWIW, I did distinguish between JS and WTF symbol export macros in the 
 work I've been doing, so the macros approach will support the split as-is.
 
 If WTF is to be a static library, there's no need to change anything in the 
 .def file on Windows.
 .def files apply only to DLLs.
 
 Yes, I know, just saying I'd be willing to help if they wanted to go the DLL 
 route. Making it static would make life easier for me also by allowing us to 
 remove the need for WTF symbol exports entirely, of course, so either way is 
 a plus for me.
 
 WTF being a static library doesn't change anything with respect to exports.  
 It will still only be linked by a single dynamic library, and that library 
 will be expected to export the necessary symbols for other clients. Doing 
 otherwise would cause problems due to multiple instances of WTF's data being 
 created (e.g., separate FastMalloc heaps for each library that linked 
 directly to WTF).

So I'm assuming that dynamic library would be JSCore, then? Is the idea 
basically just to have a clean separation between WTF and JSCore build projects?

Thanks,

Kevin

 - Mark
 

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


Re: [webkit-dev] Why is gtest in the Source directory?

2011-05-12 Thread Kevin Ollivier

On May 12, 2011, at 11:48 AM, Darin Adler wrote:

 On May 12, 2011, at 11:33 AM, David Levin wrote:
 
 Layout/  # Would be nice to have a better name since these test much
 more than Layout
  
 DumpRenderTreeTests?
 Integration?
 AutomatedHtmlTests?
 
 Here are some characteristics of these tests that may help us name the 
 directory:
 
 1) This is the primary suite of WebKit tests.
 2) These tests are all automated.
 3) These tests all include an expected result (broadly including future 
 addition of reftests).
 4) These tests are regression tests; most are designed to catch any 
 changes in behavior, not just detect failure.
 5) These tests consist of HTML or SVG markup, with CSS and JavaScript, 
 much like webpages in the wild.
 6) Most of these tests can also be run by opening them in a web browser.
 7) Most of these tests are designed to test end-to-end, although some are 
 more like unit tests.
 
 I don’t think they should be named after DumpRenderTree because that name is 
 itself a misnomer.
 
 I think that (7) above does fit with the name Integration, but that name 
 still doesn’t work so well for me.
 
 Despite (5) above I don’t love the idea of having HTML in the name when we 
 can accommodate SVG tests too.

What about just Web, Engine or WebPages? If SVG complicates the naming 
issue, maybe it could be moved to its own top level directory? That would avoid 
any confusion over where one would expect to find the SVG tests. 

Kevin 

 -- Darin
 
 ___
 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] What's up with the Chromium EWS bots?

2011-03-09 Thread Kevin Ollivier
Hi all,

I've got a patch that has been waiting in the queue for over a day now, and 
it's still in position #6 for cr-linux and #7 for cr-mac. The position has 
changed over that time, so it seems the bots are processing patches, but 
they're going incredibly slowly. All the other bots finished processing the 
patch about a day and a half ago. Anyone know what's up?

Thanks,

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


Re: [webkit-dev] What's up with the Chromium EWS bots?

2011-03-09 Thread Kevin Ollivier
Thanks for looking into this! Just let me know if I need to re-submit the patch 
or anything after the bots are fixed.

Kevin

On Mar 9, 2011, at 9:16 AM, Eric Seidel wrote:

 I'm told the Skia repository was rebuilt from scratch.  We'll need to
 remove the skia directory on these bots to let them check it out
 again:
 http://groups.google.com/a/chromium.org/group/chromium-dev/browse_thread/thread/e4cb6956c9ef0b39?pli=1
 
 On Wed, Mar 9, 2011 at 11:12 AM, Eric Seidel e...@webkit.org wrote:
 Looks like the cr-linux bots svn checkout got corrupted.  Adam has
 access and can rebuild it:
 http://queues.webkit.org/results/8110874
 
 The cr-mac bot looks like it's having similar trouble:
 http://queues.webkit.org/results/8118430
 
 I can look at rebuildign that one.
 
 I wonder what went wrong with chromium's svn repository to cause this?
  Those bots are in different data centers, in different states, owned
 by different companies and running different OSes!  So I suspect
 something changed on src.chromium.org.
 
 -eric
 
 On Wed, Mar 9, 2011 at 10:08 AM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 Hi all,
 
 I've got a patch that has been waiting in the queue for over a day now, and 
 it's still in position #6 for cr-linux and #7 for cr-mac. The position has 
 changed over that time, so it seems the bots are processing patches, but 
 they're going incredibly slowly. All the other bots finished processing the 
 patch about a day and a half ago. Anyone know what's up?
 
 Thanks,
 
 Kevin
 ___
 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] Moving WTF out of JavaScriptCore

2011-02-09 Thread Kevin Ollivier
On Feb 9, 2011, at 2:08 PM, Mark Rowe wrote:

 
 On 2011-02-09, at 14:05, Adam Barth wrote:
 
 On Wed, Feb 9, 2011 at 1:30 PM, Mark Rowe mr...@apple.com wrote:
 On 2011-02-09, at 13:06, Adam Barth wrote:
 On Thu, Dec 23, 2010 at 1:32 PM, Maciej Stachowiak m...@apple.com wrote:
 On Dec 22, 2010, at 12:06 PM, Adam Barth wrote:
 On Wed, Dec 22, 2010 at 10:40 AM, Mark Rowe mr...@apple.com wrote:
 On 2010-12-22, at 10:34, Adam Barth wrote:
 As an aside, would creating the Sources directory make it easier to
 move WTF out of JavaScriptCore?
 
 I don't think that the location of the source on disk is a big factor in
 WTF's presence in JavaScriptCore.
 
 Oh, I thought the main involved in creating a new top-level source
 directory was the main thing causing WTF to live inside
 JavaScriptCore.  I know we've talked about moving it out of
 JavaScriptCore for a while now.  Is that just a matter of someone
 (e.g., me) doing the work or are there other limiting factors?
 
 If we switch to a top-level Sources directory, and on the Apple-internal 
 side switch to submitting WebKit to the OS build using this single 
 top-level sources directory, then it's easy to make new top-level 
 directories without disrupting anything.
 
 If we don't do the above, we'd have to set things up so we can submit WTF 
 separately to the build to cope, and we'd need to make it build a static 
 library and install private headers.
 
 So I think it is easier to make this change if we do the Sources/ change 
 first.
 
 Now that we've moved all the source code into Source, I'd like to try
 moving WTF out of JavaScriptCore.  Is there anything on the
 Apple-internal side that needs to happen first?
 
 Maciej's response above mentions that we need to make some internal process 
 changes before it's easy to add new top-level projects without disrupting 
 things.  Unless there's some urgent reason to move WTF I'd prefer that you 
 hold off on doing this.
 
 Would it make sense to set a target date in the future for making
 these internal changes?  I'm certainly not in a rush, but I'd also
 like to make progress on this at some point.
 
 I don't think that would be useful.  The changes that block this are the same 
 changes that prevent us from removing the concept of forwarding headers. 
 We're as interested as you are in seeing them done.

I'm also very interested in seeing this done, as it affects the wx port too, 
and I know from trying to make header changes to WTF (and watching all the 
breakages) that almost all ports have hacks along the lines of forwarding 
headers that deal with the issue of WTF being a separate project in theory, but 
a private implementation detail of JSC in practice. Pulling WTF out of JSC 
would, I think, go a long way to undoing a lot of those hacks and reducing the 
time and maintenance cost of making changes to WTF.

Is the problem here that these internal changes are very difficult and/or time 
consuming to implement? I wish I could help somehow because I'd much rather 
spend time trying to fix this problem the right way and for good than spending 
that time sorting out all the build breakages every time I try to do something 
like add a new header to WTF that I want to be widely available among ports and 
projects in WebKit. 

Kevin

 - Mark
 
 ___
 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] Moving WTF out of JavaScriptCore

2011-02-09 Thread Kevin Ollivier

On Feb 9, 2011, at 3:11 PM, Mark Rowe wrote:

 
 On 2011-02-09, at 14:51, Kevin Ollivier wrote:
 
 On Feb 9, 2011, at 2:08 PM, Mark Rowe wrote:
 
 
 On 2011-02-09, at 14:05, Adam Barth wrote:
 
 On Wed, Feb 9, 2011 at 1:30 PM, Mark Rowe mr...@apple.com wrote:
 On 2011-02-09, at 13:06, Adam Barth wrote:
 On Thu, Dec 23, 2010 at 1:32 PM, Maciej Stachowiak m...@apple.com 
 wrote:
 On Dec 22, 2010, at 12:06 PM, Adam Barth wrote:
 On Wed, Dec 22, 2010 at 10:40 AM, Mark Rowe mr...@apple.com wrote:
 On 2010-12-22, at 10:34, Adam Barth wrote:
 As an aside, would creating the Sources directory make it easier to
 move WTF out of JavaScriptCore?
 
 I don't think that the location of the source on disk is a big factor 
 in
 WTF's presence in JavaScriptCore.
 
 Oh, I thought the main involved in creating a new top-level source
 directory was the main thing causing WTF to live inside
 JavaScriptCore.  I know we've talked about moving it out of
 JavaScriptCore for a while now.  Is that just a matter of someone
 (e.g., me) doing the work or are there other limiting factors?
 
 If we switch to a top-level Sources directory, and on the 
 Apple-internal side switch to submitting WebKit to the OS build using 
 this single top-level sources directory, then it's easy to make new 
 top-level directories without disrupting anything.
 
 If we don't do the above, we'd have to set things up so we can submit 
 WTF separately to the build to cope, and we'd need to make it build a 
 static library and install private headers.
 
 So I think it is easier to make this change if we do the Sources/ 
 change first.
 
 Now that we've moved all the source code into Source, I'd like to try
 moving WTF out of JavaScriptCore.  Is there anything on the
 Apple-internal side that needs to happen first?
 
 Maciej's response above mentions that we need to make some internal 
 process changes before it's easy to add new top-level projects without 
 disrupting things.  Unless there's some urgent reason to move WTF I'd 
 prefer that you hold off on doing this.
 
 Would it make sense to set a target date in the future for making
 these internal changes?  I'm certainly not in a rush, but I'd also
 like to make progress on this at some point.
 
 I don't think that would be useful.  The changes that block this are the 
 same changes that prevent us from removing the concept of forwarding 
 headers. We're as interested as you are in seeing them done.
 
 I'm also very interested in seeing this done, as it affects the wx port too, 
 and I know from trying to make header changes to WTF (and watching all the 
 breakages) that almost all ports have hacks along the lines of forwarding 
 headers that deal with the issue of WTF being a separate project in theory, 
 but a private implementation detail of JSC in practice. Pulling WTF out of 
 JSC would, I think, go a long way to undoing a lot of those hacks and 
 reducing the time and maintenance cost of making changes to WTF.
 
 As far as I'm aware only the Mac and Windows ports have anything along the 
 lines of forwarding headers.  No other port that I'm aware of needs anything 
 similar.
 
 Is the problem here that these internal changes are very difficult and/or 
 time consuming to implement? I wish I could help somehow because I'd much 
 rather spend time trying to fix this problem the right way and for good than 
 spending that time sorting out all the build breakages every time I try to 
 do something like add a new header to WTF that I want to be widely available 
 among ports and projects in WebKit. 
 
 If you can point me at changes where you've had issues with forwarding 
 headers I can provide suggestions as to how you can avoid problems with them 
 in the future.  A quick look through SVN history doesn't reveal any changes 
 related to forwarding headers from you.

Actually, I'm referring to what is still an open bug. 
(https://bugs.webkit.org/show_bug.cgi?id=27551) The issue in question is a 
change to try and move the definition of JSC / WTF export symbols into the 
headers rather than using the current export definition files. Resolving this 
issue is a pre-requisite for wx DRT support, and also blocks a bug related to 
defining export macros for C++ DOM bindings as well.

Part of what fixing this bug entailed was adding a new header to WTF, I called 
it wtf/ExportMacros.h, which defined WTF_EXPORT and WTF_IMPORT so we could 
consolidate the export symbol attribute definition macros into one place in the 
tree, instead of copying and pasting the same logic (just with different 
XYZ_EXPORT and IMPORT names) into every config.h file. However, when I tried 
adding the WTF header, almost every port failed with some error, and it often 
had to do with header availability issues. (e.g. WebCore has access to this WTF 
header, but WebKit, or DRT, or JSC.exe doesn't, and won't unless you add it to 
some copied / forwarded header list). 

FWIW, I did get around to fixing most of the ports, but the reason

Re: [webkit-dev] Moving WTF out of JavaScriptCore

2011-02-09 Thread Kevin Ollivier

On Feb 9, 2011, at 4:28 PM, Mark Rowe wrote:

 
 On 2011-02-09, at 16:21, Kevin Ollivier wrote:
 
 
 On Feb 9, 2011, at 3:11 PM, Mark Rowe wrote:
 
 
 On 2011-02-09, at 14:51, Kevin Ollivier wrote:
 
 On Feb 9, 2011, at 2:08 PM, Mark Rowe wrote:
 
 
 On 2011-02-09, at 14:05, Adam Barth wrote:
 
 On Wed, Feb 9, 2011 at 1:30 PM, Mark Rowe mr...@apple.com wrote:
 On 2011-02-09, at 13:06, Adam Barth wrote:
 On Thu, Dec 23, 2010 at 1:32 PM, Maciej Stachowiak m...@apple.com 
 wrote:
 On Dec 22, 2010, at 12:06 PM, Adam Barth wrote:
 On Wed, Dec 22, 2010 at 10:40 AM, Mark Rowe mr...@apple.com wrote:
 On 2010-12-22, at 10:34, Adam Barth wrote:
 As an aside, would creating the Sources directory make it easier to
 move WTF out of JavaScriptCore?
 
 I don't think that the location of the source on disk is a big 
 factor in
 WTF's presence in JavaScriptCore.
 
 Oh, I thought the main involved in creating a new top-level source
 directory was the main thing causing WTF to live inside
 JavaScriptCore.  I know we've talked about moving it out of
 JavaScriptCore for a while now.  Is that just a matter of someone
 (e.g., me) doing the work or are there other limiting factors?
 
 If we switch to a top-level Sources directory, and on the 
 Apple-internal side switch to submitting WebKit to the OS build using 
 this single top-level sources directory, then it's easy to make new 
 top-level directories without disrupting anything.
 
 If we don't do the above, we'd have to set things up so we can submit 
 WTF separately to the build to cope, and we'd need to make it build a 
 static library and install private headers.
 
 So I think it is easier to make this change if we do the Sources/ 
 change first.
 
 Now that we've moved all the source code into Source, I'd like to try
 moving WTF out of JavaScriptCore.  Is there anything on the
 Apple-internal side that needs to happen first?
 
 Maciej's response above mentions that we need to make some internal 
 process changes before it's easy to add new top-level projects without 
 disrupting things.  Unless there's some urgent reason to move WTF I'd 
 prefer that you hold off on doing this.
 
 Would it make sense to set a target date in the future for making
 these internal changes?  I'm certainly not in a rush, but I'd also
 like to make progress on this at some point.
 
 I don't think that would be useful.  The changes that block this are the 
 same changes that prevent us from removing the concept of forwarding 
 headers. We're as interested as you are in seeing them done.
 
 I'm also very interested in seeing this done, as it affects the wx port 
 too, and I know from trying to make header changes to WTF (and watching 
 all the breakages) that almost all ports have hacks along the lines of 
 forwarding headers that deal with the issue of WTF being a separate 
 project in theory, but a private implementation detail of JSC in practice. 
 Pulling WTF out of JSC would, I think, go a long way to undoing a lot of 
 those hacks and reducing the time and maintenance cost of making changes 
 to WTF.
 
 As far as I'm aware only the Mac and Windows ports have anything along the 
 lines of forwarding headers.  No other port that I'm aware of needs 
 anything similar.
 
 Is the problem here that these internal changes are very difficult and/or 
 time consuming to implement? I wish I could help somehow because I'd much 
 rather spend time trying to fix this problem the right way and for good 
 than spending that time sorting out all the build breakages every time I 
 try to do something like add a new header to WTF that I want to be widely 
 available among ports and projects in WebKit. 
 
 If you can point me at changes where you've had issues with forwarding 
 headers I can provide suggestions as to how you can avoid problems with 
 them in the future.  A quick look through SVN history doesn't reveal any 
 changes related to forwarding headers from you.
 
 Actually, I'm referring to what is still an open bug. 
 (https://bugs.webkit.org/show_bug.cgi?id=27551) The issue in question is a 
 change to try and move the definition of JSC / WTF export symbols into the 
 headers rather than using the current export definition files. Resolving 
 this issue is a pre-requisite for wx DRT support, and also blocks a bug 
 related to defining export macros for C++ DOM bindings as well.
 
 Part of what fixing this bug entailed was adding a new header to WTF, I 
 called it wtf/ExportMacros.h, which defined WTF_EXPORT and WTF_IMPORT so we 
 could consolidate the export symbol attribute definition macros into one 
 place in the tree, instead of copying and pasting the same logic (just with 
 different XYZ_EXPORT and IMPORT names) into every config.h file. However, 
 when I tried adding the WTF header, almost every port failed with some 
 error, and it often had to do with header availability issues. (e.g. WebCore 
 has access to this WTF header, but WebKit, or DRT, or JSC.exe doesn't, and 
 won't unless you

Re: [webkit-dev] Hunspell based spellchecker

2010-11-16 Thread Kevin Ollivier
Hi Hajime,

On Nov 16, 2010, at 8:52 PM, Hajime Morita wrote:

 Hi WebKit folks,
 
 I'm thinking about porting Hunspell-based spellchecking code
 from Chromium to WebKit/WebCore.
 
 Although it's unclear whether the porting is feasible, I'd like to
 hear how much interest is there from other ports before starting
 actual work.
 
 Because the main goal is to make spellcheck available for more ports,
 It would be just a waste if there is no demand.
 
 For example, I heard that GTK+ has GtkSpell, which is based on
 Enchant.  Because our code is based on Hunspell, GtkSpell based
 integration is out of scope of this proposal... I have no idea about
 Qt, EFL, etc.
 
 BTW, here is an under-half-baked-rough plan:
 
 - Extract spellcheck related methods on EditorClient,
  to interface (or abstract class) named, say, platform/text/TextChecker.
  - with keeping existing method, for compatibility
 - Add a getter like TextChecker* textChecker() = 0;  to EditorClient.
 - Implement TextCheckerHunspell, a subclass of TextCheckerHunspell
  - TextCheckerHunspellChromium and some other variants will also be
 added, to make Chromium specific hooks.
 - (optional) Move Mac's spellchecker implementation from
 WebCoreSupport/WebEditorClient
  to platform/text/TextCheckerCocoa, another subclass of TextChecker.
 - (optional) Remove legacy methods on EditorClient
 
 This approach would make spellchecker pluggable,
 so WebKit can choose preferable spellchecker at runtime with this.
 (For example, Chromium port wants to use both Hunspell and system 
 spellchecker.
 GTK port might want use Enchant and Hunspell.)
 
 Is this beneficial for your port?
 Are there other design possibilities?
 Any feedback is welcome.

The wx port is very interested. :) I think this design would do everything that 
our port needs. We'd probably use the native spellchecker on Mac, and Hunspell 
on other platforms for now.

Thanks,

Kevin

 --
 morrita
 ___
 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] Build system complexity

2010-08-13 Thread Kevin Ollivier
Hi Maciej,

On Aug 13, 2010, at 12:34 AM, Maciej Stachowiak wrote:

 
 On Aug 12, 2010, at 2:53 AM, Jeremy Orlow wrote:
 
 Are there currently any plans for simplifying the situation regarding build 
 systems?  I haven't seen any threads for a while, which I assume means no.
 
 Is there any low hanging fruit out there?  Since many of the build systems 
 are little more than lists of files, it really seems like we should be able 
 to do some sort of consolidation.  Or reduce the process down to updating 
 one file and then running a script that updates/generates the rest.  
 Currently, I cringe every time I find out I need to add a new file.
 
 In addition, has anyone ever looked at simplifying the mac port's xcode 
 project?  It's _by far_ the heaviest burden on the project given that you 
 pretty much need to use xcode (which is mac only...no other port requires 
 this), exported linker symbols are in a separate file, extra effort to 
 expose a new file in WTF to WebCore, extra effort to expose a new file in 
 WebCore to WebKit, etc.  Has anyone recently looked at how the mac build 
 could be simplified--especially from the perspective of contributors whose 
 main development platform isn't a mac?
 
 I think we should switch over to export control specified in the headers and 
 not use .exp files any more. WebKit2.framework builds on all its target 
 platforms with no external export control file. The hardest case for this is 
 probably WebCore, though, and I'm not sure how practical it is to do 
 incrementally.

Actually, this reminds me of one thing I've been meaning to ask about this 
regarding moving JSCore export definitions into the headers. The export symbol 
definitions (such as JS_EXPORTDATA, JS_EXPORT_PRIVATE, etc.) are defined 
multiple ways in multiple places (e.g. various project's config.h headers), and 
I was hoping we could move towards having some sort of WTF_EXPORT and 
WTF_IMPORT macros, then set macros like JS_EXPORTDATA based on them, so that 
we're not continually copying and pasting the same macro setting logic into 
each project's config.h or somewhere else. Kind of like a project-wide 
equivalent to JSBase.h for JSCore public API.

You can see this quite well how many places these macros are copied over to by 
looking at the last patch for https://bugs.webkit.org/show_bug.cgi?id=27551, 
but that's a pretty large patch, so a simpler case which clearly shows how we 
need to copy and paste these macros each time a new component needs export 
symbol control can be found in a patch I recently submitted here: 
https://bugs.webkit.org/show_bug.cgi?id=43204 

One thing that seems to make consolidating these macros into one location 
tricky is that WTF seems the most suitable place for it, but it is still 
technically a private implementation detail of JSCore, and there seems to be 
with some ports a great deal of effort put into isolating each project's 
headers and sources from the other projects. (With the Windows build 
particularly, I noticed a lot of copying of headers and even some 
implementation files from one project to another using the build directory as 
an intermediary.) I'd like to have some file that could be included by 
everything from JSCore to DumpRenderTree and, at least indirectly, by client 
apps (e.g. when I use those macros in wxWebKit API), without having that sort 
of copying set up in all the ports. Is there currently an appropriate place for 
such a thing to go? If not, any suggestions on the best way to approach this? 
Or am I missing some obvious and simple solution here? 

Thanks,

Kevin

 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] Build system complexity

2010-08-12 Thread Kevin Ollivier
Hi Jeremy,

On Aug 12, 2010, at 7:37 AM, Jeremy Orlow wrote:

 On Thu, Aug 12, 2010 at 7:18 AM, David Kilzer ddkil...@webkit.org wrote:
 On Aug 12, 2010, at 3:54 AM, Dumitru Daniliuc d...@chromium.org wrote:
 
  i completely agree with jeremy. is it possible to at least drop the cryptic 
  hashcodes/timestamps? without them, the .xcodeproj files should at least be 
  editable by hand.
 
 Doesn't gyp already generate Xcode projects for Chrome?  I think the issue is 
 that gyp can't generate replacement project files for Apple's Mac port or 
 other build systems yet.  That was my take-away from the last 
 discussion--that gyp needed to be enhanced so that all build systems could be 
 generated, making addition or removal of source files a trivial task.
 
 Chrome has been using GYP for some time and it's pretty stable.  I suspect 
 that anyone trying to port the Mac port's xcode project to it will run into 
 some bugs and/or need to build some additional features into it, but it is 
 quite stable.  And the GYP guys are very friendly people though, so I bet 
 they'd be happy to help with any such problems.  It's also worth noting that 
 GYP was designed from the start to allow a project to move over to it slowly 
 (you can have custom projects depend on GYP projects and vice versa).
 
 But moving to GYP is definitely not the only way to solve this issue--and 
 quite possibly not the best way.  I suspect that there are also many smaller 
 steps that could be taken that'd have a big impact.  For example, coming up 
 with ways to generate sane/informative error messages for when someone 
 doesn't export some symbol/header file properly would awesome and doesn't 
 require changing the entire build system.  Or creating some script that can 
 add files to the xcode project.

One project I've been meaning to hack on once I take care of some higher 
priority work I'm doing is to update WebKitTools/Scripts/update-sources-list.py 
to pull sources from GYP instead of the code in there to pull sources from (now 
defunct) Bakefile build system. The idea here is that we can make changes to 
the source list in one place (say, the GYP files), then run this script and it 
will update the file lists for other ports that use text-based lists, like GTK, 
Qt and any ports using CMake. This I think would make updating a lot more 
straightforward and reduce the need for manually making the same change in 6 
different build systems. Adding XCode and MSVC support certainly would be 
possible too, but if ports using those files are still interested in doing a 
switch to GYP in the near future, it may not make much sense to bother with it.

I've also been working on https://bugs.webkit.org/show_bug.cgi?id=27551, which 
would allow us to stop using export symbol definition files and instead have 
the export info in the headers instead, so that all ports can use them rather 
than having each port define its own export symbols file. That's another thing 
that I think could reduce a lot of redundant maintenance.  

Regards,

Kevin

 J
 ___
 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] DerivedSources.make CPP DOM Bindings

2010-07-08 Thread Kevin Ollivier
Hi all,

I'm working on making the CPP DOM bindings accessible to the wx port, and while 
I've got the whole thing building, one thing I have yet to sort out is how to 
add building of the CPP DOM bindings to the build system. DerivedSources.make 
seems to be the appropriate place to put the code, and it's where I've put 
things for now, but I wasn't sure if others would feel this is the right place. 
If I do add it, what is the appropriate way to do it? Should generation be 
conditional on some define the port will set, like MAKE_CPP_BINDINGS, or should 
we just directly check for BUILDING_PORT defines?

Thoughts?

Thanks,

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


[webkit-dev] Python-based unit tests for wx port

2010-07-08 Thread Kevin Ollivier
Hi all,

I'd like to start adding some wx-specific tests for our port's API, at least 
initially using Python, and since I've noticed a lot of changes being made to 
the testing infrastructure over the past few months or so (Perl - Python 
transition, etc.), I was wondering if someone would mind giving me some 
pointers about where in the tree I should put my tests and how best to 
integrate them with the overall testing system?

Thanks,

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


[webkit-dev] JavaScriptCore export symbols

2010-05-31 Thread Kevin Ollivier
Hi all,

I'm trying to switch over to building JavaScriptCore as a shared library for 
the wx port, but one issue I'm hitting is the issue of export symbols. I was 
wondering how other ports handle this? I know Apple / Win and Apple / Mac have 
export symbol files, but I'd like to avoid manually creating and maintaining 
such files, and at the same time, using the Apple / Win and Apple / Mac files 
seems like it will require a number of adjustments to my build process to get 
working. (e.g. it wants symbols specific to those ports) So I'm wondering, what 
are my options here? Would it be acceptable to start adding JS_EXPORT to 
functions in the JSCore library that are needed by DRT, etc.? 

Thanks,

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


Re: [webkit-dev] JavaScriptCore export symbols

2010-05-31 Thread Kevin Ollivier
Hi Kenneth,

On May 31, 2010, at 11:09 AM, Kenneth Christiansen wrote:

 Hi Kevin,
 
 They export privately using some files listing the symbols to be
 exported (mac supports that as so does visual studio, I believe). We
 cannot do this for Qt, so if you search bugzilla you will find that we
 have some old patches adding export declarations to the classes being
 exported (or the individual symbols, if that made more sense)

So what's the status on that? From the bug tracker link Ossy sent, it looks 
like the patch never made it through review, and eventually had the review bit 
unset because of code rot. Are you guys patching a git branch or something? 

Thanks,

Kevin

 Cheers,
 Kenneth
 
 On Mon, May 31, 2010 at 3:03 PM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
 Hi all,
 
 I'm trying to switch over to building JavaScriptCore as a shared library for 
 the wx port, but one issue I'm hitting is the issue of export symbols. I was 
 wondering how other ports handle this? I know Apple / Win and Apple / Mac 
 have export symbol files, but I'd like to avoid manually creating and 
 maintaining such files, and at the same time, using the Apple / Win and 
 Apple / Mac files seems like it will require a number of adjustments to my 
 build process to get working. (e.g. it wants symbols specific to those 
 ports) So I'm wondering, what are my options here? Would it be acceptable to 
 start adding JS_EXPORT to functions in the JSCore library that are needed by 
 DRT, etc.?
 
 Thanks,
 
 Kevin
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
 
 
 
 
 -- 
 Kenneth Rohde Christiansen
 Technical Lead / Senior Software Engineer
 Qt Labs Americas, Nokia Technology Institute, INdT
 Phone  +55 81 8895 6002 / E-mail kenneth.christiansen at openbossa.org

___
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-17 Thread Kevin Ollivier
Hi Maciej,

On Apr 16, 2010, at 3:34 PM, Maciej Stachowiak wrote:

 
 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.

Converting, say, a JSON list of files to some XML-based output format would not 
be difficult at all (and I believe we can automatically convert the XCode 
project files from binary to plist and back, though IIRC there might be some 
UUID handling issues to consider), so we could patch the IDE files much like we 
patch the other ports. As for the other cases, such as additions / removals of 
things shared by multiple ports and the derived sources problem (that one 
probably would indeed need some 'template' to insert into project files), I 
think these could be added over time if we feel it'd bring a large benefit, but 
I think even just covering the common case of cross-platform source file 
maintenance is already a huge win for the project. I maintained Bakefile 
projects for years, and I'd say 80-90% of the time when a change broke my 
build, it was one of these common source file additions / removals. And it 
usually happened several times every week.

I personally think the way to look at it is to start by solving the simple 
stuff that could be solved quickly, as in my experience that makes it far more 
likely to actually get done. If, say, gyp - Gtk / Qt / MSVC (/ XCode?) build 
file lists could be done in a weekend of hacking and some devs are interested 
in working on it, why not? 

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

True, but I think the real problem that we're not addressing in this discussion 
is that different ports have different sets of requirements, meaning their own 
evaluation process would lead them to choose different tools. If we want a 'one 
size fits all' build system, the first step is getting each port to come 
together and consolidate the requirements, and there will most likely need to 
be some compromises involved as some ports may have to agree to move to a tool 
that's not really as well suited for their project as the one they're using 
now. 

For example, a primary reason tools like Gyp and Bakefile exist is that for 
some people, lack of a 100% native IDE-based build system is a deal breaker. 
For others, like myself, I want low maintenance, completely cross-platform, 
highly automated and highly scriptable, which are actually features the IDE 
projects don't fare very well in. So one man's feature is another man's 
drawback.

There are also factors besides features that are important as well. I think 
it's also important to remember that from each port's perspective, one 
potentially big factor in build system choice is also making users comfortable 
with contributing. For GTK, for 

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

2010-04-17 Thread Kevin Ollivier
Hi Marc-Antoine,

On Apr 17, 2010, at 11:26 AM, Marc-Antoine Ruel wrote:

 2010/4/17 Kevin Ollivier kev...@theolliviers.com
 Hi Maciej,
 
 On Apr 16, 2010, at 3:34 PM, Maciej Stachowiak wrote:
 
 
  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.
 
 Converting, say, a JSON list of files to some XML-based output format would 
 not be difficult at all (and I
 
 Like this?
 http://trac.webkit.org/browser/trunk/WebCore/WebCore.gypi
 
 - It is currently not JSON compliant. It's in fact a python file but that can 
 be fixed: s/'//g and removing the extra commas should be sufficient.
 - It is currently chromium specific, that's what I meant by 
 de-chromification of the gyp files. It's mainly adding more stuff and 
 fixing the regexp if I'm not mistaken. I don't mind if it doesn't become the 
 golden file, the goal is just to hopefully reduce the number of build system, 
 nothing more.

Yes, precisely why I mentioned JSON and later gyp, though I don't know if 
Chromium-specific is the right word here. It even has wx port files in it, 
which I don't think are built by Chromium. :) I suppose you somehow filter out 
which ones Chromium should build after the fact? If so, where does that logic 
reside?

Anyway, the fact that this file is actually Python (I had forgotten the format 
was JSON-like rather than straight JSON) makes things even better, as we only 
really need to handle export now, and not parse some import file list. i.e. for 
WebKitTools/Scripts/update-sources-list.py, getWebCoreFilesDict() basically 
becomes a very small script that execfile's the gypi file, then we run whatever 
filtering mechanism on it (waf has a list of ports we could use to do the 
filtering that I could probably move into WebKitTools/Scripts, if we don't have 
a pre-made Chromium solution here), and then passes the final source list along 
to generateWebCoreSourcesGTKandQT to generate the sources / includes for those 
platforms, and actually this solution should work for Android.mk and possibly 
jam too, as their syntax looks largely similar. Then we'd add some XML parsing 
code to grab the node for common file groups and update them for the MSVC 
projects, and then I think that mostly leaves XCode, which I think would be 
pretty similar in nature. 

As long as people are willing to test out this solution with their build 
systems and help with any debugging, I would be willing to help out in hacking 
it together, though I can't promise anything in the way of time since this is 
not an immediate concern for me personally.

Thanks,

Kevin___
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


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-15 Thread Kevin Ollivier
Hi Evan,

On Apr 14, 2010, at 5:16 PM, Evan Martin wrote:

 On Tuesday some people gathered to discuss the build-system bingo
 within WebKit and what we can do to reduce (if not unify) the number
 of project files you need to modify when you rename a file.  I took
 the stage as a representative of Chromium's gyp project (I am
 responsible for its Linux Makefile generator).
 
 Here's a quick list of the different ports I'm aware of and their
 build systems.  (Sorry for the non-monospaced tabbing, hope it comes
 out ok...)
 
 macxcode
 win  vcproj
 qtqmake (cross-platform output)
 gtk  autotools
 androidAndroid.mk  (I heard rumors Android isn't actually upstream
 yet, though (?))
 chromegyp  (cross-platform output)
 haiku   jam (?)
 brewwaf (?)

wx uses waf, not sure about brew.

 derivative builds:
 rim  hacked version of qt (qmake)
 efl   qmake
 sonyautotools (like gtk)
 wincairo   win + vsprops
 wince   like wincairo (different platforms: use a tree of vcproj)
 air   hacked win (?)
 
 Nobody is happy with the current situation where you must edit seven
 files to avoid breaking someone's build; the question is what concrete
 steps can improve it.  Everyone present seemed at least mildly
 positive on migrating to other systems, though everyone is also
 understandably skeptical of how much work would be involved.

[snip]

 Concretely, I'd propose:
 - strongly encourage newer ports to hook on to an existing build,
 since new build systems add overhead for everyone
 - chromium/gyp developers should prove gyp by making it build a
 non-chromium port; that includes subtasks of
  - getting the gyp+jsc build working again (it has worked in the past)
  - see how close to the existing mac/win build files we can get with gyp
 
 In particular, if we can generate build files like the Apple Windows
 WebKit port, there are other projects like the Windows Cairo build and
 the WinCE work that could hopefully benefit with minor tweaking.
 
 From there, it would probably fall on other builds (qmake, autotools)
 to see if they can benefit from gyp's shared file lists.  From my
 brief tinkering with the GTK build I think I could generate
 Makefile.am's pretty easily; I lack experience with qmake.  But I also
 think it would be a good thing to simply reduce the number of build
 systems

FWIW, for the wx build, I have waf calculate a list of sources to build by 
passing in a set of directories (also used for setting includes) and rules 
about feature defines and port info. So a sample rule list might be compile 
any source file in any of the following root directories, and also compile any 
source file in any wx and curl subdirectory, along with any source file in a cf 
subdirectory when building on Mac. Thanks to the highly structured nature of 
the WebKit build system, this works surprisingly well. Compiling a source file 
list (of even 1200+ files) actually adds almost no time to the build but has 
saved me many hours of patching build file lists and/or sharing that 
maintenance work with some other port. 90% of the build fixes I have to commit 
these days are new platform methods that need a port implementation (or at 
least a stub).

Since waf is really just a Python API, this is all done in straight Python, and 
outside of the addition of new directories, I almost never need to update the 
build system, which is probably one reason most contributors hardly ever touch 
wx or notice it anymore, even though we're still out there chugging along at 
filling the implementation holes. ;-) 

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. 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. I even long ago 
made a start on such an approach in WebKitTools/Scripts/update-sourc
 es-list.py, that used the old Bakefile XML to grab the list of common WebCore 
sources, but I bet it could be updated to pull from the .gyp file lists in no 
time. 

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 

Re: [webkit-dev] Language Bindings

2010-01-08 Thread Kevin Ollivier
Hi,

On Jan 7, 2010, at 5:15 PM, AS wrote:

 Hello
 
 I'm looking into adding bindings for Python to the webkit DOM objects. 
 
 Ideally, what I would like to create is WebKit based application that can use 
 Python for DHTML manipulation. 
 
 From the code, I can see how there are perl scripts that parse the idl files 
 and generate binding files, such as those for Javascript and Objective C, I 
 would like to add a set that does the same for Python. 
 
 From the generated files, I a bit unclear as to where the actual objects are 
 instaniated, i.e. if some jscript created a new say node, is there a table of 
 class names / ctores somewhere?
 
 Would it be possible for someone to give a quick overview of what process 
 should be followed to create a new language binding. 

The wx port actually has this capability to some degree. (Not sure if it has 
been implemented elsewhere yet.) You can check the wxPython release for Mac and 
Win (Ubuntu is coming hopefully soon) here: 

http://wxwebkit.wxcommunity.com/index.php?n=Main.Downloads

There's also a sample HTML editor app that uses DOM APIs to do all it's 
property changes. The source for it is here: 

http://eclass.svn.sourceforge.net/viewvc/eclass/trunk/htmleditor/htmleditor.py?revision=862view=markup

Some methods in that code that touch the DOM are the GetParent method (finds if 
the current selection is inside a particular tag, such as A) and 
ShowEditorForTag, which uses a pre-defined attribute list to grab the current 
value from the DOM, show an editor, and then set the user-specified value on 
the DOM element when the editor is closed.

I haven't landed the bindings yet in trunk as they are a somewhat large project 
and I'm still working on them. To create them, what I did was add a new 
bindings generator in WebCore/bindings/scripts that generated C++ bindings. (I 
based it off the CodeGeneratorCOM.pm script but I had to modify it quite a bit 
to output COM-free C++ code.) Then I used SWIG to wrap those as Python objects. 

Regards,

Kevin

 thanks
 ___
 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] Platform API for Uniscribe/ComplexTextController?

2009-12-02 Thread Kevin Ollivier
Hi Dan,

On Dec 1, 2009, at 8:29 AM, Dan Bernstein wrote:

 
 On Nov 29, 2009, at 10:27 AM, Kevin Ollivier wrote:
 
 Hi all,
 
 The wx port is starting to look at getting proper support for complex text, 
 and one of the first places I started looking at was the Win and Mac port 
 implementations. I noticed that the complex text code in FontWin.cpp and 
 FontComplexTextMac.cpp is largely the same, passing the heavy lifting down 
 to their respective complex text controllers, and I actually wondered if 
 they could be merged if there were some tweaks to the APIs to make them 
 compatible.
 
 That led me to wonder if we couldn't make ComplexTextController one of our 
 platform classes and have USE() defines to determine the implementation. 
 Then we could move the drawComplexText, floatWidthForComplexText, and 
 offsetForPositionForComplexText into Font.cpp guarded by that USE() define. 
 The wx port can provide the native font handles the Win/Mac controllers 
 need, so it'd really be great if we could just add these into our build to 
 get complex text support working without having to implement the complex 
 text methods differently for each platform. 
 
 BTW, I actually already did get UniscribeController compiling, actually, but 
 on Windows I had to have the build script copy it to platform/graphics/wx 
 because MSVC implicitly puts the current directory first on the path, which 
 was causing it to pick up platform/graphics/win/FontPlatformData.h instead 
 of the wx one when compiling that file. :( So that's something else that 
 would need to be addressed if ports can start sharing these files.
 
 Thanks,
 
 Kevin
 
 Hi Kevin,
 
 This sounds like a generally good idea. ComplextTextController is already 
 using USE() macros to select between Core Text and ATSUI. I am not entirely 
 sure how the the *ComplexText() methods will be guarded in Font.cpp in your 
 proposal. Are you suggesting something like
 #if USE(ATSUI) || USE(CORE_TEXT) || USE(UNISCRIBE) || …
 ?

I was thinking we'd create some WTF_USE_COMPLEX_TEXT_CONTROLLER so that it 
would be easier to opt out of using it, since a port may define / use 
WTF_USE_ATSUI or WTF_USE_CORE_TEXT for purposes other than supporting complex 
text. 

 There are still some differences in behavior between ComplexTextController 
 and UniscribeController, so you’d need to find a way to accommodate them or 
 eliminate them.

In terms of public API, I think merging the changes shouldn't be too difficult. 
IIUC finalRoundingWidth() can probably just remain 0 on Win, and the ignore 
writing direction optimization on Mac can be put in the common API but just be 
ignored under Windows.

The only thing I'm not sure about is that Mac and Win get the run's width in 
different ways, but I'm not quite sure why they do it differently00. Either 
approach would seem to work for both platforms. Mac calculates the total width 
when the ComplexTextController is created, while on Win to calculate it you 
have to call advance(run.length()) then get the value using runWidthSoFar().

The quick fix would seem to be to just have both platforms call 
advance(run.length()) and then use runWidthSoFar(), but I suspect that would 
hurt performance on Mac. Another way that might fix it would be to call 
advance(run.length()) in UniscribeController::UniscribeController then set 
m_totalWidth = m_runWidthSoFar and reset m_currentCharacter and m_runWidthSoFar 
to 0. Lastly, we could take the guts of advance and put it into something like 
a Win version of adjustGlyphsAndAdvances() that sets total width. Do you have 
any suggestions / preferences for how to tackle this? 

 I look forward to seeing a patch!

Cool, I don't think this will take too long to work up. :)

Thanks,

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


[webkit-dev] Platform API for Uniscribe/ComplexTextController?

2009-11-29 Thread Kevin Ollivier
Hi all,

The wx port is starting to look at getting proper support for complex text, and 
one of the first places I started looking at was the Win and Mac port 
implementations. I noticed that the complex text code in FontWin.cpp and 
FontComplexTextMac.cpp is largely the same, passing the heavy lifting down to 
their respective complex text controllers, and I actually wondered if they 
could be merged if there were some tweaks to the APIs to make them compatible.

That led me to wonder if we couldn't make ComplexTextController one of our 
platform classes and have USE() defines to determine the implementation. Then 
we could move the drawComplexText, floatWidthForComplexText, and 
offsetForPositionForComplexText into Font.cpp guarded by that USE() define. The 
wx port can provide the native font handles the Win/Mac controllers need, so 
it'd really be great if we could just add these into our build to get complex 
text support working without having to implement the complex text methods 
differently for each platform. 

BTW, I actually already did get UniscribeController compiling, actually, but on 
Windows I had to have the build script copy it to platform/graphics/wx because 
MSVC implicitly puts the current directory first on the path, which was causing 
it to pick up platform/graphics/win/FontPlatformData.h instead of the wx one 
when compiling that file. :( So that's something else that would need to be 
addressed if ports can start sharing these files.

Thanks,

Kevin

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


Re: [webkit-dev] Leak reports during shutdown

2009-09-29 Thread Kevin Ollivier

Hi Zoltan,

On Sep 29, 2009, at 12:39 PM, Zoltan Herczeg wrote:


Hi Kevin,

WebKit approach is NOT to free memory before quit to make the quit  
process
as fast as possible. The memory manager should free the unfreed  
objects.
However, this approach makes really hard to find the real leaks  
(which

are unreferenced objects).

In my experince the unfreed (non-leak) objects come from several  
sources:

 - JavaScriptCore garbage collector is not called before quit
 - Caches are not cleared before quit
The previous two are performed by QtLauncher in debug mode. See
WebKit/qt/QtLauncher/main.cpp launcherMain()
 - In case of workers, the gc() does not called for each worker  
threads

when the application quits. The JavaScript threads are simply aborted.
 - Global objects are not freed at all. There was an attempt to free  
them
(see https://bugs.webkit.org/show_bug.cgi?id=27980 ) but seems not  
worth

to continue that work, although it helped to find leaks such as this:
https://bugs.webkit.org/show_bug.cgi?id=29295

The remaining unfreed objects are possible leaks. Many of them are
probably port specific (not all port maintainers have resources to  
keep

leak hunters).


Thanks for the detailed response, this makes things very clear! :-) (  
thanks to Darin for his info about leak checkers) I guess I didn't  
really expect things to work this way in debug mode as it seems to me  
RefCountedLeakChecker pretty much needs those resources to be freed in  
order to provide useful leak reports. In any case, I've been thinking  
about adding some APIs to manage the cache to wxWebKit and now I've  
got even more of an incentive to code something up. :-)


Thanks,

Kevin


Zoltan


Hi all,

For a while, ports like wx and Win/Cairo have been seeing various
leaks reported on shutdown, but at least on Mac I've been unable to
see these leaks using memory leak checkers like the one in
Instruments, so I decided to poke into the code a bit more and try to
understand what's going on a bit better.

What I found was that the reported object leaks were pretty much all
related to objects that JSC has references to. Changing
~ScriptController to do a garbageCollectNow() instead of
garbageCollectSoon(), for example, drastically reduced the number of
reported leaks, cleaning up all the CachedResource leaks and almost
all the WebCoreNode leaks. The remaining leaks were almost all
JSC::Structure objects. I've been digging through the code to try and
find the place where these JSC objects are finally deleted, but I
haven't found anyplace obvious in the code, neither in common code  
nor

in the ports' code.

My question is, is there somewhere these objects are being deleted on
final shutdown that apparently happens after the leaks are reported,
or does WebKit have assumptions such as that all still running timers
must fire before final shutdown that ports such as ours are not
honoring? (e.g. in my tests garbageCollectSoon() does not end up
firing the callback because the app shuts down too fast.)

Thanks,

Kevin
___
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] waf build patches

2009-07-23 Thread Kevin Ollivier

Hi all,

Well, I've finally submitted the patches for building wxWebKit using  
waf. They're available from here:


https://bugs.webkit.org/show_bug.cgi?id=27619

I've tried to keep the patches how you guys like them - under 5KB  
each. ;-) There's only 6, with one being about 20KB but that can be  
broken up too if requested. (Though they're basically helper scripts  
so I suspect they just need a look over.) If I could get some quick  
reviews on these, it'd be really appreciated as trunk simply doesn't  
build for wx right now, and although I have a git branch that still  
builds, it's against sources that are becoming increasingly dated and  
so I'd like to be able to update it and get everything back on track.


Also, as a heads up, I'm heading out on vacation Saturday, so if these  
get reviewed after that I probably won't be able to apply them until  
week after next. So if I don't apply them right away it's not because  
I don't want to. ;-)


Also #2, just for anyone curious, I was able to get it working so that  
the list of sources to compile is generated automatically using an  
excludes mechanism. I'd certainly be happy to help anyone who is  
interested in making the exclude patterns configurable based on port.  
As you can see from the patches, I only had to explicitly add (or  
remove) a dozen or so sources. Everything else is generated simply by  
telling it to build all non-port-specific sources in common dirs plus  
sources in wx and CURL directories, so I feel pretty confident that  
this could be adapted to build other ports fairly quickly.


Thanks,

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


Re: [webkit-dev] Build File Maintenance (was Re: Please welcome GYP to the our dysfunctional build family)

2009-07-14 Thread Kevin Ollivier

Hi Peter,

On Jul 13, 2009, at 2:03 PM, Peter Kasting wrote:

On Mon, Jul 13, 2009 at 1:56 PM, Maciej Stachowiak m...@apple.com  
wrote:
One belated comment on this topic. It would be neat if some port  
agreed to be the guinea pig to see if gyp could plausibly work for  
more than Google's ports. The Wx port probably has the lowest  
resources of any complete port in the tree, so they might not be the  
best choice of experimental subject, particularly if for them the  
process required writing a new gyp back end and if they are not yet  
entirely comfortable going the gyp route.


Another note, based on some #chromium conversations: if someone  
passionate made CMake (or any other tool) into something compelling  
enough to work better for Chromium than gyp does (or at least to  
work close-to-as-well), and that tool was more plausible for other  
ports in the WK tree to adopt, we wouldn't be opposed in principle  
to using it.  The potential benefits of a shared build system are  
clear, and we're not trying to tell people that system has to be  
gyp; we're just probably not prepared to be the ones to go determine  
other ports' needs and decide on the Build System To Rule Them All.


If no one wants to do this, but other ports do want to try gyp, we  
can lend them a hand in checking it out too.  Whatever makes things  
at least a little easier.


After reading Mark's comments, one idea that has been stewing around  
in my head is seeing if it would be possible to have waf optionally  
call the GYP GenerateOutput methods directly, instead of doing a  
build, by converting the final, computed compiler/linker settings into  
a GYP-friendly series of lists/dicts. If that could be made to work,  
it would offer the best of both worlds. On one hand, we have a fast  
and scalable build system that can be extended to do pretty much  
anything you can code up in Python, and on the other, you can still  
use IDE projects if that's what you're comfortable with.


Of course, the big question is if waf would have the same limitations  
as SCons in regards to doing this, but I think it's at least worth  
exploring. I'd be interested to know what limitations you guys ran  
into when trying to use SCons for this sort of thing. Of course, there  
will always be some things that would be hard to do with the IDE  
projects, but it may be possible for us to make use of waf there too,  
by using command line arguments to have it, for example, only generate  
the derived sources, which we could call from the IDE projects.


Thoughts?

Thanks,

Kevin


PK
___
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] Build File Maintenance (was Re: Please welcome GYP to the our dysfunctional build family)

2009-07-14 Thread Kevin Ollivier

Hi Peter,

On Jul 14, 2009, at 10:27 AM, Peter Kasting wrote:

On Tue, Jul 14, 2009 at 9:24 AM, Kevin Ollivier kev...@theolliviers.com 
 wrote:
Of course, the big question is if waf would have the same  
limitations as SCons in regards to doing this, but I think it's at  
least worth exploring. I'd be interested to know what limitations  
you guys ran into when trying to use SCons for this sort of thing.  
Of course, there will always be some things that would be hard to do  
with the IDE projects, but it may be possible for us to make use of  
waf there too, by using command line arguments to have it, for  
example, only generate the derived sources, which we could call from  
the IDE projects.


I don't really know enough about either waf or SCons to comment.  My  
impression as a naive observer was that SCons had serious speed  
issues with our build (especially the overhead for a null build).


Yeah, I hit the same problems as well, and after some profiling and  
discussions on the SCons mailing list, came to the conclusion that  
SCons simply had architectural issues that made it a poor choice for a  
large project like WebKit.


The overhead for waf is minimal, though, and quite possibly even less  
than make on Unix systems. Some benchmarks done have shown it to be  
significantly faster than make, in fact, which is my subjective  
opinion as well. My Windows builds also feel noticeably faster, but  
then again I was using .vc makefiles, which meant I couldn't do  
parallel builds there. ;-) I just haven't had time to really sit down  
and benchmark.


Thanks,

Kevin


PK


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


Re: [webkit-dev] Build File Maintenance (was Re: Please welcome GYP to the our dysfunctional build family)

2009-07-11 Thread Kevin Ollivier

Hi Jeremy,

On Jul 10, 2009, at 6:54 PM, Jeremy Orlow wrote:

On Fri, Jul 10, 2009 at 6:26 PM, Kevin Ollivier kev...@theolliviers.com 
 wrote:

Hi Jeremy,

On Jul 10, 2009, at 3:03 PM, Jeremy Orlow wrote:

[snip]

Your argument makes sense if WebKit is only built for one platform/ 
build-system.  Unfortunately it's not.  So the question is whether  
it's easier to maintain lots of different build files or whether  
it's easier to maintain one file that's perhaps a bit more abstract  
+ the tool that interprets it.


I agree that working directly in the project file for your platform  
is easier IF you're only developing for one platform.  But once you  
start maintaining more than one project file, I think GYP is a big  
win.


While we hope that others will update our GYPI file when they add/ 
remove files, our build depends on it...so we'll definitely be  
keeping it in sync.  So I think the question then becomes whether  
it's easier for you to maintain your new build format, or whether  
it's easier to make it a target for GYP.  I honestly don't know  
what the answer is, but I think it's worth taking a closer look at  
GYP.


Actually, the big question in regards to having GYP reduce overall  
project maintenance is whether or not the other ports will adopt  
GYP. If the answer is yes, then it would be more compelling for wx  
to do so as well, assuming of course that someone implements a waf  
backend so that we can. :-) If the answer is no, though, then GYP is  
not reducing the amount of project maintenance work for any port  
other than Chromium, in which case there will still be 6 build  
systems (still 5 even if wx were to switch) and the problem I  
originally posed in this thread will still be an issue. In that  
case, the only way to really reduce the maintenance work of adding /  
removing files would again be to adopt a script like the one I  
suggested earlier.


You're right.  The burden of updating the GYPI file is less than the  
others, but it's still another file you need to change.  But note  
that the maintainers of each project/platform/etc define which files  
to exclude.  This is different from the other build systems where  
the person updating the file needs to decide whether it should go  
into the build or whether it should only be built with certain flags.


Speaking of which, with waf / Python I've actually almost completely  
automated the generation of the list of include dirs for my build  
projects based on the source files, so that I'm not maintaining them  
by hand anymore except for a few exceptions. And thinking about it,  
I bet I can even mostly automate the list of source files too, by  
having it grab all the .cpp files in the common dirs and special  
subdirs like curl and wx, then having some include / exclude filters  
to deal with a few special cases. :-) The question will be the  
performance hit, but at least with the includes it's not even  
noticeable, and I could always look into caching and changing only  
when you do an svn up or svn add/remove.


I suggest you take a look at GYP.  Much of what you're talking about  
it already does.


Of course, GYP (and Bakefile, too) supports a wildcard file matching  
and exclusion mechanism, but that's not really as flexible as what I'm  
talking about. I'm talking about something that calculates and then  
traverses a list of subdirectories where even the set of  
subdirectories traversed are conditional upon variable values set  
earlier in the build. It's certainly possible what I'm asking for  
could be made to work, but in the end if I did get it going I'm pretty  
sure that I would be very unhappy with the syntax because, quite  
simply, a data format is not really designed to support recursion,  
looping and the like. It's, well, designed for storing data, which is  
why even conditionals are expressed in GYP using nested lists and  
property=value syntax.


So the bottom line for me is not really that I couldn't figure out a  
way to use GYP, as after all I've been using something like it for  
years, rather that when I need more flexibility and more control, the  
way to get that using a format like Bakefile or GYP does not feel  
natural or intuitive; it's more like trying to squeeze a square peg  
into a round hole. Even the question of where should the change go -  
extend GYP, throw it somewhere in build-webkit, write a build command  
that spits its output to GYP, etc. can become a difficult question. As  
for waf, the only question is whether the change should go in the  
common portion of the build system, or in a project-specific part, and  
refactoring as needs change is simple and straightforward, meaning I'm  
more likely to just do it rather than settle for 'good enough' just  
because refactoring would require extending the project generator  
tool, etc.


GYP's primary goal is to generate IDE project files, because that's  
what apparently many ports want. Since IDE projects have many

[webkit-dev] Build File Maintenance (was Re: Please welcome GYP to the our dysfunctional build family)

2009-07-10 Thread Kevin Ollivier

Hi Dimitri and all,

Congrats on getting this into WebKit! Actually, I'm in the middle of a  
build system switch as well - to waf, a re-write of scons that removed  
many of the performance issues related to searching and calculating  
dependencies, and which has added some nice features as well (such  
as .app bundle building). I haven't completed the switch so I can't do  
preliminary benchmarks, but I'm pretty sure it's actually as fast or  
faster than make on *nix/Mac. (And BTW, it will probably make Apple  
devs happy to hear that I'm no longer using the horrid build-wxwebkit  
bash script to manage the build, but instead have integrated  
everything into build-webkit finally!)


The main reason I bring this up, though, is because I think this sort  
of thing shows that we're unlikely to centralize our build systems any  
time soon, and I feel a bit sorry for the core devs who, as they  
accept new ports, are probably finding it more and more tedious, if  
not difficult, to make sure all the projects get updated by a change  
to the common parts of the build. They've been very helpful in terms  
of trying to keep the ports in shape when they make changes, and I  
feel like I'd like to do what I can to make it easier and faster to  
keep the other ports in sync.


At one point, I started on a script (located in WebKitTools/Scripts/ 
update-sources-list.py) whose idea was to take the list of common  
sources from one file, and make changes to MSVC, Qt, GTK, etc. build  
systems, so that WebKit devs need only add the file once, run the  
script, and commit the results. I got it as far as theoretically  
generating the Qt and GTK file lists, but I don't think anyone on  
those ports tried integrating it into their build system, and I sort  
of moved on to other things.


Unfortunately, right now I'm really swamped (my build system rewrite  
was prompted by WebKit exceeding internal, hardcoded, Bakefile limits,  
not by choice), but if a common location for the source files list  
could be decided upon, I really think a script would be a simple  
matter to write up (even in Perl :P ), and I think it would probably  
save developers time and reduce build breakages as well, which I think  
would add up to a lot of saved time for a lot of people over the long  
term. The only format I'm not sure if we could automate reliably would  
be the XCode format (at least, on non-Mac machines), because IIUC we'd  
need some sort of parser for it, but Apple is the only port  
maintaining those directly IIUC, as now Chromium will be using GYP to  
update their XCode projects. So even if we couldn't solve the XCode  
issue, that would drop it to updating two locations tops.


So, does anyone think this would be a bad idea, or have any alternate  
suggestions on how to improve things? If not, is anyone willing to  
take the ball and run with it? I'd be willing to invest some more time  
in it, but my ability to commit to it over the next couple weeks at  
least would be very limited.


Thanks,

Kevin

On Jul 9, 2009, at 9:23 PM, Dimitri Glazkov wrote:


Dear WebKiteurs,

In our persisting quest to be more like a common WebKit port, we have
added Chromium build files to the tree this afternoon. These files are
WebCore/WebCore.gypi and JavaScriptCore/JavaScriptCore.gypi and they
are the GYP include files. As you may know, we use GYP
(http://code.google.com/p/gyp) for generating MSVC, XCode, Scons, and
even Make projects for Chromium.

We are rather fond of GYP. Perhaps it is because it allows us to
maintain one set of project files for all three Chromium platforms;

or maybe because it lets us to do things like WebCore.gypi, where we
can just mindlessly add all project files to the list and then use
various neat GYP filtering facilities to narrow them down to sets that
are relevant for specific builds;

or maybe because it easifies creating cross-platform and
cross-build-system targets, actions, and rules;

or maybe because we just love saying Gyp!

I don't truthfully know.

What I do know is that starting now, we'd love for you to remember
WebCore.gypi and JavaScriptCore.gypi when you are adding or removing
files from WebCore or JavaScriptCore. Thanks to the power of GYP, you
don't have worry whether this file will be used by Chromium: the rule
is that if there's a project file change, it applies to the *.gypi
files. The format is very simple and intuitive, a simple Python/JSONey
list+dict.

Thank you for your attention, men and women of WebKit.

:DG
___
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] Build File Maintenance (was Re: Please welcome GYP to the our dysfunctional build family)

2009-07-10 Thread Kevin Ollivier

Hi David,

On Jul 10, 2009, at 11:06 AM, David Kilzer wrote:




So, does anyone think this would be a bad idea, or have any
alternate suggestions on how to improve things?


What about adding support for waf to gyp?


If we're talking about Chromium, waf is much faster for building  
WebKit than scons is, so yeah, I would say adding the ability to use  
it instead of scons is a no-brainer.


As for wx, while I'm open to the idea of using gyp to help others out  
or simplify matters for the core devs, for us I'm pretty sure it will  
mostly just be one more added layer to our build system. I've been  
using Bakefile for years now and while I thought the idea was great at  
first, I've found it mostly a pain to work with. Some of that is due  
to Bakefile itself, of course (like the latest bug...), but a lot of  
it is just the general approach and issues inherent with adding one  
more tool to the toolchain. Even though there's some sort of meta-tool  
generating the build projects, it only reduces, not removes, the need  
to understand and deal with the native project formats it outputs.  
Also, since the meta-tool can have bugs or missing features too,  
there's an additional point of failure added, and also added work in  
terms of maintaining the build system. Plus, any time you want to add  
a feature, you should look into how to implement it in the various  
formats that gyp supports to avoid hacks, a process which can  
sometimes require pretty creative solutions for less capable build  
tools. And there's also the fact that, if wx uses gyp, people are  
going to start asking for support for their favorite project format,  
which is just one more thing to deal with.


In short, I think I've just come to be soured on the approach in  
general. I think I've come to agree with the point that the waf site  
makes about domain-specific languages not being a good idea for build  
systems, and when you use a tool like Bakefile or gyp, you not only  
need to become familiar with that tool's project file language, but  
also to some level with the formats of the project files that it  
outputs in order to debug or add new capabilities. With waf, all I  
ever really need to know is Python, which I already know, and the waf  
APIs, which I'm learning but for the most part have been pretty simple  
and straightforward to work with. The bottom line for me is that  
anything that has me spending less time on maintaining the build  
system and more on the actual product is a good thing in my book. ;-)


Thanks,

Kevin

The only format I'm not sure if we could automate  reliably would  
be the XCode format (at least, on non-Mac

machines), because IIUC we'd need some sort of parser for it,
but Apple is the only port maintaining those directly IIUC,
as now Chromium will be using GYP to update their XCode
projects.


If you hand-edit Xcode project files enough times you start to  
understand them, but you also may go insane in the process.  I don't  
know that you have to write a full parser for it, but there is some  
non-trivial, minimal structure you have to understand to update the  
file properly.



So even if we couldn't solve the XCode issue, that
would drop it to updating two locations tops.


I count 6 build systems in use currently (SCons support was added  
and removed within the last year):


- Apple's Xcode
- Apple's vcproj (also used by at least one other Windows port)
- wx Bakefile (which will be replaced by waf soon)
- Qt Qmake
- GTK GNUMakefile
- Google's gyp (added recently)

Are any of the other ports going to switch to generating their build  
files using gyp?


Dave



- Original Message 

From: Kevin Ollivier kev...@theolliviers.com
To: Dimitri Glazkov dglaz...@chromium.org
Cc: Mark Mentovai m...@chromium.org; WebKit Development webkit-dev@lists.webkit.org 


Sent: Friday, July 10, 2009 8:52:57 AM
Subject: [webkit-dev] Build File Maintenance (was Re: Please  
welcome GYP to the our dysfunctional build family)


Hi Dimitri and all,

Congrats on getting this into WebKit! Actually, I'm in the middle  
of a build
system switch as well - to waf, a re-write of scons that removed  
many of the
performance issues related to searching and calculating  
dependencies, and which
has added some nice features as well (such as .app bundle  
building). I haven't
completed the switch so I can't do preliminary benchmarks, but I'm  
pretty sure
it's actually as fast or faster than make on *nix/Mac. (And BTW, it  
will
probably make Apple devs happy to hear that I'm no longer using the  
horrid
build-wxwebkit bash script to manage the build, but instead have  
integrated

everything into build-webkit finally!)

The main reason I bring this up, though, is because I think this  
sort of thing
shows that we're unlikely to centralize our build systems any time  
soon, and I
feel a bit sorry for the core devs who, as they accept new ports,  
are probably
finding it more and more tedious, if not difficult

Re: [webkit-dev] Build File Maintenance (was Re: Please welcome GYP to the our dysfunctional build family)

2009-07-10 Thread Kevin Ollivier

Hi Jeremy,

On Jul 10, 2009, at 3:03 PM, Jeremy Orlow wrote:

[snip]

Your argument makes sense if WebKit is only built for one platform/ 
build-system.  Unfortunately it's not.  So the question is whether  
it's easier to maintain lots of different build files or whether  
it's easier to maintain one file that's perhaps a bit more abstract  
+ the tool that interprets it.


I agree that working directly in the project file for your platform  
is easier IF you're only developing for one platform.  But once you  
start maintaining more than one project file, I think GYP is a big  
win.


While we hope that others will update our GYPI file when they add/ 
remove files, our build depends on it...so we'll definitely be  
keeping it in sync.  So I think the question then becomes whether  
it's easier for you to maintain your new build format, or whether  
it's easier to make it a target for GYP.  I honestly don't know what  
the answer is, but I think it's worth taking a closer look at GYP.


Actually, the big question in regards to having GYP reduce overall  
project maintenance is whether or not the other ports will adopt GYP.  
If the answer is yes, then it would be more compelling for wx to do so  
as well, assuming of course that someone implements a waf backend so  
that we can. :-) If the answer is no, though, then GYP is not reducing  
the amount of project maintenance work for any port other than  
Chromium, in which case there will still be 6 build systems (still 5  
even if wx were to switch) and the problem I originally posed in this  
thread will still be an issue. In that case, the only way to really  
reduce the maintenance work of adding / removing files would again be  
to adopt a script like the one I suggested earlier.


Speaking of which, with waf / Python I've actually almost completely  
automated the generation of the list of include dirs for my build  
projects based on the source files, so that I'm not maintaining them  
by hand anymore except for a few exceptions. And thinking about it, I  
bet I can even mostly automate the list of source files too, by having  
it grab all the .cpp files in the common dirs and special subdirs like  
curl and wx, then having some include / exclude filters to deal with a  
few special cases. :-) The question will be the performance hit, but  
at least with the includes it's not even noticeable, and I could  
always look into caching and changing only when you do an svn up or  
svn add/remove.


That's the sort of flexibility and ability to quickly experiment and  
automate that scripts offer, and I suspect I will really miss that if  
I switch back to something like Bakefile / GYP.


Thanks,

Kevin


J



Thanks,

Kevin


The only format I'm not sure if we could automate  reliably would  
be the XCode format (at least, on non-Mac

machines), because IIUC we'd need some sort of parser for it,
but Apple is the only port maintaining those directly IIUC,
as now Chromium will be using GYP to update their XCode
projects.

If you hand-edit Xcode project files enough times you start to  
understand them, but you also may go insane in the process.  I don't  
know that you have to write a full parser for it, but there is some  
non-trivial, minimal structure you have to understand to update the  
file properly.


So even if we couldn't solve the XCode issue, that
would drop it to updating two locations tops.

I count 6 build systems in use currently (SCons support was added  
and removed within the last year):


- Apple's Xcode
- Apple's vcproj (also used by at least one other Windows port)
- wx Bakefile (which will be replaced by waf soon)
- Qt Qmake
- GTK GNUMakefile
- Google's gyp (added recently)

Are any of the other ports going to switch to generating their build  
files using gyp?


Dave



- Original Message 
From: Kevin Ollivier kev...@theolliviers.com
To: Dimitri Glazkov dglaz...@chromium.org
Cc: Mark Mentovai m...@chromium.org; WebKit Development webkit-dev@lists.webkit.org 


Sent: Friday, July 10, 2009 8:52:57 AM
Subject: [webkit-dev] Build File Maintenance (was Re: Please welcome  
GYP to the our dysfunctional build family)


Hi Dimitri and all,

Congrats on getting this into WebKit! Actually, I'm in the middle of  
a build
system switch as well - to waf, a re-write of scons that removed  
many of the
performance issues related to searching and calculating  
dependencies, and which
has added some nice features as well (such as .app bundle building).  
I haven't
completed the switch so I can't do preliminary benchmarks, but I'm  
pretty sure
it's actually as fast or faster than make on *nix/Mac. (And BTW, it  
will
probably make Apple devs happy to hear that I'm no longer using the  
horrid
build-wxwebkit bash script to manage the build, but instead have  
integrated

everything into build-webkit finally!)

The main reason I bring this up, though, is because I think this  
sort of thing
shows that we're unlikely to centralize our build

Re: [webkit-dev] Proposal for a new way to handle porting #ifdefs

2009-05-25 Thread Kevin Ollivier

Hi Maciej,

On May 25, 2009, at 12:33 AM, Maciej Stachowiak wrote:



On May 24, 2009, at 10:38 PM, Adam Barth wrote:

On Sun, May 24, 2009 at 10:08 PM, Maciej Stachowiak m...@apple.com  
wrote:
I don't think it should be discounted. It might be helpful to  
clarify why

you think ifdefs are a bad solution.


When I made changes that affect several ports, I try to be good  
WebKit

citizen and update all the ports, but the situation we have today
makes that a pain.  For example, consider the case of adding a method
to ChromeClient.  I understand that I have to add the method to a
bunch of port-specific subclasses, but theses classes are stored in
slightly different locations (WebCoreSupport or WebKitSupport?), have
different naming conventions (WebChromeClient or ChromeClientGtk?),
and have different names spaces (using namespace WebCore or not?).
All these issues combine to ensure that I've screwed it up, and I
don't really have a way to test because I can't building the XYZ  
port.

I just have to check in my change and pray.

Anyway, that's my rant.  Are patches welcome for homogenizing some of
these idiosyncrasies?


I would be in favor, though in general we leave the WebKit layer up  
to port owners. Maybe others would like to chime in.


Personally, I'd be in favor of some defined conventions that ports are  
at least suggested to follow. I don't think homogenizing the Web(Kit |  
Core)Support layer would be a big problem for porters, and I think  
it's definitely worth doing if it makes it easier for you guys to make  
changes to the ports.


In hindsight, while we used WebKitSupport for the wx port, I think  
WebCoreSupport is probably the better choice, or perhaps even  
WebCoreClients would be more appropriate. Regarding the file names, I  
think most ports use the convention of WhateverClientPort. I think  
actually the Apple ports are the only ones using the WebWhateverClient  
convention. While I can go either way, I do like the  
WhateverClientPort convention, myself. Regardless, if we decide on a  
particular convention or guideline, I will happily update the wx port  
to use it! :-)


I think one key step here will be to have a try server integrated  
with the buildbots, so that it's at least practical to test such  
patches.


I definitely second this, it would be enormously helpful! :-)

Thanks,

Kevin


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] Review Queue

2009-05-22 Thread Kevin Ollivier

Hi Eric,

On May 21, 2009, at 9:47 PM, Eric Seidel wrote:


Interesting analogy.  However, closing means to me that the community
is done with the bug.  Denying a patch because no one's working on it
anymore (aka, no one is there to respond to review comments even if
you make them) is not the same as closing a bug.  There is a
forgotten patches link on the nightly start page iirc which shows
all the r-'d patches. :)  http://nightly.webkit.org/start/  I've
certainly looked through that list for patches to finish before.
Maybe I'm the only one.


Many of the bugs we see languish in the review queue are just too big
to be easily reviewed.  I don't think we encourage enough decisive
action from reviewers (like just r-ing a patch because it's too big to
review).  At least an r- action gives the contributer something more
than silence. :)

This could of course all be avoided if we got our review queue down to
something manageable. :)


My issue with this is that doing r- doesn't really solve the problem,  
it just makes the patch magically seem to disappear from the review  
queue. In general, I think it does make sense to prune really old  
patches and bugs periodically, but 2 weeks is way too fast IMHO (and  
even 1 month probably), even considering bit rot, and what I don't  
understand is why you want to put the burden on patch submitters to  
resubmit because their patches aren't getting reviewed? I don't see  
how this helps patches to get reviewed; in fact, quite the opposite -  
they may magically disappear from the queue on just the day someone  
might have decided to check the queue and actually review it.


I do understand the frustration, as I've had my fair share of patches  
sit for a while awaiting review, but from what I can tell all your  
changes will do is just make it even more work for me to try and get a  
review. In addition to going around trying to find someone to review  
my patch, now I have to periodically resubmit too. And this gets my  
patch reviewed faster how?


I do think there are real issues to be discussed here, and I think  
some of the ideas presented in other posts in this thread are worth  
taking a look at, but I just feel this approach is more a knee-jerk  
reaction rather than a real strategy to fix the review queue problem.


Regards,

Kevin


We're down to 95 after today.  (We were at 144 two days ago!)
curl -s https://bugs.webkit.org/request.cgi; | grep PDT | wc -l
95

-eric

On Fri, May 22, 2009 at 2:38 PM, Maciej Stachowiak m...@apple.com  
wrote:


On May 21, 2009, at 9:36 PM, Geoffrey Garen wrote:

Our current defacto policy requires involvement on both sides.
Submitters need to be involved in finding people to review their
patches.  Posting patches to the review queue does not automatically
get you a review, except occasionally by Darin Adler or myself.

If a bug totally stalls, and is sitting in the review queue untouched
I view that as the responsible reviewers' implicit rejection of the
patch.  I, as a responsible reviewer, am simply making explicit that
implicit rejection.  Personally, I'd rather get an r- on my patches
than have them sit ignored for multiple weeks at a time.

Let's examine these statements in a broader light, substituting bug
database for review queue and bug for patch:
Our current defacto policy requires involvement on both sides.  
Submitters
need to be involved in finding people to fix their bugs. Filing  
bugs to the
bug database does not automatically get you a fix, except  
occasionally by

Darin Adler or myself.
If a bug totally stalls, and is sitting in the bug database  
untouched, I
view that as the responsible reviewers' implicit rejection of the  
bug. I, as
a responsible reviewer, am simply making explicit that implicit  
rejection.
Personally, I'd rather get a closed on my bugs than have them sit  
ignored

for multiple weeks at a time.

So, Eric, should we close all bugs that are older than 2 weeks?

I thought of the same analogy, and for this reason I disagree with  
Eric's
proposed change. Marking patches r- without review feedback is  
impolite to

the patch submitter, and loses valuable information.
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] Libcurl backend build error (was: build on ubuntu not working as expected)

2009-05-20 Thread Kevin Ollivier

Hi Antonio,

Yes, I've fixed it now, sorry.

Thanks,

Kevin

On May 20, 2009, at 5:41 AM, tonikitoo (Antonio Gomes) wrote:


Hi,

That is something reproducible by every one who builds libcurl as
network backend in a non-debug build, and really has to be fixed. Code
looks like this:

(...) WebCore/platform/network/curl/ResourceHandleManager.cpp

#ifndef NDEBUG
char* url = 0;
curl_easy_getinfo(d-m_handle, CURLINFO_EFFECTIVE_URL,  
url);

fprintf(stderr, Curl ERROR for url='%s', error: '%s'\n,
url, curl_easy_strerror(msg-data.result));

#endif
if (d-client())
d-client()-didFail(job, ResourceError(String(),
msg-data.result, String(url),
String(curl_easy_strerror(msg-data.result;
(...)

NOTE: url is declared inside the IFNDEF and used if the if
statement outside that, which is obviously wrong.


Problem:
I build revision 41937 sometime back and wxBrowser and my own  
wxPython

browser was working fine

Today i updated to revision 43688.
1.
First I got an error at line 329
platform/network/curl/ResourceHandleManager.cpp
url not defined in this scope
so i moved out char* url out of #ifndef NDEBUG



--
--Antonio Gomes
___
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] build on ubuntu not working as expected

2009-05-19 Thread Kevin Ollivier

Hi Anurag,

Sorry, I looked at the subject and took it to be a GTK issue.

Anyway, yes, I'm seeing the problem on Ubuntu as well, though I'm not  
seeing it on Mac. It seems as if something is causing page loads to  
hang, but it may take me some time to track down exactly where the  
hang is happening. When I run it in a debugger I do not even get it  
loading the google.com HTML content.


Thanks,

Kevin

On May 19, 2009, at 8:45 AM, David Kilzer wrote:


Yes, your messages are getting to the list.

Your best bet is to contact the wxWebKit maintainer, Kevin Ollivier,  
who I've copied on this message.


Dave


From: anurag uniyal anuraguni...@yahoo.com
To: webkit-dev@lists.webkit.org
Sent: Tuesday, May 19, 2009 8:13:36 AM
Subject: Re: [webkit-dev] build on ubuntu not working as expected

Can anybody confirm this is getting to the list?

From: anurag uniyal anuraguni...@yahoo.com
To: anurag uniyal anuraguni...@yahoo.com; webkit- 
d...@lists.webkit.org

Sent: Sunday, 17 May, 2009 9:36:49 AM
Subject: Re: [webkit-dev] build on ubuntu not working as expected

can anybody give any pointers?

From: anurag uniyal anuraguni...@yahoo.com
To: webkit-dev@lists.webkit.org
Sent: Friday, 15 May, 2009 3:34:55 PM
Subject: [webkit-dev] build on ubuntu not working as expected


I first posted it on webkitsdk-...@lists.apple.com but was  
redirected here.


Hi,

I am facing problem in running latest build on ubuntu.

Problem:
I build revision 41937 sometime back and wxBrowser and my own  
wxPython browser was working fine


Today i updated to revision 43688.
1.
First I got an error at line 329 platform/network/curl/ 
ResourceHandleManager.cpp

url not defined in this scope
so i moved out char* url out of #ifndef NDEBUG

after that build was successful, regresion test also passed except  
few date test which were same in last revision too


2. now wxBrowser does not work as expected e.g.
on opening www.google.com
a) it takes too much time
b) image are not displayed
c) it doesn't go to any other link, just stuck at loading...

for build I used
./set-webkit-configuration --release
./build-webkit --wx --wx-args=wxgc wxpython

my system is
GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
Linux-2.6.24-19-generic-i686-with-debian-lenny-sid'

Any tips are appreciated.

Thanks
Anurag


From Chandigarh to Chennai - find friends all over India. Click here.

Share files, take polls, and make new friends - all under one roof.  
Click here.


Explore and discover exciting holidays and getaways with Yahoo!  
India Travel Click here!


Cricket on your mind? Visit the ultimate cricket website. Enter now!


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


Re: [webkit-dev] Dump render tree of webkit

2009-05-14 Thread Kevin Ollivier

Hi Meryl,

On May 14, 2009, at 9:08 AM, Meryl Silverburgh wrote:


On Thu, May 14, 2009 at 9:11 AM, Ariya Hidayat
ariya.hida...@trolltech.com wrote:



layer at (0,0) size 800x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
  RenderBlock {HTML} at (0,0) size 800x600
RenderBody {BODY} at (8,8) size 784x584


This the render tree. Or did you mean something else?



Thanks. But I was trying it with http://www.cnn.com, it has more than
just a BODY tag, so I am not sure why it does not show the rest, which
is what I care about.


The first line of the output gives you the reason. It says: Blocked  
access to external URL http://www.cnn.com/; The render tree you see is  
most likely that of a blank page used after it couldn't load cnn.com.


It looks like DRT currently doesn't offer a way to disable that  
blocking, though it could probably be added with some hacking. Looks  
like the block is happening inside WebKitTools/DumpRenderTree/mac/ 
ResourceLoadDelegate.mm.


Regards,

Kevin


Moreover , is there any tool/function to dump the DOM of a page to
file/screen?


I guess you could something similar (inspecting the DOM etc) from  
the Web

Inspector.


I am looking for something write to a file/screen to dump the whole
DOM instead of clicking an element at a time.

Thank you.




--
Ariya Hidayat, Software Engineer
Qt Software, Nokia Devices RD
___
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


[webkit-dev] JS_EXPORT addition

2009-04-25 Thread Kevin Ollivier

Hi all,

I'm trying to update the wx port after the addition of JS_EXPORT and  
the idea of exporting symbols. However, I'm noticing that jsc.cpp, for  
example, uses numerous functions / classes which are not part of  
JavaScriptCore/API and are not declared with JS_EXPORT. How is it that  
jsc.exe is being linked properly while using private functions of  
JavaScriptCore.dll on the Apple / GTK ports?


Thanks,

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


[webkit-dev] Windows build ENABLE(ASSEMBLER)

2009-03-26 Thread Kevin Ollivier

Hi all,

I'm trying to get a box ready to be a Windows build bot for the wx  
port, and while trying to build WebKit I've come across an issue with  
ENABLE(ASSEMBLER). Apparently this gets enabled only for Safari Win or  
Mac as it depends on HAVE(JIT) or HAVE(WREC) being set, but if  
HAVE(VIRTUALALLOC) is true (which is set to true under  
PLATFORM(WIN_OS)), then JavaScriptCore/interpreter/RegisterFile.h  
wants to use the roundUpAllocationSize function, which is only defined  
when ENABLE(ASSEMBLER) is true.


Obviously I could play around with doing things like enabling JIT, but  
I'm kind of wondering what my options are in terms of what is portable  
beyond the Apple ports, and what might be the best option for the wx  
port at this point in time. Any advice would be greatly appreciated! :-)


Thanks,

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


Re: [webkit-dev] HAVE_LANGINFO_H and OS X

2009-03-24 Thread Kevin Ollivier

Hi Darin,

On Mar 23, 2009, at 12:55 PM, Darin Adler wrote:

But I think that all DARWIN-targeted ports and indeed any port where  
PLATFORM(CF) is true, should use the superior version based on  
CFDateFormatter. That’s an even better fix for Mac OS X.


Thanks, I've put the more limited fix up here:

https://bugs.webkit.org/show_bug.cgi?id=24780

I plan to look into the CF stuff at some point, but as I noted in the  
bug we don't define PLATFORM(CF) yet so I'd rather go with the fix I  
know works until I have more time to experiment with enabling CF.


Thanks,

Kevin


   -- Darin



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


Re: [webkit-dev] Is there any Windows-GDI-only port?

2009-03-23 Thread Kevin Ollivier

Hi Adam,

On Mar 23, 2009, at 7:28 AM, Adam Roben wrote:


On Mar 23, 2009, at 6:18 AM, 김인기 wrote:


I want to port WebKit to Windows-Mobile device.
But, I could find only CoreGraphics-port and Cairo-port.
Is there no Windows-GDI-only port?


That is correct, there is no Windows port that only uses bare GDI  
calls for drawing.


Actually - the wx port does have a mode using GDI under the hood.  
Digsby currently uses it over the GDI+ mode for performance reasons,  
but they AFAICT don't need to worry about the missing features caused  
by using it.


Regards,

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


[webkit-dev] HAVE_LANGINFO_H and OS X

2009-03-23 Thread Kevin Ollivier

Hi all,

Gustavo Noronha recently wrote me and pointed out that he did some  
work on the GTK port to fix a JSCore test (http://trac.webkit.org/changeset/41909 
), and said he thought that the fix might also apply to the JSCore  
regression we see on the wx port. It does in fact fix the problem, but  
to get the fix I need to explicitly #define HAVE_LANGINFO_H 1 on Mac.  
I'm wondering if it's safe to define it to 1 for all ports building  
under Darwin, or if I should keep the fix isolated to the wx port?


Thanks,

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


Re: [webkit-dev] BUILDING_ON_TIGER/LEOPARD macros

2009-03-15 Thread Kevin Ollivier

Hi Mark,

Thanks for the detailed explanation! I just landed a fix based on your  
suggestions. It built okay with both the wx and Apple ports, but if it  
causes anyone trouble, please let me know!


Thanks,

Kevin

On Mar 14, 2009, at 7:31 PM, Mark Rowe wrote:



On 2009-03-14, at 10:49, Kevin Ollivier wrote:


Hi all,

I'm seeing some strangeness with the OS X availability macros.  
First, it looks like BUILDING_ON_TIGER and BUILDING_ON_LEOPARD are  
defined in JavaScriptCorePrefix.h, which AFAICT is only used by the  
Apple XCode projects, yet the use of these macros are often inside  
PLATFORM(DARWIN) rather than PLATFORM(MAC) checks, meaning other  
ports building on Mac will need them too. Second, even after I  
tried moving them to Platform.h, the MAX_ALLOWED =  
MAC_OS_X_VERSION_10_5 check doesn't work for me, because apparently  
MAX_ALLOWED is defined to the actual latest release on my machine  
(1056) rather than (1050), and so the check doesn't pass and so it  
sets things up as if I'm running something post-Leopard, which I  
only wish I were doing... ;-) Checking MAX_ALLOWED = 1056 does get  
things going right again.


The use of the BUILDING_ON macros inside PLATFORM(DARWIN) blocks may  
all be recent additions.  I introduced one such use earlier this  
week, and I believe Darin may have done so as well.  I'm not sure  
whether there were any instances of this prior to those two  
changes.  Moving the macro definitions in to wtf/Platform.h so that  
they can be used by other ports building on Mac OS X seems  
reasonable to me, but we may need to tweak them slightly to work  
with ports that aren't aware of the SDK and deployment target  
mechanisms that Mac OS X's compiler toolchain provides.


For some background: the way these macros are intended to function  
is that MAC_OS_X_VERSION_MIN_REQUIRED indicates the minimum version  
of the operating system that the binary will run on, while  
MAC_OS_X_VERSION_MAX_ALLOWED indicates the maximum version of the  
operating system that you intend to take advantage of.  Symbols  
introduced in OS versions between MAC_OS_X_VERSION_MIN_REQUIRED and  
MAC_OS_X_VERSION_MAX_ALLOWED will be weak-linked, and symbols  
introduced after MAC_OS_X_VERSION_MAX_ALLOWED will be unavailable  
for use.


When building via Xcode these values are typically derived from two  
configuration settings:  the SDK that your project is targeting  
(corresponding to GCCs -isysroot argument), and the deployment  
target (-mmacosx-version-min).  If you build against the MacOSX10.5  
SDK with a deployment target of 10.4 you will see that  
MAC_OS_X_VERSION_MIN_REQUIRED is set to 1040 and  
MAC_OS_X_VERSION_MAX_ALLOWED is set to 1050.


If you don't build against an SDK or specify a deployment target  
then both MAC_OS_X_VERSION_MIN_REQUIRED and  
MAC_OS_X_VERSION_MAX_ALLOWED will default to your current Mac OS X  
version (eg, 1056), and the compiler happily let you use  
functionality that would prevent your application from running on  
previous versions of Mac OS X.


The Mac build of WebKit explicitly sets a deployment target equal to  
the major version of the Mac OS X version that you are on.  This  
results in both MAC_OS_X_VERSION_MIN_REQUIRED and  
MAC_OS_X_VERSION_MAX_ALLOWED being set to the major component of the  
Mac OS X version (eg, 1050).


Since the wxWidgets build of WebKit doesn't build against an SDK or  
explicitly set a deployment target, it is seeing  
MAC_OS_X_VERSION_MAX_ALLOWED set to 1056 where the Mac build sees  
1050.  This is why the checks that set BUILDING_ON_LEOPARD aren't  
working for you.


I think we could rephrase the checks to accommodate building without  
an SDK and deployment target.  Something like the following should  
do the trick:


#if !defined(MAC_OS_X_VERSION_10_5) || MAC_OS_X_VERSION_MAX_ALLOWED  
 MAC_OS_X_VERSION_10_5

#define BUILDING_ON_TIGER 1
#if !defined(MAC_OS_X_VERSION_10_6) || MAC_OS_X_VERSION_MAX_ALLOWED  
 MAC_OS_X_VERSION_10_6

#define BUILDING_ON_LEOPARD 1
#endif

I hope this clears things up.  Let me know if you have any questions!

- Mark



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


Re: [webkit-dev] Curl Cookie Handling

2009-02-10 Thread Kevin Ollivier

Hi Julien,

On Feb 10, 2009, at 7:08 AM, Julien Chaffraix wrote:


Hi Kevin,

Is this patch still valid, i.e. not made obsolete by another  
approach?


As far as I know, there is no work towards storing the cookies inside
the database as it is done in Firefox. Furthermore I know no work in
cURL toward exposing the cookies so that we could add / remove /
update them simply in our database.

This patch may be a bit special because it is not really cURL
specific. The only dependency to cURL is a method to parse a date (the
'max-age' field), which I found later is already in JavaScriptCore and
would need to be exported to WebCore and maybe need to be adapted.
Thus it could be a base toward a cross-platform cookie implementation.
I do not know if it would be ok for all ports to replicate their
network library's cookie engine.


Well, each port could of course decide for themselves. I know wx would  
like to use this. :-) I wonder if the GTK or other ports are also  
interested? Maybe they should voice their support if so.





Also,
was it a complete patch (sans any bugs, of course) for cookie  
support using
SQLite? I could only test it using wx right now but I would  
definitely be

interested in using the SQLite approach.


It is a complete patch in the sense that it stores and fetch the
cookies from the database. About the bug-free part, we have an answer
in this thread I guess :-)
Basically I could not find a test suite for cookies to validate the
approach when I started so I tested it with real world websites
(mostly google app suite, yahoo, mapquest and a few other sites) but
it did not get the testing it deserves and I will not hide it.


Yes, I did look at your patch earlier but I myself wasn't confident  
that I'd know how to properly test cookie support, so I hoped someone  
more knowledgeable would step in. :(



To get it moving, I think a rewrite is necessary because I made tons
of small mistakes (I started as a contributor at that time and did not
know the code and coding conventions as I do now) that could be more
easily tackled by a rewrite. It will also need a test suite to fully
valide the changes.
All in all, it means a lot of work that I am willing to do it *if* I
see enough interest in a cross-platform cookie engine for WebKit.


Well, knowing this project, I doubt you'll find anyone who would  
object to starting a series of unit tests for cookies. :-) From there,  
it is a matter of reworking your patch, but I can say if there is a  
test suite I can run that handles common usage, I'll feel a lot more  
comfortable reviewing your patch.





I know someone a while back proposed a strategy for dealing with port
enhancements that end up bit rotting in the review tree, whatever  
happened
to that? Sometimes new feature patches cannot be broken down into  
smaller
pieces, and I realize large patches tend to be intimidating  
especially to
people who can't test them themselves, but there has to be some  
strategy for
dealing with that so that important new stuff doesn't just sit in a  
patch

tracker for months or years...


I think you refer to the Gtk port here? IIRC the main issue for Gtk
was validating the API which is not relevant here.


That sounds familiar, I guess I mistook the discussion to be about  
port specific rather than API specific patches. Still, I think  
there ought to be some recourse when a patch submitter cannot find a  
willing reviewer after some long period of time.


Thanks,

Kevin



Regards,
Julien


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


Re: [webkit-dev] Curl Cookie Handling

2009-02-09 Thread Kevin Ollivier

Hi Julien,

On Feb 9, 2009, at 7:23 AM, Julien Chaffraix wrote:


Hi,


I have Integrated the patch given in
https://bugs.webkit.org/show_bug.cgi?id=14730  on webkit r36766 with
additions on SQLITE db calls


As you have seen this patch is not integrated and is a year old. As a
result, it may have rotten (the code has changed and some assertions I
made are not true anymore) and it was not tested much outside myself
and a few people like you. So it is likely that there are some bugs
(one was already mentioned on the bugzilla).


Is this patch still valid, i.e. not made obsolete by another approach?  
Also, was it a complete patch (sans any bugs, of course) for cookie  
support using SQLite? I could only test it using wx right now but I  
would definitely be interested in using the SQLite approach.


I know someone a while back proposed a strategy for dealing with port  
enhancements that end up bit rotting in the review tree, whatever  
happened to that? Sometimes new feature patches cannot be broken down  
into smaller pieces, and I realize large patches tend to be  
intimidating especially to people who can't test them themselves, but  
there has to be some strategy for dealing with that so that important  
new stuff doesn't just sit in a patch tracker for months or years...


Regards,

Kevin



The patch does not work on www.facebook.com and results an  
inconsistent
crashes / memory corruptions. Here is the snapshot of what valgrind  
has:

[removed the backtrace]

After a quick look at the code, it is likely that you are manipulating
a deleted pointer. The cookie is taken directly from a cookieMap,
which means that the cookieMap is not updated at some point when we
release one of its pointer. However without further information, I
cannot say more and you will have to debug yourself. Have you tried a
DEBUG build as there are some assertions that could catch it earlier
and help you tie the crash to one area of code? Also look at the
different LOG information as they can help you.

Regards,
Julien
___
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] What's up with the WX bot?

2009-01-26 Thread Kevin Ollivier

Hi Darin,

Sorry about that, should be fixed now. I updated wxPython which broke  
the path to the wx-config used for the newer build, and that made it  
default to the wx built into Leopard.


Thanks,

Kevin

On Jan 25, 2009, at 11:40 PM, Darin Adler wrote:

The WX bot has been failing for a while (maybe weeks) with these  
errors:


platform/wx/RenderThemeWx.cpp: In member function 'virtual bool  
WebCore::RenderThemeWx::paintButton(WebCore::RenderObject*, const  
WebCore::RenderObject::PaintInfo, const WebCore::IntRect)':
platform/wx/RenderThemeWx.cpp:263: error:  
'wxRenderer_DrawRadioButton' was not declared in this scope
platform/wx/RenderThemeWx.cpp: In member function 'virtual bool  
WebCore::RenderThemeWx::paintTextField(WebCore::RenderObject*, const  
WebCore::RenderObject::PaintInfo, const WebCore::IntRect)':
platform/wx/RenderThemeWx.cpp:286: error: 'wxRenderer_DrawTextCtrl'  
was not declared in this scope
platform/wx/RenderThemeWx.cpp: In member function 'virtual bool  
WebCore::RenderThemeWx::paintMenuList(WebCore::RenderObject*, const  
WebCore::RenderObject::PaintInfo, const WebCore::IntRect)':
platform/wx/RenderThemeWx.cpp:319: error: 'wxRenderer_DrawChoice'  
was not declared in this scope


This looks like something that can only be fixed by doing something  
to the slave machine, perhaps installing a different version of WX?


Until this is fixed this bot will always be red, and folks working  
on WebKit can't do anything about it. Can someone fix this?


   -- Darin

___
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] Getting text alignment in editing mode?

2009-01-22 Thread Kevin Ollivier

Hi all,

I'm working on adding HTML editing capabilities to the wxWebKit API,  
and I've gotten a lot of things working by exposing the edit commands,  
as well as providing a level of DOM wrapping for getting/manipulating  
attributes. One thing I've been unable to figure out, though, is how  
to get the text alignment(s) of a selection. The Align(Left/Center/ 
Right/Justify) commands do not provide a mechanism for reporting the  
state of those commands, and neither do I see an API in Editor,  
SelectionController, or DOMRange for it. Is there an 'official' way to  
get this information, or is it a matter of traversing the DOM and  
getting the info from each element myself?


Thanks,

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


[webkit-dev] Fwd: Rename TypeInfo - JSTypeInfo?

2008-09-23 Thread Kevin Ollivier
Hi all,

I sent this message to the mailing list yesterday, but it seems it  
never made it, so I'm resending.

Kevin

Begin forwarded message:

 From: Kevin Ollivier [EMAIL PROTECTED]
 Date: September 22, 2008 12:13:24 PM PDT
 To: webkit-dev@lists.webkit.org
 Subject: Rename TypeInfo - JSTypeInfo?

 Hi all,

 We're having a problem on the Windows version of wxWebKit where  
 #include typeinfo is actually now including JavaScriptCore/kjs/ 
 TypeInfo.h, which needless to say is not a good thing. ;-) I think  
 this problem stems from the fact that we (the wx port, that is)  
 don't use the 'framework' approach for JSC headers yet (and thus  
 need JavaScriptCore/kjs on our include path), but I think in general  
 it's good practice to avoid using system header names just for  
 readability purposes. Does anyone see a problem with renaming  
 TypeInfo to JS(C)TypeInfo, both header name and class?

 Thanks,

 Kevin

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


Re: [webkit-dev] Fwd: Rename TypeInfo - JSTypeInfo?

2008-09-23 Thread Kevin Ollivier
Hi David,

Okay, will do! Thanks, and sorry for the spam. I didn't see the  
message in my own list archives, which is why I thought it never made  
it. Now I just have to figure out what happened on my end. ;-)

Kevin

On Sep 23, 2008, at 9:32 AM, David Kilzer wrote:

 Hi Kevin,

 The original message did make it to the list, but no one replied.

 I think the best approach is to simply create a bug on  
 bugs.webkit.org and attach a patch for review (since the wx port is  
 apparently the only one feeling the pain right now :).

 Dave


 On Tue, 9/23/08, Kevin Ollivier [EMAIL PROTECTED] wrote:

 Hi all,

 I sent this message to the mailing list yesterday, but it
 seems it
 never made it, so I'm resending.

 Kevin

 Begin forwarded message:

 From: Kevin Ollivier [EMAIL PROTECTED]
 Date: September 22, 2008 12:13:24 PM PDT
 To: webkit-dev@lists.webkit.org
 Subject: Rename TypeInfo - JSTypeInfo?

 Hi all,

 We're having a problem on the Windows version of
 wxWebKit where
 #include typeinfo is actually now including
 JavaScriptCore/kjs/
 TypeInfo.h, which needless to say is not a good thing.
 ;-) I think
 this problem stems from the fact that we (the wx port,
 that is)
 don't use the 'framework' approach for JSC
 headers yet (and thus
 need JavaScriptCore/kjs on our include path), but I
 think in general
 it's good practice to avoid using system header
 names just for
 readability purposes. Does anyone see a problem with
 renaming
 TypeInfo to JS(C)TypeInfo, both header name and class?

 Thanks,

 Kevin

 ___
 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] Rename TypeInfo - JSTypeInfo?

2008-09-22 Thread Kevin Ollivier
Hi all,

We're having a problem on the Windows version of wxWebKit where  
#include typeinfo is actually now including JavaScriptCore/kjs/ 
TypeInfo.h, which needless to say is not a good thing. ;-) I think  
this problem stems from the fact that we (the wx port, that is) don't  
use the 'framework' approach for JSC headers yet (and thus need  
JavaScriptCore/kjs on our include path), but I think in general it's  
good practice to avoid using system header names just for readability  
purposes. Does anyone see a problem with renaming TypeInfo to  
JS(C)TypeInfo, both header name and class?

Thanks,

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


Re: [webkit-dev] Building WebKit WX port for Windows

2008-09-03 Thread Kevin Ollivier

Hi Javed,

On Sep 3, 2008, at 2:12 PM, Javed Rabbani wrote:



  Hello everyone,

  I am trying to build WebKit WX port on Windows. The build process  
stops with a fatal error U1077 in cl.exe of Visual Studio 2005. The  
error code is 0xc135. Can anyone suggest possible cause of this  
behavior? I would appreciate if someone can guide me with proper way  
to build wx port on Windows using MSVC 2005. The WX Widgets version  
is 2.8.6. Even if someone has already built the port I would  
appreciate if the generated DLL/LIB can be shared so that I may  
continue with code debug. Thanks.


Could you provide more details about where compilation stopped and  
what the exact error message you received was?


Thanks,

Kevin



  Regards,
  Javed Rabbani
___
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] Mimetype for files loaded from disk?

2008-03-17 Thread Kevin Ollivier

Hi Mike and all,

On Mar 16, 2008, at 10:26 PM, Mike Emmel wrote:


In the curl backed some code uses file extensions to set the mime type
for local files.
I'm not sure css files are handled.


They aren't, neither for GTK or wx implementation. Adding it for the  
wx implementation did solve the problem, and is obviously a much  
better approach. Thanks! :-) I'll go ahead and add the CSS mime type  
to GTK's MIMETypeRegistry code as well. Whether or not it's bitten by  
this bug, I think it'd be good to add it.


I am still curious, however, if there is some difference in WebCore  
internally in terms of dealing with missing mimetype on Windows as  
opposed to Mac/Unix. If there is, and it is unintentional (e.g. it is  
intended only for Apple port on Win), it might be something that  
belongs at the WebKit level for each port. If it's intentional, I'm  
curious to know why we do things differently on Win.


Thanks,

Kevin




On Sun, Mar 16, 2008 at 9:22 PM, Kevin Ollivier [EMAIL PROTECTED] 
 wrote:

Hi all,

I've hit an issue with the wx port where HTML files that use @import
url(file.css) will not load when the HTML and CSS file are on disk
rather than loaded via the web. After tracking it down, I found  
that I

could resolve the issue by having CURL set the file type for
m_response to application/x-unknown-content-type, which enables the
CachedCSSStyleSheet::canUseSheet test to pass, but I'm not sure this
is the right approach.

Another wrinkle to this issue is that this problem doesn't appear on
the Windows wx port, only Linux/Mac. I'm fairly certain this
discrepancy is not due to wx code, and so I was wondering how other
ports (Apple's and otherwise) handle this issue. Is there some
alternative approach to setting the mimetype explicitly, or is there
some extension - mimetype mapping being used in some cases?

Thanks,

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



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


[webkit-dev] Mimetype for files loaded from disk?

2008-03-16 Thread Kevin Ollivier

Hi all,

I've hit an issue with the wx port where HTML files that use @import  
url(file.css) will not load when the HTML and CSS file are on disk  
rather than loaded via the web. After tracking it down, I found that I  
could resolve the issue by having CURL set the file type for  
m_response to application/x-unknown-content-type, which enables the  
CachedCSSStyleSheet::canUseSheet test to pass, but I'm not sure this  
is the right approach.


Another wrinkle to this issue is that this problem doesn't appear on  
the Windows wx port, only Linux/Mac. I'm fairly certain this  
discrepancy is not due to wx code, and so I was wondering how other  
ports (Apple's and otherwise) handle this issue. Is there some  
alternative approach to setting the mimetype explicitly, or is there  
some extension - mimetype mapping being used in some cases?


Thanks,

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


Re: [webkit-dev] Moving away from qmake

2007-11-12 Thread Kevin Ollivier

Hi David,

On Nov 12, 2007, at 1:19 PM, David D. Kilzer wrote:


Kevin Ollivier [EMAIL PROTECTED] wrote:


[...]  The tricky part AFAICT would be XCode, though, because
even if there is a scripted solution for this, it would probably need
to be run on a Mac where we have access to AppleScript or some other
scripting tool that can read and make changes to XCode projects...
[...]


Xcode project files are plain text as well.  It's possible to update  
them via
script (see WebKitTools/Scripts/sort-Xcode-project-file), but it  
requires a

little more insight than just staring at the source.


Right, in fact, I actually wrote a fair chunk of the XCode backend for  
Bakefile, so I do remember the basics of the format, although my  
memory is a bit hazy. :-) But the issue I saw with that approach is  
that adding a file doesn't just mean inserting a file entry, XCode  
uses UUIDs to refer to files and creates hierarchies of UUIDs to  
manage folder hierarchies and the like. So to add a file to a certain  
project folder, you'd have to retrieve the UUID of the parent folder  
the file is to be inserted into, along with any parent folders for  
that folder to know which PBXGroup in the project file you should  
insert the new file's UUID into, and I don't know how we can get that  
info without parsing the file and folder listing out of the XCode  
project file. It seems there would be similar issues with adding/ 
removing a folder from the project file.


In short, I'm not sure we could get away with making those changes  
reliably without parsing at least some chunks of the project file, if  
not most of it. (WebCore.xcodeproj/project.pbxproj, for example,  
largely consists of file references and folder organization.) However,  
I have to admit I haven't seriously thought about the matter before  
today, so it's possible I'm missing or overlooking something  
important. Any ideas of how we could do this more simply?


Thanks,

Kevin



Dave




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


Re: [webkit-dev] Moving away from qmake

2007-11-11 Thread Kevin Ollivier

Hi Alp,

On Nov 11, 2007, at 7:34 PM, Alp Toker wrote:

The existing qmake-based build system is shared by the GTK+ and Qt  
ports.


Until recently, this arrangement has not been too problematic for the
GTK+ porters, with the idea being that qmake makes life easier for
developers at the expense of a little inconvenience for users (in the
sense of application developers rather than end users).

However, it has recently become clear that qmake is actually making  
life

more difficult for developers. It turns out that the existing qmake
build system fails to do basic dependency tracking, leaving both
developers and users with crashy builds, with the only way to get a
stable build being to do a full clean and rebuild after every update.

In the last week I've had to explain why people's builds are  
crashing to

maybe half a dozen people on WebKit and GNOME-related channels.

Mark and I have attempted to fix the dependency tracking a number of
times, but we've both found qmake to be poorly documented, and our
attempts to fix it ended up breaking the build even more in certain
configurations. My informal attempts to get assistance from the
Trolltech guys doing the Qt port have gone unanswered. I have no doubt
that we would be able to fix these issues in a matter of minutes  
using a

better understood or documented build system.

Moreover, it has turned out that the qmake build dependency is more  
than

just a little inconvenience for users. It makes the GTK+ port
inaccessible to a lot of developers. Using anything but the latest  
Linux

distributions, including cross-compilation frameworks like Scratchbox,
you have to build the whole of Qt just to get qmake, which takes  
over an
hour and almost a gigabyte of disk space for me. That's at least 5  
times

as long as it takes to build the whole of JavaScriptCore, WebCore and
WebKit. Even in distributions that ship a recent binary of qmake, it  
is
often bundled into the same binary package as the rest of Qt, making  
it

a seriously large dependency.

Now that the GTK+ port is getting attention from beyond a core team of
developers, I think such a heavy build dependency is no longer  
acceptable.



If either the Wx or Qt porters are willing to share a new build system
with the GTK+ port, they should speak up now. We're willing to  
consider

any build system that does not incur a huge dependency (ruling out
qmake) and that is actively maintained and does not have verbose XML
makefiles (ruling out Bakefile and Ant-like build systems  
respectively).

cmake and autotools are fair game here, for example.

If we cannot reach a conclusion, the GTK+ port will most likely go  
ahead

and switch to autotools. Work has already started to provide an
autotools-based build system at
http://git.ndesk.org/?p=javascriptcore-modular

An unforeseen benefit of the new build system is that it is modular,
rather than monolithic, and has no dependency on GLib/GTK+ or any  
other
framework. This means that it will now be possible to use  
JavaScriptCore

as a standalone scripting engine independently of WebKit.


I hope I've accurately summarised the thoughts of all those involved  
here.


(It's quite unfortunate that we might end up contributing to the  
current

proliferation of build systems, but I think it's fair to say that the
qmake dependency is right now the biggest single issue holding back
development and acceptance of the GTK+ port. If other ports are  
willing

to compromise in the same way as we are on a shared solution, this
proliferation can still be avoided.)


Unfortunately, I don't see room to compromise on my end because  
neither autotools or cmake will meet my needs without a fair amount  
more effort on my part (effort I'd rather spend putting into improving  
wxWebKit itself), and I pretty much get all of the other benefits you  
mentioned are obtained by switching away from qmake, so there's not  
really any plus for me. Honestly, I find the Bakefile build system to  
not be very verbose at all thanks to its use of templates, which allow  
me to group together settings needed by various components and reuse  
them easily. The largest files are the *Sources.xml files, but those  
are very light on XML tags and are mostly text files, and are easy to  
update and maintain, IMHO. Over the past couple weeks, I in fact did a  
lot of refactoring on the build system and it was quite quick to do  
and I'm really pleased with the results. I haven't yet found a (cross- 
platform) tool that lets me be as productive as Bakefile does, which  
is the bottom line for me as my time is limited.


The one downside to Bakefile is that it's newer than other systems and  
over time I've bumped into a few rough edges, but most of those have  
gotten fixed. Even with having to make a few temporary workarounds,  
though, I find it saves me a lot of time in other areas that more than  
makes up for it.


Anyway, I won't press the matter; I admit I don't have a Unix  

Re: [webkit-dev] Proof of Concept: NPAPI plugins in Qt/Windows

2007-11-08 Thread Kevin Ollivier

Hi Justin,

On Nov 8, 2007, at 7:35 AM, Justin Haygood wrote:


http://blog.justinhaygood.com/2007/11/07/youtube-in-qt-webkit-windows-only/

For more information, see the above blog post.

Basically, it does it by  (in a semi-clean way) utiziling the  
existing code for Windows plugins, which makes this method Windows  
specific. The requisite patch patches some other parts of the  
codebase for it to work as well, but for the most part. It actually  
works, as long you can see from the screenshot J. It needs work, but  
it’s a good proof of concept that it will work.


Thanks for your work on this! :-) I think this approach would likely  
work for the wx port too, and I think in general it'd be useful to the  
project as a whole if we could split the plugin code into platform  
specific bits, and also the core code for Win/Mac/GTK (or X11?) like  
this, as obviously the plugins themselves are passing around native  
data structures rather than the ones the ports use. This way all the  
ports can share the core engine code and only have to implement the  
front end and do any necessary data type conversions, etc.


BTW, one thing I noticed about your patch - it seems to remove and  
then re-add FrameLoaderQt.cpp (or else, whitespace or something else  
changed throughout the entire file). Was this intentional?


Regards,

Kevin



Plugins tested and confirmed “working”:
Flash Player 9
Quicktime 7


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


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


Re: [webkit-dev] WTF license terms

2007-11-06 Thread Kevin Ollivier

Hi all,

I haven't contributed all that much to WTF (yet? ;-), but I wanted to  
say I'm certainly fine with any code I wrote being moved to the BSD  
license as well.


Kevin

On Nov 6, 2007, at 3:04 PM, George Staikos wrote:



On 6-Nov-07, at 3:54 AM, Geoffrey Garen wrote:

Mainly I'd like to hear if any major contributors would have a  
problem with this move.


I guess I'll sound like a bit of a shill here, but:

I contributed to the WTF code and I wouldn't mind moving it to a  
BSD license.


 I approve moving all of my WTF contributions to BSD license.

--
George Staikos
KDE Developer   http://www.kde.org/
Staikos Computing Services Inc. http://www.staikos.net/



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


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


Re: [webkit-dev] Page, Frame, FrameView and FrameTree clarification needed

2007-07-16 Thread Kevin Ollivier

Hi Adam,

On Jul 16, 2007, at 9:52 AM, Adam Roben wrote:

[snip]


I think there are probably two approaches to implement it:

1.) Have one GdkWindow for the main Frame of the Page
+ Resource friendly
+ z-order would always be right
	- Scrolling would need to be manually handled by ScrollView (e.g.  
similiar to the Qt port)

- Complex handling of coordinates
	- Complex to get right at the beginning (clipping, translation of  
the GraphicsContext)

- Embedding real Platform::Widget will be more tough.

2.) Have one GdkWindow for each FrameView
+ Easy and understandable
	- Need to get passing expose events to children right to have the  
z-Order.
	- Need to make ScrollView::update update the right (outermost)  
region
	- Would only work when we have non-transparent overlapping  
Frame's (does this apply?)


3.) What did I miss?

Answers and pointers to manual Frame tests would be appreciated.  
I'm tempted to go with the 2nd option.


   I think you'll have a much easier time getting things right in  
the end if you go with the first option (one native widget  
(GdkWindow) per Page, not per Frame). Otherwise you'll have lots of  
trouble getting painting to happen in the correct order (imagine an  
absolutely positioned div in the main frame that overlaps a  
subframe -- the subframe needs to paint after everything in the  
main frame *except* for the div).


Are there test cases in DumpRenderTree, etc. that can be used to  
explore how well a port handles conditions such as these? I'm  
actually using #2 for wx and so far it's been working quite well, but  
I honestly don't know how it handles some of those cases you  
mentioned, and I'd like to be able to verify that it works (or  
doesn't, as the case may be... ;-).


Thanks,

Kevin



PS: Yes, we should get DumpRenderTree working for Gtk+ and should  
look into validating test results...


   Yes, that would be good :-)

-Adam

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


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


Re: [webkit-dev] Proposal: reorganization of WebKitTools/Scripts

2007-05-20 Thread Kevin Ollivier

Hi Adam,

On May 20, 2007, at 12:39 PM, Adam Treat wrote:


Hi,

Currently the build, run and debug scripts in WebKitTools/Scripts  
are a mashup
of scripts for the various ports.  Most of the scripts are written  
in perl,
but a few are bash scripts.  Some of them use common functions, but  
not all
and not all in the same way.  I'd like to propose a reorganization  
so that
all the ports can share common defines and functions as well as a  
common

build directory root.  Specifically:

1. Add a dir for each port so we'd have Scripts/mac, Scripts/qt,  
Scripts/gdk
for port specific scripts where the common defines and functions  
would live

in the Scripts directory proper.


For the wx port, we have only one port-specific script (2 if you  
count regenerate-makefiles), and I wasn't aware that there were many  
other port-specific scripts in the WebKitTools/Scripts dir.  
Personally, I'm fine either way, but if each of the subdirs have 1-2  
scripts max, it might be simpler just to leave things as they are.


Of course, I think a README with a brief summary of what each script  
does would probably be very helpful in either case.


2. Specify command line options for all scripts which would invoke  
the proper

port specific script.  That or we set a standard ENV variable that the
scripts can use to invoke the port specific scripts.  ie:
build-webkit (--mac|--qt|--gdk)
OR
make build-webkit script to read $(WEBKIT_PORT) env var...


The latter (or both) would be preferable to me, as it would also make  
other scripts (such as run-javascript-tests and install-*-extras)  
able to handle port-specific issues (e.g. it would know how to get  
the proper configuration dir from webkitdirs.pm). On the wx-port- 
alpha branch, I currently do both - use build-webkit --wx to build,  
then have builders set a WXWEBKIT environment variable which is read  
by webkitdirs.pm so that it can be 'wx' aware when running other  
scripts. Of course, WEBKIT_PORT would be a much better solution to this.



3. Make bakefiles ports respect WebKitBuild dir... and so on...


This has been done actually for wxWebKit on the wx-port-alpha branch  
as part of those changes. I could prepare a patch for this (at least  
the bits that affect all Bakefile ports), but I don't have the GDK  
port running to test against, so I'd need help there.


Regards,

Kevin


Comments?

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


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


[webkit-dev] Patch for notImplemented() macros

2007-05-12 Thread Kevin Ollivier

Hi Darin and all,

On Apr 9, 2007, at 3:12 PM, Darin Adler wrote:


On Apr 8, 2007, at 3:38 PM, Kevin Ollivier wrote:

One other issue I wanted to bring up that I've run into is an  
issue with needing the notImplementedGdk() macro to be defined  
even though we're not using the GDK port, as we use the CURL  
downloader. We've hacked around it in our sources for now, but  
IMHO we'll have to either have both notImplemented() and  
notImplementedGdk() available to the GDK port, or remove the need  
for a separate notImplementedGdk() macro if that's possible.


Also, there's a lot of duplication of notImplemented() in various  
sources anyway, so I thought it might be worth bringing up the  
idea of consolidating all those definitions into a header  
somewhere (Assertions.h?). As it seems different ports might want  
to implement it different ways, we can use #If PLATFORM(XYZ)  
blocks to allow alternative definitions.


What do you guys think? Do you see doing it this way causing any  
problems for any of the ports? If you agree, any suggestions on  
where notImplemented() should go?


I think we should add WebCore/platform/NotImplemented.h and use the  
#if PLATFORM(XYZ) approach.


Well, it's taken me a little while, but I've finally submitted this  
as a patch in Bugzilla. The bug report is here:


http://bugs.webkit.org/show_bug.cgi?id=13699

Since this mostly affects the GDK and Qt ports, which I'm not setup  
to build, I'd appreciate it someone setup for those ports could give  
this patch a try.


Regards,

Kevin


-- Darin



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