This week we saw more bug fixing driven by trying to compile libcore 1.29.0, which exposed bugs in our parser and expansion pass. Concerning our milestone, we merged some more pieces to close out the name resolution pass for this and began work on the type-checking phase. The complicated part of const generics is how to bind the arguments to their respective types; in principle, we should be able to reuse our existing generic argument substitution code, which should solve this.
In terms of google summer of code, Faisal Abbas has ported enough code from the CPP constexpr engine so we can support constant evaluation of function calls with arguments. However, the more we port of the CPP constexpr evaluation, the more we realise we will need to strip it back since during const evaluation, the CPP is still trying to synthesise code which complicates this process, especially for us. This code is yet to be merged into our main branch, but we will focus on this in August.
As mentioned last week, we are focusing on keeping a high pace throughout July and August as not to be too affected by the many exciting conferences we’ll attend in September 🙂 As a reminder, we will be at the Linux Plumbers Conference, GNU Cauldron and Kangrejos. If you’re there as well, feel free to come to chat with us about the project!
Typechecking of default const generic parameters PR1373