[SAoC] "Improving DMD as a Library" project thread

Mihaela Chirea chireamihaela99 at gmail.com
Mon Sep 14 12:47:42 UTC 2020


Hello!

My name is Mihaela Chirea and I am a 4th year Computer 
Engineering student at Politehnica University of Bucharest.

My interest in programming languages lead me to attending a D 
workshop at Ideas and Projects Workshop in 2019 and D Summer 
School this year, both held by Eduard Staniloiu and Razvan Nitu. 
Topics like meta-programming and design by introspection made me 
curious about how these concepts were implemented, thus 
increasing my interest in compilers.

For this year's edition of SAoC I will be working on improving 
dmd as a library, mainly by cleaning up the AST nodes by moving 
the semantic elements in more suitable places and creating new 
visitors when needed.
After studying the current state of dmd and identifying the parts 
I will be working on, I have decided on following this plan:

- Getting used to the structure of the compiler by working on the 
nodes that don't contain that much semantic information:

Milestone 1:
     - aliasthis.d
     - attrib.d
     - statement.d
     - aggregate.d
     - cond.d
     - staticcond.d
     - nspace.d

- Work on the files where semantic elements either appear often, 
or the functions in which they appear are used in many other 
places and therefore more files would need changes

Milestone 2:
     - mtype.d
     - dstruct.d
     - dclass.d
     - denum.d
     - dimport.d

Milestone 3:
     - dsymbol.d
     - expression.d
     - dmodule.d

Milestone 4
     - declaration.d
     - func.d
     - dtemplate.d

However, small changes to this plan may be necessary since other 
changes to the compiler may raise unexpected issues for this 
project.

For as much as time allows, and even after the end of this event, 
I would also work on creating a nice compiler interface, which 
would become much easier after this refactoring step.
I will be posting weekly updates regarding my progress on this 
project.

Thanks!
Mihaela


More information about the Digitalmars-d mailing list