October 06

Hi all,

This past week, I worked on two issues.

  1. function redeclaration in function scope was hitting compile time errors.

the initial redeclaration implementations was only handling it for tagged types in
function scope. it had to be extended for functions and variable decls.

Link to merged PR: https://github.com/dlang/dmd/pull/21924

  1. typeof initializer expressions were also entering into circular typeof definition errors.

this was a little strange error because It wasn't for globals but only locals. after a deep and thorough inspection, I realized that after semantics were completed for local symbols, the semanticdone flag and was retriggering expression semantics in typetypeof. setting it fixed it.

link to merged PR: https://github.com/dlang/dmd/pull/21934

I also reported new issues. I randomly test simple existing code and inspect what is happening after compilation, during linking, etc. I discovered redeclaration of global variables overpopulated the symbol table.

in foo.c

 int a;
 int a;

compile and inspect object file

_a appears twice. and that's not supposed to be so. just one representation of it in symbol table.

link to issue: https://github.com/dlang/dmd/issues/21925. hopefully I fix it this week.

next target. there are little little issues that I want to finish fixing by the end of this week.
Then in my second month, I look at all issues involving import paths and also setting up real projects for testing in dub and then continue the fixes in that direction as desired by the community.

Thanks!