One thing I have been thinking about since .net because opensource is the architecture. One issue that might pop up in the future us the difficulty to evolve the VM due to legacy CIL. So it might be an idea to Virtualize the CIL layer so that the VM implementation is independent of the CIL format.
- Experimental CIL instructions can be added
- New CIL formats can bee defined by the users. E.g. Parrot VM format
- May be support JVM ByteCode also to run along CIL in the same VM (without something like IKVM)
Also the exposed API can be the basis of creating a AST interpreter as in one of my other proposals: AST Interpreter / Easily Create New Languages
Let me know what others think.