01:31 | <MikeSmith> | caitp: about what's hot, 100% agree with what smaug said about ServiceWorker and the Web Components renaissance |
01:31 | MikeSmith | looks back through his list of other stuff |
01:38 | <caitp-> | that comment was really more like "what will be getting deprecated in the next 5 years" |
01:39 | <caitp-> | because you know, some of this stuff is gonna fall apart |
01:39 | <caitp-> | and it will be sad |
02:45 | <MikeSmith> | caitp: oh, well that's an interesting question too |
02:47 | <MikeSmith> | caitp: so in that light, not sure the future looks so bright for IndexedDB |
02:49 | <MikeSmith> | caitp: maybe you know this already but annevk has been driving some effort on a more rational "unified architecture for storage on the web" https://wiki.whatwg.org/wiki/Storage |
02:50 | <MikeSmith> | other stuff... I wonder (hope) that a lot of use cases for Web Sockets might get obviated by WebRTC DataChannel |
02:50 | <roc> | MikeSmith: why do you say "not so bright for IndexedDB"? |
02:51 | <MikeSmith> | hey roc |
02:51 | <MikeSmith> | from talking with annevk and slightlyoff and others last week |
02:52 | <MikeSmith> | we already know webdevs aren't exactly warm to that API |
02:52 | <MikeSmith> | roc: lemme get you a URL for the notes from annevk session on storage last week |
02:53 | <MikeSmith> | roc: or did you see those notes already? |
02:53 | <MikeSmith> | roc: https://pad.w3ctag.org/p/EWS-20April2015-Breakout1.1.md |
02:54 | <MikeSmith> | hmm I see now those a pretty sketchy as far as capturing the comments about IndexedDB |
02:55 | <roc> | to be precise, it captured none of them :-) |
02:56 | <MikeSmith> | yeah I'm looking to see if some of slightlyoff comments elsewhere got recorded |
02:57 | <MikeSmith> | roc: in the mean time if you want a more informed view, you probably want to ask annevk to share some thoughts with you directly |
02:58 | <roc> | I hardly ever get to talk to Anne, he's on the wrong side of the planet :-) |
02:58 | <MikeSmith> | well |
02:58 | <MikeSmith> | you just need to travel more |
02:58 | <MikeSmith> | but yeah, sucks for us |
02:59 | <MikeSmith> | probably you're in the worst possible timezone for wide real-time collaboration |
02:59 | <MikeSmith> | Tokyo is just slightly better |
02:59 | <MikeSmith> | roc: https://pad.w3ctag.org/p/22-minutes |
02:59 | <MikeSmith> | see the first part on Storage |
03:00 | <MikeSmith> | e.g., slightlyoff comments about "likely we'll struggle with the storage mechanismsm we have right now, because they're not integrated. Re the locking propblem: IndexDB has a similar problem" |
03:01 | <MikeSmith> | and "How do we deal with storage locking? Now, IndexDB has a nasty way of daling with this: it closes transactions at the end of the task. You could extend the life of the transaction (artifically), — but it's there to keep developers from getting themselves into an inconsistent state.... This goes badly with other apps wanting access to the storage and trying to coordinate about the transaction lifet |
03:01 | <MikeSmith> | ime" |
03:02 | <MikeSmith> | "But now, It isn't possible to coordinate your rights to a cached storage area with a indexDB transaction. We're clearly missing a locking system" |
03:03 | <MikeSmith> | this reminds me, Travis is pretty great a scribing |
03:03 | <MikeSmith> | I was there in the room for that discussion and those notes do a very good job of capturing it in good detail |
05:43 | <annevk> | MikeSmith: so that's the underlying architecture of IDB and localStorage et al |
05:43 | <annevk> | MikeSmith: there's no plans for getting rid of IDB |
05:43 | <annevk> | MikeSmith: in fact, we're extending it |
05:43 | <MikeSmith> | ah so I was confused |
05:44 | <MikeSmith> | so you're documenting the underlying architecture but not changing it? |
05:44 | <MikeSmith> | I mean it can be changed fundamentally at this point can it? |
05:45 | <annevk> | MikeSmith: yeah, in a way |
05:45 | <annevk> | MikeSmith: what I want to define is what all these APIs are grounded in, what their underlying storage box is |
05:45 | <annevk> | MikeSmith: and then define ways to make that box persistent |
05:45 | <MikeSmith> | ok |
05:45 | <annevk> | MikeSmith: and then define ways to make additional boxes and allow IDB and Cache API etc to use those newly created boxes |
05:45 | <MikeSmith> | annevk: ok what about the IndexedDB locking issue that slightlyoff pointed out? |
05:45 | <MikeSmith> | I see |
05:47 | <MikeSmith> | so I guess there's no plan to expose a different higher-level API |
05:47 | <annevk> | MikeSmith: due to IDB having transactions it doesn't actually have a locking problem |
05:47 | MikeSmith | realizes now he'd been reading too much into this |
05:47 | <annevk> | MikeSmith: but the way it does transactions is also what makes it complicated |
05:48 | <MikeSmith> | annevk: I thought slightlyoff or somebody brought this up at the summit session too |
05:48 | <MikeSmith> | I mean the thing I pointed roc too |
05:48 | <MikeSmith> | in the TAG minutes |
05:48 | <annevk> | https://gist.github.com/inexorabletash/8c122c84a65de65c35b3 and https://gist.github.com/inexorabletash/a53c6add9fbc8b9b1191 have ideas around new higher-level APIs and new lower-level APIs around IDB |
05:48 | <MikeSmith> | ah ok |
05:49 | <annevk> | To model IDB with promises you basically need to create some kind of promise subclass to handle transactions |
05:49 | <MikeSmith> | so maybe I wasn't completely imagining it |
05:49 | <MikeSmith> | my memory is pretty sketchy even in the best of times, let alone when jetlagged and hung over |
05:49 | MikeSmith | looks at annevk links |
05:50 | <roc> | phew! |
05:50 | <MikeSmith> | heh |
05:50 | <MikeSmith> | I'm still sure I didn't imagine the think slightlyoff said about the locking-like problem |
05:52 | <MikeSmith> | annevk: from http://krijnhoetmer.nl/irc-logs/whatwg/20150430#l-139 |
05:53 | <MikeSmith> | "Re the locking propblem: IndexDB has a similar problem" and the other quoted stuff after that |
05:53 | <annevk> | MikeSmith: sure, I addressed that above |
05:53 | <MikeSmith> | oh |
05:53 | <MikeSmith> | I guess I should actually read stuff |
05:53 | <annevk> | MikeSmith: all storage has a locking issue since two tabs can address the same storage at the same time |
05:54 | <annevk> | MikeSmith: IDB deals with this by having transactions, but not everyone is a fan of the way it does those |
05:54 | <MikeSmith> | ah flags |
05:54 | <annevk> | MikeSmith: localStorage has a theoretical "storage mutex", but in practice it's racy |
05:54 | <MikeSmith> | right yeah that much I already understood |
05:55 | <MikeSmith> | and knew too that IndexedDB by design didn't need a mutex |
05:57 | <MikeSmith> | hmm I also recall now that I only caught half your session because I was in whatever session that was next door the other half of that hour |
05:58 | <MikeSmith> | anyway I'm glad there's a way forward and things will get rationalized further |
05:59 | <annevk> | We have some cross-browser agreement to add persistent storage |
06:00 | <annevk> | But there's quite a bit of demand from e.g. gaming to go beyond that as per the wiki page |
06:00 | <annevk> | Need to flush that out some more and I guess write down persistent storage and storage architecture... |
06:01 | <MikeSmith> | I guess that's what I had been thinking about, along with thinking it was planned to supersede/obsolete both IndexedDB and localStorage |
06:02 | <annevk> | Ah I see, underpinnings != primitives, at least not yet |
06:06 | <MikeSmith> | aha |
06:06 | <MikeSmith> | ok |
07:34 | <annevk> | Hmm |
07:35 | <annevk> | Were accounts moved to this new discuss.webplatform.org thing too? |
07:35 | <annevk> | Not sure I'm super happy contributing to webplatform.org branded stuff given the disaster they made out of docs |
07:48 | <MikeSmith> | annevk: please keep an open mind there |
07:49 | <MikeSmith> | at this point everybody recognizes that the docs thing didn't work out |
07:50 | <MikeSmith> | IMHO it was a failed plan from the get-go but I don't fault others for having thought differently and having actually tried in good faith to make it happen as planned |
07:52 | <MikeSmith> | but there is some momentum toward making a reborn webplatform.org that discuss.webplatform.org will be part of, and I think you'll see it transition into being much more of a genuinely community-driven project that you'll be much happier to participate in |
07:53 | <MikeSmith> | more like web-platform-tests |
07:53 | <annevk> | I don't know, I wasn't particularly thrilled either with the forking of URL to yet another location either |
07:53 | <annevk> | I've yet to see the benefit of that |
07:53 | <MikeSmith> | well that was not a top-down thing |
07:53 | <MikeSmith> | iirc |
07:53 | <MikeSmith> | that was a choice that Sam made |
07:54 | <MikeSmith> | and maybe it's not going to work out at that other place but if so we can write it off a lesson learned I guess |
07:55 | <annevk> | And that community supported that action apparently rather than pushing back |
07:57 | <MikeSmith> | I don't know that anybody "supported" it other than in the sense of facilitating Sam's choice to experiment with it there |
07:57 | <MikeSmith> | anyway to be clear I think when the dust settles for discuss.webplatform.org it will be minus any of the docs.webplatform.org stuff, which at this point pretty clearly to everybody is now completely obviated by MDN (or clearly now always has been) |
07:58 | <MikeSmith> | just please don't feed into killing new ideas for what to do with webplatform.org before anybody's had a chance to try more |
07:58 | <annevk> | Well, what good stuff has happened there so far? |
07:58 | <MikeSmith> | the basic goal here really is to try to faciliate more real colloboration |
07:59 | <MikeSmith> | annevk: the specifiction stuff |
07:59 | <annevk> | It seems to me that happened elsewhere and just got folded in, as they tried to do with MDN and failed pretty drastically at |
08:00 | <MikeSmith> | which is just changing from being run at Robin's own domain into being something that tries to fit in with a bigger picture around collaboration |
08:00 | <MikeSmith> | no the analogy would be more like MDN having been moved to a new domain |
08:00 | <MikeSmith> | so it's not a fair comparison |
08:16 | <annevk> | philipj: yo |
08:16 | <annevk> | philipj: I guess you can rename that repo now |
08:17 | <annevk> | philipj: let me know when you're all set up and then I can add the commit hook and such |
08:20 | <Domenic> | annevk: looks like fixing file URLs on windows will be easier than you thought: https://github.com/jsdom/whatwg-url/commit/c13670dffdef1f31cb53d9c342076a27a5742760 |
08:21 | <annevk> | Domenic: the lack of tests is disturbing |
08:21 | <Domenic> | annevk: heh yeah that commit was 14 commits ago before he put the web-platform-tests in place. It was just a prototype. |
08:21 | <annevk> | Ah okay |
08:22 | <Domenic> | annevk: I am pretty sure Sebmaster is waiting to get 100% pass rate on web-platform-tests before starting to make spec modifications |
08:22 | <Domenic> | I am hopeful that we can convince Sebmaster to start submitting PRs to url.spec.whatwg.org :). We can probably tackle lots of the cases at https://url.spec.whatwg.org/interop/test-results/?select=current too |
08:22 | <annevk> | Do you think he's willing to help edit the spec? Sam hasn't really been making progress and I don't think the diagramification of parsing is the way to go anymore... |
08:23 | <annevk> | Sounds good |
08:23 | <Domenic> | Yeah I mean even if he's not then I might be up for doing literal translation from JS to spec-ese since the implementation follows the spec so closely it should be quite easy |
08:24 | <Domenic> | Agreed that diagramification was not so great... I mean I think state machines are pretty reasonable for implementers. Maybe not for authors, but that's a separate issue IMO. |
08:25 | Ms2ger | is very surprised |
08:26 | <Sebmaster> | o/ |
08:27 | <annevk> | I slightly prefer the functional variant SimonSapin came up with for Rust, I think that could work well in the specification and make it a little easier to comprehend |
08:27 | <Sebmaster> | Not sure if I'm good at writing specs |
08:27 | <annevk> | But I could live with keeping the current state-based version |
08:27 | <annevk> | Sebmaster: it's translating code to English and coming up with "good" terms |
08:28 | <Sebmaster> | my modification to the algorithm is buggy at the moment in any case, it doesn't work well with resolving //C:/abc on base file:///D:/ |
08:28 | <botie> | Hmm. No matches for that, Sebmaster. |
08:28 | <Sebmaster> | but that shouldnt be hard to fix |
08:30 | <Domenic> | wait, what triggered botie, that was weird |
08:37 | <MikeSmith> | Domenic: yeah I guess that triggered the thing in botie where looks for "x is y" stuff but not sure why botie seems to have thought Sebmaster was asking for a match for something |
08:44 | <philipj> | annevk: richt and I are setting it up right now, I'll ping you shortly |
08:45 | <annevk> | philipj: cool, I agree that the renaming is better |
08:45 | <annevk> | philipj: GitHub takes care of redirects and you keep everyone that already starred and forked engaged |
08:53 | <philipj> | annevk: I didn't know about renames before Marcos told me yesterday :) |
08:58 | <philipj> | annevk: https://github.com/whatwg/mediasession now has a mediasession.html, any time the master branch changes we'd like that to be published to https://mediasession.spec.whatwg.org |
09:05 | <annevk> | philipj: it's live |
09:05 | <annevk> | philipj: you need to update some links in the spec to reflect the new GitHub URL |
09:08 | <Domenic> | philipj: I also have it on my todo list to hook up automatic compilation so you don't have to commit output to repos |
09:32 | <annevk> | philipj: you also need a logo :p |
09:47 | <Sebmaster> | Oh yeah, annevk |
09:47 | <Sebmaster> | the url test suite expects some test cases to fail; does "fail" in that context mean parse error or return failure? |
10:03 | <annevk> | Sebmaster: not sure |
10:03 | <annevk> | Sebmaster: prolly return failure |
10:03 | <Sebmaster> | yeah, i think so too |
10:03 | <annevk> | Sebmaster: I don't think parse errors are tested |
10:03 | <Sebmaster> | since as far as i read, parse errors arent even exposed on the final url object? |
10:04 | <annevk> | Anyone experience with WiFi repeaters? Wondering whether to buy an Airport Express since there's some lag between floors... |
10:04 | <annevk> | Sebmaster: correct, they're an error console affair |
10:04 | <annevk> | Sebmaster: well, potential error console affair |
10:04 | <annevk> | Sebmaster: it's not entirely clear what we want to do with them yet |
10:04 | <SteveF_> | annevk: cheers for responses yestrerday |
10:06 | <Sebmaster> | 14 test cases still failing then, most of them due to unicode / host verification |
10:06 | <annevk> | Sounds like we need more tests |
10:50 | <Sebmaster> | i think i won't be able to continue with host validation without someone implementing this flavor of TR46 in JS :( |
10:52 | <Domenic> | Sebmaster: I think rubys might have done so. At least, he has a JS implementation that passes all the tests. |
10:52 | <Sebmaster> | where's that? |
10:53 | <Domenic> | https://github.com/rubys/url/tree/peg.js/reference-implementation I think... there's some Ruby-to-JS stuff going on... |
10:55 | <Sebmaster> | ah, that retrieves the mapping table thing |
10:55 | <Domenic> | then https://github.com/rubys/url/blob/peg.js/url.pegjs#L600-L616 |
12:05 | <philipj> | annevk: awesome, thanks you! |
12:06 | <philipj> | Domenic: that would be cleaner, but I quite like that I can go back in the history of specs to see what they looked like at each point, which is a lot harder if toolchains and build scripts change over the years |
12:08 | <annevk> | philipj: Domenic keeps static snapshots for that |
12:09 | <philipj> | annevk: in a separate repo? |
12:09 | <annevk> | philipj: no repo, similar to what browsers do for nightly builds |
12:09 | <Domenic> | auto-generated and uploaded to the server on every push. https://streams.spec.whatwg.org/commit-snapshots |
12:09 | <philipj> | oh, I guess that works if you're looking for a specific version |
12:13 | <Domenic> | https://streams.spec.whatwg.org/commit-snapshots/?C=M;O=D gives a nice chronological view too |
12:19 | <philipj> | annevk: is the webhook installed now? https://mediasession.spec.whatwg.org/ is no longer in sync with Git |
12:19 | <philipj> | or does it update once an hour or something? |
12:20 | <annevk> | philipj: oh maybe I forgot to set chmod |
12:22 | <annevk> | philipj: seems to work? |
12:23 | <philipj> | annevk: now it's up to date, did you have to poke something? |
12:23 | <annevk> | philipj: well I poked something that should be poked automatically |
12:23 | <philipj> | annevk: hmm, is the webhook on a specific port that needs to be opened? |
12:24 | <philipj> | (that's how I did mine) |
12:24 | <annevk> | philipj: no |
12:24 | <annevk> | philipj: it says it already worked a couple times successfully |
12:24 | <annevk> | philipj: perhaps you had a cache hit? |
12:25 | <philipj> | annevk: I reloaded a bunch, so I don't think so |
12:25 | <annevk> | philipj: hmm let me know if this persists |
12:25 | <philipj> | annevk: where are the logs on the server so I can check myself if it fails again? |
12:25 | <annevk> | philipj: in logs top-level dir |
12:27 | <philipj> | annevk: I guess it's not on the same machine as html5.org where I'm looking? |
12:27 | <annevk> | philipj: oh right |
12:29 | <annevk> | philipj: let me try to copy your key to this other server too |
12:30 | <philipj> | annevk: I guess I can then just ssh to mediasession.spec.whatwg.org? |
12:30 | <annevk> | philipj: yeah, if only I could figure out how to copy a line from nano |
12:32 | <philipj> | annevk: ctrl+k, but I don't know if that puts it in any clipboard |
12:32 | <annevk> | doesn't |
13:08 | <annevk> | Domenic: I feel like you hijacked that thread a bit... oh well, hopefully everyone can still follow |
13:09 | <Domenic> | annevk: I was trying to come up with a way to solve the "when do we call distributeCallback" and "how do we get consistency on offsetTop etc." problem. |
13:09 | <annevk> | we can't |
13:09 | <annevk> | that's why you throw offsetTop of the rails |
13:10 | <Domenic> | it wasn't clear to me at the time. last message helps a bit. |
13:11 | <annevk> | To understand this is a bit like baking apple pie |
13:12 | <annevk> | Actually, the first invent the universe analogy doesn't hold up too well |
13:12 | <annevk> | Domenic: so Layout is async. But offsetTop forces Layout to be sync. |
13:13 | <annevk> | Domenic: Distribution is async but needs to happen before Layout. So offsetTop forces it to be sync. |
13:13 | <Domenic> | sure. still seems OK to me for .offsetTop to invoke distributeCallback. |
13:13 | <Domenic> | why is distribution async |
13:13 | <annevk> | Domenic: well say it's sync |
13:13 | <annevk> | Domenic: then modifying the DOM invokes distribution sync |
13:14 | <annevk> | Domenic: and then we have mutation events back |
13:14 | <annevk> | we want sync mutation events less than we want offsetTop to work, imo |
13:15 | <Domenic> | maybe. I dunno, I can see authors adding `set offsetTop(v) { this.distribute(); super.offsetTop = v; }` etc. to get the behavior back. |
13:15 | <annevk> | seems fine |
13:15 | <annevk> | and they could likewise overload appendChild and such like that |
13:15 | <Domenic> | yeah, someone will make a mixin that just overrides everything necessary. |
13:16 | <Domenic> | almost some sort of ... shadow DOM polyfill .... |
13:16 | <annevk> | which is why I'd prefer not do anything with timing or doing anything automatically for v1 |
13:16 | <annevk> | although timing equivalent to mutation observers seems reasonable and not too hard to add |
15:53 | <annevk_> | TabAtkins: so if I want to link "environment settings object" in HTML, what's the easiest way to do that? |
16:09 | <dglazkov> | annevk: have to be careful here with offsetTop et al. |
16:09 | <dglazkov> | I agree they're terrible APIs, but they also are widely used |
16:10 | <dglazkov> | so we need to make darn sure we don't turn the distribution API into something that you can only use on in a small set of the web that doesn't use these terrible APIs |
16:10 | <annevk> | As long as we leave timing to users of the API there's no problem |
16:11 | <dglazkov> | can you explain this a bit more? |
16:11 | <annevk> | Distribution only happens when you invoke distribute() |
16:12 | <dglazkov> | btw, my concern is captured well here: https://gist.github.com/rniwa/2f14588926e1a11c65d3#extention-to-custom-elements-for-consistency |
16:13 | <dglazkov> | I think the question is: who needs to invoke the distribute()? In a situation where component is developed by dev A and is being used by dev B, specifically. |
16:13 | <smaug____> | annevk: well, we may need to define some way to trigger callbacks at the end of nanotasks, in order to have distribution happening early enough |
16:14 | <dglazkov> | what if we just run them in a separate environment, pure-function-style |
16:14 | <dglazkov> | ? |
16:15 | <smaug____> | don't understand that question |
16:15 | <smaug____> | separate environment? |
16:15 | <dglazkov> | run distribution callback in a separate script environment, with no access to the docs global |
16:15 | <smaug____> | like, adding isolation ;) |
16:15 | <dglazkov> | sort of, except in a very limited way |
16:16 | <dglazkov> | like a pure function, where there's really nothing else but the arguments of the function |
16:16 | <dglazkov> | that way, there will never be a problem with timing and we don't have to specify how the execution of the distribution callback correlates with the style resolution or anything like that |
16:17 | <smaug____> | well, if arguments are like nodelists, you can access the global object from there |
16:17 | <dglazkov> | they would be some dumb objects |
16:17 | <smaug____> | oh, some kind of weird proxy objects around the actual nodes |
16:17 | <dglazkov> | like a serialization of an element |
16:17 | <dglazkov> | or a proxy |
16:17 | <smaug____> | s/weird/dummy/ |
16:18 | dglazkov | waves hands |
16:21 | <annevk> | I'm not sure that's gonna work |
16:21 | <annevk> | that would defeat things like using Media Queries as input to distribute nodes |
16:21 | <annevk> | or require adding all those APIs in an "separate script environment" |
16:22 | <dglazkov> | true |
16:22 | <annevk> | dglazkov: A needs to invoke distribute(), though B could too I suppose if it's not closed |
16:22 | <annevk> | smaug____: do we need to do that for v1? |
16:22 | <smaug____> | add a flag to MutationObserver whether it should be called at the end of microtask or nanotask, and let shadow dom users then call distribute if needed ? |
16:23 | <dglazkov> | annevk: when does A invoke distribute(), then? |
16:23 | <annevk> | smaug____: nanotask observers seems useful, but I wonder whether we need it for v1 |
16:23 | <smaug____> | annevk: maybe not for v1, but need to think about v2 too a bit |
16:23 | <annevk> | dglazkov: whenever they think that is needed |
16:23 | <dglazkov> | annevk: I would like to flesh this out a bit more :) |
16:24 | <annevk> | dglazkov: I think I would put advice to devs to use mutation observers |
16:25 | <annevk> | dglazkov: but they have the freedom to call it at other times or provide hooks to the outside world, etc. |
16:25 | <smaug____> | yeah, I like the freedom distribute() gives |
16:26 | <smaug____> | we're just missing the nanotask-like thing from the platform atm, and that will be needed at some point |
16:26 | <smaug____> | (perhaps we need nanotasks only for DOM mutations, so it wouldn't be a generic thing, but MutationObserver only) |
16:27 | <annevk> | nanotasks are like IDL exit callbacks |
16:27 | <dglazkov> | let's try to make this a bit more concrete: https://gist.github.com/dglazkov/bdbe817b9cce48e4d072 |
16:27 | <dglazkov> | when does A have a chance to run distribute in that gist? |
16:27 | <annevk> | dglazkov: as I said elsewhere that fails |
16:27 | <annevk> | dglazkov: though not with a future nanotasks thingie |
16:28 | <annevk> | dglazkov: here is the tradeoff: https://lists.w3.org/Archives/Public/public-webapps/2015AprJun/0450.html |
16:28 | <annevk> | dglazkov: if you can defeat the tradeoff you win, but otherwise we should just make a choice and move on |
16:28 | <smaug____> | annevk: we don't want distribute() to be called at the end of any nanotask, only after dom mutations, I think |
16:28 | <dglazkov> | annevk: I am confused. Are you saying that you would put the burden on B to make this work? |
16:28 | <annevk> | smaug____: I agree that we want to scope nanotasks |
16:29 | <annevk> | dglazkov: yeah |
16:29 | <dglazkov> | annevk: that means that shadow DOM components can't be used in pretty much any framework that exists today. |
16:29 | <dglazkov> | that seems... drastic? |
16:29 | <annevk> | dglazkov: again see tradeoff? |
16:31 | <dglazkov> | annevk: I saw the link, but I am not sure that the cost of web component not being adopted anywhere in any foreseable future is worth the benefit in this trade-off |
16:31 | <dglazkov> | right? |
16:31 | <dglazkov> | I mean.. the whole point of web components is to conform to DOM contract that exists currently |
16:32 | <annevk> | dglazkov: I don't think there's another tradeoff? |
16:32 | <dglazkov> | the separate environment is one |
16:33 | <dglazkov> | you're trading hypothetical media query use cases for being able to satisfy all other requirements |
16:33 | <annevk> | dglazkov: that seems very unlikely to happen to me |
16:34 | <dglazkov> | tell me more |
16:35 | <annevk> | As far as I know this has been a research area for TC39 for quite a while |
16:35 | <dglazkov> | oh, I see |
16:35 | <annevk> | At least subclassing was a somewhat concrete idea when we started Shadow DOM |
16:35 | <annevk> | I mean, Web Components |
16:35 | <dglazkov> | you're worried that if we pursue true pure functions, we'll be blocked on TC39 for a while |
16:36 | <annevk> | Another five years? |
16:36 | <dglazkov> | that seems _awesome_ |
16:36 | <dglazkov> | :D |
16:36 | annevk | would like to ship something... |
16:36 | <annevk> | dglazkov: so nanotasks? |
16:37 | <annevk> | dglazkov: mutation observer nanotasks, that is |
16:37 | <annevk> | dglazkov: that gives A a callback at the end of B's call to appendChild(), which can invoke distribute(), which means B's call to offset gets the right answer |
16:38 | <dglazkov> | you know what |
16:38 | <dglazkov> | maybe! |
16:38 | <dglazkov> | let me think about this |
17:02 | <annevk> | Hahaha |
17:02 | <annevk> | <a>origin</a> links to http://dev.w3.org/csswg/css-cascade-4/#origin |
17:06 | <annevk> | TabAtkins: so what I'd like is something like <a from=html>origin</a> |
17:29 | <Domenic> | Pure functions can be defined without TC39 I think |
17:30 | <Domenic> | You serialize the function to a string |
17:30 | <Domenic> | If it works in the other environment then it's pure |
17:30 | <Domenic> | That is what came up when I asked TC39 about this |
17:35 | <bradleymeck> | Domenic: you can also parse out if a function is pure, but it is pricey in JS |
17:35 | <bradleymeck> | parse/analyze |
18:02 | <wanderview> | jgraham: I think this one is ready for merge: https://critic.hoppipolla.co.uk/r/4838 |
18:10 | <jgraham> | wanderview: Done. How many of your PRs are left? |
18:11 | <jgraham> | Just one? |
18:11 | <wanderview> | jgraham: just one :-) https://critic.hoppipolla.co.uk/r/4825 |
18:11 | <jgraham> | OK, I'll kick off an update in gecko as soon as that one gets reviewed |
18:11 | <jgraham> | and merged |
18:17 | <dglazkov> | Domenic: how quickly can we confirm/reject the hypothesis that we don't need TC39 for pure functions? |
18:17 | <dglazkov> | I would like to keep all ideas on the table |
18:17 | <dglazkov> | do we even need pure functions? |
18:22 | SteveF_ | trys to follow shadow dom/web components discussion, totally out of my league |
18:33 | <MikeSmith> | botie, inform SteveF_ re: "SteveF_ trys to follow shadow dom/web components discussion, totally out of my league", you're in good company. I think the set of people who actually understand all of this well can be counted on two hands |
18:33 | <botie> | will do |
18:42 | <caitp-> | trevnorris, re: optimizing subclasses, i wouldn't expect hydrogen to deal with them, but turbofan might already |
18:43 | <trevnorris> | caitp-: not as of 4.4.44. was trying to get some info out for IRHydra and there was no output. |
18:44 | <caitp-> | does IRHydra deal with TF at all? |
18:44 | <trevnorris> | yup. |
18:44 | <caitp-> | anyways, it will end up optimized in TF at some point |
18:45 | <trevnorris> | no doubt. it just threw me when there wasn't any output. thought there was something wrong with the internal V8 tracing. |
19:10 | <Domenic> | dglazkov: we can do a slow polyfill (web workers + actual JS serialization) in a day or two. |
19:15 | <botie> | SteveF_, at 2015-04-30 18:33 UTC, MikeSmith said: re: "SteveF_ trys to follow shadow dom/web components discussion, totally out of my league", you're in good company. I think the set of people who actually understand all of this well can be counted on two hands |
19:16 | <SteveF_> | botie: gotcha player ;-) |
19:16 | <botie> | SteveF_: i'm not following you... |
19:18 | <jgraham> | Anyone know why this expects to throw an error? https://github.com/w3c/web-platform-tests/blob/master/workers/interfaces/WorkerGlobalScope/close/setTimeout.html |
20:13 | <wanderview> | Domenic: its unfortunate Response.body.getReader() does not have backpressure yet |
20:14 | <wanderview> | I guess I can build backpressure at the app level |
21:26 | <jgraham> | Hixie: Did the spec at some point change so that a worker that does close(); setTimeout(function(){},0) would no longer fire an error event? |
21:37 | <dglazkov> | MikeSmith: can you give rniwa w3c/webcomponents commit bit? |
21:49 | <terinjokes> | JakeA: w/r/t your tweet, it's something I certainly want to do |
22:22 | <TabAtkins> | annevk: You're looking for the spec='' attribute. The problem, though, is that HTML is really incredibly terrible for Bikeshed links. Nothing is "exported", in Bikeshed's terms, and it's all typed as "dfn" type definitions. That's why CSS's "origin" definition is winning; Bikeshed prefers exported definitions by default. |
22:23 | <TabAtkins> | After I finish up this File API spec, though, I'm gonna roll up something to do some manual link-adding, so we can put HTML terms in manually and let everyone use them. |
22:24 | <TabAtkins> | (Technically I can add custom definitions right now, but they all get interpreted as being "local" definitions, which auto-win over cross-spec defs, which isn't the behavior I want here. It won't be hard to fix.) |
22:25 | <TabAtkins> | annevk: For arbitrary terms that you want to link to in a one-off fashion, tho, just add them to the <pre class=anchors> block in your spec. There should already be a bunch of HTML anchors in there, so it'll be obvious how to do so. |
22:37 | <TabAtkins> | annevk: Oh man, just realized why a bunch of terms aren't linking to DOM; they're not exported either. Do you want a PR for exporting all the stuff, or is it okay for me to push directly to the spec? |
23:37 | <MikeSmith> | dglazkov: Yeah will try to do that right now (from my mobile) cc rniwa |
23:41 | <MikeSmith> | dglazkov: Ok, invite sent |
23:41 | <MikeSmith> | rniwa: you should have perms now |