mozilla :: #servo

10 Oct 2017
00:07emilioxidorn: you still around? Just wanted to check something. Why did you rewrite the algorithm and not just avoided the `visited` check? Is it just for better time complexity in the cases where there are cycles (so we don't effectively traverse all paths)? Or am I misunderstanding something?
00:07* emilio will go to sleep now, promised
00:07xidornemilio: yes, for time complexity
00:07xidornemilio: you would have exponential time complexity if we just remove that check
00:08emilioxidorn: fwiw I don't think it's worth to optimize for the worse case in this particular case. I think what I'm planning has the same time complexity
00:08xidornemilio: that would be a DoS attach surface
00:09emilioxidorn: sure, but the alternative is to build pretty complex data-structures in the common case. :(
00:09xidornemilio: in practice there would not be any real site which can easily trigger the worst case, but if someone intends to make firefox stop working, it would be a great way to do so, because style cascading is not interruptable
00:09xidorn(unlike, say, javascript infinite loop)
00:10emilioxidorn: that's fair... I'll look into how WK / Blink handle this...
00:10xidornemilio: it may not need to be complicated for common case
00:11xidornlike, we can avoid calling into that when we are using a var with no reference
00:12xidornand resolving vars with only shallow and small number of references should be fast as well
00:13xidornI think it's fine to make the entry point of the traversal be the var which is actually used, in that case we would be able to avoid majority of overhead of the full cycle detection algorithm
00:13xidornfor common cases
00:14emilioxidorn: hmm, looking at Blink's algorithm, I think it's exponential
00:14* emilio writes some script real quick to check
00:15xidornemilio: Blink's architecture has an advantage that it wouldn't be afraid of any dos attack like this
00:15xidornemilio: because they have separate process for each origin
00:16xidornwhich means a DoS attack to Blink on your site would only affect your site, not anything else
00:16xidornbut Gecko still have shared process, so...
00:25emilioxidorn: not that it's particularly hard to DoS any browser though... it's a matter of trying
00:26emilioxidorn: this crashes chrome, doesn't crash Gecko (or Stylo), for example:
00:27emilioxidorn: but add another zero and... :)
00:27emilioxidorn: anyway, do you know where does what Gecko does for this live?
00:27xidornemilio: didn't check, so don't know
00:33emilioxidorn: hmm, it seems it uses Tarjan's too:
00:33xidornemilio: basically I don't think using Tarjan's would have much additional overhead for common cases if we use it correctly
00:34emilioxidorn: k, makes sense... Wanna rebase your patch then? :)
00:34xidornemilio: I guess to make it correct we would need some rewrite to that patch as well. and sure I can do that
00:35emilioxidorn: k, happy to review it if you want. Also, it'd be nice to check it plays nice with YT.
00:36xidornemilio: what is the YT case exactly?
00:36xidornemilio: lots of vars with no reference?
00:37emilioxidorn: well there are some references, since `walk` still appears heavily on the profiles even after
00:37crowbotPR #18791: style: Optimize custom property cascading. -
00:37emilio removes most of the overhead
00:37crowbotPR #18798: style: Optimize custom properties cycle removal. -
00:37emilioxidorn: but here are some STR:
00:37firebotBug 1405411 ASSIGNED, stylo: Loading YouTube's material design Subscriptions panel causes excessive CPU usage
00:38xidorn(adding lots of subscriptions is a non-trivial work... I did that once, but I forgot the account I used for that)
00:39emilioxidorn: I can probably tar and mail a copy of the page? Or I can just test your patch tomorrow morning I guess
00:40xidornemilio: btw, the overhead of to_remove holding strong reference to Name can be resolved via adding <&#39;a> to remove_cycles
00:40emilioxidorn: no, it can&#39;t
00:40xidornemilio: it can. my patch has done that
00:40emilioxidorn: hm, how do you actually get a reference to the map then?
00:40xidornemilio: there is no strong reference change in remove_cycles in my patch
00:40emilioxidorn: I mean, a mutable reference?
00:41xidornemilio: but that&#39;s immutable in walk, no?
00:41emilioxidorn: sure, in `walk` it is, but then you actually need to go and remove them
00:42xidornemilio: oh, makes sense. because I use a bit flag to mark them
00:42emilioxidorn: oh, I see. That makes sense to me :)
00:43xidornemilio: wait... that doesn&#39;t make sense
00:43xidornemilio: the var_info still has the reference to name, which is necessary to remove the name
00:43xidornemilio: so I think you still can avoid that strong reference change via adding <&#39;a>
00:44xidornas far as any &Name has &#39;a as well
00:44xidornemilio: oh, with your change in #18791 it becomes impossible
00:44crowbotPR #18791: style: Optimize custom property cascading. -
00:45xidornbecause CustomPropertiesMap now holds strong reference to Name rather than &Name
00:45xidornthat&#39;s sad... but probably fine
00:45emilioxidorn: oh, right, I see what you did
00:46emilioxidorn: yeah, well, now we don&#39;t have a temporary hashmap
00:47xidornemilio: I guess cycle isn&#39;t common, so we don&#39;t need to worry about that performance too much, as far as it&#39;s not exponential
00:47emilioxidorn: which reduced a lot of overhead (probably this effect was somewhat expanded due to the diagnostic code bholley is landing)
00:47xidornemilio: I guess you promised you would go to sleep :)
00:48emilioxidorn: yeah, that makes sense, as long as we keep the no-cycle, no-references or low-depth references case fast
00:48emilioxidorn: oh well, fair enough
00:48xidornemilio: good night :)
00:48emilioxidorn: have a nice day :)
00:57emilioxidorn: I guess using indices into `OrderedMap::index` you avoid both the walk of the index (which is great!) and needing strong references to the name
00:57* emilio really really goes to sleep
00:57emilioxidorn: well, you may need to go and actually find the index, for a reference, which isn&#39;t that great. Anyway.
01:13emilioxidorn: I think WebKit&#39;s algorithm may have the same problem as Stylo&#39;s, it may be worth filing a bug on it
01:13* emilio really turns off computer
01:13xidornemilio: we need a button to shutdown your computer before it&#39;s getting too late :)
01:14emilioxidorn: Ms2ger used to be my personal IRC cop :P
01:14emilioxidorn: now there&#39;s nobody kicking me, hopefully I have no exams to attend either, so...
01:14* WindowsBunny injects emilio with sedatives
01:15* emilio -> really away
01:15* WindowsBunny lays down on emilio&#39;s keyboard to prevent emilio from being able to use it
01:27bz_awayfwiw, back when I was about emilio&#39;s age and had this problem, I&#39;d ask the ircops to ban me every so often
01:28bz_awayBut I guess that&#39;s less viable if he&#39;s going to need to be on tomorrow anya....
01:28* emilio notices bz_away isn&#39;t really away either
01:28bz_awayer, anyway
01:28bzOh, just forgot to change the nick
01:28* bz bisecting annoying stuff, doing reviews
01:28bzminor housecleaning like that
02:38QwertyChouskieQuick question
02:39QwertyChouskieIs there a version of the Servo logo that look right on a dark background?
05:43Mateon1Oh, that&#39;s weird. Nox&#39;s thinlto test timed out at compiletest
05:52xidornhmmm, 5 of 9 mac slaves are down... that explains why homu takes that long today
06:36paulgw: on Android, when I scroll, WindowMethods::Present is never called. Same for any CSS animations. Is it supposed to work?
06:37paulgw: ClipScrollTree::scroll() is properly called.
06:38gwpaul: WindowMethods::Present is called by the embedding code / servo, right? WR never calls present
06:38paulgw: the compositor calls it when the event loop is awaken
06:40gwpaul: yep - it&#39;s possible the android implementation of waking event loops may not be implemented in the glutin we use?
06:40paulgw: I guess what I&#39;m really asking is, is scroll supposed to work on Android/GLES?
06:40paulgw: I don&#39;t use glutin.
06:41paulgw: at what point in WR code do we notify Servo that compositing is necessary after a scroll?
06:41gwpaul: ok. I&#39;m not really sure - I haven&#39;t run on android for a long time. If you do some logging in the RenderNotifier trait implementation, that&#39;s where it asks the event loop to be woken up.
06:41gwpaul: You could log in that trait implementation, and also in the event loop.
06:42paulI&#39;m under the impression that anything that doesn&#39;t involve layout is not painted
07:19paulgw: I get plenty of new_scroll_frame_ready, but composite_needed is false.
07:23paulgw: omg ignore me I was scrolling the wrong direction
07:24paulno wonder
07:26gwpaul: :)
07:26paulCan&#39;t believe I spent that much time trying to figure out why scrolling couldn&#39;t work just because I was scrolling up instead of down
07:27* gw appreciates hearing that after spending 2 days working on box-shadows :)
08:01nox> &quot;Get a slice to inner data&quot;
08:01nox> Returns Vec<u8>
08:02paulnox: you&#39;re done with the triage?
08:02noxpaul: Yes.
08:02paulnox: curious about how many hours you spent on this
08:02noxA few
08:53emilioheycam: I don&#39;t think the visited bit is correct
08:54heycamemilio: oh, no?
08:55emilioheycam: we don&#39;t prevent custom properties from being set in `:visited`, right? (and there&#39;s no reason to I think), so what prevents you from doing `:any-link { color: var(--my-color); } :link { --my-color: red; } :visited { --my-color: green; }`?
08:56heycamemilio: hmm maybe that was a faulty assumption
08:56heycam(that was my assumption, that they &#39;re ont allowed in :visited)
08:57emilioheycam: well, they are, oh well... The first commit looks good though (and should help a bunch with memory)
08:58heycamemilio: oh well :)
09:17emilioxidorn: if you&#39;re around and could take a look to the fix for the android failures in bug 1406631, that&#39;d be neat
09:17firebot NEW, Remove color-picker-available system metric.
09:17emilio(or heycam, you can probably review that, if you want)
09:18xidornemilio: gimme 1hr
09:18emilioxidorn: sg
09:19* heycam probably needs to head out soon anyway
09:30nicalSimonSapin: (re: disk io), I am lacking context but you probably need to load fonts from the system
09:30SimonSapingood point
09:31SimonSapinnical: though, however that works, I think fontconfig takes care of that on Android?
09:32nicalSimonSapin: I have no idea (I just remember a bug about text disappearing due to some new sandboxing levels)
09:32emilionical: heh, I was about to ask how Gecko handled this with sandboxing + e10s
09:33emilionical: does the parent process just send the fonts via IPC?
09:34nicalI think that the content process loads the fonts itself (not 100% sure), for hystorical reasons rather than by choice. I think that fonts are in whitelist of things the process is allowed to read
09:35emilioI see, that makes sense I guess
09:35nicalThere&#39;s also hidden stuff like your nvidia driver caching compiled shaders to disk under the hood
09:35emilioI think mesa also has some in-disk cache IIRC
09:36nicaland you learn about these only when the it breaks for random people
09:36* emilio sighs
09:36noxIs hystorical a portmanteau word for hysterical and historical?
09:41noxemilio: r? ^
09:49emilionox: r=me
09:50noxemilio: Merci.
10:19emilioTYLin: ping?
10:47sewardjemilio: ping
10:49emiliosewardj: pong
10:49sewardjemilio: this is a &quot;have you ever heard of this?&quot; question
10:50sewardjemilio: my 56 beta 12, that I use as my &quot;primary&quot; web browser, basically hung, with CPU at just above 600%
10:50sewardjand it has 6 style threads, according to GDB
10:51sewardjemilio: do you know of any style-thread-livelock situations?
10:51emiliosewardj: nope, not really
10:51emiliosewardj: can you get a backtrace?
10:51emiliosewardj: (or a test-case, ideally?)
10:51sewardjemilio: I have no symbols -- this is an official mozilla-beta build
10:55sewardjemilio: then scroll up and down a few times. it soon hangs
10:55sewardj(repeated 3 times)
10:56emiliosewardj: I can&#39;t repro it in nightly, fwiw
10:56emiliosewardj: can you see if you can?
10:57sewardjemilio: am trying now, but it looks OK
10:58emiliosewardj: If you could find a fix range with mozregression or something like that it&#39;d be helpful, I may be able to try in a bit
11:42noxcpearce: The tracks&#39; collections exist but are pref-gated:
11:46SimonSapinedunham: shows only 4 out of 9 mac builders online. Is that expected?
11:46noxSimonSapin: Going to reimplement my patch with a [build] thinlto = true setting.
11:47SimonSapinWe have 6 long-running mac jobs per PR, so the queue cycle time is pretty much doubled
11:48cpearcenox: IIRC, Panasonic added them for the FirefoxOS tv project.
11:50larsbergSimonSapin: That is not expected, though I did take one offline a little while back and we were just discussing a move to 10.12-ish
11:51SimonSapinnox tells me jdm took several offline that were in a broken state to land wptup
11:52jdmI took them offline because they were hurting everybody
11:52jdmit was unrelated to wptup
11:53jdmbut yeah, we should document how to get out of that broken git state and fix the builders
11:53larsbergis it the lock file thing?
11:53SimonSapincan we throw money at macstadium to fix this problem?
11:54larsbergI typically combine a find w/ -delete for that one
11:54SimonSapindoes it take much human time to spin up new builders?
11:54larsbergSimonSapin: I think the &quot;move to task cluster and run the mac client on our hardware&quot; is the next step
11:54larsbergit&#39;s a few hours. Request a machine, they make it, follow the steps in the wiki
11:54larsbergCan also just ask them to roflstomp an existing one
12:00SimonSapinemilio: r?
12:02jdmlarsberg: yes.
12:03jdmlarsberg: also, it&#39;s less clear how to fix the problem when it occurs on a windows machine than mac/linux.
12:03jdmsince includes no information about them
12:04larsberg is the trick for macs
12:04crowbotIssue #18338: Buildbot jobs fail intermittently with &quot;exceptions.Exception: Actual commit () differs from requested commit ()&quot; -
12:05larsbergjdm: the windows machines are indeed beasts of terror, never to be spoken of in light of day lest the horrors rise from the depths once more
12:05larsbergbut yeah we should document them
12:05* jdm adds that to the wiki page
12:07larsbergNARRATOR: unbeknownst to them... somewhere in the world there is *always* light of day...
12:20noxjdm: Do our make_url_getter/make_url_setter macros even make sense?
12:20jdmthat sounds like a leading question
12:21noxjdm: The latter builds an Url from the element&#39;s document&#39;s base URL and then sets an attribute with AttrValue::from_url,
12:21noxjdm: but Element::set_url_attribute just calls set_string_attribute.
12:22* jdm wonders if that misbehaves if the document&#39;s base url is changed after a URL setter is used
12:22noxjdm: I was looking at changing the various DOMString attributes that became USVString,
12:22noxand found that mess in the process.
12:24noxjdm: I *think* getting an URL attribute isn&#39;t supposed to look at the document&#39;s base URL at all.
12:25noxjdm: Setting is the moment where you look at it, no?
12:25noxAh no, opposite.
12:25noxSo why does AttrValue has a way to store a base URL at all?
12:25noxemilio: Is that for some stylo stuff?
12:26jdmnox: no, the opposite
12:26jdmIf a reflecting IDL attribute is a USVString attribute whose content attribute is defined to contain a URL, then on getting, if the content attribute is absent, the IDL attribute must return the empty string. Otherwise, the IDL attribute must parse the value of the content attribute relative to the element&#39;s node document and if that is successful, return the resulting URL string.
12:26noxjdm: Yep yep.
12:26noxjdm: &quot;Ah no, opposite&quot;.
12:30noxjdm: So AttrValue::Url is probably misguided, no?
12:30jdmyeah, that definitely sounds like it
12:31noxjdm: Ok
12:36noxjdm: The get_background layout helper on HTMLBodyElement uses AttrValue::as_url, and it&#39;s called from layout.
12:36noxjdm: Do we have a precedent elsewhere for that use case?
12:36jdmI doubt it
12:38noxjdm: Is changing the base URL supposed to change images and everything too?
12:38jdmlarsberg: how do I bring a build machine back online after clicking the &quot;graceful shutdown&quot; button?
12:38jdmnox: anything that resolves relative to the document, yes
12:39noxjdm: &quot;graceful larsberg ping&quot; on IRC, of course!
12:39noxjdm: So everything is currently broken, right?
12:39jdmnox: sorry, I misread. &quot;change&quot; - no. any new elements that get resolved should use the new base.
12:39noxjdm: Mmh.
12:40noxjdm: So on getting image.src after the base is changed,
12:40noxjdm: should it return the new resolved URL, or the previous one?
12:40jdmnox: my reading of the spec is that it resolves the value of the src content attribute against the node document&#39;s base url
12:41noxjdm: But that sounds weirder, given layout would still be using the older image, right?
12:41jdmnox: that&#39;s why currentSrc exists when you actually care about the resource that is loaded:
12:41noxI see.
12:42larsbergjdm: I&#39;d try to ssh into it, though if it&#39;s TOTALLY offline (shutdown -h) then edunham or jack or I will have to use the Amazon EC2 console to use the HTML power button
12:42noxjdm: Sounds like AttrValue should stay,
12:42noxjdm: but as (ServoUrlFromTheTimeItWasCreated, USVStringForNewResolves)
12:43jdmyeah, I guess that&#39;s important for layout
12:44noxjdm: ServoUrl is refcounted, right?
12:44jackjdm: graceful shutdown in buildbot?
12:44jdmnox: yes
12:44jdmjack: yes
12:44jackwhich machine?
12:44jdmjack: a bunch of the mac ones in
12:45jackwhy did you shut them down?
12:46jdmjack: they had busted git indexes that I didn&#39;t know how to fix at the time, and homu wasn&#39;t making any progress
12:47jackdid you ressolve the git index issue?
12:48jdmjack: still planning on it, but I wasn&#39;t sure if it would work before the opposite of &quot;Graceful shutdown&quot; takes place
12:48jackjdm: the machines are up. graceful shutdown just turns off buildbot
12:48jacki&#39;m trying to figure out the command to restart buildbot, but you can ssh into the machines
12:49jackjdm: does not have macOS instructions
12:51noxjdm: Apparently that&#39;s already what&#39;s done in AttrValue::Url, I&#39;m just blind.
12:52jackjdm: probably state.highstate will be needed. it should start buildbot if it&#39;s not runnin
12:52jdmjack: probably &quot;buildbot restart --clean --nodaemon /Users/servo/buildbot/master &&quot; for macOS if you&#39;re looking at
12:52jackjdm: as i recall buildbot is managed by launchd on macOS
12:52jackbut mabye that changed
12:53* jdm tries to remember where highstate is documented
12:53jackon the master salt servo-macN state.highstate
12:53jackthere&#39;s probably a commadn you can give to salt to have it move buildbot service to running
12:54jackbut highstate is idempotent, so safe to run
12:55jdmservo-mac* is it
12:55jdm*it is
12:57jdmhmm, I&#39;m getting a lot of &quot;minion did not return [no response]&quot;
12:59noxget_url_attribute is wrong, I think.
13:00jackjdm: retry on those minions by themselves?
13:11larsbergcheck with first (instead of highstate)
13:12larsbergthere&#39;s something about timeouts that I can&#39;t remember that is fixed if we can upgrade salt but... blocked on something? memory too fuzzy
13:17jdmok, our mac builders are back (except for mac3)
13:18jdmanybody know why three linux machines are not connected?
13:55noxI think I found the issue of what you were talking about, with base URLs.
13:55noxjdm: AttrValue::from_url(document_from_node(self).url(), value.into())
13:55noxjdm: vs AttrValue::from_url(document_from_node(self).base_url(), value.into())
13:55SimonSapinnox: bitten by <base href=> ?
13:56noxSimonSapin: Well the former (which is the current code) disregards <base> entirely,
13:56noxthat seems pretty wrong to me.
13:58noxAlso I think I found another another bug,
13:58noxif it fails to resolve the value, get_url_attribute returns the empty string,
13:58noxinstead of the raw attribute value.
14:06emilioxidorn: if it&#39;s not too late for you and you can review a simple test expectation update in bug 1406631 that&#39;d be neat :)
14:06firebot NEW, Remove color-picker-available system metric.
14:12* jdm -> office
14:19emiliotromey: ping? You were involved in rust debugger support right?
14:20tromeyemilio: yes, what&#39;s up?
14:21emiliotromey: so I&#39;m trying to use a hardware watchpoint on a rust struct from gdb like: `watch -l stylist.quirks_mode` (being stylist a local var)
14:21tromeyok so far
14:21emiliotromey: and I&#39;m getting errors like `syntax error in expression, near `) 0x00007f910b515784&#39;.`, which don&#39;t look actionable
14:21tromeyah, what version of gdb do you have?
14:22emiliotromey: GNU gdb (GDB) Fedora 8.0.1-26.fc26
14:23tromeyok, let me find what revision that is based on
14:23tromeyI fixed a bug related to this a while back
14:24tromeyaha, probably not in 8.0
14:25tromeyyou could build gdb master - not too hard and has this bug fixed
14:25emiliotromey: I see, cool
14:25emiliotromey: thanks a lot!
14:26tromeyno problem
14:27emiliotromey: I had tried `set lang c++` and `set lang c` too, which I had used before to workaround it, but it didn&#39;t work this time, oh well
14:27emiliotromey: thanks a lot again :)
14:28tromeyyeah, working around it via set lang c seems like it could work
14:29tromeyyou can use a trick to make the size turn out right
14:29tromeylike, get the address and size of the object to watch; then &quot;set lang c&quot;; then &quot;watch -l {char[SIZE]} 0xADDR
14:30tromeythe {} thing is this odd gdb extension to C expressions
14:32emilioI see
14:32* emilio tries that while the gdb repo is cloning, just in case
14:37noxmfw everything is broken
14:37SimonSapindefine everything
14:39emiliodefine broken
14:40noxMeme aside, URL attributes.
14:43SimonSapinok, second time that I see &quot;error: Could not compile `script`.&quot; on CI with no other error message
15:00noxSimonSapin: Seems pretty clear to me: it could not compile script.
15:00SimonSapinhelpful nox is helpful
15:03jdmSimonSapin: my suspicion is that those are OOMs
15:12SimonSapinI seem to recall seeing OOMs with error messages saying theyre OOMs on buildbot, but maybe that was on linux instead of osx
15:12noxMaybe it&#39;s Buildbot social unrest.
15:13emiliobz: do you happen to be around?
15:13larsbergsometimes the osx builders have a runaway process that eats up all the RAM and they need a swift &#39;sudo reboot&#39;
15:16bzemilio: yes, but in a meeting....
15:17bzemilio: I just commented on the XBL bug, if that&#39;s what the ping is about
15:17emiliobz: yes, it was about that... Thanks, enjoy your meeting
15:20jdmlarsberg: that does not appear to be the case, unfortunately
15:20jdmbut looks like builds are slow on that machine because of the low memory, and therefore it&#39;s got really high compressed memory usage
15:22larsbergjdm: does it have less RAM than the others? I thought we upgraded them all to 16GB. edunham?
15:22jdmif i&#39;m reading top right, it only has 4gb
15:23jdmlarsberg: confirmed
15:23jdmsysctl hw.memsize
15:23jdmhw.memsize: 4294967296
15:24larsbergjdm: ugh kill it with fire
15:24* jdm presses the graceful shutdown button again
15:24larsbergliterally shut down, which machine is it? I&#39;ll put in a service ticket with macstadium to upgrade or replace
15:25jdmlarsberg: servo-mac6
15:25jdmlarsberg: once this buildbot job finishes it will disconnect, and then I&#39;ll shut it down
15:35SimonSapinit failed again
15:36SimonSapinjdm: it still appears as idle in
15:36jdmwell, time to shutdown regardless
15:39jdmoh shoot, does retry just blindly use the same machine?
15:39jdmlooks like that might be the case :<
15:40Manishearthjdm: nah, random
15:40jdmManishearth: well, that&#39;s not what the buildbot grid implies
15:40jdmManishearth: because homu says it&#39;s retrying and buildbot shows everything as idle
15:42jdmwe need to merge something else
15:47jdmhuh, something odd is up with homu
16:02cpetersonjryans: Stylo meeting?
16:02jryanscpeterson: trying to join, vidyo not working so far...
16:09noxajeffrey: there&#39;s no hyperlink for me to follow hah.
16:10emiliojdm: do you have the fix for that calc() bug? It&#39;s a one-character change :)
16:10jdmemilio: I have not looked at it at all yet
16:10emiliojdm: will submit the fix then, if you don&#39;t mind
16:11SimonSapinbuildbot not starting jobs :(
16:12emiliojdm: r? ^ (need to add a reftest)
16:16* jdm has restarted buildbot
16:17bzmmm, copy/paste errors strike even rust. ;)
16:18jdmbz: clearly we need even more distinct types
16:18bzemilio: I&#39;m around for the next 42 minutes if you wanted to talk about XBL
16:18bzjdm: Since this thing is punching straight through to numbers, wouldn&#39;t have helped
16:18bzjdm: sadly
16:18bzjdm: now if we had arithmetic on the more-complex types...
16:19jdmbuildbot what are you doing
16:20jdmthere we go
16:21jdmI had to take the drastic measure of `service buildbot-master restart`
16:21eijebongStop changing 2000 lines in the middle of me writing PRs T-T
16:21* eijebong has to rebase again
16:22emiliobz: sure. I mean... I have an idea of how to fix it, it&#39;s just work
16:22noxeijebong: Which PR bitrot you?
16:22emiliobz: but my understanding on what we&#39;re doing isn&#39;t wrong, right?
16:22eijebongPretty sure #18808 is going to cause conflicts :D But that&#39;s ok
16:22crowbotPR #18808: Use the current parser location for CSS error -
16:22emiliobz: like, it&#39;s pretty broken
16:23eijebongGoing to open mine as soon as the build finishes without any error !
16:23bzemilio: I believe your understanding is correct
16:23bzemilio: But a few notes
16:23eijebongWhich will be in > 10 minutes (it&#39;s recompiling script :/)
16:23bzemilio: 1) Different media is only an issue if the XBL uses media queries, right?
16:23emiliobz: right
16:24SimonSapinthanks jdm
16:24emiliobz: the problem is different quirks mode and how we do selector-matching / invalidation / bloom filter stuff depending on that
16:24bzemilio: 2) As I said in the bug, Gecko handles the different-media thing, but afaict not the quirks thing, so why does Gecko doesn&#39;t have the quirks fail?
16:24bzemilio: I&#39;d kinda like to understand that part.
16:24bzemilio: (presumably something to do with the details of Gecko&#39;s bloom filter?)
16:24* bz looks
16:25emiliobz: nah, I think the bloom filter isn&#39;t actually relevant. The relevant part is that we were using the document&#39;s quirks mode to decide how to look in the rule hashes, under the assumption they matched
16:25bzAnd Gecko stores the quirks mode in the rulehash itself
16:25emiliobz: but of course they don&#39;t match in this case, and since we keyed off the lowercase atom, we were just doomed
16:26emiliobz: right
16:26bzfwiw, Gecko also disables the bloom filter in quirks mode
16:26emiliobz: I changed that to use the XBL quirks mode, which works for static styling, but now I also need to fix the dynamic restyle
16:26emiliobz: we only store local names IIRC
16:26bzer, yes
16:26bzThat&#39;s what gecko does
16:26bzskips ids/classes
16:26bzbecause CI matching
16:27* emilio fixed that in servo when he realized that the reftest bz wrote for that was failing ;)
16:28emiliobz: anyway, so, I can fix the invalidation stuff, and the situation should be the same as gecko now, assuming video controls don&#39;t use media-queries
16:28emiliobz: but we should probably really really get this fixed (or kill XBL, of course...)
16:28bzthey don&#39;t, iirc
16:28* bz votes for option B
16:28bzwell, hmm
16:28bzI guess Gecko handles the mediaqueries...
16:28bzSo we still don&#39;t have gecko parity
16:28bzand option B is not very short-term. :(
16:29emiliobz: sure, I&#39;m just saying that for the video controls&#39; shake, which doesn&#39;t use them, we should be fine with that
16:29bzAnd other stuff would be chrome-process-only
16:31emiliobz: fwiw: > 18:12 <emilio> jdm: r? ^ (need to add a reftest)
16:31* emilio is stuck updating the wpt manifest right now
16:31bzemilio: makes sense
16:32emiliobz: anyway, will fix the invalidation stuff so video controls work, and will figure out the best way to fix it properly
16:36bzSounds good
16:46eijebongnox: ^
16:48ajeffreynox: I want hyperlinks to click! Ted Nelson promised I could!
16:49noxGoing to my improv class.
16:53KiChjangjdm: so, IpcReceivers do not implement Send and Sync... this is something i hit when i tried to include WebSocketCommunication to the RequestMode enum yesterday
16:53KiChjangi fixed it by doing Arc<Mutex<IpcReceiver<T>>> but wasn&#39;t sure that was the right track
16:54ajeffreystandups: Webembedding meeting consensus to prioritize documentation, stabilizing naming, and refactoring in support of a 0.1 linjs release at the end of the month.
16:54standupsOk, submitted #51828 for
16:55ajeffreyyay bikeshedding!
16:58noxajeffrey: Wait, did my triage lead to a meeting?
17:02jdmKiChjang: are you sure about Send? Sync is expected, since non-IPC Receiver also does not
17:02jdmajeffrey: oh right, the embedding folk want to use linjs?
17:04KiChjangjdm: i&#39;m quite reasonably sure because we do spawn a thread for every RequestInit we receive on the resource thread, correct?
17:04jdmKiChjang: what are you asking exactly?
17:05KiChjangjdm: i&#39;m just wondering if i&#39;m on the right track if i simply Arc<Mutex<IpcReceiver<T>>> it
17:05jdmKiChjang: hard to say without looking at code
17:05KiChjangguess i&#39;ll have to commit and push first back at home
17:10jdmoh snap, that looks useful
17:19pcwaltonTyOverby: want to look at ?
17:19crowbotPR #207: Forward read_exact() as well as read(). -
17:19pcwaltontrivial change that helps bincode perf a lot
17:21TyOverby@pcwalton: merged!
17:21TyOverbyI&#39;ll publish a new version with it now
17:21pcwaltonTyOverby: awesome, thanks! cc jrmuizel
17:23jrmuizelTyOverby: Thanks!
17:27ajeffreynox: the meeting was about the embedding API, orthogonal to bug triage.
17:27* ajeffrey is spinning plates
17:27SimonSapinjdm: all builds are green for but homu seems to have lost interest in the meantime
17:27crowbotPR #18808: Use the current parser location for CSS error -
17:27SimonSapinjdm: Im very tempted to hit the green button
17:28ajeffreyjdm: yes, the first customer will be the embedding API.
17:28ajeffreyA lot easier than all of the DOM!
17:29jdm is very confused
17:29SimonSapinjdm: thats the same as right?
17:29jdmhold off on the merge button for now
17:31SimonSapinI need to push gecko test expectation changes when this lands
17:32jrmuizelTyOverby: is bincode 0.8.1 the new one?
17:32jdmSimonSapin: I can get a sheriff to do that if the changes are sitting in a patch
17:32TyOverbyjrmuizel: yep!
17:32TyOverbyI was just about to let you know
17:35KiChjangwow what happened with #18808?
17:35crowbotPR #18808: Use the current parser location for CSS error -
17:35jdmedunham: would you be suspicious of a salt-minion process taking up 100% CPU?
17:35KiChjanginvalid head SHA found, retrying `0000000000000`?
17:35SimonSapinjdm: yes
17:35KiChjangthat&#39;s a new one, i haven&#39;t ever seen that one before
17:35SimonSapinjdm: if only because that CPU is not compiling or running tests
17:36jdmnext question is how to kill it in a safe manner
17:36SimonSapinservice restart
17:37KiChjangthe bots seems to still be building #18807 instead
17:37crowbotPR #18807: style: Fix ex computation with more than one operand. -
17:38jdmSimonSapin: can&#39;t figure out the name of the service yet :/
17:39SimonSapinjdm: doesnt it tab-complete?
17:39SimonSapinsalt-minion maybe?
17:39jdmSimonSapin: nope. salt, salt-minion, minion are unknown.
17:41jdmservice [name] restart
17:41jdmnot service restart
17:55jdmgsnedders: who do I need to prod about ?
17:55crowbotPR #10: Treat exported servo changes as reviewed -
17:56gsneddersjdm: tobie
17:56* jdm has to join an entirely new irc network
17:56jdmor email I guess
17:56KiChjangare they on freenode?
17:56KiChjangi mean, #whatwg is also on freenode so...
17:57gsneddersyou aren&#39;t on freenode?
17:57jdmI am not
17:57KiChjangquite shocking actually
17:57* gsnedders was sure he&#39;d seen you in #whatwg
17:57jdmmy doppelganger
17:57jdmthe nickname jdm is registered on freenode, and not by me
17:57gsneddersoh no
17:58KiChjangjbm is not taken i suppose?
17:58gsneddersyay, traffic is finally easing up, time for me to finally go most of the way across the couyntry!
18:05ajeffreyjdm: trying to document the can-block-on relation to ensure that we don&#39;t get deadlock...
18:05* jdm was dreaming about a static analysis pass on marked types that looks for deadlock possibilities
18:05ajeffreyjdm: do you know if layout can block on script?
18:05jdmlayout should not be able to block on script as far as I know
18:06ajeffreyjdm: good!
18:06ajeffreyjdm: the one that always surprises me is the constellation blocking on layout,
18:06ajeffreysince that only happens for reftests.
18:07ajeffreyjdm: okay, I&#39;ll submit a PR for those comments then.
18:13ajeffreynox: #18810 is my first PR from your triage
18:13crowbotPR #18810: Document the can-block-on relationship for servo. -
18:15eijebongajeffrey: Oh, great you&#39;re here :) I think you missed that can this be merged (it would reduce the number of bitflags depencies in servo to 4 and make SimonSapin happy :D) ?
18:15crowbotPR #3: Remove dependency on skeptic -
18:16ajeffreyeijebong: hi
18:16ajeffreyeijebong: my &quot;bah humbug&quot; still applies,
18:17ajeffreybut I don&#39;t see any way to use skeptic :(
18:18eijebongNot sure what &quot;bah humbug&quot; means, but I don&#39;t see why you&#39;re using skeptic in the first place
18:19SimonSapinajeffrey: please also publish to and/or run &#39;cargo owner -a github:servo:cargo-publish&#39;
18:19eijebongSimonSapin: Should I join this to my PR to keep the number to 4 or do you want me to update all dependencies at once and then rebase the PR ?
18:20SimonSapineijebong: as you prefer
18:21eijebongSimonSapin: I would prefer not to have that PR to rebase x)
18:22eijebongSo I&#39;ll fix tests, add a commit to update swapper, and hope it&#39;s good to go
18:23SimonSapineijebong: firef