12:58 | <jakobjingleheimer> | I'll use the time to review your node PR |
15:05 | <guybedford> | Thanks that would be great! |
15:20 | <nicolo-ribaudo> | https://github.com/tc39/ecma262/issues/3582 I think I found a bug with module evaluation |
16:48 | <guybedford> | good catch, it seems like we either need to clarify that it can be unset for errored modules, or to set it to some arbitrary value in this case |
16:55 | <guybedford> | another approach might be to move the CycleRoot set into the linking algorithm, but this would imply creating a proper equivalence between DFS for link and DFS for evaluate which doesn't currently exist |
16:56 | <guybedford> | The algorithm as written though, never did proper state transitions on error in evaluate (DFS transitions), and that was a property from the start. Sticking with that model would effectively mean just saying [[CycleRoot]] can be unset... |
16:57 | <guybedford> | I'm pretty sure this doesn't affects any real execution paths fwiw |
17:23 | <nicolo-ribaudo> | I opened https://github.com/tc39/ecma262/pull/3583, which defaults it to the module itself, and I think it's fine to do it in the error case |
18:09 | <guybedford> | Yeah I'm pretty sure that works, as an import to any module in an errored cycle should still find that error and throw it before trying further evaluations. |
18:36 | <shu> | nicolo-ribaudo guybedford as the only two people in the world who have this machinery in their heads, any ideas for editorially improving understanding? |
18:37 | <shu> | i was thinking maybe an interactive example? |
18:37 | <shu> | how do people teach graph algorithms? |
18:38 | <shu> | i learned graphs from dr greibach, who taught on transparencies... |