On 4/16/2011 9:21 PM, Brendan Simon (eTRIX) wrote:
I believe that eCos is written in C++ (or a restricted subset), and I
presume that it performs quite well, so given that, I see no reason why
a D based OS/RTOS could not perform as well as eCos or other OSes.
Squeak is a good example of that too. The smalltalk language is
interpreted but the developers of Squeak have managed to extract a
subset that can be compiled as C code. Allowing Squeak to be written
in smalltalk.
One obstacle is D's runtime is coupled to the compiler. Several runtime
functions are part of the code the compiler outputs. I am not aware of
any documentation other than phobos and tango source that describes that
coupling.
For example 'new' requires _d_newclass and 'throw' requires _d_throw.
In addition to the module related output per file.
The Windows driver module, possibly others I'm just familiar with that
one, may be a good way to think of the problem. Essentially one has
layers that would give access to an increasing subset of D until you
reach the full capabilities offered.
bare-metal : D subset WYSIWYG. D requires no support functions. Outputs
minimal extra code.
kernel : Basic support functions.
driver(low): Kernel allocated objects. Maybe GC.
driver(high): Templates, GC, TLS, basically full D at this point.
user: Phobos or equivalent runtime.
That's just my perception of the problem. I have no experience with
actually designing such a system.