Eli Zaretskii writes: >> That's all. There is nothing more. And I'm currently undecided how to >> proceed with this. > > The next step would be to push a feature branch into the Emacs Git > repository and let people try the branch on the other supported > platforms. If the code is not yet mature enough for that, please > suggest how to get from here to there. I think technically it could be done, but there are some things that would need to be done. From the top of my head: - CL packages vs. obarrays (I do have packages but no obarrays) - Handling of pure space - Handling the new JSON stuff, which I don't have in my branch, I think. - ... And then of course the general work of getting a branch from a what is basically a fork back to the forked repo, which I'm not so sure how to go about that. But my undecidedness comes more from what could come after that. I'm not sure how willing I am to invest what can be years to get things finished, esp. if no one else starts working on it. Had that one time too often in the 90s, some might remember ;-). > Would you like to describe in a few words what would be the advantages > and disadvantages of this GC for Emacs? Advantages for users: For the user it means the final end to GC pauses. MPS runs in a different thread wich can be in a different core. What MPS means for the overall speed of Emacs I find impossible to say. MPS doesn't seem to be slow at all though, although some slowdown can be expected in the client because of thread-safe allocations. Example for a confusing fact that I noticed today: Full build without MPS, -O0, checking real 26:20.01 user 1:32:15.54 sys 3:20.74 Same build with debug MPS (-lmps-debug) real 14:07.90 user 44:17.94 sys 3:15.99 That's on an 2,3 GHz Quad-Core Intel Core i7, 16G RAM, SSD. 🤷 Possible advantages for developers of Emacs: - MPS is thread-safe, i.e. it's a tiny step in that direction. - I think igc.c is easier to understand that alloc.c. Disadvantages: As long as there are 2 GCs, there are 2 instead of 1 GC :-). Will increase memory usage in its current state, part of which could be optimized. Some configurations/platform might not be possible to support. Hard to say. ... Let me also attach a badly written and curated Org file that I have in that branch. Maybe that has some additional answers