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

Reply via email to