2009/3/2 Craig Latta craig@netjam.org:
You should ask John, but the aim was to get a minimal Hello World so there isn't a compiler for example. But surely the answer is "whatever you need to get what you want done", right?
Heh, sure... but you're not answering my question. :) I'm wondering how others have gone about deriving the complete set of classes and methods a system needs to perform a particular task (so that I can compare to how I do it). Indeed, I should ask John.
So if the goal is a microkernel from which one can bootstrap an image one needs a compiler, a file system interface, and for sanity a minimal error-reporting framework right?
Sure, but that doesn't help much with questions like "Should I include method X or not?". The necessity of several things in the system is rather subtle. :) I like to be able to point to any byte in an object memory and give a simple explanation as to why it's there, and have performed a straightforward process to get that explanation.
I think i can give you an idea: any object/class which interfacing with core VM functionality should be in that hierarchy. A starting point - VM requires a special objects array, properly filled with certain objects of certain, expected properties/slots. There is no way how you can avoid providing this information in image without chance of breaking everything. Going further - we could identify all methods which using core set of primitives (mainly - numeric ones) and add them as well. Next - add a basic I/O (make file plugin working). And finally - make a compiler working (in non-interactive mode). The rest is optional, since by having a compiler we could file in any code we want to.
-C
-- Craig Latta www.netjam.org next show: 2009-03-13 (www.thishere.org)