During the initial half of the twelfth week, I focused intently on refining my recently constructed parser. In my previous development update, I shared that my primary approach aimed to minimize passes over the code while addressing as many modifications as feasible. Even though this strategy successfully passed the tests, it inadvertently reduced code clarity, making the distinct roles within sections of the code ambiguous.
Given this, I pivoted towards a process where the parser solely handles the transformation of the current text, delegating the resolution of includes and imports to a separate pass occurring between the parser and the assembler. Not only does this provide a clearer division within the code, but it also offers a platform for potential future optimizations.
Admittedly, this shift might impact parser performance slightly. However, given the nature of ETK—an assembly language with a minimalistic feature set—the trade-off appears negligible. Unlike more intricate high-level languages, ETK doesn't deal with complexities like types, inheritance, or other elements that might compel us to adopt more intensive performance measures.
Upon completing the adjustments, I submitted the PR for review. It's currently being reviewed by Sam Wilson, one of the project's leading contributors. For those interested in tracking the PR's discussion, proposed changes, and overall progression, you can keep check it here.
Wrapping up the week, I dove into ETK's open issues, identifying those that the new version could potentially resolve. Beyond issue 124—the main reason I started this whole rewrite—I found that issue 108 could also be fixed in case my proposal receive the green light.
In tandem with this, I seized the opportunity to gain deeper insights into ETK's forthcoming changes, curating a concise list of enhancements that, while quick to implement, promise to bolster the language's robustness—like issue 106. My overarching mission? To champion ETK's adoption, ensuring we're on a trajectory towards success.
Looking ahead, my goals for the upcoming week include: