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 #122778

Closed
wants to merge 36 commits into from

Commits on Mar 18, 2024

  1. Configuration menu
    Copy the full SHA
    5fd4a84 View commit details
    Browse the repository at this point in the history

Commits on Mar 19, 2024

  1. Report arm intersections

    Nadrieril committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    3dfd0fd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e4487ad View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d697dd4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    45cb9d8 View commit details
    Browse the repository at this point in the history
  5. Use the default file permissions when writing

    static libraries with ar_archive_writer
    
    Fixes rust-lang#107495
    bjorn3 committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    2a805f5 View commit details
    Browse the repository at this point in the history
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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. Rollup merge of rust-lang#122494 - joboet:simplify_key_tls, r=m-ou-se

    Simplify key-based thread locals
    
    This PR simplifies key-based thread-locals by:
    * unifying the macro expansion of `const` and non-`const` initializers
    * reducing the amount of code in the expansion
    * simply reallocating on recursive initialization instead of going through `LazyKeyInner`
    * replacing `catch_unwind` with the shared `abort_on_dtor_unwind`
    
    It does not change the initialization behaviour described in rust-lang#110897.
    GuillaumeGomez committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    e4037f1 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#122644 - Nadrieril:complexity-tests, r=comp…

    …iler-errors
    
    pattern analysis: add a custom test harness
    
    There are two features of the pattern analysis code that are hard to test: the newly-added pattern complexity limit, and the computation of arm intersections. This PR adds some crate-specific tests for that, including an unmaintainable but pretty macro to help construct patterns.
    
    r? ``@compiler-errors``
    GuillaumeGomez committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    fd0feaa View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#122723 - bjorn3:archive_writer_fixes, r=nne…

    …thercote
    
    Use same file permissions for ar_archive_writer as the LLVM archive writer
    
    This is required to switch to ar_archive_writer in the future without regressions. In addition to this PR support for reading thin archives needs to be added (rust-lang#107407) to fix all known regressions.
    
    Fixes rust-lang#107495
    GuillaumeGomez committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    04fae8c View commit details
    Browse the repository at this point in the history
  13. 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`
    GuillaumeGomez committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    87aac9d View commit details
    Browse the repository at this point in the history
  14. 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
    GuillaumeGomez committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    319c33f View commit details
    Browse the repository at this point in the history
  15. 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
    GuillaumeGomez committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    de64fd9 View commit details
    Browse the repository at this point in the history
  16. 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
    GuillaumeGomez committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    b2d78a9 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    dd0d8cd View commit details
    Browse the repository at this point in the history