Dear world (including my co-workers): please remind me to not work remote ever if I can avoid it! At least not until rustc gets significantly faster. The reason is that when I have two laptops, I can work on something else while I'm waiting for a build, whereas with only one, I get to... stare into space for 5-ish minutes every time I make a change. "I can just work on the train" only works if I bring two laptops with me. And that just gets awkward. (Yes, I worked all day today on a train going from Los Angeles to San José. Actually, I'm still not even in Paso Robles yet. We have slow trains in my country.)
With that out of my system, today after finishing bug triage (not very eventful; I learned that in the 1500-2000 range, there are a lot of legitimately hard and unfixed bugs, many of which are more like feature requests but not all) I wanted to fix as many open ICEs as I can. There aren't that many of them. Issue 3091 was pretty quick. I just had to make region pointers not a scalar type (they're really not scalar, since they have sub-structure that's visible in the language) and then change all the code that was casting pointers to region pointers to, well, not do that. (This happened only once in the core libs and in a few test cases.) As with so many things (well, not really that many things, I hope) the solution was to introduce library functions that wrap unsafe::reinterpret_cast (which is the equivalent of Haskell's unsafeCoerce). I'm quite proud of the name I came up with for the function that takes an &T to a *T: assimilate (because it makes the pointer forget its region).
( Cut for length )
With that out of my system, today after finishing bug triage (not very eventful; I learned that in the 1500-2000 range, there are a lot of legitimately hard and unfixed bugs, many of which are more like feature requests but not all) I wanted to fix as many open ICEs as I can. There aren't that many of them. Issue 3091 was pretty quick. I just had to make region pointers not a scalar type (they're really not scalar, since they have sub-structure that's visible in the language) and then change all the code that was casting pointers to region pointers to, well, not do that. (This happened only once in the core libs and in a few test cases.) As with so many things (well, not really that many things, I hope) the solution was to introduce library functions that wrap unsafe::reinterpret_cast (which is the equivalent of Haskell's unsafeCoerce). I'm quite proud of the name I came up with for the function that takes an &T to a *T: assimilate (because it makes the pointer forget its region).
( Cut for length )