tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (working)
[personal profile] tim
I don't have much to say about work today, except that I finished annotating (*all* the) FIXMEs! So almost every FIXME comment in the Rust repo has an issue tracker number associated with it. That means all the bugs are in one place and FIXMEs are more accessible for newcomers looking for their first bug to find. (Admittedly, some of the descriptions are pretty cryptic since I didn't always understand exactly what the comment meant, but I tried to label everything with at least one area label so at least people who are interested in a particular part of the compiler can find the open issues related to it.)

I didn't actually *fix* a lot of the FIXMEs except really minor ones (but oh, a minor refactor can be quite satisfying); the one interesting one I tried to fix, and ended up backing out of, involved two different functions corresponding to different stages of the compiler that were potentially evaluating the same constant expression more than once. Since it's a *constant* expression, that should never be necessary! In principle, it should have been possible to make the first function (in the typechecker) update a cache that the second function (mainly called from the code generator, though sometimes elsewhere) would consult. In practice, it turned out that due to the order that the typechecker checks items in (no particular order, since top-level items are mutually recursive), and the fact that the typechecker actually does call the second function too (indirectly), the second function might get called on a given item before the first. Making the second function call back into the first one was too complicated, so the change I ended up making was just to make the first function update the same cache that the second one uses. Now, the second one avoids recomputation sometimes, but it still might happen depending on the dependency graph of the program.

And in a week from now, all I'll do on bug triage day is triage all the new bugs since the last bug janitor looked at bugs, and fix any incoming bugs that look easy, since surely no one will add a new FIXME anymore without an issue number -- right? ;-)


tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Tim Chevalier

February 2017

   1 234
5 67891011
1213 1415161718

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags