NGVM Meeting 6 December 2005
Participants:
Brian Bershad
Steve Blackburn
Hans Boehm
Michal Cierniak
Cliff Click
Xiaofeng Li
David Gregg
Glenn Skinner
Bernd Mathiske (only present for day 1)
Introductions
Lessons of Jikes RVM
Widespread use in the research community. Few contributions from the community. Flatlined when IBM pulled resources from project. Stability issues compared to other VMs. Not used as a production VM. Benchmark performance now lower than other VMs. Was it seen to be IBM or true open source – generally agreed as true as opposed to ORP which was less open.
The Intel NGVM
Question of class libraries raised. Not the focus of this meeting. Issues related to the classpath project, licensing, etc. IBM contribution not complete. Desire for libraries that can be used in a commercial context.
Cliff highlighted the importance of robustness and reliability: this is paramount for a ‘real’ VM.
Is this project too Intel-centric? How can we ensure community ownership, etc. The Jikes RVM/ORP effect.
Is the requirement for industry usage going to be a drag on academic freedom and research?
Is modularity at odds with performance?
NVGM could be seen as a ‘platform’ or ‘framework’ for the development of components.
How to manage the dependencies between the components of the system? What about ‘breaking’ other components.
Lifetime of the project? 10 5+ years?
Discussion of patented information: Disclose patents that are known to be held by companies. If no patents are known, this is not to be understood as a guarantee that no such patent exists.
Brainstorming
Controversial Points from Brainstorm
- Isolates
- Relation to the OS
- Implementation of threads
- Articulating “need experts”
- Universality (We only need Java?)
- Make evolution easy
- Java-in-Java
- Why do we need another open source VM?
- Direct execution (Hardware bytecode ISA)
5 Minute Talk Session
Steve Blackburn
- Unified Java compilation model.
- Ahead-of time compilation
- Cached JIT compilation
- Boot image compilation
Michal Cierniak
- Need to have enough innovation to justify a complete rewrite.
- E.g. more aggressive, universality, OS integration, etc.
- Or leverage existing components, implementations.
Hans Boehm
- There are many application domains where Java isn’t a player.
- Opportunity for moving into these new domains.
- Possible area is looking at massive scalability.
Cliff Click
- Need to have more than just a really good Java VM.
- Need to allow innovation on many areas, not just JIT/GC implementations.
- For example replacing String implementations is very hard.
- Like the notion of Java-in-Java.
Brian Bershad
- When starting from a clean state you can aim for “the worlds best/most … “
- Distinguish what is being done currently, versus long term objectives.
- Some world’s most that might be exciting:
- Most multi-core capable
- Most Modular
- Most Reliable
- Etc..
- Really need to have a clear vision.
David Gregg
- Going to try and get a big community involved.
- But Harmony already exists in some form.
- How do we arrive and mix into this community.
- Maybe we need to move into the community now rather than later
Xiaofeng Li
- How to mix Java and C++ modules in the VM?
- Pure Java-in-Java is a good direction, but against commercial realities.
- Need a road-map to mix together.
- Technical and political difficulties.
- Can’t remove the OS soon/immediately.
- Attracting developers? By collaborating with other systems people naturally transition across the boundary.
Daniel Frampton
- Java-in-Java is not completely worked out.
- Need for semantic isolation.
- Not all Java is equal.
- Compilers might be normal Java, but a GC can’t be.
Discussion
1. What is NGVM the “most of”
- “the most innovation friendly JVM”
- A platform upon which to innovate from.
- How do you determine success?
- If there isn’t innovation in the VM, has it failed?
- What makes this effort different?
- An architecture and design to aid innovation.
- Getting people on board is really difficult.
- But essential.
- Hard to sell based solely on innovation.
- What allows innovation?
- Componentization
- Object models
- Compilers
- Memory managers
- Etc…
- There are other very important priorities.
- Near-best (or best) performance.
- Product quality reliability.
- Compatibility.
- How do we evaluate success, especially in the short term?
- Difficult to answer in general.
- How do you know if you are ‘on-track’?
- Identifying key road blocks?
- Example: Portability is important to the OSS community?
- Where do we need innovation?
- How does this influence the design?
2. Why should Harmony care about NGVM? Developers and End Users
- For Developers: Because it makes life easier.
- Mailing list wasn’t the right forum at the beginning?
- Hard to convince the wider developer community without a working VM
- Where are the existing Java developers on the Harmony list?
- For Developers: Because they want to innovate.
- End users demand the innovations NGVM enables.
- Because it provides a foundation for a competitive open source VM.
- People that care about innovation maybe don’t care about open source?
- Want NGVM to be useful for both researchers and developers.
3. Where are the developers who need to innovate?
- Researchers both academic and industry
- Industry creating product JVMs
- Does the open source community need to innovate?
- Hard to divide the open source and industry communities.
- Do we need to find focused communities?
- Maybe use conferences to identify should we target.
- Should this focus the direction of our innovation?
- Different to build something like a VM than other systems
- Leading edge technical knowledge is mandatory
4. What should the management model be?
- Goals of Harmony overlap with goals of NVGM
- Legal issues
- Contributions need to follow strict rules related to IP.
- The VM core must be clean.
- Proprietary (private) extensions are possible.
- Need to understand the apache management model?
- Difference between how to build the NGVM
- Need to clearly articulate (and then demonstrate meeting) goals
- Access to source code in the interim?
- Sourceforge? Invites contribution which we aren’t ready for.
- ANU? Is this open enough? Consensus is yes.
- Discussion of the Jikes RVM Model
- Steering committee
- Core team (committers)
- Approve outside contributions
- Product related issues for NGVM are more important than Jikes RVM.
- Would benefit from a more formal review process.
- Includes internal and external contributions.
- “Shrink to fit”
- Have tools to automate some types of review.
- Two basic issues
- Moves in a direction coherent with project vision
- Does the code work, match conventions, etc.
- Need a person or small group with clear coherent direction.
- What is the future after the NGVM is demonstrated?
- Will the question answer itself by that time?
- JIT?
- What is the plan for class libraries
- Especially the libraries integrated with the VM
- Would using the Sun libraries with NGVM be possible
- Licensing issues
- If only as an interim measure.
- IBM has released some class libraries – fairly small set.