Skip to content
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

Rollup of 8 pull requests #122803

Merged
merged 35 commits into from Mar 21, 2024
Merged

Rollup of 8 pull requests #122803

merged 35 commits into from Mar 21, 2024

Commits on Mar 19, 2024

  1. SeqCst->Relaxed in doc examples.

    SeqCst is unnecessary here.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    a2c74b8 View commit details
    Browse the repository at this point in the history
  2. SeqCst->Relaxed in panic_unwind/emcc.

    SeqCst is unnecessary here.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    5e4cc6f View commit details
    Browse the repository at this point in the history
  3. SeqCst->Relaxed for proc_macro bridge counter.

    Relaxed is enough here.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    bf3debe View commit details
    Browse the repository at this point in the history
  4. SeqCst->{Release,Acquire} for alloc error hook.

    SeqCst is unnecessary.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    904fef0 View commit details
    Browse the repository at this point in the history
  5. SeqCst->Relaxed for FIRST_PANIC.

    Relaxed is enough to make sure this `swap` results in `true` only once.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    9f25a04 View commit details
    Browse the repository at this point in the history
  6. SeqCst->{Release,Acquire} in xous mutex.

    No need for SeqCst. Release+Acquire is the right memory ordering for a
    mutex.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    eb96698 View commit details
    Browse the repository at this point in the history
  7. Use less restricted memory ordering in thread_parking::pthread.

    SeqCst is unnecessary here.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    516684c View commit details
    Browse the repository at this point in the history
  8. SeqCst->{Release,Acquire} in sys_common::thread_local_key.

    SeqCst is unnecessary here.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    e43aef0 View commit details
    Browse the repository at this point in the history
  9. SeqCst->{Release,Acquire} for wasm DropLock.

    SeqCst is unnecessary. Release+Acquire is the right ordering for a
    mutex.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    46bb073 View commit details
    Browse the repository at this point in the history
  10. SeqCst->Relaxed in pal::windows::pipe.

    Relaxed is enough to ensure fetch_add(1) returns each integer exactly
    once.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    60ad490 View commit details
    Browse the repository at this point in the history
  11. SeqCst->{Release,Acquire} for xous DropLock.

    SeqCst is unnecessary. Release+Acquire is the right ordering for a
    mutex.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    69a4d77 View commit details
    Browse the repository at this point in the history
  12. SeqCst->Relaxed for xous set_nonblocking.

    The SeqCst wasn't synchronizing with anything. Relaxed is enough.
    m-ou-se committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    5a594f7 View commit details
    Browse the repository at this point in the history
  13. use more accurate terminology

    rustc is just one tool/executable, even if at the center of the toolchain
    tshepang committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    75a5196 View commit details
    Browse the repository at this point in the history

Commits on Mar 20, 2024

  1. Configuration menu
    Copy the full SHA
    70206f0 View commit details
    Browse the repository at this point in the history
  2. coverage: Remove incorrect assertions from counter allocation

    These assertions detect situations where a BCB node would have both a physical
    counter and one or more in-edge counters/expressions.
    
    For most BCBs that situation would indicate an implementation bug. However,
    it's perfectly fine in the case of a BCB having an edge that loops back to
    itself.
    
    Given the complexity and risk involved in fixing the assertions, and the fact
    that nothing relies on them actually being true, this patch just removes them
    instead.
    Zalathar committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    85bec7a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2f21e4f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    92f668c View commit details
    Browse the repository at this point in the history
  5. Use less restricted memory ordering in xous::thread_local_key.

    SeqCst isn't necessary in any of these cases.
    m-ou-se committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    8b519f9 View commit details
    Browse the repository at this point in the history
  6. SeqCst->Relaxed in std::net::test.

    Relaxed is enough to have fetch_add(1) return each value only once
    (until it wraps around).
    m-ou-se committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    b45a725 View commit details
    Browse the repository at this point in the history
  7. SeqCst->Relaxed in thread local test.

    Relaxed memory ordering is fine because spawn()/join() already provides
    all the synchronization we need.
    m-ou-se committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    acddc55 View commit details
    Browse the repository at this point in the history
  8. SeqCst->Relaxed in condvar test.

    Relaxed is enough here. Synchronization is done by the mutex.
    m-ou-se committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    3462175 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    98e6655 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    a845246 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    19e0ea4 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    0dc006b View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    352587a View commit details
    Browse the repository at this point in the history
  14. compiletest: Introduce remove_and_create_dir_all() helper

    The code
    
        let _ = fs::remove_dir_all(&dir);
        create_dir_all(&dir).unwrap();
    
    is duplicated in 7 places. Let's introduce a helper.
    Enselic committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    c3cc6c1 View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2024

  1. Rollup merge of rust-lang#122545 - Alexendoo:unused-qualifications, r…

    …=petrochenkov
    
    Ignore paths from expansion in `unused_qualifications`
    
    If any of the path segments are from an expansion the lint is skipped currently, but a path from an expansion where all of the segments are passed in would not be. Doesn't seem that likely to occur but it could happen
    jhpratt committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    31adfd7 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#122729 - m-ou-se:relax, r=Amanieu

    Relax SeqCst ordering in standard library.
    
    Every single SeqCst in the standard library is unnecessary. In all cases, Relaxed or Release+Acquire was sufficient.
    
    As I [wrote](https://marabos.nl/atomics/memory-ordering.html#common-misconceptions) in my book on atomics:
    
    > [..] when reading code, SeqCst basically tells the reader: "this operation depends on the total order of every single SeqCst operation in the program," which is an incredibly far-reaching claim. The same code would likely be easier to review and verify if it used weaker memory ordering instead, if possible. For example, Release effectively tells the reader: "this relates to an acquire operation on the same variable," which involves far fewer considerations when forming an understanding of the code.
    >
    > It is advisable to see SeqCst as a warning sign. Seeing it in the wild often means that either something complicated is going on, or simply that the author did not take the time to analyze their memory ordering related assumptions, both of which are reasons for extra scrutiny.
    
    r? ````@Amanieu```` ````@joboet````
    jhpratt committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    43ad753 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#122740 - tshepang:patch-1, r=clubby789

    use more accurate terminology
    
    rustc is just one tool/executable, even if at the center of the toolchain
    jhpratt committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    d53df5a View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#122749 - aliemjay:region-err, r=compiler-er…

    …rors
    
    make `type_flags(ReError) & HAS_ERROR`
    
    Self-explanatory. `TypeVisitableExt::references_error(ReError)` incorrectly returned `false`.
    jhpratt committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    4e792df View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#122764 - Zalathar:loopy, r=oli-obk

    coverage: Remove incorrect assertions from counter allocation
    
    These assertions detect situations where a BCB node (in the coverage graph) would have both a physical counter and one or more in-edge counters/expressions.
    
    For most BCBs that situation would indicate an implementation bug. However, it's perfectly fine in the case of a BCB having an edge that loops back to itself.
    
    Given the complexity and risk involved in fixing the assertions, and the fact that nothing relies on them actually being true, this patch just removes them instead.
    
    Fixes rust-lang#122738.
    
    `````@rustbot````` label +A-code-coverage
    jhpratt committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    c6a4922 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#122765 - workingjubilee:test-for-vec-handli…

    …ng-usize-max, r=Nilstrieb
    
    Add `usize::MAX` arg tests for Vec
    
    Tests to prevent recurrence of the UB from the rust-lang#122760 issue.
    
    I skipped the `with_capacity`, `drain`, `reserve`, etc. APIs because they actually had a good assortment of tests earlier in the same file.
    
    r? Nilstrieb
    jhpratt committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    7a5ffcc View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    afdbad8 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#122786 - Enselic:remove_and_create_dir_all,…

    … r=onur-ozkan
    
    compiletest: Introduce `remove_and_create_dir_all()` helper
    
    The code
    
        let _ = fs::remove_dir_all(&dir);
        create_dir_all(&dir).unwrap();
    
    is duplicated in 7 places. Let's introduce a helper.
    jhpratt committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    f25397a View commit details
    Browse the repository at this point in the history