| 01:23 | <babaca> | https://skidson.online/ Best AQW Private server AQW Is a free to play browser mmorpg you can play with your friends join us now! Join our discord below: https://discord.gg/ZAebPzpsbR |
| 01:48 | <Jack Works> | https://es.discourse.group/t/cooperative-async-function/975 |
| 01:48 | <Jack Works> | Anyone interested in this? |
| 02:57 | <ljharb> | I’m not sure i understand it. JS doesn’t have coroutines; and it doesn’t seem like you’re proposing a task runner be added for them |
| 02:58 | <ljharb> | also i don’t think “typescript has trouble typing x” is an argument for any proposal |
| 03:14 | <Jack Works> | I’m not sure i understand it. JS doesn’t have coroutines; and it doesn’t seem like you’re proposing a task runner be added for them |
| 03:14 | <Jack Works> | also i don’t think “typescript has trouble typing x” is an argument for any proposal |
| 03:16 | <Jack Works> | I’m not sure i understand it. JS doesn’t have coroutines; and it doesn’t seem like you’re proposing a task runner be added for them |
| 03:17 | <ljharb> | it doesn’t feel like the natural way to me |
| 03:18 | <ljharb> | i love the idea of a Task primitive, that produces a promise but isn’t itself one, but i don’t think generators are the ideal or natural fit for that (even async ones, altho that’s at least a much smaller gap) |
| 03:18 | <Jack Works> | it just don't have the good keywords for this task |
| 03:20 | <ljharb> | The language definitely doesn’t solve this problem well. “scheduling” seems odd to me tho since the language doesn’t have any timers in it |
| 03:20 | <Jack Works> | yeah, I don't intended to add a scheduler. |
| 03:21 | <Jack Works> | WICG scheduler is a perfect companion for this kind of Task |
| 03:21 | <ljharb> | i like that a task could be started, stopped, cancelled, restarted, etc. generators don’t map well to that tho, because generators aren’t reusable and can’t be resumed once they’re interrupted (like return/throw/done, vs yield) |
| 03:23 | <Jack Works> | My idea above support started, pause and cancel and those 3 cases can be supported by generators well. I didn't think restart is very necessary when I was thinking of that abstraction. |
| 03:27 | <Jack Works> | for example, react break their heavy tasks (diff or something like that) into pieces and do only a little things in every 16ms (maybe?) |
| 03:31 | <Jack Works> |
If the WICG scheduler supports generator, it can pause the calculation of diffTree anytime to make the web page keep responding |
| 03:59 | <ljharb> | how is that different from a setTimeout or setInterval or rAF? |
| 03:59 | <Jack Works> | you can do as much work as possible if there is enough time |
| 04:40 | <bakkot> | Jack Works: are you familiar with isInputPending? I feel like that already gives you the thing you need basically |
| 04:42 | <bakkot> | for the "do as much work as possible if there is enough time" part, at any rate |
| 15:53 | <devsnek> | future style doesn't make much sense to me in js tbh, as much as i like it |
| 15:53 | <devsnek> | in a language like rust, you're combining various raw io surfaces, communicating across threads, etc |
| 15:54 | <devsnek> | but in js, everything you communicate with already exists within the agent and its scheduling |
| 23:39 | <rkirsling> | wow that repo had so many open issues |
| 23:39 | <rkirsling> | my inbox is ablaze |
| 23:53 | <TabAtkins> | Indeed, sorry about that. |
| 23:54 | <TabAtkins> | All done now. |