-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Open
Labels
C-discussionCategory: Discussion or questions that doesn't represent real issues.Category: Discussion or questions that doesn't represent real issues.T-libsRelevant to the library team, which will review and decide on the PR/issue.Relevant to the library team, which will review and decide on the PR/issue.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.
Description
As previously suggested here: #84448 (comment)
Starting from #89926, std::time::Instant::duration_since()
effectively does the same thing as the later introduced std::time::Instant::saturating_duration_since()
(they are now literally identical). Given that this was a possibly breaking change that has already passed, I propose the latter function for deprecation and subsequent removal, as it currently creates the false ambiguity.
The only objection I see is that the current state of affairs allows to bring back panic!
in the future, as mentioned in a comment here:
https://doc.rust-lang.org/1.82.0/src/std/time.rs.html#143-144
Metadata
Metadata
Assignees
Labels
C-discussionCategory: Discussion or questions that doesn't represent real issues.Category: Discussion or questions that doesn't represent real issues.T-libsRelevant to the library team, which will review and decide on the PR/issue.Relevant to the library team, which will review and decide on the PR/issue.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
CodesInChaos commentedon Nov 29, 2024
I think the semantic difference between these is worth preserving:
When you call
duration_since
, you say "if later comes before earlier, that's a monotonicity bug". On the other hand it's fine to callsaturating_duration_since()
if you're not certain which timestamp is supposed to be earlier.Besides re-introducing the panic, it could be possible to introduce some kind of warning mechanism in the future. Either via specific callback that can be registed, or via a generic warning mechanism.
cher-nov commentedon Nov 30, 2024
I disagree. The problem here is that this semantic difference is not backed up or guaranteed by anything, and therefore can only be implied. Which in itself is not necessary, and therefore ephemeral - using
saturating_duration_since()
with an explanatory comment thus becomes indistinguishable fromduration_since()
.This will require a different signature anyway, and therefore a different function - say,
checked_duration_since()
.