Re: GGC (generational garbage collection) has landed for B2G

2014-09-17 Thread Gabriele Svelto
Having previously worked on a couple of GCs I must say this is amazing
work! I don't know many other large, complex code bases such as Gecko
that were moved successfully from a conservative mark-and-sweep
collector to an accurate generational one. Bravo to everyone involved!

 Gabriele

On 16/09/2014 21:45, Steve Fink wrote:
> GGC was enabled yesterday (2014-Sep-15) on b2g-inbound with bug 1020751.
> It has not yet been merged into mozilla-central, but I expect it will be
> soon. GGC is already on desktop Firefox, and in fact just shipped with
> Firefox 32. Keep an eye out for regressions on FxOS. Or improvements,
> for that matter -- we'd be interested in any real-world workloads that
> see significant changes.




signature.asc
Description: OpenPGP digital signature
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: GGC (generational garbage collection) has landed for B2G

2014-09-17 Thread Terrence Cole
On 09/16/2014 02:34 PM, Asa Dotzler wrote:
> On 9/16/14, 12:45 PM, Steve Fink wrote:
>> GGC was enabled yesterday (2014-Sep-15) on b2g-inbound with bug 1020751.
>> It has not yet been merged into mozilla-central, but I expect it will be
>> soon. GGC is already on desktop Firefox, and in fact just shipped with
>> Firefox 32. Keep an eye out for regressions on FxOS. Or improvements,
>> for that matter -- we'd be interested in any real-world workloads that
>> see significant changes.
> 
> What kind of regressions should we be on the lookout for and in what
> situations? Performance? Jank? Stability?

Also memory usage and OOM handling. We've had several months to clean
things up for desktop; we don't expect any huge issues, although we do
have different tuning parameters for the smaller devices. It's hard to
tell in advance what sort of issues changing the GC behavior is going to
cause or we'd have already investigated.

Cheers,
Terrence

> - A
> 
> ___
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Web APIs documentation meeting Friday

2014-09-17 Thread Eric Shepherd
The Web APIs documentation meeting is Friday at 10 AM Pacific Time (see 
http://bit.ly/APIdocsMDN for your time zone). Everyone's welcome to 
attend; if you're interested in ensuring that all Web APIs are properly 
documented, we'd love your input.


We have an agenda, as well as details on how to join, here:

https://etherpad.mozilla.org/WebAPI-docs-2014-09-19.

If you have topics you wish to discuss, please feel free to add them to 
the agenda.


We look forward to seeing you there!

If you're unable to attend but have been working on documentation 
related to APIs, please add notes to the agenda about what you've been 
doing so we can share your progress.


--
Eric Shepherd
Developer Documentation Lead
Mozilla
Blog: http://www.bitstampede.com/
Twitter: @sheppy

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


Re: ES6 lexical temporal dead zone has landed on central

2014-09-17 Thread Chris Peterson

On 9/15/14 4:43 PM, Shu-yu Guo wrote:

If you work with JS that contains `let` bindings, you may start encountering
the following two errors:

   1. TypeError: redeclaration of variable foo

  To fix, rename the variable or remove the extra `let` if you are
  assigning to an already-bound variable.

  These are static errors. You may pass your JS through the syntax checker
  in the SpiderMonkey shell (-c) to detect them.


Much of the `let` fallout being reported is from variable 
redeclarations. For compatibility, perhaps TC39 should reconsider 
whether `let` redeclarations are worthy of being static errors.


JS allows you to redeclare vars. Rust allows you to redeclare variables 
with `let` (even changing the type!). SpiderMonkey's non-standard JS1.8 
allowed you to redeclare variables with `let` (until Shu made it ES6 
compatible). Maybe variable redeclarations are not such a big problem 
for JS developers.


chris


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


Re: ES6 lexical temporal dead zone has landed on central

2014-09-17 Thread Shu-yu Guo
Well, SM's 'let' extension never really let you redeclare let bindings. What 
happened was that it was too much work to parse function body-level lets as 
actual lets, and so they were parsed as vars, thus allowing "redeclarations".

Keep in mind that vars aren't *really* redeclared. When actual semantics is 
closer to erasure semantics: just pretend the second var isn't there. That is, 
consider

  var x = 42;
  var f = function () { print(x); }
  var x = 43;
  var g = function () { print(x); }

f and g above are closing over the *same* binding of x.

I would bet that Rust lets you actually redeclare (viz. shadow with a new 
binding in the same scope) , such that if you had the equivalent code in Rust 
above, f and g would close over *different* bindings.

So having lets behave like vars in that respect is probably going to lead to 
the same crappiness that we have with vars now. Why they didn't allow shadowing 
with a new binding? I don't know, it would be nice -- but perhaps was too big a 
break, and that it would behave strangely, or at least surprisingly, with 
hoisting semantics.

- Original Message -
From: "Chris Peterson" 
To: dev-platform@lists.mozilla.org
Sent: Wednesday, September 17, 2014 4:37:17 PM
Subject: Re: ES6 lexical temporal dead zone has landed on central

On 9/15/14 4:43 PM, Shu-yu Guo wrote:
> If you work with JS that contains `let` bindings, you may start encountering
> the following two errors:
>
>1. TypeError: redeclaration of variable foo
>
>   To fix, rename the variable or remove the extra `let` if you are
>   assigning to an already-bound variable.
>
>   These are static errors. You may pass your JS through the syntax checker
>   in the SpiderMonkey shell (-c) to detect them.

Much of the `let` fallout being reported is from variable 
redeclarations. For compatibility, perhaps TC39 should reconsider 
whether `let` redeclarations are worthy of being static errors.

JS allows you to redeclare vars. Rust allows you to redeclare variables 
with `let` (even changing the type!). SpiderMonkey's non-standard JS1.8 
allowed you to redeclare variables with `let` (until Shu made it ES6 
compatible). Maybe variable redeclarations are not such a big problem 
for JS developers.

chris


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


Re: ES6 lexical temporal dead zone has landed on central

2014-09-17 Thread Bill McCloskey
If this change proves to be really disruptive to add-on authors, I wonder if we 
could just make "let" behave like "var" for add-ons? The JS tokenizer could 
just substitute var for let when parsing code from an add-on compartment. (Bug 
1030420 will put add-on code in a separate compartment and it's ready to land 
soon.) I think that would mostly mitigate the concerns Jeff raised in the 
previous thread about having to test two configurations.

-Bill

- Original Message -
> From: "Shu-yu Guo" 
> To: "Chris Peterson" 
> Cc: dev-platform@lists.mozilla.org
> Sent: Wednesday, September 17, 2014 5:26:57 PM
> Subject: Re: ES6 lexical temporal dead zone has landed on central
> 
> Well, SM's 'let' extension never really let you redeclare let bindings. What
> happened was that it was too much work to parse function body-level lets as
> actual lets, and so they were parsed as vars, thus allowing
> "redeclarations".
> 
> Keep in mind that vars aren't *really* redeclared. When actual semantics is
> closer to erasure semantics: just pretend the second var isn't there. That
> is, consider
> 
>   var x = 42;
>   var f = function () { print(x); }
>   var x = 43;
>   var g = function () { print(x); }
> 
> f and g above are closing over the *same* binding of x.
> 
> I would bet that Rust lets you actually redeclare (viz. shadow with a new
> binding in the same scope) , such that if you had the equivalent code in
> Rust above, f and g would close over *different* bindings.
> 
> So having lets behave like vars in that respect is probably going to lead to
> the same crappiness that we have with vars now. Why they didn't allow
> shadowing with a new binding? I don't know, it would be nice -- but perhaps
> was too big a break, and that it would behave strangely, or at least
> surprisingly, with hoisting semantics.
> 
> - Original Message -
> From: "Chris Peterson" 
> To: dev-platform@lists.mozilla.org
> Sent: Wednesday, September 17, 2014 4:37:17 PM
> Subject: Re: ES6 lexical temporal dead zone has landed on central
> 
> On 9/15/14 4:43 PM, Shu-yu Guo wrote:
> > If you work with JS that contains `let` bindings, you may start
> > encountering
> > the following two errors:
> >
> >1. TypeError: redeclaration of variable foo
> >
> >   To fix, rename the variable or remove the extra `let` if you are
> >   assigning to an already-bound variable.
> >
> >   These are static errors. You may pass your JS through the syntax
> >   checker
> >   in the SpiderMonkey shell (-c) to detect them.
> 
> Much of the `let` fallout being reported is from variable
> redeclarations. For compatibility, perhaps TC39 should reconsider
> whether `let` redeclarations are worthy of being static errors.
> 
> JS allows you to redeclare vars. Rust allows you to redeclare variables
> with `let` (even changing the type!). SpiderMonkey's non-standard JS1.8
> allowed you to redeclare variables with `let` (until Shu made it ES6
> compatible). Maybe variable redeclarations are not such a big problem
> for JS developers.
> 
> chris
> 
> 
> ___
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
> ___
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
> 
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform