You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Steve Blackburn <St...@anu.edu.au> on 2005/06/25 10:48:03 UTC
[modules] big picture
The discussion on JIT/classloader interfaces is encouraging.
I think it would be good to think a bit more about the higher level
design and get some more consensus on that. So here are a few
thoughts. These are very abstract and I am deliberatly not addressing
issue of language or API design. I just want to provoke thought on
what the key concerns are, and how they inter-relate.
The following are pretty clearly first class modules:
core VM core
mm Memory management (GC etc)
exec Execution engine (JIT, interpreter, adaptive policies)
lib Class libraries
My guess is that the core is something that in the end Harmony will
write from scratch (perhaps based on something existing), whereas the
other three are distinct modules which in the first instance may be
existing implementations: Classpath, MMTk, StarJIT, Jikes RVM's
compilation subsystem etc.
There are other modules which may either be a) first class modules, or
b) sub-modules, but either way probably should be pluggable
(sub)modules. Here are a few that come to mind...
exec.jit Compiler instances
exec.iterpreter Interpreter instances
core.scheduler Threading and scheduling
core.object Object model
core.classloader Class loader
core.os Operating system services
Thoughts?
--Steve
Re: [modules] big picture
Posted by "Geir Magnusson Jr." <ge...@apache.org>.
On Jun 25, 2005, at 2:13 PM, Steve Blackburn wrote:
> Geir Magnusson Jr. wrote:
>
>
>> What is a sensical way to modularize the rest?
>>
>
> Key to the approach is precisely that we need not introspect within
> modules which we will not (initially) be implementing. Thus we
> need not concern ourselves with the internal structure of the
> execution engine, or the memory manager if these are modules we
> plan to leverage from elsewhere.
>
> If we focus on getting a core built quickly, then what matters
> most is a) the interfaces between the core and other modules, and
> b) the internal modular structure of the core.
>
> I think we'd all really like to see a core begin to take shape.
> Understanding its internal structure and its relationship to the
> outside world is the very first step.
>
I was really thinking about the classlibrary when I wrote that line,
and then started doodling on the internals :)
So , the classlib...
geir
> --Steve
>
>
--
Geir Magnusson Jr +1-203-665-6437
geirm@apache.org
Re: [modules] big picture
Posted by Steve Blackburn <St...@anu.edu.au>.
Geir Magnusson Jr. wrote:
> What is a sensical way to modularize the rest?
Key to the approach is precisely that we need not introspect within
modules which we will not (initially) be implementing. Thus we need not
concern ourselves with the internal structure of the execution engine,
or the memory manager if these are modules we plan to leverage from
elsewhere.
If we focus on getting a core built quickly, then what matters most is
a) the interfaces between the core and other modules, and b) the
internal modular structure of the core.
I think we'd all really like to see a core begin to take shape.
Understanding its internal structure and its relationship to the outside
world is the very first step.
--Steve
Re: [modules] big picture
Posted by "Geir Magnusson Jr." <ge...@apache.org>.
On Jun 25, 2005, at 4:48 AM, Steve Blackburn wrote:
[SNIP]
>
> The following are pretty clearly first class modules:
>
> core VM core
> mm Memory management (GC etc)
> exec Execution engine (JIT, interpreter, adaptive policies)
> lib Class libraries
[SNIP]
> There are other modules which may either be a) first class modules, or
> b) sub-modules, but either way probably should be pluggable
> (sub)modules. Here are a few that come to mind...
>
> exec.jit Compiler instances
> exec.iterpreter Interpreter instances
>
> core.scheduler Threading and scheduling
> core.object Object model
> core.classloader Class loader
> core.os Operating system services
>
>
> Thoughts?
What is a sensical way to modularize the rest? Guessing more :
core.scheduler
core.object
core.classloader
core.so
core.?
mm.objectAllocation
mm.GC
mm.?
exec.jit
exec.jit.compiler
exec.jit.compiler.static
exec.jit.compiler.dynamic
exec.interpreter
exec.?
lib.?
I know that for things outside of Harmony proper like GNU Classpath
as a class library implementation, we'd have to badger, cajole, and
do the work, but it's worth trying to come to a complete model.
geir
--
Geir Magnusson Jr +1-203-665-6437
geirm@apache.org