The purpose of releasing the code, and of the initiative as a whole, is to demonstrate the value of new functionality [as it pertains to improving runtime execution] and to advocate for the inclusion of such functionality in upstream projects and products. We think that "solving" garbage collection [across the 1GB-640GB range] is a pretty good demonstration, and will be interesting enough to consider the inclusion of the new functionality and interfaces that make it possible.
We fully expect that the code itself will morph 17 ways before it is accepted upstream. It's layout will change. It's APIs will change, and the functionality it provides will change, as people comment/argue about other generic uses of the same capabilities and how to best integrate the new functionality and interfaces with the existing ones [e.g. should/could everything be done under madvise? Should mmap be extended with new options?].
Whether pluggable memory modules are good/bad will be a separate [sub]discussion - and we're not that attached to either form. It's a good development vehicle for now, and makes it convenient to focus most of the big functionality additions and new interfaces in isolated modules while their details are being ironed out and stabilized. Rapid fire changes to system calls is usually a bad thing, and a loadable module with ioctls allows for easier to experimentation and morphing.