[dev-servo] Meeting notes - further discussion of selected topics from "Unanswered questions" thread

2013-07-15 Thread Josh Matthews

https://github.com/mozilla/servo/wiki/Meeting-2013-07-15
___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Meeting notes - further discussion of selected topics from "Unanswered questions" thread

2013-07-15 Thread Boris Zbarsky

On 7/15/13 3:05 PM, Josh Matthews wrote:

https://github.com/mozilla/servo/wiki/Meeting-2013-07-15


Some comments on the discussion (sorry I couldn't make the meeting, and 
thank you for the notes!):


1) Mutable prototypes will be supported in SpiderMonkey (and indeed 
are), but they will likely not be fast (and indeed, they are not).  For 
one thing, they totally defeat the way TI works right now.  In practice, 
we should check how often C++ objects are allocated without setting up 
their proto chain in Gecko.  I bet it's not too often


If we get desperate here, we can try to make DOM prototype setup faster 
in SpiderMonkey.  Right now it's slow mostly for dumb reasons.  Or are 
we worrying about the memory used by the prototypes?


2)  We can modify Spidermonkey as needed, and should, but we also want 
to avoid biting off more than we can chew (e.g. replacing TI wholesale 
is probably not something that should be on the blocking path to servo). 
 Especially given that the JS team doesn't have spare cycles.


-Boris
___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Meeting notes - further discussion of selected topics from "Unanswered questions" thread

2013-07-15 Thread David Herman
On Jul 15, 2013, at 1:11 PM, Boris Zbarsky  wrote:

> On 7/15/13 3:05 PM, Josh Matthews wrote:
>> https://github.com/mozilla/servo/wiki/Meeting-2013-07-15
> 
> Some comments on the discussion (sorry I couldn't make the meeting, and thank 
> you for the notes!):
> 
> 1) Mutable prototypes will be supported in SpiderMonkey (and indeed are), but 
> they will likely not be fast (and indeed, they are not).  For one thing, they 
> totally defeat the way TI works right now.  In practice, we should check how 
> often C++ objects are allocated without setting up their proto chain in 
> Gecko.  I bet it's not too often

Agreed. If it's not necessary, great. I was mostly just thinking out loud about 
possible tools at our disposal. But of course the truth is, whatever we need 
that we were getting at the C++ level could in theory be gotten in self-hosted 
JS code, simply by adding some special-purpose self-hosting functionality to 
the JS engine. So in addition to not being sufficient (you need to know *when* 
the prototype is needed to trigger the mutation), mutable proto may not be 
necessary either.

> If we get desperate here, we can try to make DOM prototype setup faster in 
> SpiderMonkey.  Right now it's slow mostly for dumb reasons.  Or are we 
> worrying about the memory used by the prototypes?

The latter, AIUI.

> 2)  We can modify Spidermonkey as needed, and should, but we also want to 
> avoid biting off more than we can chew (e.g. replacing TI wholesale is 
> probably not something that should be on the blocking path to servo).  
> Especially given that the JS team doesn't have spare cycles.

Agreed. We have people, like JDM, who can potentially implement changes to 
SpiderMonkey as well. But we should certainly tread lightly with things that 
affect TI. (I would *definitely* never advocate replacing TI for Servo!)

Dave

___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Meeting notes - further discussion of selected topics from "Unanswered questions" thread

2013-07-15 Thread Robert O'Callahan
"people like roc say we must be at least as fast as Gecko for everything"

To be clear: I think Servo's architecture must not prevent Servo from being
as fast as Gecko for everything. I push for microbenchmarks targeting the
risky parts of Servo's architecture because we must avoid discovering much
later that some critical part of Servo's architecture is wrong.

But I think it's completely fine for Servo to be slower than Gecko on some
tests, indefinitely, as long as it's obvious how to fix that. In fact it's
much more important to beat Gecko (and Blink) mightily on some tests than
to equal them on all tests.

Rob
-- 
Jtehsauts  tshaei dS,o n" Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.r"t sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  "sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t"  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Meeting notes - further discussion of selected topics from "Unanswered questions" thread

2013-07-15 Thread Robert O'Callahan
For compositing with IFRAMEs, you might want to consider what we do for
multi-process compositing in Gecko. It's somewhat obvious but it seems like
it works well. Each process publishes a layer tree to the compositor. A
layer tree can contain RefLayers, each with a unique ID. A layer tree root
can also be given an ID. The compositor matches roots to RefLayers to build
a complete layer tree which is composited as a whole.

Rob
-- 
Jtehsauts  tshaei dS,o n" Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.r"t sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  "sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t"  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Meeting notes - further discussion of selected topics from "Unanswered questions" thread

2013-07-15 Thread Patrick Walton

On 7/15/13 3:58 PM, Robert O'Callahan wrote:

For compositing with IFRAMEs, you might want to consider what we do for
multi-process compositing in Gecko. It's somewhat obvious but it seems like
it works well. Each process publishes a layer tree to the compositor. A
layer tree can contain RefLayers, each with a unique ID. A layer tree root
can also be given an ID. The compositor matches roots to RefLayers to build
a complete layer tree which is composited as a whole.


That was basically what we whiteboarded. (I called a RefLayer an 
IframeProxyLayer but the idea was the same.)


Patrick

___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo


Re: [dev-servo] Meeting notes - further discussion of selected topics from "Unanswered questions" thread

2013-07-15 Thread Brendan Eich

Robert O'Callahan wrote:

"people like roc say we must be at least as fast as Gecko for everything"

To be clear: I think Servo's architecture must not prevent Servo from being
as fast as Gecko for everything. I push for microbenchmarks targeting the
risky parts of Servo's architecture because we must avoid discovering much
later that some critical part of Servo's architecture is wrong.


Important clarification -- thanks!


But I think it's completely fine for Servo to be slower than Gecko on some
tests, indefinitely, as long as it's obvious how to fix that. In fact it's
much more important to beat Gecko (and Blink) mightily on some tests than
to equal them on all tests.


This is key, and we always (you and I anyway) said "win on multicore 
beyond what a mostly-single-core-architected engine can do". You once 
said "win on 8-way or higher only." That might want to be 4-way, I don't 
know (Ras filled Dave and me in on the trend in chipmakers to go linear 
after 8, not keep doubling # of cores -- "the end of Dennard scaling"). 
But part of the value of Servo is relative to degree of hardware 
parallelism.


/be
___
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo