| 02:21 | <MikeSmith> | TabAtkins: so I experimented with replacing the urlib.urlopen calls in Bikeshed with requests.get — and updating the associated response-handling code — and it all worked fine... until I ran into the APIClient() calls, which it seems to run into the same problem that the urllib.urlopen do, if Python can’t find the certs |
| 02:22 | <MikeSmith> | I guess that’s probably do to the APIClient() code in the json_home_client library being built on urllib.urlopen |
| 02:22 | <MikeSmith> | *due to |
| 02:24 | <MikeSmith> | so I guess it’s not worth changing the code — since the only known environment it causes any real problem in is the XCode-installed Python one |
| 07:23 | <annevk> | Is there an article on why we're not really changing the HTML parser? |
| 07:40 | <MikeSmith> | if there were, I reckon hsivonen would know |
| 09:17 | <annevk> | self.SAB = new WebAssembly.Memory({ shared:true, initial:0, maximum:0 }).buffer.constructor; |
| 09:17 | <annevk> | (credit: Adam Rice) |
| 15:32 | <TabAtkins> | @MikeSmith: thanks for the effort. You still got the code around? I'm amenable to switching anyway, and can ping plinss about switching json_home_client |
| 16:59 | <MikeSmith> | TabAtkins: yeah I’ll make a patch and submit a PR ofr it |
| 17:00 | <TabAtkins> | danek |
| 17:02 | <MikeSmith> | hey by the way, I’m done futzing with https://github.com/tabatkins/bikeshed/pull/1564 (the MDN annotations PR) — so can be reviewed without worry about me changing anything out from underneath it during review |
| 17:03 | <shu> | annevk: oh cool |
| 17:03 | <shu> | (the workaround) |
| 17:07 | <TabAtkins> | MikeSmith: I'm reviewing it literally right now, so nice. ^_^ |
| 17:08 | <MikeSmith> | heh :) |
| 17:08 | <MikeSmith> | cheers |
| 17:24 | <TimothyGu> | Something I never understood. Why do promise tasks have to run at a high priority than regular tasks (and hence be microtasks)? |
| 17:50 | <TabAtkins> | Chaining off a promise feels "almost synchronous", especially when `await` is used. Pumping the normal queue in between code split by a promise was seen as likely to result in bugs. |
| 17:52 | <annevk> | TimothyGu: initially we got mutation observers, which were a bit less sync than mutation events, but still sync enough to not let a lot of other code run in between |
| 17:52 | <annevk> | TimothyGu: and I think promises wanted similar timing as they used mutation observers and such as workarounds |
| 17:53 | <annevk> | TimothyGu: perhaps also because often a promise is resolved as the result of a task, if it would then take another task you'd get a lot of delay |
| 17:57 | <TimothyGu> | annevk: is mutation event totally sync? |
| 17:58 | <annevk> | TimothyGu: yeah, see also https://github.com/whatwg/dom/issues/305 |
| 18:01 | <TimothyGu> | Okay, I see |
| 18:17 | <Domenic> | My point of view is that chaining off a resolved promise should be zero-cost. I.e. a 1000-deep resolved promise chain should be as fast as a `for (let i = 0; i < 1000; ++i) { /* do nothing */ }`, modulo extra GC pressure. Microtasks allow this in theory, while tasks do not. This gets you close to "zero-cost abstraction". |
| 18:17 | <Domenic> | However, implementations seem to be unable to achieve this, mostly because of JS/C++ transitions and difficulty inlining. |
| 18:18 | <Domenic> | And I suppose it doesn't help that I made promises unnecessarily complicated to support subclassing. Although implementations have done some heroic fast-paths to get around that, at least. |
| 18:53 | <annevk> | Subclassing had a lot of hype but little payoff thus far |
| 22:26 | <Domenic> | annevk: https://chromium-review.googlesource.com/c/chromium/src/+/2116833 (should show up on WPT side soon) would welcome your review, either on WPT or Chromium repos. I also added you as an owner for the directory. (dtapuska fixed the message vs. messageerror bug so I can write WPTs now!) |