On Saturday, 11 October 2014 at 17:37:22 UTC, Kevin Lamonte wrote:
On Saturday, 11 October 2014 at 06:59:33 UTC, Mike wrote:
Hello,
In my continued, though stalled, effort to try and make
minimal runtime for embedded systems, I've tried to find a way
for users to know at compile-time if a feature of the runtime
is supported or not, and more importantly, if they are
explicitly or implicitly using an unsupported feature.
I have started work myself on a D kernel (using gdc based on
2.065 as compiler) and am going through the process of figuring
out how the D runtime works. I have looked at XOMB and Adam
Ruppe's minimal-d, and saw the presentation online on running D
on ARM.
I can boot and call D functions, but most of the D language
remains unavailable. I am locating the various dependencies of
object.d(i) now, and hope to be able to soon be able to at
least complete a link with D code that has structs and enums.
I am currently using 2.065 druntime, adding only those bits of
object.d that the compiler is directly referencing, and
versioning my changes with version(BareBones).
Is your work online somewhere? Would it be OK if I took a
peek? Mine just started (seriously, it is just hello world)
over at: https://github.com/klamonte/cycle
I would really like a micro-runtime that supports the D dialect
minus GC, Threads, synchronization, OS APIs, and i386/amd64
arch-specific things like atomic operations. So far (crossing
fingers) it seems like such a thing is only about 5-10 kloc.
Sounds like you you and I are after pretty much the same thing.
I'm not really trying to build anything, like a kernel, just yet.
Rather, I'm just trying to get a decent runtime built so we can
all have a reasonably polished language to work with.
You can find my work here:
https://github.com/JinShil/druntime_level_0. I'm afraid it's not
any further along then yours. I actually became quite
discouraged and stalled. I'm trying to explore other options,
hence this post.
Mike