mozilla :: #jsapi

14 Mar 2017
00:01Waldogandalf: define "care" and "fix"
00:03gandalfWaldo: we're transitioning from a broken deprecated nsILocaleService to new LocaleService which among other things fixes how it retrieves the locale
00:03gandalfbug 1346674
00:03firebothttps://bugzil.la/1346674 ASSIGNED, gandalf@aviary.pl Migrate all uses of nsILocaleService::GetApplicationLocale to mozILocaleService::GetAppLocale
00:03gandalfthe end result is that on non-windows platforms after this patch, any "new Intl.*" with undefined locale will use app locale, instead of OS locale
00:04gandalfI was wondering if you want me to put someone from the SM team on the feedback/review list
00:08Waldogandalf: that doesn't seem implausible, as long as app locale and the locale used by the JS shell are consistent; it seems unwise to have the two environments go out of sync, if at all possible
00:08Waldogandalf: or wait
00:08Waldogandalf: you mean if you download the fr-FR Firefox, fr-FR is the default locale, not whatever's on the user's computer?
00:08gandalfyes
00:10gandalfthat's btw. what nsILocaleService::GetApplicationLocale was supposed to do but never succeeded at that.
00:10Waldogandalf: hmm
00:11Waldogandalf: so on second thought, I guess I don't care too much about shell behavior being different, because it's pretty useful to be able to just flip an environment variable and get different default locales
00:11Waldoeven if that isn't what Firefox does
00:12gandalfthe way we're designing the new LocaleService is that you'll be able to have different locale lists for different "contexts" (think: devtools in en-US, browser in pl)
00:12gandalfso we could in the future also give you "JS in X"
00:12gandalfbut initially, I'd like to align it with the browser
00:40gandalfWaldo: ok, taking off. When you have a moment, I asked a couple questions wrt. your feedback on RelativeTimeFormat here: https://bugzilla.mozilla.org/show_bug.cgi?id=1270140#c16
00:40firebotBug 1270140 ASSIGNED, gandalf@aviary.pl Add Intl.RelativeTimeFormat
00:41gandalfI'll be working on the spec next week so having your answers would help :)
01:41Waldo!summon sfink
08:34mrgigglesthe mozilla-inbound tree is now closed (migration on the Treeherder database see Bug 1347074)
08:34firebothttps://bugzil.la/1347074 NEW, nobody@mozilla.org Tree closure for database migration
10:03mrgigglesthe mozilla-inbound tree is now open
11:09nbpstandups: (checking JS start-up cache) Emulate the FHS in order to run pre-compiled binaries downloaded[sources needed] for running tp5n benchmarks.
11:09standupsOk, submitted #43677 for https://www.standu.ps/user/nbp/
11:22Yoricstandups: Bug 1345318 - Record stacks when jank is detected and report them with the slow addon warning - reviewed
11:22standupsOk, submitted #43678 for https://www.standu.ps/user/Yoric/
11:22firebothttps://bugzil.la/1345318 NEW, nobody@mozilla.org Record stacks when jank is detected and report them with the slow addon warning
11:22Yoricstandups: Bug 1199987 - Find out how/why about:performance is slowing down Firefox - mentoring
11:22standupsOk, submitted #43679 for https://www.standu.ps/user/Yoric/
11:22firebothttps://bugzil.la/1199987 NEW, rutuja.r.surve@gmail.com Find out how/why about:performance is slowing down Firefox
12:41Yoricsnorp: Bug 1344152 - Find out how many scripts are purely in ASCII - trying to understand what we want.
12:42firebothttps://bugzil.la/1344152 NEW, dteller@mozilla.com Find out how many scripts are purely in ASCII
12:42Yoricstandups: Bug 1344152 - Find out how many scripts are purely in ASCII - trying to understand what we want.
12:42standupsOk, submitted #43681 for https://www.standu.ps/user/Yoric/
12:42Yoricsnorp: unping
12:47h4writerstandups: early spring cleanup on awfy
12:47standupsI don't trust you, h4writer, are you identified with nickserv?
12:47h4writerstandups: early spring cleanup on awfy
12:47standupsOk, submitted #43682 for https://www.standu.ps/user/h4writer/
14:19Yoricstandups: Bug 1339480 - SessionStore causes long pauses on the parent process main thread - mentoring
14:19standupsOk, submitted #43687 for https://www.standu.ps/user/Yoric/
14:19firebothttps://bugzil.la/1339480 NEW, wiwang@mozilla.com SessionStore causes long pauses on the parent process main thread
14:38Ms2gersfink, can we get mrgiggles's tree announcements in #treestatus, please?
14:58h4writernaveed: ping
16:07jandemYoric: regarding the telemetry, maybe we can just look at some popular libaries like jQuery and the top 10 alexa sites? if we see 95% ASCII there I don't think any telemetry result will give us more information to work with :)
16:10nbpjandem: so far tp5n does not seems to report any slow-down / improvements. Either I made a typo in the perf name, or I am unable to save any byte as part of the necko cache.
16:11jandemnbp: it's the same profile?
16:11nbpjandem: that's another hypothesis.
16:11jandem(i don't know how much JS these sites run btw)
16:11nbpjandem: I am going to use MOZ_LOG to double check that.
16:11nbpbut strangely MOZ_LOG did not had any effect when running talos :/
16:11nbpor I made a typo in the command.
16:12jandemah
16:15nbpjandem: or just the bad logging level :P
16:17jandemnbp: maybe interesting to try the cache on gmail or google docs to see what the hit rate is?
16:18nbpjandem: so far it seems quite low on tp5n.
16:28nbpjandem: ok, the perf works correctly, I guess limitting the btyecode cache to script which are parsed out of the main thread is limitting the impact of this optimization.
16:29nbpjandem: I will switch another pref to enforce off-thread parsing & bytecode cache usage.
16:30nbpjandem: Then if I got interesting differences, I will dog into doing that for main-thread parsing as well.
16:30nbps/dog/dig/
17:45sfinkcrowbot: tell Ms2ger yes, you can put mrgiggles in any channel you like. "mrgiggles: want to hang out in XXX?" will work. I think "!invite XXX" would work too.
17:45crowbot*sigh*
17:45nbpnaveed: h4writer: https://bugzilla.mozilla.org/show_bug.cgi?id=900784#c72
17:45firebotBug 900784 ASSIGNED, nicolas.b.pierron@mozilla.com [meta] Add start-up cache for any JavaScript code.
17:45sfinkmrgiggles: want to hang out in #treestatus?
17:45mrgigglessfink: I would love to hang out on #treestatus
17:46naveedreading
17:46nbpnaveed: conclusion, not yet there, but getting closer.
17:46* nbp off
17:46naveednbp: so 10% slower on first run but big
17:46naveedspeed up on secondary runs?
17:47nbpnaveed: or more than 10%
17:47naveednbp: is your sense that we can improve that/
17:47naveed?
17:53h4writernbp: oh interesting
17:54h4writernbp: the first example seem to be hit quite badly for the first run. Any idea why?
18:00naveedh4writer: I think nbp is done for the day. Would like to know if he thinks there is low hanging fruit to readily improve first run
18:01naveedour first run is already an issue for many sites like Facebook so regressing there is not great
18:04Waldojorendorff: there is some nice synergy happening between my reviewing anba's toLocale{Upper,Lower}Case patches and relevant portions of the strings chapter of your Rust book
18:14sfinkf*@king fickle finger of fate
18:14* Waldo snickers
18:14Waldololsob
18:15bzWaldo: so I can certainly ifdef gcc some stuff
18:15bzwaldo: would probably mean that --enable-shared-js doesn't build with gc...
18:15bzer, gcc
18:15bzwaldo: but until they fix their bug, I dunno what else to do about it. :(
18:15Waldobz: I thought there was some set of things that would make gcc work, it just wasn't compatible with other platforms?
18:16Waldobz: if it comes to it, use some #pragma push/pop to disable the warning for the relevant lines
18:17bzWaldo: I didn't try an actual --enable-shared-js try build
18:17bzwaldo: just trying to make sure that my local such build works and normal try is green
18:17bzwaldo: hmm
18:17bzwaldo: yeah, that might work
18:17* bz will poke at it
19:00dhermanI have a few questions about engine invariants of the global object
19:01dhermanwho might I ask?
19:04shudherman: i can try
19:05shudherman: after lunch though
19:05dhermannp, ping when you're available?
19:05shuwill do
19:15* bz might know something
19:20Yoricstandups: Bug 1342714 - Eliminate the cost of performance monitoring (js::AutoStopwatch) from scrolling google spreadsheets - brainstorming
19:20standupsOk, submitted #43703 for https://www.standu.ps/user/Yoric/
19:20firebothttps://bugzil.la/1342714 NEW, dteller@mozilla.com Eliminate the cost of performance monitoring (js::AutoStopwatch) from scrolling google spreadsheets
19:28jandemWaldo: ping
19:28Waldojandem: pong
19:29Waldogood timing, just got back from lunch
19:29jandem\o/
19:30jandemWaldo: hey i want to add some way for callers of (Native)DefineProperty to say "I know this is a new property", so we can avoid the LookupProperty there (and of course we could assert this in debug builds)
19:30jandemWaldo: does passing a new enum class argument (that defaults to the current behavior) seem reasonable?
19:30Waldojandem: seems incrementally better
19:30jandemthere's also the attrs argument but that seems more complicated, not sure
19:31Waldojandem: I think we want to destroy and rebuild the whole definition stuff from the ground up, ultimately, to remove these complexities, but simple improvements seems best to get there
19:32jandemWaldo: ok thanks. I'll try something tomorrow, good to know the idea is fine so I don't waste time on it
19:33djvjsstangl: ping
19:33Waldoof course it's possible I'm wrong about that, but the idea doesn't seem nuts at first glance :-)
19:33djvjjandem: ping
19:34sstangldjvj: pong
19:34jandemdjvj: pong, but will be afk soon
19:34djvjsstangl: hey, I heard you are looking into the icache misses stuff.
19:34djvjjandem: ok, I can talk tomorrow.
19:34sstangldjvj: I wrote a VTune patch but haven't otherwise looked at it
19:34djvjsstangl: ok, do you have time to talk about it briefly? I'm just collecting info for later tracking.
19:35jandemdjvj: sure
19:35sstangldjvj: sure
19:35djvjsstangl: can you do vidyo?
19:35djvjjandem: thanks
19:36sstangldjvj: yeah, join my name-room?
19:36djvjsstangl: doing. there in 2 mins.
19:43* bz flips tables
19:44bzgcc....
19:59Waldobz: LSC...
20:04shudherman: ping, what's up
20:08bzwaldo: how does https://hg.mozilla.org/try/rev/5f5ec41253209b6ac06990505ae5f27534ccd88a look to you?
20:09Waldobz: so awful :-)
20:09bzwaldo: Well, sure.
20:09Waldobz: looks reasonable, although it'd be nice if you version-tested gcc so that we have to bump a version-check every time a new gcc happens
20:09bzwaldo: hmm
20:09Waldodo not want this aggression to stand overlong, man
20:10bzfair
20:10Waldocould even pick a not-released gcc version number as the thing to test against, it'd work as well as the tippy-toppiest version
20:10* bz has no idea what the right version test is
20:10WaldoI bet there's not a gcc 7.2 yet
20:11Waldobz: https://gcc.gnu.org/ seems to suggest gcc 6.4 doesn't exist yet, so that should be a nice thing to test against
20:11bzI mean, the main upshot will be that people who upgrade before our infra does get bustage
20:12dhermanshu: on a call, I'll ping back in half an hour
20:14bzwaldo: repeating this condition 4 times is going to be exciting
20:15Waldobz: define one macro-test thing that can be invoked all four places?
20:15sfinkJS_PUBLIC_TEMPLATE_API :)
20:15* Waldo eyes sfink beadily
20:16bzit's not just templates
20:16bznote the forward-decl issue
20:16Waldosfink: isn't fate still pointing at you?
20:16sfinkyeah, but I'm ignoring it in favor of another needinfo right now
20:16bzJS_BROKEN_GCC_ATTRIBUTE_WARNING ?
20:18Waldoproductive procrastination
20:18WaldoI like your style
20:18Waldoif I weren't getting the brunt of it :-)
20:18Waldoalthough really I'm sort of channeling the concern, not personally concerned
20:20bz#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ < 6 || (__GNUC__ == 6 && __GNUC_MINOR__ <= 4))
20:20bz#define JS_BROKEN_GCC_ATTRIBUTE_WARNING
20:20bz#endif
20:20bzin jstypes.h
20:20bzlook ok?
20:22Waldobz: cromulent
20:22bzWaldo: great
20:22* bz will ensure this builds on try, then land
20:23sfink&quot;if the browser is not supported by the exploit.&quot; Amusing way to word it.
20:24sfink&quot;what browsers run on *your* exploit?&quot;
20:53dhermanshu: ping
20:53shudherman: now i have a meeting in 8 minutes, but let&#39;s see how far we get
20:53dhermanhaha
20:53dhermanok
20:54dherman1. I imagine an object can only be a global object for one realm, right?
20:54shuoh my word yes
20:54dhermanlol
20:54dhermandon&#39;t panic
20:54dhermanI&#39;m just collecting invariants
20:54dherman(this is for the Realm API)
20:54dherman2. if you had a pre-existing object,
20:54dhermanthat isn&#39;t a global object
20:55dhermanwould it be problematic to allow using that object as a global object for a new realm?
20:55shuyes, the thing that&#39;s actually branded GlobalObjects internally can&#39;t be just any plain object
20:55dhermanI&#39;m kind of simultaneously asking a) is that impossible today and b) whether it&#39;s impossible to imagine that ever changing
20:56Waldodherman: are you suggesting that arbitrary objects would start magically gaining the [[]] internal properties of the global object at some point?
20:56Waldoor at least that that&#39;s a possibility?
20:56shuat least a) is yes
20:57shub) i imagine it to require an audit, but my hunch is it would be difficult
20:57The_8472why not model it after sandboxes? they take other objects as prototypes for the new global
20:57WaldoThe_8472: global objects are presumed very special right now; the prototype relationship is not nearly so special
20:58dhermanshu: ok cool, this is what I&#39;m looking for
20:58dhermanI&#39;m not actually lobbying to change it
20:58dhermanin fact I highly doubt it&#39;s important to change it
20:58dhermanthe way I designed the proposal,
20:58dhermanyou don&#39;t get to pass in an object to use as the global
20:58dhermanwhen you create a `new Realm()` it synthesizes a new global object
20:58shudherman: the main question is is it merely an interceding object with names you want to introduce at global scope, or do you want plain objects to be able to be used exactly as global objects
20:59dhermanagain, I don&#39;t *want* this
20:59The_8472Waldo, yeah, i was just suggesting it as an example of something realmish that works today
20:59dhermanI&#39;m just trying to gather what the consequences would be if we did
20:59shudherman: sorry, &quot;are you asking about&quot;
20:59dhermanah ok
20:59dhermanso
20:59dhermanI think proooobably the latter
20:59shudherman: impl may be easier for us given a compartment-global split
21:00shudherman: but right now, a bunch of weirdo ES internal state is specced on the global itself, cf. [[VarNames]] and [[TemplateMap]]
21:00dhermanoh?
21:00shudherman: i believe other engines straight up implement those on the global object
21:00dhermanI see
21:00shudherman: that may be annoying to implement if one were to suddenly allow random objects to be branded as GlobalObject
21:00dhermanso here&#39;s another weird question
21:01sfink3rd option would be creating a to-be-global object in one realm, and then creating a realm for it. So not just any old plain object, but one intended to be a global object in the future. (Not that I would want to implement such a thing.)
21:01dhermansfink: true
21:01shuOTOH a Realm spec may force implementation to come up with a realm-global split internally in implementation
21:01dhermansfink: in the end I&#39;m not sure how much expressiveness that actually buys you
21:01sfinkwell, I&#39;m certainly not arguing for it!
21:02dhermanshu: absent any new information, I still think we should have global-per-realm
21:02dhermani.e. no split
21:02shudherman: i agree, yeah. that would be the easiest thing to get through
21:02dhermanok so last question for now:
21:02dherman3. if the Realm API let you choose a custom`this` binding at global scope, i.e. it could be something other than the global object, would that pose any problems for implementations?
21:03shudherman: to implement correctly, i don&#39;t think so
21:03dhermanok cool
21:03dhermanI&#39;m not sure how much I want that either
21:03shudherman: to implement efficiently... i don&#39;t think so either, i imagine you don&#39;t get to mutate the reference for `this` after Realm is created?
21:04dhermanno, we wouldn&#39;t let you mutate it
21:04shudherman: yeah that&#39;d be straightforward to implement
21:04dhermanok
21:04dhermanI&#39;m not sure if we want to introdce that variability into the ecosystem
21:04dhermanbut I think modules have an undefined `this` so maybe just allowing you to choose to have `this` be undefined?
21:04dhermannot sure
21:05dhermanhaven&#39;t thought that one through
21:05dhermanshu: I think that&#39;s all I got for the moment, thanks!
21:05Waldosfink: &quot;I wish our own code was up to its standard more often&quot; lolsob
21:05shudherman: cool
21:12tilldherman, shu: we effectively have the &quot;other object than the global&quot; for our self-hosting stuff. All global lookups are changed to &quot;do the lookup on this other object&quot; when emitting bytecode for self-hosting JS
21:22bzabort: missing support for negative part header size: -1459616027
21:23bzAnyone seen that before?
21:31tcampbellon try?
21:32tcampbell* or any integration
21:33tcampbellIt is bug 1333348. I&#39;m not sure there is any current resolution other than retry the build
21:33firebothttps://bugzil.la/1333348 NEW, nobody@mozilla.org Intermittent abort: missing support for negative part header size: -424604107
21:34tcampbellbz: ^
21:34bztcampbell: Thanks!
21:34bzAnd yes, on try.
21:35tcampbellit plagues me occasionally. seems mainly to affect 32-bit windows for me
21:36* bz was getting it on 64-bit win8
21:37tcampbellah. Usually it corresponds with massive changeset downloads (that should not have happened)
21:52dhermantil: interesting, thx
22:25shudherman: also, for the sake of lookups and capturing global &#39;var&#39; decls and unqualified bareword assignments, there&#39;s machinery for that as well
23:11Waldotemplates. templates everywhere.
23:41njndjvj: ping?
15 Mar 2017
No messages
   
Last message: 14 days and 8 hours ago