[GSoC] Trying to find a good topic

Dan Printzell xwildn00bx at gmail.com
Thu Mar 21 19:50:49 UTC 2019


Hey everyone!
I have been meaning to send these questions earlier, but then 
school happened.

Small introduction about me:
I am Dan Printzell and I am currently studying for a master 
degree in computer
science in Sweden. I'm one of the maintainers for the D package 
on Arch Linux[1]
and I am also writing a operating system from scratch in D called 
PowerNex[2].
Development of it has slowed down due to school and bugs but I'm 
trying to get
out a new release this year.

I am planning on applying to GSoC but I'm having a bit of a 
problem trying to
decide on what I should do. My goal is to try and do something 
that I will
personally use in PowerNex and it is something that will help the 
whole D
community, this is why I am looking at dmd and betterC topics.

For dmd I am primarily interested in implementing DIP1014[3], as 
this will help
me with the development of PowerNex. In the past I had to 
workaround that this
feature was missing. From the outside is seems like this would 
not take too long
to implement, at least not a whole GSoC. But as I'm not too 
familiar with dmd's
source code, I only did a few small patches to allow dmd to 
support PowerNex as
a target[4].
So my question for this topic would be: How long time do you guys 
think that
this will take to implement, test and get it merged? Is a month 
about correct?

For the betterC topic I would be interested in implementing a 
bare metal D
runtime[5]. This is something I already have some experience as I 
have written a
betterC runtime for PowerNex, and I also used to update/maintain 
Adam D. Ruppe's
minimal.zip[6] when I used that as the runtime for PowerNex.
My question would be: What features should this runtime contain? 
 From the wiki I
see that basic libc functionality is requested, like the str* 
functions and
memory management. From what I can understand, the goals it to 
have a runtime
that can be used on multiple targeted environments, without any 
external
dependencies.

Other questions regarding this topic: how separate should it be 
from druntime?
Should this be a separate library, like a druntime-lite? or is 
the goal to allow
druntime to be used for a bare metal target? Also, should this 
only be betterC
or should it support regular D as well?


Depending on the implementation size of DIP1014 and the bare 
metal D runtime,
it seems like both could be implemented during a GSoC. But I am 
probably just
being time optimistic here.

Best Regards,
Dan Printzell

[1] https://www.archlinux.org/people/trusted-users/#wild
[2] https://github.com/PowerNex/PowerNex
[3] 
https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1014.md
[4] https://github.com/PowerNex/powernex-dmd I will probably 
submit some of
these upstream when PowerNex gets to a better, stable state
[5] https://wiki.dlang.org/GSOC_2019_Ideas#Baremetal_D_runtime
[6] http://arsdnet.net/dcode/minimal.zip



More information about the Digitalmars-d mailing list