GithubHelp home page GithubHelp logo

Comments (13)

RalfJung avatar RalfJung commented on May 25, 2024 2

Yes, we'll definitely use crater on each PR that could break something, and we'll get T-lang involved in the discussion should there be notable amounts of regressions. (The PRs we landed so far had 0 stable regressions in crater.)

from lang-team.

rfcbot avatar rfcbot commented on May 25, 2024 1

🔔 This is now entering its final comment period, as per the review above. 🔔

psst @joshtriplett, I wasn't able to add the final-comment-period label, please do so.

from lang-team.

rustbot avatar rustbot commented on May 25, 2024

This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.

from lang-team.

joshtriplett avatar joshtriplett commented on May 25, 2024

We discussed this in today's @rust-lang/lang meeting. Consensus was that we're in favor of this, as long as it doesn't cause serious breakage. The backup plans give more confidence in that approach.

@RalfJung Have you considered a future-incompatibility warning here, continuing to do full promotion for now but issuing future-incompat warnings for such cases?

We're assuming the work described here would happen under the auspices of the const-eval group.

@rfcbot merge

from lang-team.

rfcbot avatar rfcbot commented on May 25, 2024

Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:

No concerns currently listed.

Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for info about what commands tagged team members can give me.

from lang-team.

oli-obk avatar oli-obk commented on May 25, 2024

Have you considered a future-incompatibility warning here, continuing to do full promotion for now but issuing future-incompat warnings for such cases?

That's enormously hard to do. The root problem is that we don't know it's going to be a problem for the user until mir borrowck, but the user didn't request this to happen. So we can't do a future incompat lint on all cases that stop happening, because in many many cases making it not have the 'static lifetime has no effects on the compilation success of the code. As an example:

let x = &some_expr;

will keep compiling no matter whether some_expr stops getting promoted, but

let x: &'static _ = &some_expr;

will fail to compile when some_expr stops getting promoted.

While it would likely be possible to adjust mir borrowck to be able to kind of do both analyses at the same time and only emit a future incompat warning in case of some marker, I don't know if this can be done in a reasonable amount of work and complexity.

from lang-team.

nikomatsakis avatar nikomatsakis commented on May 25, 2024

@rfcbot reviewed

from lang-team.

cramertj avatar cramertj commented on May 25, 2024

Checking my box assuming that this change will be paired with a crater run to check for major breakage / fallout.

from lang-team.

nikomatsakis avatar nikomatsakis commented on May 25, 2024

Pending PR: rust-lang/rust#77526

I raised the question on Zulip of whether we feel like an RFC is appropriate here. I do think that this is an area of "language design" where clarification would be useful, though I'm not sure if I feel the need for that to hold up landing PRs like rust-lang/rust#77526.

from lang-team.

nikomatsakis avatar nikomatsakis commented on May 25, 2024

We discussed this in our lang-team meeting today. @RalfJung the sense was that we do feel like an RFC would be great here, even though it need not block implementation PRs. The point of the RFC would be to

  • supercede the existing RFC on promotion and document the newer, more conservative model
  • combined with pointing out the explicit syntax that can now be used
  • given that we hope to achieve this transition without the use of editions, the RFC wouldn't have to cover that, though if editions are ultimately required it'd be a nice place to document what's going on

In other words, the goal of the RFC is to advertise and document the overall plan in a central place. We wouldn't anticipate a lot of opposition given the soundness implications and problems with the current model, though of course it may always happen that there are useful suggestions or other considerations that arise in the course of RFC discussion.

from lang-team.

rfcbot avatar rfcbot commented on May 25, 2024

The final comment period, with a disposition to merge, as per the review above, is now complete.

As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed.

The RFC will be merged soon.

from lang-team.

nikomatsakis avatar nikomatsakis commented on May 25, 2024

FCP has completed. I'm going to close the issue for now, @RalfJung we should talk about the idea of drafting an RFC or other document as described above.

from lang-team.

RalfJung avatar RalfJung commented on May 25, 2024

I did an RFC draft: https://github.com/RalfJung/rfcs/blob/infallible-promotion/text/0000-infallible-promotion.md

However, the "guide-level" and "reference-level" explanation are still mostly stubs. I have no idea what to put there. This is also taking waaay more time than I thought it would, which is kind of draining, so I'd really appreciate some help here.

Also see this Zulip thread.

from lang-team.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.