On 11/12/09 04:32, Jesse Robinson wrote:
Just for fun and as a serious learning exercise, I'm developing a hobby kernel
of sorts (L4 microkernel inspired) and since it's my play project I was
thinking of using D to implement it. I know it'll have to be written in a
strict subset of D, as most of the runtime will need to be stripped out anyway.
I've done some basic research, stumbled upon XOMB OS (a small exokernel project
written in D) but wanted some thoughts from people who may have much more
insight into the internals of D. So a few questions:
What exactly are the language features I can use at such a lower level? I know
OOP stuff is out (or is it?), dynamic arrays, GC, lazy functions, etcetera. So
that leaves structs, CTFE, contract programming, mixins, templates, AST macros,
basically any compile time features, correct? I'm sure there are a few others
I'm missing.
I've been lurking for awhile, and last time I checked there were three
different compilers. LDC looks to be the most promising. What are peoples'
thoughts / experiences with the latest version of LDC?
How large is D2's runtime? Is it even worth the time and effort to strip down a
custom runtime for kernel use in the first place? In general things need to be
fairly lean, so executable size is a concern.
Oh, and thanks in advance!
-Jesse
Looking at was in the runtime (D1):
Associative arrays
opApply for strings
switch
most array related things
cast
exceptions
+ other tings