I just had a discussion with Erick, and he told me that he would rather implement the GC in C, as a first version. Since he's the one writing it, and he seems interested in the idea of having a JS GC eventually, I will respect his preference and stop insisting on this issue.
I would, however, like to propose something else. I would like to volunteer to write the image writer/loader. I would also like to implement the writer in JavaScript. I think that this could help me expose tricky issues that will potentially come up while the GC is being written. I also think that it could be beneficial if I do this around the same time Erick is writing the GC, as we would be able to discuss technical issues that affect both. I would also need the same back-end support the GC will need.
I'm enthusiastic about doing this, I know the system well, and I think I've shown I can be pretty productive. I'm confident it could realistically be done fairly quickly, no slower than the GC will take to be completed. I will also argue that doing this in JS is less bug-prone than the GC, as it will not need to destroy the current heap, we can trigger serialization whenever we want (as opposed to the GC) and the output file can be examined easily using external tools.
What do you think?
- Maxime