Re: [webkit-dev] Code Style: Opinion on returning void

2019-03-20 Thread Nico Weber
On Thu, Feb 21, 2019 at 12:31 PM Darin Adler  wrote:

> I tried not to weigh in on this, but my view on the materials we should
> use to build the bike shed must be shared!
>
> Generally it seems neat to be able to make the code slightly more tight
> and terse by merging the function call and the return into a single
> statement.
>
> Other than not being accustomed to it, I have noticed three small things I
> don’t like about using “return” with a call to a void-returning function.
>
> - You can’t use this idiom when you want to ignore the result of a
> function, only if the function actually returns void. Often functions are
> designed with ignorable and often ignored return values. For example, it’s
> common to call something that might fail and have a good reason to ignore
> whether it failed or not. The idiom we are discussing requires treating
> those functions differently from ones that return void. If you refactor so
> that a function now returns an ignorable return value you need to visit all
> the call sites using return and change them into the two line form.
>

That works, you just have to spell it `return (void)non_void_fun();` :D


>
> - It works for return, but not for break. I’ve seen at least one case
> where someone filled a switch statement with return statements instead of
> break statements so they could use this more-terse form. Now if we want to
> add one line of code after that switch, we need to convert all those cases
> into multi-line statements with break.
>
> - Unless it’s mandatory, it’s a case where two programmers can make
> different style choices. If both forms are acceptable, then it introduces a
> little bit of disorder into our code.
>
> One thing I like about it is that since “pass along the return value from
> this inner function to this outer function” can be written this way, the
> code can then survive refactorings where both the inner and outer functions
> might gain or lose the return value.
>
> — Darin
> ___
> 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] WebCore/platform standalone library

2015-03-20 Thread Nico Weber
On Fri, Mar 20, 2015 at 9:56 AM, Simon Fraser simon.fra...@apple.com
wrote:

 On Mar 20, 2015, at 9:27 AM, Darin Adler da...@apple.com wrote:

  On Mar 19, 2015, at 2:49 PM, Maciej Stachowiak m...@apple.com wrote:
 
  This almost makes me want to suggest a jokey name for Platform. I can’t
 off the top of my head think of a good expansion of OMG, though. Or BBQ.
 
  I am not a pro at this, but here are a few tries: Lower-level Object
 Library. Algorithm Reuse Framework. New Framework for WebCore, New System
 Framework for WebCore.

 Platform Obfuscation Source.


Web Utility Belt With Useful Behavior.



 Simon

 ___
 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] Ports not building as C++11?

2013-07-29 Thread Nico Weber
FYI: In gcc 4.7, things like foo%PRIuS are hard errors due to
user-defined literals (it's a disablable warning in clang and gcc4.8, and
gcc4.6 is fine since it doesn't implement user-defined literals yet), and
some system headers (dbus1.0, dbus1.2, probably others) contain code like
that. I'd encourage you to try actually building WebKit in c++11 mode with
your port to check if you run into anything like that.

Nico


On Mon, Jul 29, 2013 at 10:42 AM, Patrick East patri...@bsquare.com wrote:

  There is support for C++11 on Windows Embedded Compact 2013 using the
 newer VC11 compiler, but for CE 5, 6, or WEC 7 they will not be able to
 support it since they are limited to the VC9 compiler. Afaik there doesn’t
 appear to be any plans from Microsoft to back-port the newer compiler and
 run time to support older versions of CE.

 ** **

 I realize that CE 5, 6, and 7 are probably not top priorities for the
 community, but these changes will basically force dropping support for
 those platforms. We do have some interest in keeping WebKit working for our
 downstream build, so if it’s possible to make this change over to using
 C++11 in a way that can allow for building without the new features that
 would be ideal. If there is anything we can do that help make this happen
 let me know.

 ** **

 Thanks!

 ** **

 *Patrick East* | Software Engineer 

 +1 425.519.5912 | patri...@bsquare.com 

 Bsquare │Forging Smart Connections

 www.bsquare.com 

 ** **

 ** **

 ** **

 *From:* webkit-dev-boun...@lists.webkit.org [mailto:
 webkit-dev-boun...@lists.webkit.org] *On Behalf Of *Brent Fulgham
 *Sent:* Saturday, July 27, 2013 3:04 PM
 *To:* Anders Carlsson
 *Cc:* WebKit Development
 *Subject:* Re: [webkit-dev] Ports not building as C++11?

 ** **

 The only platform I know cannot support C++11 is WinCE, and that port is
 in favor of making the move to C++11 in anticipation of updated build tools
 from Microsoft.

 ** **

 What other platform are we talking about here? The GNU compilers have
 supported C++11 for a long time.

 ** **

 -Brent

 Sent from my iPhone


 On Jul 26, 2013, at 8:12 PM, Anders Carlsson ander...@apple.com wrote:**
 **

  ** **

 On Jul 26, 2013, at 8:09 PM, Allan Sandfeld Jensen k...@carewolf.com
 wrote:



 

 On Friday 26 July 2013, Anders Carlsson wrote:

 

 Hi everyone,

 when Oliver landed his “let’s break everything” patches in JSC the other
 day, I noticed that some of the follow-up build fixes by other ports were
 removing use of C++11 features (mainly nullptr).

 Are there any ports that aren’t building as C++11? If so, why not?

 Yes, and because C++11 is not supported on all the platforms we support. *
 ***

 ** **

 Could you please elaborate? What compilers are you using?



 

 We don't all have the option to not care about the platforms of a certain
 fruit
 themed vendor's 1 or 2 year old operating systems.

 ** **

 I don’t think this comment adds anything constructive.

 ** **

 Thanks,

 - Anders

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


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


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


Re: [webkit-dev] Compiling WebKit up to 25% faster in Windows?

2013-03-27 Thread Nico Weber
On Wed, Mar 27, 2013 at 12:05 PM, Brent Fulgham bfulg...@gmail.com wrote:

 Hi Daniel,

 On Tue, Mar 26, 2013 at 11:21 AM, Daniel Bratell brat...@opera.comwrote:

 As an experiment we took the (chromium) project webcore_dom, that
 normally compiles in 56 seconds in Windows on a generic computer and
 fixed it. Removing the many include paths in the build system and instead
 specifying the path in the include directives changed that to 42 seconds, a
 25% reduction.


 I thought that much of this was supposed to be addressed by the use of
 precompiled headers.  Presumably, if the header files are properly
 incorporated into the PCH, shouldn't any gains from relative paths be
 small? Obviously your statistic says otherwise, but I'm not sure that a
 single test on a single system is definitive proof of anything.


I thought PCHs are mostly for system headers that don't change often (
https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/WebCore/WebCorePrefix.hq=WebCorePrefixsq=package:chromiumtype=cs),
else every .h change would require recompiling _all_ cc files, no?



 Did you run the test multiple times to get a feel for how reproducible the
 improvements was? I know I have fooled myself in the past into thinking I
 had improved something, only to discover that unrelated computer activity
 (e.g., backups, virus scans, etc.) were contributing to slow build times.

 -Brent


 ___
 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] Compiling WebKit up to 25% faster in Windows?

2013-03-26 Thread Nico Weber
On Tue, Mar 26, 2013 at 4:51 PM, Daniel Bratell brat...@opera.com wrote:

 Den 2013-03-26 21:20:10 skrev Dirk Pranke dpra...@chromium.org:


  If we have consensus that we should just switch to paths relative to
 Source
 (or maybe a couple different options), that would be (IMO) a big win. It
 sounds like Daniel  co. have already done the big bang conversion.


 Not the whole conversion, no. Just enough to confirm the suspicion that it
 affects compile time in Windows.

 As other people in the thread have mentioned there are some tricky areas
 so before investing too much time in this, it seemed to be best to check
 with people with longer experience of the code if there was something we've
 missed.

 Though the conversion is scripted so it can possibly be applied to large
 portions of the source code and then the tricky areas can be manually fixed.


Can you share your scripts, so that we can measure how this changes things
on other platforms?

Thanks!
Nico




 /Daniel

 __**_
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 https://lists.webkit.org/**mailman/listinfo/webkit-devhttps://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] Proposal: Make Ninja the default build-system for build-webkit --chromium

2013-02-26 Thread Nico Weber
On Tue, Jan 22, 2013 at 2:22 AM, Nico Weber tha...@chromium.org wrote:
 On Sat, Jan 12, 2013 at 9:49 PM, Nico Weber tha...@chromium.org wrote:
 On Tue, Dec 11, 2012 at 3:43 PM, Eric Seidel e...@webkit.org wrote:
 Nevermind.  After further discussion with Nico, this can't work yet.

 Ninja is currently configured to use a non-webkitty out build
 directory, which is undoubtably going to confus some scripts/bots.

 We'll try this again at a later time.  Apologies for the noise.

 If you build WebKit/chromium on Linux (i.e. Chromium/Linux and
 Chromium/Android), you're now using ninja. The Chromium Linux Release
 and Chromium Android Release build bots seem to be working fine.

 Admire the exciting build output:
 http://build.webkit.org/builders/Chromium%20Linux%20Release/builds/65467/steps/compile-webkit/logs/stdio

 Let us know if anything is not working for you.

 (If you must use make, you can pass --no-ninja to update-webkit, and
 build-webkit will use make again. If you do this, please let me know
 why.)

 Chromium/Mac webkit builds now uses ninja by default too. The bot's
 build output is now a little more concise:
 http://build.webkit.org/builders/Chromium%20Mac%20Release/builds/53889/steps/compile-webkit/logs/stdio

 On my laptop, full builds are 10% faster and empty builds (the minimum
 time you need to wait for a build) are 30x as fast.

 If you still need xcodebuild, you can pass --no-ninja to
 update-webkit. Please let us know if and why you do this.

 Nico

 ps: Switching Chromium/Windows is blocked on http://crbug.com/169945,
 so it probably won't happen soon.

…and windows is now done, too. Thanks to dpranke for helping with this!
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Removing ENABLE(WEB_INTENTS) code

2013-02-11 Thread Nico Weber
Going once, going twice…

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

On Sat, Feb 2, 2013 at 3:09 PM, Sam Weinig wei...@apple.com wrote:
 Sounds good to me as well.

 -Sam

 On Jan 30, 2013, at 3:54 PM, Nico Weber tha...@chromium.org wrote:

 Hi,

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

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

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


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

2013-02-05 Thread Nico Weber
http://www.haskell.org/haskellwiki/Wadlers_Law

On Tue, Feb 5, 2013 at 12:16 PM, Eric Seidel e...@webkit.org wrote:
 I'm curious if YAML was ever considered?  I have very limited
 experience with YAML, except for Google App Engine config files.

 It's very python parse-able? :)

 On Tue, Feb 5, 2013 at 11:55 AM, Mark Mentovai m...@chromium.org wrote:
 You’re not supposed to use arbitrary Python, it’s highly discouraged. We
 have a linter that keeps you from doing things you’re not supposed to do
 (like this), but it slows things down, so it’s not part of the “standard”
 GYP run that developers normally use. It can run as a pre-commit script or
 test on the bot or something else. Used as we’re using it, GYP basically is
 simple JSON, except the rules about commas are looser and # introduces
 comments.


 On Tue, Feb 5, 2013 at 2:47 PM, Ryosuke Niwa rn...@webkit.org wrote:

 On Tue, Feb 5, 2013 at 6:09 AM, Mark Mentovai m...@chromium.org wrote:

 The parser (and the grammar) works the way it does because it’s just
 Python


 This works great for people who like Python syntax but not for someone
 like myself who dislikes Python syntax.

 I also find it particularly annoying that people can use whatever Python
 constructs they want to use in GYP. It dramatically reduces language
 portability because you need to support quite a few Python constructs and
 quirks in order to correctly parse GYP.

 I personally would have much preferred for it be a simple JSON file.

 - R. Niwa



 ___
 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-dev


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

2013-02-02 Thread Nico Weber
On Sat, Feb 2, 2013 at 4:58 PM, Adam Barth aba...@webkit.org wrote:
 Ninja has extremely fast incremental builds and can be generated by
 GYP.  Here are some stats from a year ago:

 https://plus.google.com/101038813433650812235/posts/irc26fhRtPC

 Ninja has gotten even faster since then.  If you're interested in
 trying it out, you can play around with incremental builds of the
 Chromium port on Mac or Linux.

You can also look at the build output from the chromium bots.

Empty build in 1s:
http://build.webkit.org/builders/Chromium%20Linux%20Release/builds/66807/steps/compile-webkit/logs/stdio
Build with a few files changed in 15s:
http://build.webkit.org/builders/Chromium%20Linux%20Release/builds/66800/steps/compile-webkit/logs/stdio

…and this is on fairly slow bots. On my SSD-equipped laptop, I can do
incremental rebuilds of all of chrome after touching one (cpp or mm)
file in 2-6s.


 Adam


 On Fri, Feb 1, 2013 at 4:58 PM, Balazs Kelemen kbal...@webkit.org wrote:
 I think one important aspect of build systems was not considered yet int
 this conversation: speed. The time an incremental build takes has a great
 effect on developer productivity. I don't think any of the meta-build
 systems we use does a great job here - although I only have experiences with
 qmake, cmake and autotools (and I don't have an SSD that could help
 somewhat).

 The technic I found useful here is to avoid calling build-webkit always and
 instead just rebuild the subproject you have edited, so I think it is
 important to have a build system that supports it. Let me share my
 experiences here.

 With qmake nowadays this work perfectly. The developer build is producing a
 shared library for every subdir (WTF, JavaScriptCore, WebCore, WebKit2),
 which means you only need to call make in the specific subdirectory (i.e. if
 I only touched WebKit2 files I do make -C
 WebKitBuild/Release/Source/WebKit2 which is pretty quick). Still WebCore is
 so big that make is quite slowly find out the files you actually edited and
 need to be rebuilt. What could help here is to devide WebCore into smaller
 parts, like the ongoing work of extracting Platform. Maybe the next logical
 candidate could be svg (I don't have real knowledge about how feasible it
 is).

 Note that I don't come up with qmake because I would like to recommend it as
 the one and only build system (in fact it has a ridiculously inconvenient
 syntax, and a lot of bugs), just as an example.

 With Cmake fast incremental rebuilds are also possible, maybe in a bit more
 complicated way. When working with the EFL port I found a quick rule for
 WebKit2 in the generated makefile. Although the makefiles are usually call
 back to Cmake, and make is not faster than build-webkit, if you use the
 special fast target, which is something like eflWebKit/fast (i.e. make -C
 WebKitBuild/Release/Source/WebKit2 eflWebKit/fast), it will not check
 dependencies but just rebuild the files that have changed. I did not find a
 similar thing for WebCore, I guess because it is not built as a shared
 library.

 What I dislike in Cmake is that I am disappointed by how slow a normal
 incremental build with it (i.e. build-webkit). qmake is not faster at all,
 but it generate plain makefiles that typically no call back to qmake if not
 specified explicitly to do so, and directly calling make is faster, yet it
 can handle most of the non-trivial changes, for example editing a generator
 file. I don't know gyp, so I wonder about how would it do in this comparison
 (but I guess it generates simple makefiles as well, so it's similar than
 qmake in this manner.)

 I hope I added something to this conversation that is worth to consider with
 my late nightly brain dump.

 -kbalazs


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

 On Fri, Feb 1, 2013 at 4:58 PM, Balazs Kelemen kbal...@webkit.org wrote:
 I think one important aspect of build systems was not considered yet int
 this conversation: speed. The time an incremental build takes has a great
 effect on developer productivity. I don't think any of the meta-build
 systems we use does a great job here - although I only have experiences with
 qmake, cmake and autotools (and I don't have an SSD that could help
 somewhat).

 The technic I found useful here is to avoid calling build-webkit always and
 instead just rebuild the subproject you have edited, so I think it is
 important to have a build system that supports it. Let me share my
 experiences here.

 With qmake nowadays this work perfectly. The developer build is producing a
 shared library for every subdir (WTF, JavaScriptCore, WebCore, WebKit2),
 which means you only need to call make in the specific subdirectory (i.e. if
 I only touched WebKit2 files I do make -C
 WebKitBuild/Release/Source/WebKit2 which is pretty quick). Still WebCore is
 so big that make is quite slowly find out the files you 

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

2013-01-31 Thread Nico Weber
This is a lovely discussion to have every now and then :-)

Maybe the file add/move/delete tool that someone wrote could land
without xcode support for now? Then the pain of moving files is
reduced to two systems (xcode and everyone else), and that's something
that's at least tractable.

Nico

On Thu, Jan 31, 2013 at 12:31 PM, Dirk Pranke dpra...@chromium.org wrote:
 On Thu, Jan 31, 2013 at 9:14 AM, Patrick Gansterer par...@paroga.com wrote:

 Am 31.01.2013 um 17:17 schrieb Maciej Stachowiak:


 On Jan 31, 2013, at 1:56 AM, Patrick Gansterer par...@paroga.com wrote:

 Am 31.01.2013 um 10:37 schrieb Ryosuke Niwa:

 On Thu, Jan 31, 2013 at 1:17 AM, Jochen Eisinger joc...@chromium.org
 wrote:

 Another option is to add a webkit-patch command for modifying the build
 files. That way, the syntax doesn't need to be overly human friendly. There
 was also some attempt to write a tool to add files automatically:
 https://bugs.webkit.org/show_bug.cgi?id=61772  I would expect that such a
 tool becomes easier if it would only modify one source of truth and
 generates all other artifacts such as Xcode projects from it.


 I don't want build file's syntax to be so human unfriendly that I need a
 tool for it.

 Often times, these syntax problems can be improved dramatically by simple
 changes. e.g. we had a similar discussion about TestExpectation syntax, and
 I'm much happier with the new syntax even though the new syntax is
 functionally equivalent to the old one, and two syntaxes are very similar.

 On Thu, Jan 31, 2013 at 1:17 AM, Mark Rowe mr...@apple.com wrote:

 I’ve experimented with this in the past and you’re right that it shouldn’t
 be particularly difficult to do. However, I suspect that the task would be
 similar in scope to defining an improved syntax for gyp. And if the syntax
 is the primary sticking point with gyp then it’d seem preferable to tackle
 initially.


 Yeah. In fact, we can just come up with whatever syntax we like and convert
 it to the existing gyp format if the syntax was the biggest issue.


 Do we want to define the whole build system (including information how to
 invoke the generators) with the new system, or is a simple list for the
 input files sufficient? IMHO adding a new generator build step happens very
 rarely. So maybe we can spit the input file list (mainly *.cpp and *.idl)
 into new files.
 Then GYP and CMake can read them and generate the build system out of them
 directly (like they to already today) instead of listing the files in the
 *.gpyi and *.cmake. This might work for other systems like qmake too.
 For XCode we can maybe have a template XCode project and generate the
 work XCode project with a script. This script then only need to fill in
 the files from the input file list into the template XCode project.
 Defining the feature flags can be done like Maciej suggested with Port.h
 files.


 I think it would be better to adapt an existing meta build system to our
 needs than to make one from scratch, unless we find that completely
 impractical.

 In particular, gyp and cmake both know how to handle generated sources, and
 while it may not be super common to make a new type of generated source,
 it's bad for hackability of the project of doing so is super hard. We get a
 lot of hackability benefits from using various kinds of generated sources,
 many first introduced in the days when we had a lot fewer build systems. So
 in my mind, they are already ahead of a hypothetical simple system.


 Do you want to kick the requirements of the smaller ports from trunk or do
 you think that e.g. a qmake generate for GYP makes sense?
 AFAIK e.g. QtWebKit is shipped with Qt, which uses qmake as build system,
 where CMake/GYP is not an option.


 It could certainly make sense for us to add Autotools and Qmake
 generators to GYP; I'm less certain if a CMake generator makes much
 sense, but I haven't thought about it as much. I'm not super familiar
 with any of these three tools, so I could be dead wrong.

 I completely agree that creating a new meta meta build system isn't a good
 idea, but sharing the common parts (which reduce the daily productivity)
 might be a step in the right direction. Using simple text files which
 contain the list of files (like the gpyi files already do today) isn't a new
 build system. It only offers the existing meta build systems (CMake, GYP,
 autotools, qmake) to use a common base.

 The remaining build systems can be ported to one of these systems or be
 adopted to use this file lists too.

 -- Patrick

 I suspect that we would quickly find that we would want some sort of
 support for conditionals and/or file inclusion in our simple text
 files, at which point you basically get a meta-meta-build system :).
 I don't actually think such a thing is that bad of an idea, but it's
 all in the details.

 I would like to find a solution where all of the ports were able to
 retain integration with their native build environments one way or
 another.

 -- Dirk
 

[webkit-dev] Removing ENABLE(WEB_INTENTS) code

2013-01-30 Thread Nico Weber
Hi,

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

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


Re: [webkit-dev] Proposal: Make Ninja the default build-system for build-webkit --chromium

2013-01-21 Thread Nico Weber
On Sat, Jan 12, 2013 at 9:49 PM, Nico Weber tha...@chromium.org wrote:
 On Tue, Dec 11, 2012 at 3:43 PM, Eric Seidel e...@webkit.org wrote:
 Nevermind.  After further discussion with Nico, this can't work yet.

 Ninja is currently configured to use a non-webkitty out build
 directory, which is undoubtably going to confus some scripts/bots.

 We'll try this again at a later time.  Apologies for the noise.

 If you build WebKit/chromium on Linux (i.e. Chromium/Linux and
 Chromium/Android), you're now using ninja. The Chromium Linux Release
 and Chromium Android Release build bots seem to be working fine.

 Admire the exciting build output:
 http://build.webkit.org/builders/Chromium%20Linux%20Release/builds/65467/steps/compile-webkit/logs/stdio

 Let us know if anything is not working for you.

 (If you must use make, you can pass --no-ninja to update-webkit, and
 build-webkit will use make again. If you do this, please let me know
 why.)

Chromium/Mac webkit builds now uses ninja by default too. The bot's
build output is now a little more concise:
http://build.webkit.org/builders/Chromium%20Mac%20Release/builds/53889/steps/compile-webkit/logs/stdio

On my laptop, full builds are 10% faster and empty builds (the minimum
time you need to wait for a build) are 30x as fast.

If you still need xcodebuild, you can pass --no-ninja to
update-webkit. Please let us know if and why you do this.

Nico

ps: Switching Chromium/Windows is blocked on http://crbug.com/169945,
so it probably won't happen soon.
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Proposal: Make Ninja the default build-system for build-webkit --chromium

2013-01-12 Thread Nico Weber
On Tue, Dec 11, 2012 at 3:43 PM, Eric Seidel e...@webkit.org wrote:
 Nevermind.  After further discussion with Nico, this can't work yet.

 Ninja is currently configured to use a non-webkitty out build
 directory, which is undoubtably going to confus some scripts/bots.

 We'll try this again at a later time.  Apologies for the noise.

If you build WebKit/chromium on Linux (i.e. Chromium/Linux and
Chromium/Android), you're now using ninja. The Chromium Linux Release
and Chromium Android Release build bots seem to be working fine.

Admire the exciting build output:
http://build.webkit.org/builders/Chromium%20Linux%20Release/builds/65467/steps/compile-webkit/logs/stdio

Let us know if anything is not working for you.

(If you must use make, you can pass --no-ninja to update-webkit, and
build-webkit will use make again. If you do this, please let me know
why.)

Nico


 http://trac.webkit.org/changeset/137375

 On Tue, Dec 11, 2012 at 3:33 PM, Eric Seidel e...@webkit.org wrote:
 This is now complete:
 http://trac.webkit.org/changeset/137371

 I'm watching the bots.  Please contact me if you have any trouble.

 Thank you all for your feedback.

 On Mon, Dec 10, 2012 at 10:11 AM, Dirk Pranke dpra...@chromium.org wrote:
 On Mon, Dec 10, 2012 at 1:30 AM, Jochen Eisinger joc...@chromium.org 
 wrote:
 Will the buildbots use ninja or the native build tools?

 My only concern is that we're catching problems with e.g. MSVS only after 
 we
 roll the WebKit deps in chromium and one of the MSVS bots starts failing.


 Eric is only suggesting changing update-webkit and build-webkit, which
 means that only the webkit.org bots would be affected. As long as the
 chromium.org canaries are still using chromium checkouts (and the
 native build systems), we'll still have coverage.

 Of course, your point is still valid for other scenarios where we
 don't have coverage of what we use on the official builds, but as Nico
 pointed out in a separate thread, so far this hasn't been a frequent
 problem.

 -- Dirk
 ___
 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: Make Ninja the default build-system for build-webkit --chromium

2012-12-10 Thread Nico Weber
On Mon, Dec 10, 2012 at 1:30 AM, Jochen Eisinger joc...@chromium.org wrote:
 Will the buildbots use ninja or the native build tools?

 My only concern is that we're catching problems with e.g. MSVS only after we
 roll the WebKit deps in chromium and one of the MSVS bots starts failing.

The idea is that gyp tries to write ninja files that behave as similar
as possible to xcodebuild / devenv (or msbuild). In practice, this
seems to work pretty well and it's rare that a ninja build works while
xcodebuild doesn't -- well enough that all the chromium trybots use
only ninja.

Nico


 Otherwise, I'm all for switching to ninja.

 best
 -jochen

 On Sat, Dec 8, 2012 at 9:29 AM, Eric Seidel e...@webkit.org wrote:

 If you don't work on the Chromium port, feel free to ignore.


 If you work on the Chromium port of WebKit and do not use Ninja as you
 build system (GYP_GENERATORS='ninja' or update-webkit --chromium
 --ninja) I want to hear from you!

 As far as I can tell, the vast majority of Chromium contributors use
 Ninja as their build system of choice.  Particularly for
 Chromium-Android contributors this seems to be true.

 With that knowledge, I have posted a patch to make update-webkit
 ---chromium/--chromium-android generate Ninja build files instead of
 platform-native build files (XCode, Visual Studio, Make, etc.) by
 default.  This of course only affects the chromium port.

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

 Thanks!


 p.s. If you don't already know:
 update-webkit --chromium --ninja
 build-webkit --chromium
 is all you need to use Ninja today.  You don't even need to have
 installed/built your own copy of ninja (Chromium has done that for
 you).

 p.p.s. Ninja is awesome. Awesomely quiet. Awesomely fast.
 http://martine.github.com/ninja/
 ___
 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] About text decoration wavy style implementation on Skia platform

2012-11-05 Thread Nico Weber
On Mon, Nov 5, 2012 at 5:18 AM, Bruno Abinader brunoabina...@gmail.com wrote:
 Hi all,

 I am implementing the CSS3 text decoration style wavy for Skia platform
 [3], and I would like to know a few things (please let me know if this is
 not the right mailing list to ask this):

 - There is already a spelling line style implementation which mimics
 wavy style behavior, only with its own colors and theme. While Skia uses a
 custom, inline bitmap for rendering the red waves, other toolkits such as
 Cairo and Qt implements a function called drawErrorUnderline which renders
 the waves based on a given bounding rectangle. These are triggered by the
 drawLineForDocumentMarker function.

 - Individual implementations of the wavy style are popping up for each
 platform (ie. Qt [1] and Cairo [2] already have their implementations
 pending review).

 I see we can go both ways here:

 1. Adapt the already implemented functions to support custom colors (as
 defined by -webkit-text-decoration-color, for example). While this looks
 easier on Qt and Cairo platforms, since drawErrorUnderline already gives
 everything we need, we would need to find a consensus on the custom bitmap
 usage for Skia platform. Of course, this would include updating the Qt [1]
 and Cairo [2] patches to support this approach.

 2. Continue with individual implementations of the wavy style as we're doing
 now. I'm afraid this option would involve code duplication.

 IMO we should adopt first option, rename the drawErrorUnderline to
 drawWavyLine (as suggested by KyungTae Kim), and find a solution for the
 Skia custom bitmap approach.

 What do you guys think?

The spelling underline on OS X is not a wavy line. If you end up
changing the skia code, please make sure the chromium/mac spelling
underline doesn't become a wavy line.

Nico


 Links:
 [1] https://bugs.webkit.org/show_bug.cgi?id=93507
 [2] https://bugs.webkit.org/show_bug.cgi?id=94110
 [3] https://bugs.webkit.org/show_bug.cgi?id=93509

 Best,

 --
 Bruno de Oliveira Abinader
 Software Engineer @ basysKom GmbH
 WebKit committer / Nokia Certified Qt Specialist


 ___
 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] Pre-proposal: Adding a Coverity instance for WebKIt

2012-09-17 Thread Nico Weber
On Tue, Sep 18, 2012 at 8:11 AM, James Hawkins jhawk...@chromium.org wrote:
 Hey folks,

 TL;DR - If you have opinions one way or another about having a Coverity
 instance available for WebKit developers, please respond to this message.

I don't have an opinion, but:

 Coverity is a static analysis tool [1] which scans source code and reports
 defects in the code.  We've been using Coverity to find defects in Chrome
 for a while now, and though there is sometimes a bit of subjectivity
 involved in the defect types (e.g. whether a return value should be
 checked), the signal is generally high.

 Off the top of my head, the following are the defects I spend most of my
 time fixing:
 * Uninitialized variables (including member variables).
   - Chrome has had at least 4 crash fixes in the past few months due to this
 defect (which were caught by Coverity).

This sounds very useful. Do you know how this is done? If you have a
class whose constructor calls a clear() function which sets all
variables, will it warn about the constructor not initializing all
members? If so, how do you suppress the warning in this case?

(There was a thread on the clang mailing list on having a warning like
this, and we couldn't come up with a good way to handle this case.)

 * Passing large parameters by value.
   - Generally a trivial fix.  I don't have performance data to say what
 affect fixing these hash, but 'death by a thousand cuts' eh?

I have seen at least three crashes in the last few months that were
cause by changes to fix this warning (something that used to be a
copied object became a dangling reference). I'm not sure this warning
is worth it.

 * Forward/Reverse/I - Nulls.
   - Coverity is very good at understanding when a value is NULL and the tool
 will tell you which code paths are using a NULL value.
 * Tons of security issue-causing defects.


 I'd like to propose adding a Coverity instance for the WebKit community, but
 I want to make sure there's general support before writing up the detailed
 proposal.

 A few details:
 * Google will front the cost of the license (non-zero...very far from zero)
 and the infrastructure.
 * I'd leave it up to the WebKit leadership to decide who has access (most
 likely limited to WebKit committers for security purposes).

 The biggest rationale is to provide a strong defect signal for the entire
 WebKit community, which would directly impact the success of all
 WebKit-based projects.  Coverity has provided free licenses for unsponsored
 (by larger corporations anyway) open-source projects; this has resulted in
 significant improvements [2] to the code bases of these projects, one of
 which I was directly involved with years ago (Wine).

 Let me know if you love the idea or hate it.

 Thanks,
 James


 [1] http://www.coverity.com/products/static-analysis.html
 [2]
 http://softwareintegrity.coverity.com/coverity-scan-2011-open-source-integrity-report-registration.html
 - registration required now :(


 ___
 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] ninja build available for chromium/mac, empty builds up to 20x as fast

2012-02-07 Thread Nico Weber
Hi,

we recently made the webkit/chromium/mac port buildable with ninja, a
new build system focused on build speed
(http://martine.github.com/ninja/). I don't have any numbers for
webkit standalone builds, but in a chromium checkout ninja is 20x as
fast as make on empty builds (1s instead of 20s), and 120x as fast as
xcodebuild.

Giving it a try is easy:

  Tools/Scrips/update-webkit --chromium --ninja
  Tools/Scripts/build-webkit --chromium

The output will appear in out/Release (or out/Debug if you do a debug build).

Nico

ps: If anybody is doing standalone webkit/chromium/linux builds: It's
very easy to make that work with ninja, too.
pps: Build perf numbers for make vs ninja for chromium builds:
https://plus.google.com/101038813433650812235/posts/irc26fhRtPC
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] chromium-cg-mac results

2012-01-03 Thread Nico Weber
Hi Adam,

On Tue, Jan 3, 2012 at 3:00 PM, Adam Barth aba...@webkit.org wrote:
 Hi Elliot,

 It looks like Chromium Mac has successfully moved to Skia.

I'd wait with this assessment until a version of Chrome with Skia has
shipped to stable. Things are looking really good so that should be
smooth sailing, but it's a bit early to say we're successfully moved
:-)

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


Re: [webkit-dev] Removing Support for Python 2.5

2011-11-04 Thread Nico Weber
The chromium port still has a bot that runs tests (but doesn't build) on 10.5.

Nico

On Fri, Nov 4, 2011 at 3:20 PM, Eric Seidel e...@webkit.org wrote:
 Now that Apple has removed the Leopard build bot (and presumably
 stopped supporting WebKit on Leopard), all webkit platforms I know of
 have Python 2.6 or higher.

 My plan is to remove all of our 2.5 supporting code in the next week,
 requiring Python 2.6 or later for WebKit.

 Let me know if this will be an issue for you.

 Thanks!

 -eric
 ___
 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] [chromium] make build for chromium/mac (build twice as fast!) clang for chromium/linux

2011-10-24 Thread Nico Weber
If you're now getting

  clang: error: unable to execute command: posix_spawn failed: Exec format error

when ld is running, you're probably using Dave Levin's fake ld script
without a she-bang line. Add #!/bin/bash to the first line of your
/usr/bin/ld script in that case. (Or, if you're using the make build,
ld is now serialized by default, so you can just mv /usr/bin/real-ld
back to /usr/bin/ld.)

Nico

On Fri, Oct 21, 2011 at 1:37 PM, Nico Weber tha...@chromium.org wrote:
 Hi,

 if you don't work on the chromium webkit port for mac or linux, you
 can stop reading now.

 Three announcements about stand-alone webkit/chromium checkouts:

 1.) Chromium/mac is now compiled with clang instead of gcc by default.
 This happens automatically, you don't need to do anything (on your
 local dev box, too). If you were wondering why compiler diagnostics
 are so much better all of a sudden, this is why. On my machine, this
 also brought the time for a full build from 23 minutes to 17 minutes.


 2.) Chromium/mac can now optionally be built with make instead of
 xcodebuild. To do this, run update-webkit with GYP_GENERATORS set to
 make like this:

    GYP_GENERATORS=make Tools/Scripts/update-webkit --chromium

 build-webkit will then use make instead of xcodebuild, and
 new-run-webkit-tests will use the make-produced binary. On my machine,
 this reduced full build times from 17 minutes to 12 minutes (50% of
 the original gcc  xcodebuild build time). If you build from within
 the Xcode IDE as opposed to on the command line, the speed-up might be
 a bit smaller. (To switch back to xcodebuild, run the command again
 without GYP_GENERATORS set, and delete the out/ folder.)

 (Note that this uses mac xcode_settings in the gyp files, not the
 linux-specific variables like cflags. This should hopefully make it
 fairly unlikely that the behavior of the make build and the xcode
 build diverge much.)


 3.) As a side effect, the linux make build now supports clang as well.
 To use clang on linux, run

    Source/WebKit/chromium/tools/clang/scripts/update.sh  # get clang,
 happens automatically on mac
    GYP_DEFINES=clang=1 Tools/Scripts/update-webkit --chromium

 and then build like you normally would (`build-webkit --chromium`). On
 linux, this mostly gets you better diagnostics, the build doesn't get
 all that much faster (it goes from 9:40 minutes with gcc4.4. to 8:30
 minutes with clang on my linux box – only about 12% faster, and
 probably even less if you use a distributed build system).


 Let me know if you run into any issues.

 Nico

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


[webkit-dev] [chromium] make build for chromium/mac (build twice as fast!) clang for chromium/linux

2011-10-21 Thread Nico Weber
Hi,

if you don't work on the chromium webkit port for mac or linux, you
can stop reading now.

Three announcements about stand-alone webkit/chromium checkouts:

1.) Chromium/mac is now compiled with clang instead of gcc by default.
This happens automatically, you don't need to do anything (on your
local dev box, too). If you were wondering why compiler diagnostics
are so much better all of a sudden, this is why. On my machine, this
also brought the time for a full build from 23 minutes to 17 minutes.


2.) Chromium/mac can now optionally be built with make instead of
xcodebuild. To do this, run update-webkit with GYP_GENERATORS set to
make like this:

GYP_GENERATORS=make Tools/Scripts/update-webkit --chromium

build-webkit will then use make instead of xcodebuild, and
new-run-webkit-tests will use the make-produced binary. On my machine,
this reduced full build times from 17 minutes to 12 minutes (50% of
the original gcc  xcodebuild build time). If you build from within
the Xcode IDE as opposed to on the command line, the speed-up might be
a bit smaller. (To switch back to xcodebuild, run the command again
without GYP_GENERATORS set, and delete the out/ folder.)

(Note that this uses mac xcode_settings in the gyp files, not the
linux-specific variables like cflags. This should hopefully make it
fairly unlikely that the behavior of the make build and the xcode
build diverge much.)


3.) As a side effect, the linux make build now supports clang as well.
To use clang on linux, run

Source/WebKit/chromium/tools/clang/scripts/update.sh  # get clang,
happens automatically on mac
GYP_DEFINES=clang=1 Tools/Scripts/update-webkit --chromium

and then build like you normally would (`build-webkit --chromium`). On
linux, this mostly gets you better diagnostics, the build doesn't get
all that much faster (it goes from 9:40 minutes with gcc4.4. to 8:30
minutes with clang on my linux box – only about 12% faster, and
probably even less if you use a distributed build system).


Let me know if you run into any issues.

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


Re: [webkit-dev] Do you compile with ENABLE_SVG diabled?

2011-09-09 Thread Nico Weber
Hi Eric,

chromium's mac tryservers (which are similar to webkit's EWS) all
build with svg disabled.

Nico

On Fri, Sep 9, 2011 at 2:42 PM, Eric Seidel e...@webkit.org wrote:
 I am interested in removing the ENABLE_SVG define, and all associated
 sub-defines

 ENABLE_SVG_ANIMATION
 ENABLE_SVG_AS_IMAGE
 ENABLE_SVG_FONTS
 ENABLE_SVG_FOREIGN_OBJECT
 ENABLE_SVG_USE

 SVG is part of HTML5, and all major ports compile and ship with SVG
 enabled (and have for years).

 Please let me know if you are compiling with ENABLE_SVG disabled.

 -eric
 ___
 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] Git mirror out of sync?

2011-08-17 Thread Nico Weber
Hi,

  git fetch origin  git log origin/master

suggests that the git mirror stopped syncing at r93166. Can someone kick it?

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


Re: [webkit-dev] Git mirror out of sync?

2011-08-17 Thread Nico Weber
The first non-syned revision is http://trac.webkit.org/changeset/93167
, which is a huge directory move. This might just be slow to handle in
git?

On Wed, Aug 17, 2011 at 1:28 PM, David Levin le...@chromium.org wrote:
 From an irc conversation, it sounds like this is being worked on but
 git-svn just hangs, hard to tell why its broken
 dave

 On Wed, Aug 17, 2011 at 7:56 AM, Nico Weber tha...@chromium.org wrote:

 Hi,

  git fetch origin  git log origin/master

 suggests that the git mirror stopped syncing at r93166. Can someone kick
 it?

 Thanks,
 Nico
 ___
 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] commit-queue platform musical chairs

2011-06-08 Thread Nico Weber
I noticed that the commit-queue is a lot zippier now. Thanks!

Nico

On Wed, Jun 8, 2011 at 1:57 PM, Adam Barth aba...@webkit.org wrote:
 Update: The new commit-queue nodes run about 6x faster than the old
 nodes (wow).  We're now fully switched over and have re-allocated the
 Mac Minis to the mac-ews, which should give us enough capacity to run
 the tests on Mac for every patch that's up for review.

 Adam


 On Sat, Jun 4, 2011 at 2:33 AM, Adam Barth aba...@webkit.org wrote:
 Up until now, we've been running the commit-queue on a cluster of Mac
 Minis, but building WebKit on these machines takes on the order of an
 hour and a half, making the commit-queue slow.  EC2 offers much
 stronger machines, but unfortunately does not offer Mac OS X (likely
 due to licensing restrictions).  We're experimenting with running the
 commit-queue on EC2 using the Chromium Linux port.  Currently, we've
 got both kinds of nodes running so we can compare their effectiveness.

 I have a slight worry that most developers use the Mac port, and
 running the commit-queue in a different configuration might cause some
 trouble.  If something bad happens, please let me know.  We might need
 to add some more checks to make sure the commit-queue doesn't break
 Mac.

 Thanks for your patience,
 Adam

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

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


Re: [webkit-dev] Build system update

2011-04-25 Thread Nico Weber
On Fri, Mar 25, 2011 at 10:59 AM, Maciej Stachowiak m...@apple.com wrote:

 In addition to your comments, I also find the gyp syntax somewhat unpleasant. 
 In particular, in .gypi lists of files to compile, ever entry is 
 double-quoted, comma-separated, line-separated, and then grouped in multiple 
 levels of braces. This is noisier than any of our current formats except the 
 XML-based ones. It seems like a newline-separated list, possibly indented, 
 should be sufficient.

 For .gyp files themselves, I admit I don't have a clear understanding of what 
 they are actually doing, so it's hard for me to say if the syntax they use is 
 good or not.

 I think in general the trick of making the files essentially Python code is 
 (presumably) handy for Python experts but not easy to read for anyone else.

It's just python directory literals, which is virtually identical to json.

Nico


 But I am assuming syntax-level things can be fixed once we have things 
 working for more ports, and doesn't necessarily need to be a showstopper to 
 initial adoption. Perhaps after successfully deploying gyp for one additional 
 port, the right next steps are to make sure the experience is smooth and 
 enjoyable for WebKit hackers, before propagating it further.

 Regards,
 Maciej

 On Mar 24, 2011, at 9:49 PM, Brent Fulgham wrote:

 Hi Dimitri,

 LONG screed follows...

 On Mar 24, 2011, at 9:24 AM, Dimitri Glazkov wrote:

 \With the gyp conversion at this stage, we now have a possible solution
 to this problem. Given that there aren't any other viable alternatives
 in the present, please consider the most productive way of
 contributing: filing well-formulated bugs, blocking bug 55018
 (https://bugs.webkit.org/showdependencytree.cgi?id=55018hide_resolved=1).
 We can then discuss these specific problems and adjust the shape of
 the solution accordingly.

 While I applaud the idea of a unified build system, my own experience trying 
 to get gyp working has been a uniformly frustrating experience.

 Imagine for a moment that rather than being a Chromium developer, long 
 schooled in the use of gyp and the various build components needed to 
 support it, you are a lowly external developer who just wishes to build 
 WebKit.  Out of curiosity, I took a stab at playing with gyp again this 
 evening:

 1. The top Google hit for gyp build system takes me to an exhaustive 
 specification of the gyp input file syntax format.  If I click on the 
 Project Home link, I find no information on downloading or installing the 
 system.  Presumably I can download the source and somehow generate the tool.

 2. If I go to the User Documentation page 
 (http://code.google.com/p/gyp/wiki/GypUserDocumentation), I am instructed on 
 how to draft my own gyp files to build things.  But why would I care when I 
 can't even try the software out on an existing project, like WebKit?

 Once I download the gyp sources and 'build' them using the included 
 setup.py, it's not clear what to do with them:

 link:Source brent$ gyp .
 Traceback (most recent call last):
  File /usr/local/bin/gyp, line 18, in module
    sys.exit(gyp.main(sys.argv[1:]))
  File /Library/Python/2.6/site-packages/gyp/__init__.py, line 374, in main
    '--depth as a workaround.'
 Exception: Could not automatically locate src directory.  This is a 
 temporary Chromium feature that will be removed.  Use --depth as a 
 workaround.
 link:Source brent$ gyp ./gyp
 Traceback (most recent call last):
  File /usr/local/bin/gyp, line 18, in module
    sys.exit(gyp.main(sys.argv[1:]))
  File /Library/Python/2.6/site-packages/gyp/__init__.py, line 374, in main
    '--depth as a workaround.'
 Exception: Could not automatically locate src directory.  This is a 
 temporary Chromium feature that will be removed.  Use --depth as a 
 workaround.
 link:Source brent$ gyp help
 Traceback (most recent call last):
  File /usr/local/bin/gyp, line 18, in module
    sys.exit(gyp.main(sys.argv[1:]))
  File /Library/Python/2.6/site-packages/gyp/__init__.py, line 374, in main
    '--depth as a workaround.'
 Exception: Could not automatically locate src directory.  This is a 
 temporary Chromium feature that will be removed.  Use --depth as a 
 workaround.
 link:Source brent$

 I kind of hate gyp!

 Compare that to the native Xcode projects, CMake files, or normal GNU 
 Makefiles.  These other solutions almost always JUST WORK, because if you 
 can build any software on your machine, you must have used one of these 
 options.

 I don't use gyp for anything, I don't have it installed, and its not clear 
 how to go about using it.

 Please don't further raise the barrier of entry to new WebKit developers by 
 adding yet another obscure build requirement to the system.  :-(

 Thanks,

 -Brent





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

___
webkit-dev 

Re: [webkit-dev] Bools are strictly worse than enums

2010-12-03 Thread Nico Weber
On Fri, Dec 3, 2010 at 1:45 PM, Ryosuke Niwa rn...@webkit.org wrote:
 On Fri, Dec 3, 2010 at 1:37 PM, David Hyatt hy...@apple.com wrote:

 The only exception I would make to this rule is if all the call sites use
 variables and never pass in raw true or false.  In that case there's no loss
 of readability, and whether you use an enum vs. a bool is irrelevant.
 I think in general the rule should be Keep your call sites readable, and
 convert to enums if you find that the call sites are becoming inscrutable.

 That rule makes sense to me.
 On Fri, Dec 3, 2010 at 1:40 PM, Eric Seidel e...@webkit.org wrote:

 Dave, I'm not sure I understand your exception.  Could you give an
 example?

 I think what he means is that
 bool doSomething();
 void doSomethingElse(bool);
 and the only case we always call doSomethingElse with a return value of some
 function or with a variable:
 doSomethingElse(doSomething());
 doSomethingElse(shouldNotDoSomethingElse);
 etc...
 and we never call it with raw true/false:
 doSomethingElse(true)
 doSomethingElse(false)

Out of curiosity, what do people think of

doSomethingElse(/*paramName=*/true);

when calling an existing function that takes a bool?

Nico

 - Ryosuke

 ___
 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] Accelerated 2D Tesselation Implementation

2010-08-27 Thread Nico Weber
On Fri, Aug 27, 2010 at 10:18 AM, Chris Marrin cmar...@apple.com wrote:

 Hi Ken,
 It would help me, and I think many others, if we could have a discussion of
 how exactly your tessellation logic works and what it is intended to do. For
 instance, is the algorithm you're using based on Loop-Blinn? I'm a bit
 familiar with that algorithm and some of the problems it has with rendering
 this type of geometry. For instance, there are typically anti-aliasing
 artifacts at the points where the interior triangles touch the edges. These
 are described in section 5.1 of the paper and the authors added additional
 (and not well described) logic to solve the problem.
 If you could describe your algorithm a bit and show some expected results
 with typical cases, that would be really helpful.
 For those not familiar with Loop-Blinn, here is a link to their original
 paper, presented at Siggraph 2005:
 Resolution Independent Curve Rendering using Programmable Graphics ...
 It's a great algorithm for rendering resolution independent 2D objects using
 the GPU. It has potential to render both 2D shapes (as used in Canvas and
 SVG) and text glyphs. It's advantage is that once you generate the triangles
 for the shape, you can render the shape at any resolution. It's disadvantage
 is that the triangle generation is quite expensive, so mutating shapes can
 potentially be slower than a simpler resolution dependent tessellation.

I think there's a variant of the algorithm that uses the stencil
buffer polygon rendering method (
http://zrusin.blogspot.com/2006/07/hardware-accelerated-polygon-rendering.html
) instead of triangulation. The paper I think I read on that only
covered quadratic splines, but maybe somehow has extended that method
to cubic splines by now?

Nico

 -
 ~Chris
 cmar...@apple.com




 ___
 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] Accelerated 2D Tesselation Implementation

2010-08-27 Thread Nico Weber
On Fri, Aug 27, 2010 at 10:51 AM, Chris Marrin cmar...@apple.com wrote:

 On Aug 27, 2010, at 10:32 AM, Nico Weber wrote:

 On Fri, Aug 27, 2010 at 10:18 AM, Chris Marrin cmar...@apple.com wrote:

 Hi Ken,
 It would help me, and I think many others, if we could have a discussion of
 how exactly your tessellation logic works and what it is intended to do. For
 instance, is the algorithm you're using based on Loop-Blinn? I'm a bit
 familiar with that algorithm and some of the problems it has with rendering
 this type of geometry. For instance, there are typically anti-aliasing
 artifacts at the points where the interior triangles touch the edges. These
 are described in section 5.1 of the paper and the authors added additional
 (and not well described) logic to solve the problem.
 If you could describe your algorithm a bit and show some expected results
 with typical cases, that would be really helpful.
 For those not familiar with Loop-Blinn, here is a link to their original
 paper, presented at Siggraph 2005:
 Resolution Independent Curve Rendering using Programmable Graphics ...
 It's a great algorithm for rendering resolution independent 2D objects using
 the GPU. It has potential to render both 2D shapes (as used in Canvas and
 SVG) and text glyphs. It's advantage is that once you generate the triangles
 for the shape, you can render the shape at any resolution. It's disadvantage
 is that the triangle generation is quite expensive, so mutating shapes can
 potentially be slower than a simpler resolution dependent tessellation.

 I think there's a variant of the algorithm that uses the stencil
 buffer polygon rendering method (
 http://zrusin.blogspot.com/2006/07/hardware-accelerated-polygon-rendering.html
 ) instead of triangulation. The paper I think I read on that only
 covered quadratic splines, but maybe somehow has extended that method
 to cubic splines by now?

 It looks like that technique deals with polygons, so as long as you convert 
 the shape to a piecewise linear curve it seems like it can handle any curve 
 form, right?

What I linked is how to render polygons with the z buffer.
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch25.html says:

Recently, Kokojima et al. 2006 presented a variant on our approach
for quadratic splines that used the stencil buffer to avoid
triangulation. Their idea is to connect all points on the curve path
and draw them as a triangle fan into the stencil buffer with the
invert operator. Only pixels drawn an odd number of times will be
nonzero, thus giving the correct image of concavities and holes. Next,
they draw the curve segments, treating them all as convex quadratic
elements. This will either add to or carve away a curved portion of
the shape. A quad large enough to cover the extent of the stencil
buffer is then drawn to the frame buffer with a stencil test. The
result is the same as ours without triangulation or subdivision, and
needing only one quadratic curve orientation. Furthermore, eliminating
the triangulation steps makes high-performance rendering of dynamic
curves possible. The disadvantage of their approach is that two passes
over the curve data are needed. For static curves, they are trading
performance for implementation overhead.

Maybe someone extended Kokojima et al's work to cover cubic splines.


 -
 ~Chris
 cmar...@apple.com





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


Re: [webkit-dev] style question for empty for loops

2010-08-26 Thread Nico Weber
On Thu, Aug 26, 2010 at 11:49 AM, Darin Adler da...@apple.com wrote:
 On Aug 26, 2010, at 11:35 AM, Chris Fleizach wrote:

     for (...; ...; ...) { }

 This seems OK.

     for (...; ...; ...)
     { }

 The above is definitely not allowed, because braces go on the line with the 
 for.

 The other possibilities are:

 C)
    for (...)
        ;

 D)
    for (...) {
    }

 E)
    for (...) {
        // intentionally-empty loop body.
    }

 I would probably use (C) in code I was writing. This doesn’t come up much.

FWIW, clang warns about (C) but doesn't warn about the others (at
least on high warning levels).

Nico


    -- 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] Not enough space message when linking webkit (lots of free disk space)

2010-08-22 Thread Nico Weber
Are you using a 32 bit linker? Maybe it's running out of address space.

Nico

On Sun, Aug 22, 2010 at 12:32 PM, Chris Hatko cha...@gmail.com wrote:
 I'm running revision 65648  and building cairo-win32 release I'm getting Not
 enough space when linking WebKit project. I have 40Gig free space on
 this drive and 4Gigs of ram.

 Linking...
 11fatal error C1083: Cannot open compiler intermediate file:
 'C:\cygwin\home\HATKO\WebKit\WebKitBuild\lib\WebKitLib.lib': Not
 enough space
 11LINK : fatal error LNK1257: code generation failed
 11Build log was saved at
 file://C:\cygwin\home\HATKO\WebKit\WebKitBuild\obj\WebKit\Release_Cairo\BuildLog.htm
 11WebKit - 1 error(s), 1 warning(s).

 Any idea what I can try?

 Thanks,

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

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


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

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


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


Nico

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

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

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

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

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

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


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

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

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

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


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

 Regards,
 Maciej

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

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