Hacker News new | ask | show | jobs
by sjrd 3308 days ago
That 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.

1 comments

Could 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.

I'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.