On Thursday, 30 April 2015 at 00:14:18 UTC, Martin Nowak wrote:
Wonder if it makes more sense to start from zero and add as few
files as
possible.
When I started I did not know D enough to understand what
druntime does. Just picked the easy way. The amount of required
changes has got smaller in every release. It is easy to maintain:
I get mainstream updates and bug fixes just by patching.
Mike has done some work with an empty runtime and Adam has a
chapter in his book. I do not know any real programs made from
this base
Druntime doesn't do much useful stuff for a µC anyhow.
- GC and rt.lifetime (new, arrays)
- Moduleinfo
- EH unwind support
- AA implementation
- vectorized array ops
- core.time/sync/thread/demangle
UC programs mostly use static resources but I think 'new' is
useful to initialize class objects at runtime. I got exceptions
to work but I do not know how much use they have. There should be
some time routines.
What might be interesting is this.
- core.bitop
- maybe core.atomic
- some gcc simd module
- libc bindings for core.stdc.math and core.stdc.stdio for
printf
Printf is a little tricky. It is actually a file operation to
stdout and that is actually a syscall to kernel. In a controller
board we may have several devices where we can send data like
uart and oled display. (I even have a video output where video
signal is generated with just one spi and one timer)
I think java style would be better here like
console = new Formatter (new uartWriter (uart2) )
console.printf("",...)
This way the formatter can be reused and is not bound to any
hardware.
I think it is possible to make a minimum bare metal runtime fom
scratch. However, there are some requirements:
- A team. One man project may never get ready and it will not
receive enough attention. It is also often tailored to personal
needs which makes it difficult for others to use.
- An insider. A project from unknown people will just be ignored.
(I think we may have one now)
- A project coordinator. I think we will find one.
- Some people who want to work. We may have a couple.
If people thik we should start, I am with.