Re: [webkit-dev] Sunsetting committership and reviewership

2013-04-10 Thread Filip Pizlo
Interesting.  What privileges, if any, would you propose 'emeritus reviewers' 
to have?

-Filip


On Apr 9, 2013, at 2:54 PM, Dmitry Titov dim...@chromium.org wrote:

 How about creating an 'emeritus reviewer' status (no r+ power) and let people 
 *voluntarily* move themselves to this status? I bet a lot of 'inactive 
 reviewers' would do that, since everybody understands the issue of getting 
 out of sync with current code base. It may have different vibe though than 
 figuring some automatic time-based enforcement system... 
 
 As an added bonus, this gives such people a good way to avoid being asked to 
 review a patch for a colleague while keeping some ties with the project...
 
 
 On Mon, Apr 8, 2013 at 3:34 PM, Maciej Stachowiak m...@apple.com wrote:
 
 On Apr 7, 2013, at 5:53 PM, Benjamin Poulain benja...@webkit.org wrote:
 
 On Sun, Apr 7, 2013 at 5:49 PM, Timothy Hatcher timo...@apple.com wrote:
 I think 6 months is fine for deactivating SVN accounts. And a full revoke of 
 reviewer status after 2 years of no activity sounds reasonable to me. We 
 could make it easier to get reviewer status again after a 2 year sunset if 
 the person becomes active again and shows good judgment still.
 
 +1 to this.
 
 I think 2 years to revoke reviewer rights is too long. All the drive-by 
 reviews that have caused problems were from reviewers that were inactive for 
 less than 2 years. Nevertheless, 2 years is better than the current 
 situation so it is a good start.
 
 We sometimes get low-quality drive-by reviews even from people who are active 
 at the time. I feel like that's not the right basis for the time cutoff. If 
 we do have a sunset period, we should think about it in terms of how long it 
 takes to be so out of touch with the current state of the project that 
 there's little chance you can give a useful review.
 
 Regards,
 Maciej
 
 
 
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev
 
 
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev

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


Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Pozdnyakov, Mikhail
Hi,

As far as I'm concerned WebCL would have serious security issues as it lets web 
app to provide OpenCL target code (which is really unsafe),
besides its using requires OpenCL knowledge and hence might be too complex for 
a web developer.
Good alternative could be enabling parallel calculations inside ECMAScript 
itself. For instance providing ParallelArray interface for map-reduce
calculations, there is actually a proposal already at 
http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism .

BR,
Mikhail


From: webkit-dev-boun...@lists.webkit.org [webkit-dev-boun...@lists.webkit.org] 
on behalf of Jer Noble [jer.no...@apple.com]
Sent: Tuesday, April 09, 2013 11:23 PM
To: Benjamin Poulain
Cc: webkit-dev@lists.webkit.org
Subject: Re: [webkit-dev] Is there a plan for supporting multi-process and 
WebCL in webkit

On Apr 9, 2013, at 10:47 AM, Benjamin Poulain 
benja...@webkit.orgmailto:benja...@webkit.org wrote:

I am very curious about the source of interest in OpenCL on browser. While 
OpenCL is a great technology, I have the feeling it is not ready for the web.
What kind of applications do you foresee being powered by OpenCL on the Web?

I can imagine some use of CPU based kernels for the web (for image manipulation 
for example). But I have a hard time seeing how adding full support of OpenCL 
would not be shooting ourself in the foot at this point. That may change in the 
future when GPU hardware converges…

There has also been interest in the WebAudio WG about using OpenCL/WebCL for 
custom audio processing.  There are significant performance issues involved 
with doing custom audio processing in JavaScript, even in a Worker thread, but 
WebCL may offer performance and memory characteristics which would couple well 
with the requirements of realtime audio threads.

-Jer

-
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

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


Re: [webkit-dev] Sunsetting committership and reviewership

2013-04-10 Thread Eric Seidel
Unrelated to Dmitry's suggestion, but since I brought up emeritus
contributors earlier in the thread, I should explain my usage.  The
emeritus class proposed in the ancient webkit-reviewers thread about
sunsetting was simply to answer the fact that committers.py has two
purposes:

1. It exists as a public Access Control List (ACL) for svn.webkit.org
(since I know of no other public ACL).
2. It exists as a way for our tools to lookup Contributor objects
based on name, irc nick, svn email etc.

emeritus contributors (in my original proposal on webkit-reviewers
years ago) only exist to serve the second purpose, not the first.
This would be similar to the Contributor and Account superclasses
which have (since that old thread) been added to committers.py to
allow committers.py to list non-commiters and even bots which we might
want to have in our CC list, but not give any privileges to.

Again, my thoughts on this may bear no reflection to what Dmitry had
in mind with his use of the word emeritus, so I should let him
speak!

On Tue, Apr 9, 2013 at 11:39 PM, Filip Pizlo fpi...@apple.com wrote:
 Interesting.  What privileges, if any, would you propose 'emeritus
 reviewers' to have?

 -Filip


 On Apr 9, 2013, at 2:54 PM, Dmitry Titov dim...@chromium.org wrote:

 How about creating an 'emeritus reviewer' status (no r+ power) and let
 people *voluntarily* move themselves to this status? I bet a lot of
 'inactive reviewers' would do that, since everybody understands the issue of
 getting out of sync with current code base. It may have different vibe
 though than figuring some automatic time-based enforcement system...

 As an added bonus, this gives such people a good way to avoid being asked to
 review a patch for a colleague while keeping some ties with the project...


 On Mon, Apr 8, 2013 at 3:34 PM, Maciej Stachowiak m...@apple.com wrote:


 On Apr 7, 2013, at 5:53 PM, Benjamin Poulain benja...@webkit.org wrote:

 On Sun, Apr 7, 2013 at 5:49 PM, Timothy Hatcher timo...@apple.com wrote:

 I think 6 months is fine for deactivating SVN accounts. And a full revoke
 of reviewer status after 2 years of no activity sounds reasonable to me. We
 could make it easier to get reviewer status again after a 2 year sunset if
 the person becomes active again and shows good judgment still.


 +1 to this.

 I think 2 years to revoke reviewer rights is too long. All the drive-by
 reviews that have caused problems were from reviewers that were inactive for
 less than 2 years. Nevertheless, 2 years is better than the current
 situation so it is a good start.


 We sometimes get low-quality drive-by reviews even from people who are
 active at the time. I feel like that's not the right basis for the time
 cutoff. If we do have a sunset period, we should think about it in terms of
 how long it takes to be so out of touch with the current state of the
 project that there's little chance you can give a useful review.

 Regards,
 Maciej



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


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



 ___
 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 there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Filip Pizlo
Why not infer ParallelArrays automatically?  What is the specific reason for 
requiring a new type?

-Filip


On Apr 10, 2013, at 12:16 AM, Pozdnyakov, Mikhail 
mikhail.pozdnya...@intel.com wrote:

 Hi,
 
 As far as I'm concerned WebCL would have serious security issues as it lets 
 web app to provide OpenCL target code (which is really unsafe),
 besides its using requires OpenCL knowledge and hence might be too complex 
 for a web developer.
 Good alternative could be enabling parallel calculations inside ECMAScript 
 itself. For instance providing ParallelArray interface for map-reduce
 calculations, there is actually a proposal already at 
 http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism .
 
 BR,
 Mikhail
 
 
 From: webkit-dev-boun...@lists.webkit.org 
 [webkit-dev-boun...@lists.webkit.org] on behalf of Jer Noble 
 [jer.no...@apple.com]
 Sent: Tuesday, April 09, 2013 11:23 PM
 To: Benjamin Poulain
 Cc: webkit-dev@lists.webkit.org
 Subject: Re: [webkit-dev] Is there a plan for supporting multi-process and 
 WebCL in webkit
 
 On Apr 9, 2013, at 10:47 AM, Benjamin Poulain 
 benja...@webkit.orgmailto:benja...@webkit.org wrote:
 
 I am very curious about the source of interest in OpenCL on browser. While 
 OpenCL is a great technology, I have the feeling it is not ready for the web.
 What kind of applications do you foresee being powered by OpenCL on the Web?
 
 I can imagine some use of CPU based kernels for the web (for image 
 manipulation for example). But I have a hard time seeing how adding full 
 support of OpenCL would not be shooting ourself in the foot at this point. 
 That may change in the future when GPU hardware converges…
 
 There has also been interest in the WebAudio WG about using OpenCL/WebCL for 
 custom audio processing.  There are significant performance issues involved 
 with doing custom audio processing in JavaScript, even in a Worker thread, 
 but WebCL may offer performance and memory characteristics which would couple 
 well with the requirements of realtime audio threads.
 
 -Jer
 
 -
 Intel Finland Oy
 Registered Address: PL 281, 00181 Helsinki 
 Business Identity Code: 0357606 - 4 
 Domiciled in Helsinki 
 
 This e-mail and any attachments may contain confidential material for
 the sole use of the intended recipient(s). Any review or distribution
 by others is strictly prohibited. If you are not the intended
 recipient, please contact the sender and delete all copies.
 
 ___
 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] Sunsetting committership and reviewership

2013-04-10 Thread Filip Pizlo
I don't know if this is in line with what you and Dmitry were thinking, but 
here's what I like about a symbolic emeritus status: it takes care of the 
possible drive-by review problem while also continuing to recognize the person 
within the project.  It's symbolic, and it feels nicer than just wiping them 
from the system.

The fact that it serves the purpose of supporting lookup (your point (2)) is 
good, also.

-Filip


On Apr 10, 2013, at 12:37 AM, Eric Seidel e...@webkit.org wrote:

 Unrelated to Dmitry's suggestion, but since I brought up emeritus
 contributors earlier in the thread, I should explain my usage.  The
 emeritus class proposed in the ancient webkit-reviewers thread about
 sunsetting was simply to answer the fact that committers.py has two
 purposes:
 
 1. It exists as a public Access Control List (ACL) for svn.webkit.org
 (since I know of no other public ACL).
 2. It exists as a way for our tools to lookup Contributor objects
 based on name, irc nick, svn email etc.
 
 emeritus contributors (in my original proposal on webkit-reviewers
 years ago) only exist to serve the second purpose, not the first.
 This would be similar to the Contributor and Account superclasses
 which have (since that old thread) been added to committers.py to
 allow committers.py to list non-commiters and even bots which we might
 want to have in our CC list, but not give any privileges to.
 
 Again, my thoughts on this may bear no reflection to what Dmitry had
 in mind with his use of the word emeritus, so I should let him
 speak!
 
 On Tue, Apr 9, 2013 at 11:39 PM, Filip Pizlo fpi...@apple.com wrote:
 Interesting.  What privileges, if any, would you propose 'emeritus
 reviewers' to have?
 
 -Filip
 
 
 On Apr 9, 2013, at 2:54 PM, Dmitry Titov dim...@chromium.org wrote:
 
 How about creating an 'emeritus reviewer' status (no r+ power) and let
 people *voluntarily* move themselves to this status? I bet a lot of
 'inactive reviewers' would do that, since everybody understands the issue of
 getting out of sync with current code base. It may have different vibe
 though than figuring some automatic time-based enforcement system...
 
 As an added bonus, this gives such people a good way to avoid being asked to
 review a patch for a colleague while keeping some ties with the project...
 
 
 On Mon, Apr 8, 2013 at 3:34 PM, Maciej Stachowiak m...@apple.com wrote:
 
 
 On Apr 7, 2013, at 5:53 PM, Benjamin Poulain benja...@webkit.org wrote:
 
 On Sun, Apr 7, 2013 at 5:49 PM, Timothy Hatcher timo...@apple.com wrote:
 
 I think 6 months is fine for deactivating SVN accounts. And a full revoke
 of reviewer status after 2 years of no activity sounds reasonable to me. We
 could make it easier to get reviewer status again after a 2 year sunset if
 the person becomes active again and shows good judgment still.
 
 
 +1 to this.
 
 I think 2 years to revoke reviewer rights is too long. All the drive-by
 reviews that have caused problems were from reviewers that were inactive for
 less than 2 years. Nevertheless, 2 years is better than the current
 situation so it is a good start.
 
 
 We sometimes get low-quality drive-by reviews even from people who are
 active at the time. I feel like that's not the right basis for the time
 cutoff. If we do have a sunset period, we should think about it in terms of
 how long it takes to be so out of touch with the current state of the
 project that there's little chance you can give a useful review.
 
 Regards,
 Maciej
 
 
 
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev
 
 
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev
 
 
 
 ___
 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] Sunsetting committership and reviewership

2013-04-10 Thread Eric Seidel
If we create an emeritus class in committers.py, we also have a whole
bunch of old (long-webkit-retired) Apple committers/reviewers (ken,
vicki, cblu, gramps, etc.) which should go there. :)  Then the tools
(including validate-committer-lists) would be less confused by their
presence in ChangeLogs and commit messages.

On Wed, Apr 10, 2013 at 12:41 AM, Filip Pizlo fpi...@apple.com wrote:
 I don't know if this is in line with what you and Dmitry were thinking, but
 here's what I like about a symbolic emeritus status: it takes care of the
 possible drive-by review problem while also continuing to recognize the
 person within the project.  It's symbolic, and it feels nicer than just
 wiping them from the system.

 The fact that it serves the purpose of supporting lookup (your point (2)) is
 good, also.

 -Filip



 On Apr 10, 2013, at 12:37 AM, Eric Seidel e...@webkit.org wrote:

 Unrelated to Dmitry's suggestion, but since I brought up emeritus
 contributors earlier in the thread, I should explain my usage.  The
 emeritus class proposed in the ancient webkit-reviewers thread about
 sunsetting was simply to answer the fact that committers.py has two
 purposes:

 1. It exists as a public Access Control List (ACL) for svn.webkit.org
 (since I know of no other public ACL).
 2. It exists as a way for our tools to lookup Contributor objects
 based on name, irc nick, svn email etc.

 emeritus contributors (in my original proposal on webkit-reviewers
 years ago) only exist to serve the second purpose, not the first.
 This would be similar to the Contributor and Account superclasses
 which have (since that old thread) been added to committers.py to
 allow committers.py to list non-commiters and even bots which we might
 want to have in our CC list, but not give any privileges to.

 Again, my thoughts on this may bear no reflection to what Dmitry had
 in mind with his use of the word emeritus, so I should let him
 speak!

 On Tue, Apr 9, 2013 at 11:39 PM, Filip Pizlo fpi...@apple.com wrote:

 Interesting.  What privileges, if any, would you propose 'emeritus
 reviewers' to have?

 -Filip


 On Apr 9, 2013, at 2:54 PM, Dmitry Titov dim...@chromium.org wrote:

 How about creating an 'emeritus reviewer' status (no r+ power) and let
 people *voluntarily* move themselves to this status? I bet a lot of
 'inactive reviewers' would do that, since everybody understands the issue of
 getting out of sync with current code base. It may have different vibe
 though than figuring some automatic time-based enforcement system...

 As an added bonus, this gives such people a good way to avoid being asked to
 review a patch for a colleague while keeping some ties with the project...


 On Mon, Apr 8, 2013 at 3:34 PM, Maciej Stachowiak m...@apple.com wrote:



 On Apr 7, 2013, at 5:53 PM, Benjamin Poulain benja...@webkit.org wrote:

 On Sun, Apr 7, 2013 at 5:49 PM, Timothy Hatcher timo...@apple.com wrote:


 I think 6 months is fine for deactivating SVN accounts. And a full revoke
 of reviewer status after 2 years of no activity sounds reasonable to me. We
 could make it easier to get reviewer status again after a 2 year sunset if
 the person becomes active again and shows good judgment still.



 +1 to this.

 I think 2 years to revoke reviewer rights is too long. All the drive-by
 reviews that have caused problems were from reviewers that were inactive for
 less than 2 years. Nevertheless, 2 years is better than the current
 situation so it is a good start.


 We sometimes get low-quality drive-by reviews even from people who are
 active at the time. I feel like that's not the right basis for the time
 cutoff. If we do have a sunset period, we should think about it in terms of
 how long it takes to be so out of touch with the current state of the
 project that there's little chance you can give a useful review.

 Regards,
 Maciej



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


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



 ___
 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 there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Pozdnyakov, Mikhail


 Why not infer ParallelArrays automatically? 
Sorry, did not get it. Could you please elaborate?

I'm not insisting on this concrete proposal, my point is just that it would be 
more safe and natural to enhance  
ECMAScript (enable parallel calculations there) rather than make developers to 
introduce OpenCL snippets to their web apps.

BR,
Mikhail


From: Filip Pizlo [fpi...@apple.com]
Sent: Wednesday, April 10, 2013 10:37 AM
To: Pozdnyakov, Mikhail
Cc: Jer Noble; Benjamin Poulain; webkit-dev@lists.webkit.org
Subject: Re: [webkit-dev] Is there a plan for supporting multi-process and 
WebCL in webkit

Why not infer ParallelArrays automatically?  What is the specific reason for 
requiring a new type?

-Filip


On Apr 10, 2013, at 12:16 AM, Pozdnyakov, Mikhail 
mikhail.pozdnya...@intel.commailto:mikhail.pozdnya...@intel.com wrote:

Hi,

As far as I'm concerned WebCL would have serious security issues as it lets web 
app to provide OpenCL target code (which is really unsafe),
besides its using requires OpenCL knowledge and hence might be too complex for 
a web developer.
Good alternative could be enabling parallel calculations inside ECMAScript 
itself. For instance providing ParallelArray interface for map-reduce
calculations, there is actually a proposal already at 
http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism .

BR,
Mikhail


From: 
webkit-dev-boun...@lists.webkit.orgmailto:webkit-dev-boun...@lists.webkit.org 
[webkit-dev-boun...@lists.webkit.orgmailto:webkit-dev-boun...@lists.webkit.org]
 on behalf of Jer Noble [jer.no...@apple.commailto:jer.no...@apple.com]
Sent: Tuesday, April 09, 2013 11:23 PM
To: Benjamin Poulain
Cc: webkit-dev@lists.webkit.orgmailto:webkit-dev@lists.webkit.org
Subject: Re: [webkit-dev] Is there a plan for supporting multi-process and 
WebCL in webkit

On Apr 9, 2013, at 10:47 AM, Benjamin Poulain 
benja...@webkit.orgmailto:benja...@webkit.orgmailto:benja...@webkit.org 
wrote:

I am very curious about the source of interest in OpenCL on browser. While 
OpenCL is a great technology, I have the feeling it is not ready for the web.
What kind of applications do you foresee being powered by OpenCL on the Web?

I can imagine some use of CPU based kernels for the web (for image manipulation 
for example). But I have a hard time seeing how adding full support of OpenCL 
would not be shooting ourself in the foot at this point. That may change in the 
future when GPU hardware converges…

There has also been interest in the WebAudio WG about using OpenCL/WebCL for 
custom audio processing.  There are significant performance issues involved 
with doing custom audio processing in JavaScript, even in a Worker thread, but 
WebCL may offer performance and memory characteristics which would couple well 
with the requirements of realtime audio threads.

-Jer

-
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki
Business Identity Code: 0357606 - 4
Domiciled in Helsinki

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

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

-
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

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


Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Ryosuke Niwa
On Wed, Apr 10, 2013 at 2:29 AM, Pozdnyakov, Mikhail 
mikhail.pozdnya...@intel.com wrote:



  Why not infer ParallelArrays automatically?
 Sorry, did not get it. Could you please elaborate?

 I'm not insisting on this concrete proposal, my point is just that it
 would be more safe and natural to enhance
 ECMAScript (enable parallel calculations there) rather than make
 developers to introduce OpenCL snippets to their web apps.


Filip is saying that we should be able to auto-detect scripts that are
using ParallelArrays implicitly instead of adding a new type and making Web
developers use it.  i.e. if it quacks like a duck, then optimize it as a
duck. And I completely agree with Filip on this.

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


Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Pozdnyakov, Mikhail
Thanks for clarification. I also agree that this is better :-)

BR,
Mikhail


From: ryosuke.n...@gmail.com [ryosuke.n...@gmail.com] on behalf of Ryosuke Niwa 
[rn...@webkit.org]
Sent: Wednesday, April 10, 2013 12:38 PM
To: Pozdnyakov, Mikhail
Cc: Filip Pizlo; Benjamin Poulain; webkit-dev@lists.webkit.org
Subject: Re: [webkit-dev] Is there a plan for supporting multi-process and 
WebCL in webkit

On Wed, Apr 10, 2013 at 2:29 AM, Pozdnyakov, Mikhail 
mikhail.pozdnya...@intel.commailto:mikhail.pozdnya...@intel.com wrote:


 Why not infer ParallelArrays automatically?
Sorry, did not get it. Could you please elaborate?

I'm not insisting on this concrete proposal, my point is just that it would be 
more safe and natural to enhance
ECMAScript (enable parallel calculations there) rather than make developers to 
introduce OpenCL snippets to their web apps.

Filip is saying that we should be able to auto-detect scripts that are using 
ParallelArrays implicitly instead of adding a new type and making Web 
developers use it.  i.e. if it quacks like a duck, then optimize it as a duck. 
And I completely agree with Filip on this.

- R. Niwa

-
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

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


Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Antonio Gomes
Hi

On Wed, Apr 10, 2013 at 12:59 AM, Thibault Imbert timb...@adobe.com wrote:


 Yes, leveraging multicore and the power of GPUs for general computations
 is great and very powerful but first, securing such kernels is hard, and
 authoring these would be pretty brutal to most web developers, I think this
 is what Benjamin was referring to.

 With WebCL, you are basically writing C style kernels that you load and
 run to drive the computations, initiatives like RiverTrail are more
 restrictive but way more approachable and closer to the web, exposing
 higher level primitives on top of WebCL (ParallelArray for example) and
 integrated at the language level, which makes a lot of sense.


Security is a primary goal of WebCL, and both WebCL and OpenCL working
groups are working together to ensure a safe parallel programming
environment to the Web, as you can see in [1]. If you have specific
concerns, please raise it in the Khronos working group mailing list ([2])
or file a bug ([3]) against the draft spec.

[1]
https://cvs.khronos.org/svn/repos/registry/trunk/public/webcl/spec/latest/index.html#4
[2] http://www.khronos.org/webcl/public-mailing-list/
[3] https://www.khronos.org/bugzilla/enter_bug.cgi?product=WebCL
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Filip Pizlo


On Apr 10, 2013, at 2:29 AM, Pozdnyakov, Mikhail 
mikhail.pozdnya...@intel.com wrote:

 
 
 Why not infer ParallelArrays automatically?
 Sorry, did not get it. Could you please elaborate?

Normal JS arrays. You use them with pure computation. Profiler notices this. 
And then the same things that you have in the ParallelArrays proposal now work 
except you don't need a new type. 

 
 I'm not insisting on this concrete proposal, my point is just that it would 
 be more safe and natural to enhance  
 ECMAScript (enable parallel calculations there) rather than make developers 
 to introduce OpenCL snippets to their web apps.

It's even more natural to not add yet another array type to ECMAScript. 

-F

 
 BR,
 Mikhail
 
 
 From: Filip Pizlo [fpi...@apple.com]
 Sent: Wednesday, April 10, 2013 10:37 AM
 To: Pozdnyakov, Mikhail
 Cc: Jer Noble; Benjamin Poulain; webkit-dev@lists.webkit.org
 Subject: Re: [webkit-dev] Is there a plan for supporting multi-process and 
 WebCL in webkit
 
 Why not infer ParallelArrays automatically?  What is the specific reason for 
 requiring a new type?
 
 -Filip
 
 
 On Apr 10, 2013, at 12:16 AM, Pozdnyakov, Mikhail 
 mikhail.pozdnya...@intel.commailto:mikhail.pozdnya...@intel.com wrote:
 
 Hi,
 
 As far as I'm concerned WebCL would have serious security issues as it lets 
 web app to provide OpenCL target code (which is really unsafe),
 besides its using requires OpenCL knowledge and hence might be too complex 
 for a web developer.
 Good alternative could be enabling parallel calculations inside ECMAScript 
 itself. For instance providing ParallelArray interface for map-reduce
 calculations, there is actually a proposal already at 
 http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism .
 
 BR,
 Mikhail
 
 
 From: 
 webkit-dev-boun...@lists.webkit.orgmailto:webkit-dev-boun...@lists.webkit.org
  
 [webkit-dev-boun...@lists.webkit.orgmailto:webkit-dev-boun...@lists.webkit.org]
  on behalf of Jer Noble [jer.no...@apple.commailto:jer.no...@apple.com]
 Sent: Tuesday, April 09, 2013 11:23 PM
 To: Benjamin Poulain
 Cc: webkit-dev@lists.webkit.orgmailto:webkit-dev@lists.webkit.org
 Subject: Re: [webkit-dev] Is there a plan for supporting multi-process and 
 WebCL in webkit
 
 On Apr 9, 2013, at 10:47 AM, Benjamin Poulain 
 benja...@webkit.orgmailto:benja...@webkit.orgmailto:benja...@webkit.org 
 wrote:
 
 I am very curious about the source of interest in OpenCL on browser. While 
 OpenCL is a great technology, I have the feeling it is not ready for the web.
 What kind of applications do you foresee being powered by OpenCL on the Web?
 
 I can imagine some use of CPU based kernels for the web (for image 
 manipulation for example). But I have a hard time seeing how adding full 
 support of OpenCL would not be shooting ourself in the foot at this point. 
 That may change in the future when GPU hardware converges…
 
 There has also been interest in the WebAudio WG about using OpenCL/WebCL for 
 custom audio processing.  There are significant performance issues involved 
 with doing custom audio processing in JavaScript, even in a Worker thread, 
 but WebCL may offer performance and memory characteristics which would couple 
 well with the requirements of realtime audio threads.
 
 -Jer
 
 -
 Intel Finland Oy
 Registered Address: PL 281, 00181 Helsinki
 Business Identity Code: 0357606 - 4
 Domiciled in Helsinki
 
 This e-mail and any attachments may contain confidential material for
 the sole use of the intended recipient(s). Any review or distribution
 by others is strictly prohibited. If you are not the intended
 recipient, please contact the sender and delete all copies.
 
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.orgmailto:webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev
 
 -
 Intel Finland Oy
 Registered Address: PL 281, 00181 Helsinki 
 Business Identity Code: 0357606 - 4 
 Domiciled in Helsinki 
 
 This e-mail and any attachments may contain confidential material for
 the sole use of the intended recipient(s). Any review or distribution
 by others is strictly prohibited. If you are not the intended
 recipient, please contact the sender and delete all copies.
 
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Jarred Nicholls
On Wed, Apr 10, 2013 at 9:33 AM, Antonio Gomes toniki...@webkit.org wrote:

 Hi

 On Wed, Apr 10, 2013 at 12:59 AM, Thibault Imbert timb...@adobe.comwrote:


 Yes, leveraging multicore and the power of GPUs for general computations
 is great and very powerful but first, securing such kernels is hard, and
 authoring these would be pretty brutal to most web developers, I think this
 is what Benjamin was referring to.

 With WebCL, you are basically writing C style kernels that you load and
 run to drive the computations, initiatives like RiverTrail are more
 restrictive but way more approachable and closer to the web, exposing
 higher level primitives on top of WebCL (ParallelArray for example) and
 integrated at the language level, which makes a lot of sense.


 Security is a primary goal of WebCL, and both WebCL and OpenCL working
 groups are working together to ensure a safe parallel programming
 environment to the Web, as you can see in [1]. If you have specific
 concerns, please raise it in the Khronos working group mailing list ([2])
 or file a bug ([3]) against the draft spec.


Particularly in terms of security, WebCL is to OpenCL as WebGL is to
OpenGL.  Introducing OpenGL (i.e. WebGL) to the web had similar security
concerns, and yet...

With that said, I totally agree that using intrinsic idioms and heuristics
that is more webby would be nice.  But at some point there will be use
cases that do not translate and will require explicit developer control in
one form (WebCL) or another (new ECMAScript idioms).  Detecting and
optimizing all variations of homogenous parallelable operations seamlessly
inside the JS engine is hard, to put it mildly.



 [1]
 https://cvs.khronos.org/svn/repos/registry/trunk/public/webcl/spec/latest/index.html#4
 [2] http://www.khronos.org/webcl/public-mailing-list/
 [3] https://www.khronos.org/bugzilla/enter_bug.cgi?product=WebCL

 ___
 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] Sunsetting committership and reviewership

2013-04-10 Thread Glenn Adams
On Wed, Apr 10, 2013 at 1:46 AM, Eric Seidel e...@webkit.org wrote:

 If we create an emeritus class in committers.py, we also have a whole
 bunch of old (long-webkit-retired) Apple committers/reviewers (ken,
 vicki, cblu, gramps, etc.) which should go there. :)  Then the tools
 (including validate-committer-lists) would be less confused by their
 presence in ChangeLogs and commit messages.


I like this. Shouldn't be hard to add a suggest-emeriti command to
webkitpy.
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Oliver Hunt

On Apr 10, 2013, at 9:44 AM, Jarred Nicholls jar...@webkit.org wrote:

 On Wed, Apr 10, 2013 at 9:33 AM, Antonio Gomes toniki...@webkit.org wrote:
 Hi
 
 On Wed, Apr 10, 2013 at 12:59 AM, Thibault Imbert timb...@adobe.com wrote:
 
 Yes, leveraging multicore and the power of GPUs for general computations is 
 great and very powerful but first, securing such kernels is hard, and 
 authoring these would be pretty brutal to most web developers, I think this 
 is what Benjamin was referring to.
 
 With WebCL, you are basically writing C style kernels that you load and run 
 to drive the computations, initiatives like RiverTrail are more restrictive 
 but way more approachable and closer to the web, exposing higher level 
 primitives on top of WebCL (ParallelArray for example) and integrated at the 
 language level, which makes a lot of sense.
 
 
 Security is a primary goal of WebCL, and both WebCL and OpenCL working groups 
 are working together to ensure a safe parallel programming environment to the 
 Web, as you can see in [1]. If you have specific concerns, please raise it in 
 the Khronos working group mailing list ([2]) or file a bug ([3]) against the 
 draft spec.
 
 Particularly in terms of security, WebCL is to OpenCL as WebGL is to OpenGL.  
 Introducing OpenGL (i.e. WebGL) to the web had similar security concerns, 
 and yet…

OpenCL is fundamentally less safe than OpenGL+GLSL, so it not correct to say 
that the security concerns are similar.

There is no part of GLSL that is overtly operating on raw memory with arbitrary 
pointer access, whereas in OpenCL such functionality is a core primitive.  I am 
not saying that it will be impossible to make WebCL safe (after all OpenCL can 
trivially be kept on the cpu, which already has the assumption that it is 
running untrusted code), but whether you can keep it safe without completely 
compromising the programming and performance model remains to be seen.

--Oliver


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


Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Dirk Pranke
On Wed, Apr 10, 2013 at 7:37 AM, Filip Pizlo fpi...@apple.com wrote:



 On Apr 10, 2013, at 2:29 AM, Pozdnyakov, Mikhail 
 mikhail.pozdnya...@intel.com wrote:

 
 
  Why not infer ParallelArrays automatically?
  Sorry, did not get it. Could you please elaborate?

 Normal JS arrays. You use them with pure computation. Profiler notices
 this. And then the same things that you have in the ParallelArrays proposal
 now work except you don't need a new type.


Compiler writers have been chasing this problem for 50 years, with (AFAIK)
very limited success for languages that don't give you compile-time
annotations to help you along. I'm not aware of any work on JIT compilers
doing this. Why do you think we could do better? (Honest question, I'm not
trying to be snarky, nor am I an expert).
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Oliver Hunt
The parallel arrays apis aren't a magic make my code parallel wand.

They don't make general code parallel, they simply provide a bunch of functions 
like map, etc where if you restrict your list of language features to a 
specific subset, they'll vectorise it.

For instance

ParallelArray([1,2,3]).map(function(a,v) { return v * 2; })

would be vectorised

ParallelArray([1,2,3]).map(function(a,v) { return v.x * 2; })

wouldn't be.

This isn't solve autovectorisation, this is we've been given a specific 
operation to perform on each element of an array, parallelise it if possible, 
and what's possible is arbitrarily limited, and require a distinct type that 
isn't an array.

--Oliver

On Apr 10, 2013, at 12:37 PM, Dirk Pranke dpra...@chromium.org wrote:

 
 
 
 On Wed, Apr 10, 2013 at 7:37 AM, Filip Pizlo fpi...@apple.com wrote:
 
 
 On Apr 10, 2013, at 2:29 AM, Pozdnyakov, Mikhail 
 mikhail.pozdnya...@intel.com wrote:
 
 
 
  Why not infer ParallelArrays automatically?
  Sorry, did not get it. Could you please elaborate?
 
 Normal JS arrays. You use them with pure computation. Profiler notices this. 
 And then the same things that you have in the ParallelArrays proposal now 
 work except you don't need a new type.
 
 
 Compiler writers have been chasing this problem for 50 years, with (AFAIK) 
 very limited success for languages that don't give you compile-time 
 annotations to help you along. I'm not aware of any work on JIT compilers 
 doing this. Why do you think we could do better? (Honest question, I'm not 
 trying to be snarky, nor am I an expert).
  
 ___
 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 there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Dirk Pranke
Right, I get how ParallelArrays would work. I was asking Filip how you
might infer that an array could be a ParallelArray.

-- Dirk

On Wed, Apr 10, 2013 at 12:45 PM, Oliver Hunt oli...@apple.com wrote:

 The parallel arrays apis aren't a magic make my code parallel wand.

 They don't make general code parallel, they simply provide a bunch of
 functions like map, etc where if you restrict your list of language
 features to a specific subset, they'll vectorise it.

 For instance

 ParallelArray([1,2,3]).map(function(a,v) { return v * 2; })

 would be vectorised

 ParallelArray([1,2,3]).map(function(a,v) { return v.x * 2; })

 wouldn't be.

 This isn't solve autovectorisation, this is we've been given a specific
 operation to perform on each element of an array, parallelise it if
 possible, and what's possible is arbitrarily limited, and require a
 distinct type that isn't an array.

 --Oliver

 On Apr 10, 2013, at 12:37 PM, Dirk Pranke dpra...@chromium.org wrote:




 On Wed, Apr 10, 2013 at 7:37 AM, Filip Pizlo fpi...@apple.com wrote:



 On Apr 10, 2013, at 2:29 AM, Pozdnyakov, Mikhail 
 mikhail.pozdnya...@intel.com wrote:

 
 
  Why not infer ParallelArrays automatically?
  Sorry, did not get it. Could you please elaborate?

 Normal JS arrays. You use them with pure computation. Profiler notices
 this. And then the same things that you have in the ParallelArrays proposal
 now work except you don't need a new type.


 Compiler writers have been chasing this problem for 50 years, with (AFAIK)
 very limited success for languages that don't give you compile-time
 annotations to help you along. I'm not aware of any work on JIT compilers
 doing this. Why do you think we could do better? (Honest question, I'm not
 trying to be snarky, nor am I an expert).

 ___
 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 there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Oliver Hunt
I'm not sure what you mean here: a parallel array is simply an array of 
numbers; there is nothing magic about it.

If we _really_ wanted to be blunt about it, we could simply say (in Array.map)

if (length = giant  function.isEasyPeasy()  everything in the array is a 
number)
   return doHardcoreMap();

// carry on doing regular map
...

Understand that the parallel APIs have to do all of this as well, the only 
thing they lose is the is everything a number check

--Oliver

On Apr 10, 2013, at 12:50 PM, Dirk Pranke dpra...@chromium.org wrote:

 Right, I get how ParallelArrays would work. I was asking Filip how you might 
 infer that an array could be a ParallelArray.
 
 -- Dirk
 
 On Wed, Apr 10, 2013 at 12:45 PM, Oliver Hunt oli...@apple.com wrote:
 The parallel arrays apis aren't a magic make my code parallel wand.
 
 They don't make general code parallel, they simply provide a bunch of 
 functions like map, etc where if you restrict your list of language features 
 to a specific subset, they'll vectorise it.
 
 For instance
 
 ParallelArray([1,2,3]).map(function(a,v) { return v * 2; })
 
 would be vectorised
 
 ParallelArray([1,2,3]).map(function(a,v) { return v.x * 2; })
 
 wouldn't be.
 
 This isn't solve autovectorisation, this is we've been given a specific 
 operation to perform on each element of an array, parallelise it if 
 possible, and what's possible is arbitrarily limited, and require a distinct 
 type that isn't an array.
 
 --Oliver

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


Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Dirk Pranke
Right, you need some way to ensure that the functions applied to the array
are pure, the array doesn't mutate, etc. I thought perhaps your
ParallelArray() type would be ensuring this (e.g., by enforcing type
checking and freezing the array), but maybe I misunderstood you? Even then,
I'm not sure how easy ensuring the functions were pure would be.

Plus there's the problem of figuring how best to parallelize the
operations, which is also often non-trivial.

-- Dirk

On Wed, Apr 10, 2013 at 12:58 PM, Oliver Hunt oli...@apple.com wrote:

 I'm not sure what you mean here: a parallel array is simply an array of
 numbers; there is nothing magic about it.

 If we _really_ wanted to be blunt about it, we could simply say (in
 Array.map)


 if (length = giant  function.isEasyPeasy()  everything in the array
 is a number)
return doHardcoreMap();

 // carry on doing regular map
 ...


 Understand that the parallel APIs have to do all of this as well, the only
 thing they lose is the is everything a number check

 --Oliver


 On Apr 10, 2013, at 12:50 PM, Dirk Pranke dpra...@chromium.org wrote:

 Right, I get how ParallelArrays would work. I was asking Filip how you
 might infer that an array could be a ParallelArray.

 -- Dirk

 On Wed, Apr 10, 2013 at 12:45 PM, Oliver Hunt oli...@apple.com wrote:

 The parallel arrays apis aren't a magic make my code parallel wand.

 They don't make general code parallel, they simply provide a bunch of
 functions like map, etc where if you restrict your list of language
 features to a specific subset, they'll vectorise it.

 For instance

 ParallelArray([1,2,3]).map(function(a,v) { return v * 2; })

 would be vectorised

 ParallelArray([1,2,3]).map(function(a,v) { return v.x * 2; })

 wouldn't be.

 This isn't solve autovectorisation, this is we've been given a
 specific operation to perform on each element of an array, parallelise it
 if possible, and what's possible is arbitrarily limited, and require a
 distinct type that isn't an array.

 --Oliver



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


Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Filip Pizlo

On Apr 10, 2013, at 12:37 PM, Dirk Pranke dpra...@chromium.org wrote:

 
 
 
 On Wed, Apr 10, 2013 at 7:37 AM, Filip Pizlo fpi...@apple.com wrote:
 
 
 On Apr 10, 2013, at 2:29 AM, Pozdnyakov, Mikhail 
 mikhail.pozdnya...@intel.com wrote:
 
 
 
  Why not infer ParallelArrays automatically?
  Sorry, did not get it. Could you please elaborate?
 
 Normal JS arrays. You use them with pure computation. Profiler notices this. 
 And then the same things that you have in the ParallelArrays proposal now 
 work except you don't need a new type.
 
 
 Compiler writers have been chasing this problem for 50 years, with (AFAIK) 
 very limited success for languages that don't give you compile-time 
 annotations to help you along.

Lets demystify this a bit.  It's easy to say OMG they did things for 50 
years, and we're all guilty of saying things like this sometimes, but, it's a 
bit more interesting to identify what these people did for those 50 years, 
where they got, and what the remaining problems are.  It is already possible to 
autoparallelize loops, but there are challenges that remain that make it 
impractical for real code.  The problems are with:

A) Identifying loops that are candidates for sound parallelization.  In 
formal-speak they look for the lack of loop-carried side-effects, i.e. 
something you'd do in one iteration that would be visible in a subsequent 
iteration - this represents a dependency that inhibits parallelization.  But if 
you prove that no loop-carried side-effects exist, then you're off to a good 
start: you know that you could fork off some threads to run the loop's body in 
parallel, and the program would still be guaranteed to get identical results.  
(I'm oversimplifying a bit - if you tried to auto-parallelize a loop in a 
program that already had threads, you'd be in a world of hurt from a memory 
model standpoint - but we don't have that problem in JS because all code in JS 
is semantically serial and so the parallelization you did wouldn't interfere 
with existing uses of threads, since there aren't any.)

B) Identifying loops that are candidates for profitable parallelization.  
Spinning up a thread carries a fixed cost.  If you find a loop with no 
loop-carried side-effects, but that loop actually only executes for a short 
time, parallelizing it will be a performance regression - and likely a steep 
one at that.  Finding which loops are profitable to parallelize is thought to 
be a hard problem.  The traditional attempts to solve it centered around making 
threads cheaper (i.e. Cilk, CML, and similar), or having stronger inference of 
profitability (I think this is what http://ciao-lang.org does), or pushing 
parallelizability hints into the language (X10, OpenMP, and these 
ParallelArrays).

(A) is not a problem that is solved by ParallelArrays.  ParallelArrays 
guarantee sequential equivalence; i.e. ParallelArray.prototype.forEach() will 
behave like Array.prototype.forEach() if the closure you pass it has the 
equivalent of loop-carried side-effects.  I.e. if you believe that (A) is not 
a solvable problem, then this constitutes an argument against ParallelArrays, 
and not against inferring that a normal array should behave like a 
ParallelArray.  If you can do the inference that allows 
ParallelArrays.prototype.forEach() to soundly parallelize, then you can do that 
inference for Array.prototype.forEach(), as well.  I happen to think that (A) 
is a big problem with ParallelArrays; I don't like it that these guys are 
proposing a language construct called ParallelArray but then secretly they 
will probably not parallelize a ton of code because the user didn't realize 
that storing to a global variable shafts their inference for side-effects.

(B) is a problem that ParallelArrays attempt to solve.  But here's what we know 
about the different approaches to solving (B):

- Making threads faster hasn't really worked.  Cilk's threads are fast enough 
that if you use them yourself, manually, you'll be really happy, sort of, 
except that it sort of sometimes doesn't work like you'd expect because you've 
got user-level scheduling - but the point is, they're not fast enough that you 
could spin them up for _any_ loop in a program.  You'd get a regression if you 
did.

- Stronger inference of profitability is a promising area, which isn't 
adequately explored, IMO.  The approaches with which I'm most familiar focus 
too much on static inference.

- Adding hints to the language results in programming models that nobody uses.  
Have you ever used OpenMP?  Probably not, and if you have, you probably wanted 
to puke all over yourself.  It's a disgusting programming model.  There's 
something offensive about writing what looks like a serial loop, and then 
adding decorations to it to declare to the compiler what are the set of 
things it could do to the loop.  Eventually these declarations get so 
sophisticated that you realize that you made a poor life decision by using them 
- you 

Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Filip Pizlo

On Apr 10, 2013, at 1:15 PM, Filip Pizlo fpi...@apple.com wrote:

 
 On Apr 10, 2013, at 12:37 PM, Dirk Pranke dpra...@chromium.org wrote:
 
 
 
 
 On Wed, Apr 10, 2013 at 7:37 AM, Filip Pizlo fpi...@apple.com wrote:
 
 
 On Apr 10, 2013, at 2:29 AM, Pozdnyakov, Mikhail 
 mikhail.pozdnya...@intel.com wrote:
 
 
 
  Why not infer ParallelArrays automatically?
  Sorry, did not get it. Could you please elaborate?
 
 Normal JS arrays. You use them with pure computation. Profiler notices this. 
 And then the same things that you have in the ParallelArrays proposal now 
 work except you don't need a new type.
 
 
 Compiler writers have been chasing this problem for 50 years, with (AFAIK) 
 very limited success for languages that don't give you compile-time 
 annotations to help you along.
 
 Lets demystify this a bit.  It's easy to say OMG they did things for 50 
 years, and we're all guilty of saying things like this sometimes, but, it's 
 a bit more interesting to identify what these people did for those 50 years, 
 where they got, and what the remaining problems are.  It is already possible 
 to autoparallelize loops, but there are challenges that remain that make it 
 impractical for real code.  The problems are with:
 
 A) Identifying loops that are candidates for sound parallelization.  In 
 formal-speak they look for the lack of loop-carried side-effects, i.e. 
 something you'd do in one iteration that would be visible in a subsequent 
 iteration - this represents a dependency that inhibits parallelization.  But 
 if you prove that no loop-carried side-effects exist, then you're off to a 
 good start: you know that you could fork off some threads to run the loop's 
 body in parallel, and the program would still be guaranteed to get identical 
 results.  (I'm oversimplifying a bit - if you tried to auto-parallelize a 
 loop in a program that already had threads, you'd be in a world of hurt from 
 a memory model standpoint - but we don't have that problem in JS because all 
 code in JS is semantically serial and so the parallelization you did wouldn't 
 interfere with existing uses of threads, since there aren't any.)
 
 B) Identifying loops that are candidates for profitable parallelization.  
 Spinning up a thread carries a fixed cost.  If you find a loop with no 
 loop-carried side-effects, but that loop actually only executes for a short 
 time, parallelizing it will be a performance regression - and likely a steep 
 one at that.  Finding which loops are profitable to parallelize is thought to 
 be a hard problem.  The traditional attempts to solve it centered around 
 making threads cheaper (i.e. Cilk, CML, and similar), or having stronger 
 inference of profitability (I think this is what http://ciao-lang.org does), 
 or pushing parallelizability hints into the language (X10, OpenMP, and these 
 ParallelArrays).
 
 (A) is not a problem that is solved by ParallelArrays.  ParallelArrays 
 guarantee sequential equivalence; i.e. ParallelArray.prototype.forEach() will 
 behave like Array.prototype.forEach() if the closure you pass it has the 
 equivalent of loop-carried side-effects.

Sorry, to clarify: ParallelArray.prototype.forEach() will _always_ behave 
identically to Array.prototype.forEach(), and it is only if the 
runtime/compiler separately proves that there aren't loop-carried side-effects, 
that you get parallelism.  Otherwise you just get a slower and more bulky 
implementation of foreach().

 I.e. if you believe that (A) is not a solvable problem, then this constitutes 
 an argument against ParallelArrays, and not against inferring that a normal 
 array should behave like a ParallelArray.  If you can do the inference that 
 allows ParallelArrays.prototype.forEach() to soundly parallelize, then you 
 can do that inference for Array.prototype.forEach(), as well.  I happen to 
 think that (A) is a big problem with ParallelArrays; I don't like it that 
 these guys are proposing a language construct called ParallelArray but then 
 secretly they will probably not parallelize a ton of code because the user 
 didn't realize that storing to a global variable shafts their inference for 
 side-effects.
 
 (B) is a problem that ParallelArrays attempt to solve.  But here's what we 
 know about the different approaches to solving (B):
 
 - Making threads faster hasn't really worked.  Cilk's threads are fast enough 
 that if you use them yourself, manually, you'll be really happy, sort of, 
 except that it sort of sometimes doesn't work like you'd expect because 
 you've got user-level scheduling - but the point is, they're not fast enough 
 that you could spin them up for _any_ loop in a program.  You'd get a 
 regression if you did.
 
 - Stronger inference of profitability is a promising area, which isn't 
 adequately explored, IMO.  The approaches with which I'm most familiar focus 
 too much on static inference.
 
 - Adding hints to the language results in programming models that nobody 
 uses.  Have 

Re: [webkit-dev] Is there a plan for supporting multi-process and WebCL in webkit

2013-04-10 Thread Filip Pizlo

On Apr 10, 2013, at 1:03 PM, Dirk Pranke dpra...@chromium.org wrote:

 Right, you need some way to ensure that the functions applied to the array 
 are pure, the array doesn't mutate, etc. I thought perhaps your 
 ParallelArray() type would be ensuring this (e.g., by enforcing type checking 
 and freezing the array), but maybe I misunderstood you?

Ah - this is the key thing.  ParallelArray requires the runtime and compiler to:

- Ensure that the closure passed to it is pure enough to parallelize (formally, 
no loop-carried side-effects).  If you already have the compiler do this 
analysis then we might as well do it for any call to forEach().

- You're right that in one of the versions of the ParallelArray proposal, they 
make ParallelArray immutable.  But this doesn't help much.  We already infer 
that things are immutable in JS engines.  If immutability helped, then we could 
just infer it automatically.  It would just be another kind of array inference. 
 All of the major JS inference already do array inference, and 
purity/immutability is a particularly simple property to infer.  But I don't 
actually think you really need to prove that the array doesn't *ever* change - 
proving that the closure doesn't change the array in bad ways is all that is 
necessary, and that is even easier to detect since it's a property of the 
closure (or more broadly, the loop body) and not the array itself.

-F

 Even then, I'm not sure how easy ensuring the functions were pure would be.
 
 Plus there's the problem of figuring how best to parallelize the operations, 
 which is also often non-trivial.
 
 -- Dirk
 
 On Wed, Apr 10, 2013 at 12:58 PM, Oliver Hunt oli...@apple.com wrote:
 I'm not sure what you mean here: a parallel array is simply an array of 
 numbers; there is nothing magic about it.
 
 If we _really_ wanted to be blunt about it, we could simply say (in Array.map)
 
 if (length = giant  function.isEasyPeasy()  everything in the array is a 
 number)
return doHardcoreMap();
 
 // carry on doing regular map
 ...
 
 Understand that the parallel APIs have to do all of this as well, the only 
 thing they lose is the is everything a number check
 
 --Oliver
 
 
 On Apr 10, 2013, at 12:50 PM, Dirk Pranke dpra...@chromium.org wrote:
 
 Right, I get how ParallelArrays would work. I was asking Filip how you might 
 infer that an array could be a ParallelArray.
 
 -- Dirk
 
 On Wed, Apr 10, 2013 at 12:45 PM, Oliver Hunt oli...@apple.com wrote:
 The parallel arrays apis aren't a magic make my code parallel wand.
 
 They don't make general code parallel, they simply provide a bunch of 
 functions like map, etc where if you restrict your list of language features 
 to a specific subset, they'll vectorise it.
 
 For instance
 
 ParallelArray([1,2,3]).map(function(a,v) { return v * 2; })
 
 would be vectorised
 
 ParallelArray([1,2,3]).map(function(a,v) { return v.x * 2; })
 
 wouldn't be.
 
 This isn't solve autovectorisation, this is we've been given a specific 
 operation to perform on each element of an array, parallelise it if 
 possible, and what's possible is arbitrarily limited, and require a 
 distinct type that isn't an array.
 
 --Oliver
 
 

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


[webkit-dev] Adding LenientThis to WebKitIDL

2013-04-10 Thread Victor Costan
Dear WebKit devs,


I would like to make console.log and related functions work without
requiring that this is set to the console object. This would make
debugging from Web Inspector easier, because console.log could be
passed directly to functions that require a callback, instead of
having to pass function(arg) { console.log(arg); }

In order to make this happen, I need a static method that shows up on
the console object (or its prototype). The closest thing I could find
in WebIDL is the [LenientThis] attribute. In WebIDL it's only intended
for attributes, but I think it would be very useful for methods.

If it makes a difference, Firefox supports using console.log without
this being the console object, and this feature has been requested
on the Chromium bug tracker, so it is useful to people other than
myself.


Before I embark on a quest to learn Perl so I can change the code
generator, I would like to check if this is worthwhile. Would a patch
along these lines be considered for WebKit? Is there another
established pattern for achieving my goal? (e.g. some form of const
attribute that returns a function?)

Thank you very much for your help,
Victor
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Adding LenientThis to WebKitIDL

2013-04-10 Thread Ryosuke Niwa
You can also write a custom binding code instead of adding a new IDL
keyword for this specific use case.

- R. Niwa


On Wed, Apr 10, 2013 at 3:02 PM, Victor Costan cos...@gmail.com wrote:

 Dear WebKit devs,


 I would like to make console.log and related functions work without
 requiring that this is set to the console object. This would make
 debugging from Web Inspector easier, because console.log could be
 passed directly to functions that require a callback, instead of
 having to pass function(arg) { console.log(arg); }

 In order to make this happen, I need a static method that shows up on
 the console object (or its prototype). The closest thing I could find
 in WebIDL is the [LenientThis] attribute. In WebIDL it's only intended
 for attributes, but I think it would be very useful for methods.

 If it makes a difference, Firefox supports using console.log without
 this being the console object, and this feature has been requested
 on the Chromium bug tracker, so it is useful to people other than
 myself.


 Before I embark on a quest to learn Perl so I can change the code
 generator, I would like to check if this is worthwhile. Would a patch
 along these lines be considered for WebKit? Is there another
 established pattern for achieving my goal? (e.g. some form of const
 attribute that returns a function?)

 Thank you very much for your help,
 Victor
 ___
 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] Adding LenientThis to WebKitIDL

2013-04-10 Thread Victor Costan
Thank you for the very quick response, Ryosuke!

My main concerns with custom binding code is that I'd like to cover
the related functions in console (debug, error, info, warn, dir,
dirxml, table, trace, count), and I think something like LenientThis
can be useful for making other functions more developer-friendly in
the future.

Should I still use custom bindings? I'm pretty sure it'll make this
patch easier for me :)

Thank you very much for your advice!
Victor


On Wed, Apr 10, 2013 at 6:03 PM, Ryosuke Niwa rn...@webkit.org wrote:
 You can also write a custom binding code instead of adding a new IDL keyword
 for this specific use case.

 - R. Niwa


 On Wed, Apr 10, 2013 at 3:02 PM, Victor Costan cos...@gmail.com wrote:

 Dear WebKit devs,


 I would like to make console.log and related functions work without
 requiring that this is set to the console object. This would make
 debugging from Web Inspector easier, because console.log could be
 passed directly to functions that require a callback, instead of
 having to pass function(arg) { console.log(arg); }

 In order to make this happen, I need a static method that shows up on
 the console object (or its prototype). The closest thing I could find
 in WebIDL is the [LenientThis] attribute. In WebIDL it's only intended
 for attributes, but I think it would be very useful for methods.

 If it makes a difference, Firefox supports using console.log without
 this being the console object, and this feature has been requested
 on the Chromium bug tracker, so it is useful to people other than
 myself.


 Before I embark on a quest to learn Perl so I can change the code
 generator, I would like to check if this is worthwhile. Would a patch
 along these lines be considered for WebKit? Is there another
 established pattern for achieving my goal? (e.g. some form of const
 attribute that returns a function?)

 Thank you very much for your help,
 Victor
 ___
 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] Adding LenientThis to WebKitIDL

2013-04-10 Thread Ryosuke Niwa
On Wed, Apr 10, 2013 at 3:24 PM, Victor Costan cos...@gmail.com wrote:

 Thank you for the very quick response, Ryosuke!

 My main concerns with custom binding code is that I'd like to cover
 the related functions in console (debug, error, info, warn, dir,
 dirxml, table, trace, count), and I think something like LenientThis
 can be useful for making other functions more developer-friendly in
 the future.


I see. Adding a new keyword might be a way to go then.

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


Re: [webkit-dev] Buildsystem cleanup

2013-04-10 Thread Roger Fong
Hi Patrick,
A few questions I have about the CMake system, being someone who's never used 
it before.

-I would like to keep all of the unified properties settings that the VS2010 
property sheets hierarchy provided.
Can we still maintain that through CMake easily?

-How does CMake handle different build targets. Would I have to open up 
different project files per configuration?

-If I'm understanding things correctly the main differences with using CMake 
would be:

1. If a project configuration is changed run CMake / I guess whenever you 
update the source as well (just to be safe).
We would want to change any build scripts to use CMake: perhaps 
build-webkit is the really the only one we have to worry about in the 
OpenSource tree.

2. If you're working on Windows, open up the solution with Visual Studio and do 
work as usual, unless you want to add files in which case you go through the 
CMake scripts again before moving on.
Would all the project filters and solution dependencies would still be 
in tact? Or is the solution file something that we would maintain that would 
hook into the generated projects?. 

-I'm assuming there's a CMake flag for specifying which version of visual 
studio to generate project files for?
Our opensource bots run VS2005 and our internal run VS2010 currently, and 
seeing as we're not ready to use only VS2010 yet we would need to be able to 
specify which.

If my above concerns can be resolved and the example you posted works fine for 
us (I'll try to take a look at it soon), it's probably okay to start checking 
in stuff to get ready for the move to CMake. I don't think we really have the 
resources to get things hooked up on our end in the immediate future, but 
perhaps in the coming months.
Also if we do end up switching over I would highly push for all other ports 
besides Mac to adopt CMake and require any new ports to use it as well.

Thanks,
Roger

On Apr 9, 2013, at 9:34 AM, Patrick Gansterer par...@paroga.com wrote:

 Hi,
 
 On Mon, 08 Apr 2013 18:10:29 -0700, Mark Rowe wrote:
 On 2013-04-08, at 17:45, Patrick Gansterer par...@paroga.com wrote:
 Hmm, I'll try to set up an example for WTF + JavaScriptCore. Maybe you can 
 have a look at it then to check if I understand the concept correctly 
 before I move on to WebCore + WebKit?
 
 Sounds good.
 
 I pushed a quick  dirty example to [1], which shows a possible solution for 
 WTF and JavaScriptCore.
 
 You can test it with the following steps. The helper directory contains then 
 all built files.
 
 * Create a directory helper
 * Copy all files from Source/cmake to helper/cmake
 * Copy all files (including the support libraries) from WebKitLibraries to 
 helper/WebKitLibraries
 * Create an independent directory and run the following commands in it:
 $ cmake path/to/WebKit/Source/WTF/wtf -DPORT=WinApple 
 -DHELPER_DIR=path/to/helper
 $ cmake --build . --target package
 * You get a WTF.zip, which should be extracted in the directory helper
 * Create an additional independent directory and run the following commands 
 in it:
 $ cmake path/to/WebKit/Source/JavaScriptCore -DPORT=WinApple 
 -DHELPER_DIR=path/to/helper
 $ cmake --build . --target package
 * Yout get a JavaScriptCore.zip with the DLL
 
 I would be great if someone can verify that this solution will work for the 
 internal builds at Apple.
 If I get positive feedback I'll can implement this for WebCore and WebKit 
 too. Is there someone who will review my patches for this?
 Do you think it's possible to directly switch to CMake at Apple instead of 
 upstreaming the VS2010 files? IHMO the whole work can be done in a few days, 
 if someone at Apple is willing to work with me on it.
 
 [1] https://github.com/paroga/webkit
 
 -- Patrick

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


[webkit-dev] Rewriting binding code generator, maybe?

2013-04-10 Thread Ryosuke Niwa
Hi,

Can we rewrite CodeGenerator*.pm in Ruby or Python?  I feel that the
current code is very hard to understand and hack on.  In particular we have
CodeGenerator.pm and CodeGeneratorJS.pm (CodeGeneratorV8.pm has been
removed), and we need to merge them anyway.

I've seen many people expressing their inability to improve the binding
code because of its being written in Perl.

I'm not necessarily volunteering to do the work myself at this moment but I
wanted to see if there is any interest in this idea or not.

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


Re: [webkit-dev] Rewriting binding code generator, maybe?

2013-04-10 Thread Eric Seidel
I know some folks in our TOK office have expressed strong interest in
re-writing it in python for Blink.  Perhaps there is an opportunity
for some x-project collaboration here.

On Wed, Apr 10, 2013 at 3:32 PM, Ryosuke Niwa rn...@webkit.org wrote:
 Hi,

 Can we rewrite CodeGenerator*.pm in Ruby or Python?  I feel that the current
 code is very hard to understand and hack on.  In particular we have
 CodeGenerator.pm and CodeGeneratorJS.pm (CodeGeneratorV8.pm has been
 removed), and we need to merge them anyway.

 I've seen many people expressing their inability to improve the binding code
 because of its being written in Perl.

 I'm not necessarily volunteering to do the work myself at this moment but I
 wanted to see if there is any interest in this idea or not.

 - 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


Re: [webkit-dev] Buildsystem cleanup

2013-04-10 Thread Brent Fulgham
Hi everyone:

Sent from my iPhone

On Apr 10, 2013, at 3:30 PM, Roger Fong roger_f...@apple.com wrote:

 2. If you're working on Windows, open up the solution with Visual Studio and 
 do work as usual, unless you want to add files in which case you go through 
 the CMake scripts again before moving on.
   Would all the project filters and solution dependencies would still be 
 in tact? Or is the solution file something that we would maintain that would 
 hook into the generated projects?. 

I think the enable/disable stuff we use for conditionally building WinCairo 
versus stock Apple would go away; ale generates project files with only the 
relevant items per build.

 -I'm assuming there's a CMake flag for specifying which version of visual 
 studio to generate project files for?

Yes, it's -G

It allows choices between Xcode, Visual Studio 2006, VS2012, etc.

 ... move to CMake. I don't think we really have the resources to get things 
 hooked up on our end in the immediate future, but perhaps in the coming 
 months.

I can help with this now.

 Also if we do end up switching over I would highly push for all other ports 
 besides Mac to adopt CMake and require any new ports to use it as well.

Agreed!

Patrick, can you expound a little on the abilities cmake apparently has for 
performing shell operations? I think you suggested at one point that some of 
the. Things we currently do with BASH and DOS shell scripts could be done by 
cmake. Can you elaborate on what kind of things?

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


Re: [webkit-dev] Buildsystem cleanup

2013-04-10 Thread Martin Robinson
On Wed, Apr 10, 2013 at 3:30 PM, Roger Fong roger_f...@apple.com wrote:
 If my above concerns can be resolved and the example you posted works fine
 for us (I'll try to take a look at it soon), it's probably okay to start
 checking in stuff to get ready for the move to CMake. I don't think we
 really have the resources to get things hooked up on our end in the
 immediate future, but perhaps in the coming months.
 Also if we do end up switching over I would highly push for all other ports
 besides Mac to adopt CMake and require any new ports to use it as well.

We're going to try it out for WebKitGTK+ and that really just leaves
QtWebKit on qmake [1]. Perhaps someday WebKit will only have two build
systems. :)

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.

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


[webkit-dev] Somewhat painful AppEngine transitions coming

2013-04-10 Thread Ryosuke Niwa
Hi,

I've started moving Google owned http://test-results.appspot.com and
http://webkit-commit-queue.appspot.com to Apple owned
http://webkit-test-results.appspot.com and
http://webkit-queues.appspot.comrespectively.

Ojan and I have already moved the flakiness dashboard to
http://webkit-test-results.appspot.com so builders on build.webkit.org have
started uploading results there.  Unfortunately, the historical results are
still on http://test-results.appspot.com so we probably need to use both
websites for the next couple of weeks.

Moving http://webkit-commit-queue.appspot.com is a little tricker because
it involves moving off EWS bots as well.  My current plan is to modify
Bugzilla so that it'll show two sets of bubbles for both websites during
the transition.

I expect this transition to be somewhat painful and you may feel cause a
great disturbance in the force.  I'll do my best to minimize the damage.

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


Re: [webkit-dev] Rewriting binding code generator, maybe?

2013-04-10 Thread Kentaro Hara

 I know some folks in our TOK office have expressed strong interest
 in re-writing it in python for Blink.


Yeah, I'm planning (but in low priority) to rewrite it in Python after
cleaning up IDLs and code generators. The difficulty is that
CodeGenerator*.pm are not the only target for rewriting. We also have to
rewrite IDLParser.pm (2500 lines) and all other related Perl scripts at a
breath. Although we can proceed with the work incrementally by defining
intermediate data structure between Python and Perl, it will anyway be a
huge amount of work.



On Thu, Apr 11, 2013 at 7:36 AM, Eric Seidel e...@webkit.org wrote:

 I know some folks in our TOK office have expressed strong interest in
 re-writing it in python for Blink.  Perhaps there is an opportunity
 for some x-project collaboration here.

 On Wed, Apr 10, 2013 at 3:32 PM, Ryosuke Niwa rn...@webkit.org wrote:
  Hi,
 
  Can we rewrite CodeGenerator*.pm in Ruby or Python?  I feel that the
 current
  code is very hard to understand and hack on.  In particular we have
  CodeGenerator.pm and CodeGeneratorJS.pm (CodeGeneratorV8.pm has been
  removed), and we need to merge them anyway.
 
  I've seen many people expressing their inability to improve the binding
 code
  because of its being written in Perl.
 
  I'm not necessarily volunteering to do the work myself at this moment
 but I
  wanted to see if there is any interest in this idea or not.
 
  - 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

 --
 Kentaro Hara, Tokyo, Japan
 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] Adding LenientThis to WebKitIDL

2013-04-10 Thread Maciej Stachowiak

On Apr 10, 2013, at 3:02 PM, Victor Costan cos...@gmail.com wrote:

 Dear WebKit devs,
 
 
 I would like to make console.log and related functions work without
 requiring that this is set to the console object. This would make
 debugging from Web Inspector easier, because console.log could be
 passed directly to functions that require a callback, instead of
 having to pass function(arg) { console.log(arg); }

You can also use Function.bind for this purpose - is that to verbose?

Regards,
Maciej

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


Re: [webkit-dev] Adding LenientThis to WebKitIDL

2013-04-10 Thread Alec Flett
this is kind of what 'bind' is for, no?

it's a little wordy, but you can just pass:

console.log.bind(console)

instead of the closure.

its been around quite a while:
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind

personally as a web dev, it would frustrate me if console.log (or any other
api) behaved differently in webkit than in other engine.

Alec


On Wed, Apr 10, 2013 at 3:02 PM, Victor Costan cos...@gmail.com wrote:

 Dear WebKit devs,


 I would like to make console.log and related functions work without
 requiring that this is set to the console object. This would make
 debugging from Web Inspector easier, because console.log could be
 passed directly to functions that require a callback, instead of
 having to pass function(arg) { console.log(arg); }

 In order to make this happen, I need a static method that shows up on
 the console object (or its prototype). The closest thing I could find
 in WebIDL is the [LenientThis] attribute. In WebIDL it's only intended
 for attributes, but I think it would be very useful for methods.

 If it makes a difference, Firefox supports using console.log without
 this being the console object, and this feature has been requested
 on the Chromium bug tracker, so it is useful to people other than
 myself.


 Before I embark on a quest to learn Perl so I can change the code
 generator, I would like to check if this is worthwhile. Would a patch
 along these lines be considered for WebKit? Is there another
 established pattern for achieving my goal? (e.g. some form of const
 attribute that returns a function?)

 Thank you very much for your help,
 Victor
 ___
 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] Rewriting binding code generator, maybe?

2013-04-10 Thread Timothy Hatcher

On Apr 10, 2013, at 6:32 PM, Ryosuke Niwa rn...@webkit.org wrote:

 Can we rewrite CodeGenerator*.pm in Ruby or Python?  I feel that the current 
 code is very hard to understand and hack on.  In particular we have 
 CodeGenerator.pm and CodeGeneratorJS.pm (CodeGeneratorV8.pm has been 
 removed), and we need to merge them anyway.

They can't be merged. We also have CodeGeneratorObjC.pm. (And internally we 
have CodeGeneratorSafari.pm.)

 I've seen many people expressing their inability to improve the binding code 
 because of its being written in Perl.


I've also seen people express their frustration for our tools currently written 
in Ruby and Python. I personally find Perl fine for this task and don't see a 
need to rewrite things just because.

— Timothy Hatcher


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


Re: [webkit-dev] Rewriting binding code generator, maybe?

2013-04-10 Thread Maciej Stachowiak

As a person who does not know any of Perl, Python or Ruby very well, I find 
unfamiliar Python the easiest to understand (even though I have more experience 
with Perl). I feel this would be worthwhile, if not necessarily a top priority. 
I do hope that this could be done without undue increase in verbosity.

 - Maciej

On Apr 10, 2013, at 3:32 PM, Ryosuke Niwa rn...@webkit.org wrote:

 Hi,
 
 Can we rewrite CodeGenerator*.pm in Ruby or Python?  I feel that the current 
 code is very hard to understand and hack on.  In particular we have 
 CodeGenerator.pm and CodeGeneratorJS.pm (CodeGeneratorV8.pm has been 
 removed), and we need to merge them anyway.
 
 I've seen many people expressing their inability to improve the binding code 
 because of its being written in Perl.
 
 I'm not necessarily volunteering to do the work myself at this moment but I 
 wanted to see if there is any interest in this idea or not.
 
 - 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


Re: [webkit-dev] Rewriting binding code generator, maybe?

2013-04-10 Thread Dirk Pranke
On Wed, Apr 10, 2013 at 4:59 PM, Timothy Hatcher timo...@apple.com wrote:


 On Apr 10, 2013, at 6:32 PM, Ryosuke Niwa rn...@webkit.org wrote:

 Can we rewrite CodeGenerator*.pm in Ruby or Python?  I feel that the
 current code is very hard to understand and hack on.  In particular we have
 CodeGenerator.pm and CodeGeneratorJS.pm (CodeGeneratorV8.pm has been
 removed), and we need to merge them anyway.


 They can't be merged. We also have CodeGeneratorObjC.pm. (And internally
 we have CodeGeneratorSafari.pm.)


 I've seen many people expressing their inability to improve the binding
 code because of its being written in Perl.


 I've also seen people express their frustration for our tools currently
 written in Ruby and Python. I personally find Perl fine for this task and
 don't see a need to rewrite things just because.


I'm sure Perl is a fine tool for the job, if you happen to know Perl, but
Perl code is generally much less approachable than Ruby, and Ruby less so
than Python.

Of course many if not most of the Python zealots have gone elsewhere :).

I believe in Blink-land there may be a reasonably concerted effort to move
the stuff Chromium still uses to Python where possible, and obviously this
is one such case (as Eric alludes to earlier), so it does seem like it
would be nice to be able share the code and make the rewrite generic if it
wasn't too much additional work, there was interest in doing so, and the
rewrite was gonna happen anyway.

Otherwise I'm quite sympathetic to the ain't broke argument here :)

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


Re: [webkit-dev] Somewhat painful AppEngine transitions coming

2013-04-10 Thread Ryosuke Niwa
On Wed, Apr 10, 2013 at 4:20 PM, Ryosuke Niwa rn...@webkit.org wrote:

 Moving http://webkit-commit-queue.appspot.com is a little tricker because
 it involves moving off EWS bots as well.



 My current plan is to modify Bugzilla so that it'll show two sets of
 bubbles for both websites during the transition.


I've done this. Now you see two set of bubbles on each patch. The first set
(with opacity: 0.3) is from webkit-commit-queue.appspot.com, which is going
to be turned off. The second set of bubbles is for webkit-queues.appspot.com
.

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


Re: [webkit-dev] Rewriting binding code generator, maybe?

2013-04-10 Thread Kentaro Hara

 I've seen many people expressing their inability to improve the binding
 code because of its being written in Perl.


Although I agree that the complexity of the binding code partly comes from
the fact that it's written in Perl, another big reason is that current code
generators are more complicated than necessary.

Now that JSC is the only engine in WebKit and V8 is the only engine in V8,
we both can remove a bunch of unnecessary abstractions and IDL attributes
that had existed to share code between JSC and V8. In short-term, this kind
of clean-up will improve our situation a lot. (I'm doing the work with the
highest priority in the V8 side.)





On Thu, Apr 11, 2013 at 9:08 AM, Dirk Pranke dpra...@chromium.org wrote:




 On Wed, Apr 10, 2013 at 4:59 PM, Timothy Hatcher timo...@apple.comwrote:


 On Apr 10, 2013, at 6:32 PM, Ryosuke Niwa rn...@webkit.org wrote:

 Can we rewrite CodeGenerator*.pm in Ruby or Python?  I feel that the
 current code is very hard to understand and hack on.  In particular we have
 CodeGenerator.pm and CodeGeneratorJS.pm (CodeGeneratorV8.pm has been
 removed), and we need to merge them anyway.


 They can't be merged. We also have CodeGeneratorObjC.pm. (And internally
 we have CodeGeneratorSafari.pm.)


 I've seen many people expressing their inability to improve the binding
 code because of its being written in Perl.


 I've also seen people express their frustration for our tools currently
 written in Ruby and Python. I personally find Perl fine for this task and
 don't see a need to rewrite things just because.


 I'm sure Perl is a fine tool for the job, if you happen to know Perl, but
 Perl code is generally much less approachable than Ruby, and Ruby less so
 than Python.

 Of course many if not most of the Python zealots have gone elsewhere :).

 I believe in Blink-land there may be a reasonably concerted effort to move
 the stuff Chromium still uses to Python where possible, and obviously this
 is one such case (as Eric alludes to earlier), so it does seem like it
 would be nice to be able share the code and make the rewrite generic if it
 wasn't too much additional work, there was interest in doing so, and the
 rewrite was gonna happen anyway.

 Otherwise I'm quite sympathetic to the ain't broke argument here :)

 -- Dirk


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

 --
 Kentaro Hara, Tokyo, Japan
 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] Somewhat painful AppEngine transitions coming

2013-04-10 Thread Ryosuke Niwa
Unfortunately, EWS is going to have to re-process all 300+ patches that are
currently up for review again
as there is no easy way for the status server or EWS bots to retrieve the
information from the old status server.

Please obsolete patches and close bugs as much as we can to reduce the work
load so that EWS can catch up sooner.

- R. Niwa


- R. Niwa


On Wed, Apr 10, 2013 at 5:14 PM, Ryosuke Niwa rn...@webkit.org wrote:

 On Wed, Apr 10, 2013 at 4:20 PM, Ryosuke Niwa rn...@webkit.org wrote:

 Moving http://webkit-commit-queue.appspot.com is a little tricker
 because it involves moving off EWS bots as well.



 My current plan is to modify Bugzilla so that it'll show two sets of
 bubbles for both websites during the transition.


 I've done this. Now you see two set of bubbles on each patch. The first
 set (with opacity: 0.3) is from webkit-commit-queue.appspot.com, which is
 going to be turned off. The second set of bubbles is for
 webkit-queues.appspot.com.

 - R. Niwa


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


Re: [webkit-dev] Rewriting binding code generator, maybe?

2013-04-10 Thread Timothy Hatcher

On Apr 10, 2013, at 8:17 PM, Kentaro Hara hara...@chromium.org wrote:

 Now that JSC is the only engine in WebKit and V8 is the only engine in V8, we 
 both can remove a bunch of unnecessary abstractions and IDL attributes that 
 had existed to share code between JSC and V8. In short-term, this kind of 
 clean-up will improve our situation a lot. (I'm doing the work with the 
 highest priority in the V8 side.)

As I said in a previous email, JSC isn't the only binding we generate with 
these scripts. We also generate ObjC and internal Safari bindings. So those 
needs need to be considered for anyone rewriting these scripts.

— Timothy Hatcher

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


Re: [webkit-dev] Rewriting binding code generator, maybe?

2013-04-10 Thread Tim Mahoney
If a rewrite does happen, it would be nice to have some generic functionality 
abstracted away from the specific language generators. For example, the 
function to add an #include statement to the generated implementation file is 
currently replicated for every language. JS and V8 have AddToImplIncludes, 
while CPP and ObjC have AddIncludesForType. I personally copy+pasted a lot of 
code from CPP and JS for the Ruby code generator, and it would be nice if some 
of that was more generic.

-Tim

On Apr 10, 2013, at 6:03 PM, Timothy Hatcher timo...@apple.com wrote:

 
 On Apr 10, 2013, at 8:17 PM, Kentaro Hara hara...@chromium.org wrote:
 
 Now that JSC is the only engine in WebKit and V8 is the only engine in V8, 
 we both can remove a bunch of unnecessary abstractions and IDL attributes 
 that had existed to share code between JSC and V8. In short-term, this kind 
 of clean-up will improve our situation a lot. (I'm doing the work with the 
 highest priority in the V8 side.)
 
 As I said in a previous email, JSC isn't the only binding we generate with 
 these scripts. We also generate ObjC and internal Safari bindings. So those 
 needs need to be considered for anyone rewriting these scripts.
 
 — Timothy Hatcher
 
 ___
 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] Somewhat painful AppEngine transitions coming

2013-04-10 Thread Ryosuke Niwa
Alan has offered us a help to migrate the status data from the old server
so I'm going to temporarily move EWS back to the old server until that's
done. Sorry for the noise and thank you for your patience.

- R. Niwa

On Wed, Apr 10, 2013 at 6:02 PM, Ryosuke Niwa rn...@webkit.org wrote:

 Unfortunately, EWS is going to have to re-process all 300+ patches that
 are currently up for review again
 as there is no easy way for the status server or EWS bots to retrieve the
 information from the old status server.

 Please obsolete patches and close bugs as much as we can to reduce the
 work load so that EWS can catch up sooner.

 - R. Niwa


 On Wed, Apr 10, 2013 at 5:14 PM, Ryosuke Niwa rn...@webkit.org wrote:

 On Wed, Apr 10, 2013 at 4:20 PM, Ryosuke Niwa rn...@webkit.org wrote:

 Moving http://webkit-commit-queue.appspot.com is a little tricker
 because it involves moving off EWS bots as well.



 My current plan is to modify Bugzilla so that it'll show two sets of
 bubbles for both websites during the transition.


 I've done this. Now you see two set of bubbles on each patch. The first
 set (with opacity: 0.3) is from webkit-commit-queue.appspot.com, which
 is going to be turned off. The second set of bubbles is for
 webkit-queues.appspot.com.

 - R. Niwa



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


Re: [webkit-dev] Buildsystem cleanup

2013-04-10 Thread Patrick Gansterer
Am 11.04.2013 um 00:30 schrieb Roger Fong:

 Hi Patrick,
 A few questions I have about the CMake system, being someone who's never used 
 it before.
 
 -I would like to keep all of the unified properties settings that the VS2010 
 property sheets hierarchy provided.
 Can we still maintain that through CMake easily?

The main idea in CMake is, that it does not know anything about Visual Studio 
sheets. This is required to use other generators as well (e.g. a -G Ninja). 
What you usually do with VS property sheets is done with CMake variables, where 
you store your compiler, linker or whatever flags.

 -How does CMake handle different build targets. Would I have to open up 
 different project files per configuration?

In the default configuration CMake has 4 configurations: Debug, Release, 
MinSizeRelease and RelWithDebInfo. This allows in 99% direct production builds 
out of Visual Studio. Makefile generators (including Ninja) do not have this 
configuration and instead expect a -DCMAKE_BUILD_TYPE=config when running 
CMake. If you need additional configurations (e.g. the current Production 
configs) the CMake-way is to do this with an additional CMake variable defined 
via command line. So if you want a production build you just add a 
-DBUILD_FOR_PRODUCTION=ON to the initial call to cmake. Then you can do stuff 
like if (BUILDFOR_PRODUCTION) list(APPEND LINNKER_FLAGS ...) endif () to 
get the job done.

 -If I'm understanding things correctly the main differences with using CMake 
 would be:
 
 1. If a project configuration is changed run CMake / I guess whenever you 
 update the source as well (just to be safe).
   We would want to change any build scripts to use CMake: perhaps 
 build-webkit is the really the only one we have to worry about in the 
 OpenSource tree.

Importent is that you do not change the VS files any more. Only the CMake files 
should be changed then. CMake adds an additional project into the Visual Studio 
solution (ZERO_CHECK), which detects modified CMake files and runs cmake if 
something has changed. Since adding/removing a source files results in a change 
of the CMake file everything is done automatically.
build-wekit has already support for CMake, so you only need to remove the VS 
code. :-)

 2. If you're working on Windows, open up the solution with Visual Studio and 
 do work as usual, unless you want to add files in which case you go through 
 the CMake scripts again before moving on.
   Would all the project filters and solution dependencies would still be 
 in tact? Or is the solution file something that we would maintain that would 
 hook into the generated projects?. 

You can do this in VS as well: You only need to open the CMakeLists.txt in 
Visual Studio and add i there. Pressing the build button then generates new VS 
project, as mentioned before.

 -I'm assuming there's a CMake flag for specifying which version of visual 
 studio to generate project files for?
 Our opensource bots run VS2005 and our internal run VS2010 currently, and 
 seeing as we're not ready to use only VS2010 yet we would need to be able to 
 specify which.

-G does the job. You can also use Makefile based generators with no extra 
work. IMHO it would be great to use -G Ninja an the buildbots, since it has a 
much better output when you only see the command line (and it's faster).

 If my above concerns can be resolved and the example you posted works fine 
 for us (I'll try to take a look at it soon), it's probably okay to start 
 checking in stuff to get ready for the move to CMake.

Many thanks. Please let me know if you see additional problems so we can 
address them as soon as possible.

 I don't think we really have the resources to get things hooked up on our end 
 in the immediate future, but perhaps in the coming months.

Please let me know when I can help somewhere.

 Also if we do end up switching over I would highly push for all other ports 
 besides Mac to adopt CMake and require any new ports to use it as well.

IMHO we can enforce new ports to use CMake already. Does anybody know if it's 
possible for the Qt port to switch to CMake? I know that QtWebKit is part of 
the Qt source distribution, which does not require CMake.
Maybe somebody can tell me if the following would work for Qt:
Use the CMake builds as e.g. EFL does at the moment and add an additional 
target for auto-generation of the qmake files. This qmake files then only have 
a list of header and source files, since code-generators (e.g. for IDL) are run 
by CMake. 


Am 11.04.2013 um 00:39 schrieb Brent Fulgham:

 On Apr 10, 2013, at 3:30 PM, Roger Fong roger_f...@apple.com wrote:
 
 2. If you're working on Windows, open up the solution with Visual Studio and 
 do work as usual, unless you want to add files in which case you go through 
 the CMake scripts again before moving on.
  Would all the project filters and solution dependencies would still be 
 in tact? Or is the solution file something that we 

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