-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix trans cleanups to be more flexible #6248
Comments
visited for bug triage, 16 july 2013. Looks like just a work tracking item, no need for nomination (at least not beyond what is already tracked in #3511). |
Curiously I was assigned this one too (triage email jul 15) -- dupe triage assignment? @pnkfelix can you send me your triage email so I can try to debug this? The triage script is not supposed to be doing it, but it's been reported a few times now. |
@graydon I'm not able to keep up with the same amount of triage every week (free time ebbs and flows), so sometimes I go through a backlog. I'll happily send you the emails I've gotten, but the collision here isn't necessarily a bug; at the start of this week, I had a backlog list with three weeks of triage but had only visited four bugs. In this case, this particular bug was assigned to me in last week's triage, not this week's. |
(while I understand that such collisions can be annoying, I assume its better for me to attempt to attempt to catch up with a backlog than to leave them untouched. . . not ideal of course, since it could lead to an overall unfair distribution of labor, but for the triaging task, I think each individual can decide how much effort they want to actually put in on each bug, and I think going through the backlog is likely to yield a fairer distribution (even if unfair) than leaving them untouched.) |
@graydon I will try to use the date of the triage email in the future when I mark the bugs, rather than the current date. That should make you able to tell if/when there is a real collision; sound reasonable? |
@pnkfelix ah no problem. I think this is what keeps happening (people drop a bug, pick it up next week but someone else has got it reassigned, then surprised to think they are colliding when really it's functioning as intended). If that's all we're seeing here, no worries. |
This caused a soundness bug in Servo. I nominate this to block 1.0. |
Do you have a small example which exposes the soundness bug? I'd want to confirm it before we decide to block on it. |
accepted for 1.0. Semantics of when dtors run puts it in backcompat-lang |
@nikomatsakis What do we still have to do here? |
I think ... this is done. |
…st_issue, r=flip1995 Replace `E-easy` with `good first issue` in `CONTRIBUTING.md` `E-easy` isn't used, so `good first issue` is more appropriate. changelog: none
Right now trans introduces cleanup scopes at semi-arbitrary times. This was fine when first designed but now it is user visible because it affects the maximum lifetimes of values and hence causes errors in the borrow checker.
It interacts particularly poorly with
@mut
freezes. For example, if I write:this will cause
some_map
to be frozen for the entire enclosing block rather than just thelet foo
statement, because trans would not introduce a cleanup scope there. I at least issue a rather cryptic warning in this case (citing this issue #). The workaround is to introduce a block or a method:We should permit cleanups after every expression exits. If we do this with the existing system, though, it'll cause a flood of basic blocks and jack up compilation times significantly. I want to modify the system so that rather than adding cleanups to a block scope, as we do now, you would instead associate cleanups with an expr id (in trans, I mean). The cleanup generation would thus be driven off the AST. I have added various FIXMEs in the code referencing this issue or #3511 where this might be relevant.
The text was updated successfully, but these errors were encountered: