Symmetry Autumn of Code
Mike Franklin
slavo5150 at yahoo.com
Mon Jul 23 08:08:03 UTC 2018
On Monday, 23 July 2018 at 06:24:04 UTC, Zheng (Vic) Luo wrote:
> Moreover, The term "dependency-free" in the project description
> often confuses me, because as a hardware-agnostic library the
> project does have to depend on external implementations like
> "sin"/"memset" or even "thread_start", and I'm not sure which
> kind of dependency is proper for this project: Should we assume
> a multi-threading model? Should this library rely on
> "malloc"/"free"? Correct me if my understanding is wrong since
> I had few experience on embedded programming.
There is more to this project than just getting a software
rasterizer in D. Part of the goal is to demonstrate D as a
formidable alternative to C in micrcontroller firmware
programming. D will never achieve that notoriety if it's always
depending on C, the C runtime, the C standard library, or some
library implemented in C.
So, IMO, if you need to link in a library or object file that was
not compiled from D code, then you're cheating. This is also one
of the reasons why I suggested re-implementing software building
blocks such as `memcpy`, `memset`, `malloc`, `free`, etc. in D as
another potential project for the Autumn of Code.
So, to keep this software rasterizer project within scope, I
suggest creating naive implementations of those functions in D
for now to stay true to spirit of the project (no dependencies,
everything in D), and "make the point". You can those software
building blocks in their own module, and let the user of the
software rasterizer library link it their own implementation if
they wish to deviate from the spirit of the proposal.
Mike
More information about the Digitalmars-d-announce
mailing list