3 ms·
Scala.js could write their own GC to hook into WASM as a library, and ship it with Scala.js until WASM has its own GC. Indeed, such competition could sp
by mafribe 9y ago
Scala.js could write their own GC to hook into WASM as a library,
and ship it with Scala.js until WASM has its own GC. Indeed, such
competition could spur on the the WASM team(s) to accelerate work
on GC.
- sjrd 9y agoThat would not solve that essential part: > it needs to integrate with JS objects, which means with the JS GC Otherwise we would have done it already.
- mafribe 9y agoCould you not have a radical separation between data to be collected by Scala.js GC, and data GCed by Javascript? Data that crosses the boundary is deep-copied so as to avoid interference between both collectors? Not good for performance, but possible in principle, and a stop-gap measure until the WASM GC lands.
- sjrd 9y agoI'm not sure what you mean by "deep-copied" in this case. But I suspect it would involve losing the identity of the objects, which is unacceptable for correctness. Moreover, typical Scala.js code constructs cyclic dependencies between Scala objects and JS objects routinely. If Scala.js has its own GC, you'll have to manage those cyclic heap references, which will involve weak maps and other trickery so complicated that we would most likely lose all the performance that wasm would otherwise bring us. It's just not worth it.