profile
viewpoint
scottmcm Pacific Northwest, USA This is a personal account. My actions and opinions are my own, and are not taken on behalf of my employer.

scottmcm/rev_slice 5

A simple alternative to negative indexing on rust slices

scottmcm/simd-trick 5

A crate to trick the optimizer into generating SIMD instructions.

scottmcm/pawn-rs 3

An unchecked borrow-like operation for Cells.

scottmcm/rust 2

A safe, concurrent, practical language.

scottmcm/base85 1

A library for Base85 encoding as described in RFC1924

scottmcm/cargo 1

FORK OF The Rust package manager

scottmcm/compiler-builtins 1

Porting `compiler-rt` intrinsics to Rust

scottmcm/edition-guide 1

A guide to changes between various editions of Rust

scottmcm/font-andika 1

A font family designed especially for literacy use, taking into account the needs of beginning readers

pull request commentrust-lang/rust

Remove ExtendElement, ExtendWith, extend_with

@bors r+ rollup

GrishaVar

comment created time in a day

PullRequestReviewEvent

Pull request review commentrust-lang/rust

Promote unchecked integer math to MIR `BinOp`s

 impl<'a, 'tcx> Visitor<'tcx> for TypeChecker<'a, 'tcx> {                             );                         }                     }+                    AddUnchecked | SubUnchecked | MulUnchecked => {

I pulled out the "equal types" checks to a shared check, and used that to merge some of the arms.

@rustbot ready

scottmcm

comment created time in a day

push eventscottmcm/rust

Scott McMurray

commit sha 33be521c0580eb4c6d1fb8cd022c931c98aa4f15

Dedup some type checks in the MIR validator

view details

push time in a day

pull request commentrust-lang/rust

Remove ExtendElement, ExtendWith, extend_with

This is almost certainly fine, but let's check just in case @bors try @rust-timer queue

GrishaVar

comment created time in a day

Pull request review commentrust-lang/rust

Use `load`+`store` instead of `memcpy` for small integer arrays

 pub fn short_integer_map(x: [u32; 8]) -> [u32; 8] { // CHECK-LABEL: @short_integer_zip_map #[no_mangle] pub fn short_integer_zip_map(x: [u32; 8], y: [u32; 8]) -> [u32; 8] {-    // CHECK: %[[A:.+]] = load <8 x i32>-    // CHECK: %[[B:.+]] = load <8 x i32>-    // CHECK: sub <8 x i32> %[[B]], %[[A]]+    // CHECK: %[[A:.+]] = load <8 x i32>, ptr %x, align 4+    // CHECK: %[[B:.+]] = load <8 x i32>, ptr %y, align 4+    // CHECK: sub <8 x i32> %[[A]], %[[B]]

Rebased.

@rustbot ready

scottmcm

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentrust-lang/rust

Use MIR's `Offset` for pointer `add` too

 pub fn check_intrinsic_type(tcx: TyCtxt<'_>, it: &hir::ForeignItem<'_>) {              sym::type_name => (1, Vec::new(), tcx.mk_static_str()),             sym::type_id => (1, Vec::new(), tcx.types.u64),-            sym::offset | sym::arith_offset => (+            sym::offset => (2, vec![param(0), param(1)], param(0)),+            sym::arith_offset => (

@WaffleLapkin The weird thing about byte_add is that it works on fat pointers. So it ends up quite a bit more complex than offset. I'm not sure if that's worth doing as an intrinsic or not. For the data part of it, cast-then-offset-then-cast of course works fine.

As for sub, maybe we should start by changing it from wrapping_neg to unchecked_neg, especially after #112238...

scottmcm

comment created time in 2 days

PullRequestReviewEvent

push eventscottmcm/rust

overlookmotel

commit sha 48e812687e25955d62b1fb5e19f2f2ae4e728710

Fix docs for `alloc::realloc` Fixes #108546

view details

Ed Page

commit sha 8d2beb50c2b228f4bd6f8e2d81d82c9e1f5e5ba2

Allow access to `OsStr` bytes `OsStr` has historically kept its implementation details private out of concern for locking us into a specific encoding on Windows. This is an alternative to #95290 which proposed specifying the encoding on Windows. Instead, this only specifies that for cross-platform code, `OsStr`'s encoding is a superset of UTF-8 and defines rules for safely interacting with it At minimum, this can greatly simplify the `os_str_bytes` crate and every arg parser that interacts with `OsStr` directly (which is most of those that support invalid UTF-8).

view details

WANG Rui

commit sha 46252ef401c4134a125f4623a450a5d37079a7a8

asm: Stabilize loongarch64

view details

Matt Palmer

commit sha 3e71f4dd2306cc8b5f04f55f8e587bc020303573

Extra context for unreachable_pub lint (fixes #110922) While experienced Rustaceans no doubt know this sort of thing already, as more of a newbie I had trouble understanding why I was triggering the lint. Hopefully this expanded explanation saves someone else some head-scratching.

view details

bohan

commit sha 272dc5a6d5967c0816564894b4fd86835a860d97

fix(parse): return unpected when current token is EOF

view details

Michael Goulet

commit sha c5604cd0b58f1f2c527ae76dac75a94c7dd23824

Don't use can_eq in derive suggestion for missing method

view details

Ed Page

commit sha 7f1a6cd421d699aa249a282d7b5b7a8f486e3b01

refactor: Remove redundant, private OsStr::bytes

view details

Ed Page

commit sha 7b9290384e88e6960bc574e83219df50df5fe4e1

refactor: Remove bespoke from_os_str_bytes_unchecked

view details

Centri3

commit sha 8c191add8788cb13ac988021617f673709babb16

the implementation!!

view details

Centri3

commit sha c5a914b181d4f4c06354f7afd4b66f346a92f8a8

check msrv

view details

Catherine

commit sha f6a0437e74494b3f887286540333abfc691055b4

Update clippy_lints/src/casts/ptr_cast_constness.rs Co-authored-by: llogiq <bogusandre@gmail.com>

view details

ozkanonur

commit sha 548978f1d025e9b937cdedabe3a86da70789dbdc

add lib module to `src/tool/compiletest` Signed-off-by: ozkanonur <work@onurozkan.dev>

view details

Centri3

commit sha 4ff1cd365df96c4d0aef5b899ac248ff11799c36

add description and rename msrv tests

view details

y21

commit sha 6d2ba95d0099f1a656da44c7f868be0074e5b5e1

suggest `Option::as_deref(_mut)`

view details

Finn Bear

commit sha f0c9c1eb19864d95e6348d79c54fa4a412019f3a

Use an unbounded lifetime in String::leak.

view details

Centri3

commit sha 97467e4aa39d20273014195bb7362d6bace047ea

change `clippy::version` to 1.71.0

view details

Ed Page

commit sha f9aaad0939e1507990f02676e7f70b88a85a9aea

docs: Add examples of OsStr safety violation

view details

Ed Page

commit sha 5d177afe9591afc0e04b0d9cdfffa79c27c8af64

docs: Clarify OsStr is self-synchronizing

view details

est31

commit sha 83a4b0987f54afbfaad8fed61882231a6632bc71

Fix formatting of if let chain

view details

Camille GILLOT

commit sha f52db3ecaa47167137cdbe48bd7d56bb5f9c9d3c

Stop confusing specification levels when computing expectations.

view details

push time in 2 days

push eventscottmcm/rust

Michael Goulet

commit sha c5604cd0b58f1f2c527ae76dac75a94c7dd23824

Don't use can_eq in derive suggestion for missing method

view details

y21

commit sha 6d2ba95d0099f1a656da44c7f868be0074e5b5e1

suggest `Option::as_deref(_mut)`

view details

Colin Walters

commit sha 440912b74f5ac063d8993741120a519bed3882f2

Option::map_or_else: Show an example of integrating with Result Moving this from https://github.com/rust-lang/libs-team/issues/59 where an API addition was rejected. But I think it's valuable to add this example to the documentation at least.

view details

Oli Scherer

commit sha 0f5ac8372bff11744ae0965c9833f558d774a6d0

Hide full miri command line in `./miri run-dep`

view details

bors

commit sha 053edf46bb4a2adcd8c2c4649bed38b9e4a978cd

Auto merge of #2901 - oli-obk:noisy, r=RalfJung Hide full miri command line in `./miri run-dep` fixes #2443

view details

Pietro Albini

commit sha 5fdeae610db96d048090b1efaf6b7a2f54aeda12

codegen: allow extra attributes to functions when panic=abort When compiling with panic=abort (or using a target that doesn't have unwinding support), the compiler adds the "nounwind" attribute to functions. This results in a different LLVM IR, which results in a #NNN added after the function name: tail call void @bar() #13, !dbg !467 attributes #13 = { nounwind } ...instead of: tail call void @bar(), !dbg !467 This commit changes the matchers to swallow the #NNN, as it's not needed for these specific tests.

view details

Pietro Albini

commit sha dc1ed9ddd7d15dfe75453b68bc1da8ae32dbe1f7

codegen: allow the dso_local attribute The attribute is injected into most items when static relocation is enabled in a target.

view details

Pietro Albini

commit sha 292bc548c882686f40886934f2055f3440a87eca

codegen: do not require the uwtables attribute The attribute is not emitted on targets without unwinding tables.

view details

Pietro Albini

commit sha 5f0b677b86204c4cd98cf51b33b7224340406719

codegen: add needs-unwind to tests that require it

view details

clubby789

commit sha ec33e6414cc39a34d2c49f6efdf933ca21a0136c

bootstrap: Make `clean` respect `dry-run`

view details

Ben Kimock

commit sha 9ffd3f941081b37f5c34afbaf62eb87af9b19b9d

Preparing for merge from rustc

view details

Ben Kimock

commit sha ad60608444c9e4c0647b2823f261c7d2359f060d

Merge from rustc

view details

Ben Kimock

commit sha 5a54d34ff71f9dcaa10bc701627e6982135b9254

rustup

view details

bors

commit sha 3b181ac422c02e1c0f8452bf32e01171710c3c48

Auto merge of #2902 - saethlin:rustup, r=RalfJung rustup I don't know what happened here: https://github.com/rust-lang/rust/commit/efb9c30ed2bef28812f47914dea3ae4f703e6870#r115119947 that commit broke our tests I think. I don't know why it didn't break on the rustc side.

view details

jyn

commit sha 8458c6adb131345dbf0b48e23c8d220dc41c19fd

Add other workspaces to `linkedProjects` in `rust_analyzer_settings.json` This makes go-to-definition, etc. work in cg_clif, cg_gcc, rust-analyzer, and src/tools/x.

view details

Neven Villani

commit sha cb75f21b05cafd65f0c060735c635ac8b97e7413

more precise filtering of events impl of is_relevant on transitions makes for much less noise in error messages Co-authored-by: Ralf Jung <post@ralfj.de>

view details

sladynnunes

commit sha c5e5d6958c62c8dd3623cacc03b43453e54e2724

Migrate to Askama

view details

Ben Kimock

commit sha c5013ce996ff018d8c1de89c6505a76d2a83cfe8

Preparing for merge from rustc

view details

Ben Kimock

commit sha fe69acfdf0592e15bc0df3caffd922748d0ab70e

Merge from rustc

view details

bors

commit sha 7bef7b7527f1bc6a25fa2ba9d476aca757efe35f

Auto merge of #2903 - saethlin:rustup, r=RalfJung rustup

view details

push time in 2 days

pull request commentrust-lang/rust

Remove ExtendElement, ExtendWith, extend_with

A bunch of these could be extend_trusted, but that shouldn't affect perf -- specialization will go there anyway -- so let's see what it has to say

@bors try @rust-timer queue

GrishaVar

comment created time in 2 days

pull request commentrust-lang/rust

Promote unchecked integer math to MIR `BinOp`s

Thanks, Ralf! The MIRI tests were very helpful in ensuring I got everything exactly the same here 🙂

scottmcm

comment created time in 2 days

Pull request review commentrust-lang/rust

Promote unchecked integer math to MIR `BinOp`s

 fn codegen_regular_intrinsic_call<'tcx>(             ret.write_cvalue(fx, CValue::by_val(align, usize_layout));         } -        sym::unchecked_add-        | sym::unchecked_sub-        | sym::unchecked_mul-        | sym::exact_div-        | sym::unchecked_shl-        | sym::unchecked_shr => {+        sym::exact_div => {

It's pretty rare on its own: looks like it's in the middle of align_offset, which is already pretty complicated, and as_chunks_unchecked, which is unstable, only.

The place it comes in where it's really important is in sub_ptr, but that's its own intrinsic, so the exact_div doesn't show up in MIR at all.

So I think I'd like to leave it out of this PR, so it stays focused on just the "overflow is UB" ones.

scottmcm

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentrust-lang/rust

Promote unchecked integer math to MIR `BinOp`s

 impl<'a, 'tcx> Visitor<'tcx> for TypeChecker<'a, 'tcx> {                             );                         }                     }+                    AddUnchecked | SubUnchecked | MulUnchecked => {

I split it out because the *Unchecked ones don't work on floats, which the previous branch accepts.

scottmcm

comment created time in 2 days

PullRequestReviewEvent

pull request commentrust-lang/rust

Only check inlining counter after recursing.

Looks great! Simple code change, pure win on instructions, helps a known case, and has roughly neutral overall binary size impact (which is probably usually the case for inlining tweaks, and just needs to not be obviously worse on size).

@bors r+

cjgillot

comment created time in 2 days

PR opened rust-lang/rust

Promote unchecked integer math to MIR `BinOp`s

So slice indexing by a range gets down to one basic block, for example.

r? cjgillot

+442 -319

0 comment

45 changed files

pr created time in 3 days

create barnchscottmcm/rust

branch : mir-add-unchecked

created branch time in 3 days

push eventscottmcm/rust

Matt Palmer

commit sha 3e71f4dd2306cc8b5f04f55f8e587bc020303573

Extra context for unreachable_pub lint (fixes #110922) While experienced Rustaceans no doubt know this sort of thing already, as more of a newbie I had trouble understanding why I was triggering the lint. Hopefully this expanded explanation saves someone else some head-scratching.

view details

Centri3

commit sha 8c191add8788cb13ac988021617f673709babb16

the implementation!!

view details

Centri3

commit sha c5a914b181d4f4c06354f7afd4b66f346a92f8a8

check msrv

view details

Catherine

commit sha f6a0437e74494b3f887286540333abfc691055b4

Update clippy_lints/src/casts/ptr_cast_constness.rs Co-authored-by: llogiq <bogusandre@gmail.com>

view details

Centri3

commit sha 4ff1cd365df96c4d0aef5b899ac248ff11799c36

add description and rename msrv tests

view details

Centri3

commit sha 97467e4aa39d20273014195bb7362d6bace047ea

change `clippy::version` to 1.71.0

view details

est31

commit sha 83a4b0987f54afbfaad8fed61882231a6632bc71

Fix formatting of if let chain

view details

est31

commit sha ef38662d044714f55c87a12571bd30da51c199aa

Some improvements to the manual_let_else lint suggestions * Replace variables inside | patterns in the if let: let v = if let V::A(v) | V::B(v) = v { v } else ... * Support nested patterns: let v = if let Ok(Ok(Ok(v))) = v { v } else ... * Support tuple structs with more than one arg: let v = V::W(v, _) = v { v } else ... * Correctly handle .. in tuple struct patterns: let v = V::X(v, ..) = v { v } else ...

view details

Philipp Krones

commit sha b76b0aeb63948fecca6d6f603f47c6648059048a

Merge commit '435a8ad86c7a33bd7ffb91c59039943408d3b6aa' into clippyup

view details

jyn

commit sha cfe8e8561c2cc31ff51a298bc1dfd0636eaffa13

Make `x test --dry-run` less verbose Previously, this would print a message for each doctest, which was quite verbose: ``` doc tests for: /home/jyn/src/rust/src/doc/rustc/src/exploit-mitigations.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/instrument-coverage.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/json.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/linker-plugin-lto.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/lints/groups.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/lints/index.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/lints/levels.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/aarch64-apple-ios-sim.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/aarch64-nintendo-switch-freestanding.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/apple-watchos.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armeb-unknown-linux-gnueabi.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv4t-none-eabi.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv5te-none-eabi.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv6k-nintendo-3ds.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv7-sony-vita-newlibeabihf.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabi.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabihf.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/esp-idf.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/fuchsia.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/kmc-solid.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/loongarch-linux.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/m68k-unknown-linux-gnu.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/mipsel-sony-psx.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/nto-qnx.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/openbsd.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/openharmony.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/riscv32imac-unknown-xous-elf.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/unknown-uefi.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/wasm64-unknown-unknown.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/x86_64-fortanix-unknown-sgx.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/platform-support/x86_64-unknown-none.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/profile-guided-optimization.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/target-tier-policy.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/targets/custom.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/targets/index.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/tests/index.md doc tests for: /home/jyn/src/rust/src/doc/rustc/src/what-is-rustc.md ```

view details

Urgau

commit sha 9b97ae98f83c425ce62fba4a8d6ffe353d530d9d

Rename `drop_copy` lint to `dropping_copy_types`

view details

Urgau

commit sha 234f2b67cb7435734c697517eac2afa154b35b0e

Rename `forget_copy` lint to `forgetting_copy_types`

view details

Urgau

commit sha fdbfe0e249b5d1eb4b4fb508e88bedd505ce0817

Rename `drop_ref` lint to `dropping_references`

view details

Urgau

commit sha 915ff71b7c1448e822889d15ecd6b25c26ac2ed4

Rename `forget_ref` lint to `forgetting_references`

view details

y21

commit sha 191a901a8d29d292aa20b1161e703f76a4690595

consider array initializer for `large_stack_arrays`

view details

y21

commit sha e9a98d925f8fa3a95e62034954d090e7d142022a

add test case for #10741

view details

y21

commit sha 1e73a9eb4be45092fdd5b76cc50db00970c852f7

do not consider `await` in nested `async` blocks

view details

y21

commit sha 3eeeaa2bc7bff6b9f11dfe99889a4627904de221

remove old span_lint

view details

Yuri Astrakhan

commit sha 1c277d1be896ad5499a464d92a3d427488df470e

Unit tests highlighting unsafe match issue These unit tests generate non-compilable code. I did NOT `bless` them on purpose because the stderr output is not good. I'm surprised we don't auto-compile the suggestions here - is this something that can be easily enabled? See #10808

view details

Yuri Astrakhan

commit sha e92614818879f24994c3890dcb958b8baa2d0678

Fix unsafe blocks

view details

push time in 3 days

pull request commentrust-lang/rust

Specialize count for range iterators

Hmm, it should be someone on the review rotation, so let's say r? m-ou-se

clarfonthey

comment created time in 3 days

pull request commentrust-lang/rust

Specialize count for range iterators

Since this is an observable change, I'm going to flip it over to r? rust-lang/libs-api

For example, today

pub fn range_count_demo() -> usize { (0..u128::MAX).count() }

just returns usize::MAX, rather than panics

; playground::range_count_demo
; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable
define noundef i64 @_ZN10playground16range_count_demo17h49ff333a76b29162E() unnamed_addr #0 personality ptr @rust_eh_personality {
start:
  ret i64 -1
}

https://play.rust-lang.org/?version=nightly&mode=release&edition=2021&gist=7202fd68c70d7dcd0f467880c2cbd48d

clarfonthey

comment created time in 3 days

delete branch scottmcm/rust

delete branch : lower-div-rem-unchecked-to-mir

delete time in 3 days

issue commentrust-lang/rust

Tracking issue for `BinaryHeap` sorted iterator methods

Copying my thoughts from https://github.com/rust-lang/rust/pull/76234#issuecomment-708505210:

My personal conclusions:

  • Given a time machine I'd remove direct iteration in heap order, and would make that go through Vec: From<Heap<_>> or some sort of .as_unordered_slice().
  • Assuming it can be implemented efficiently, .into_iter() and something-like-.drain() on a heap should both be double-ended in sorted order. (With probably no .iter() nor .iter_mut().)
  • As a bonus, that would avoid issues like #58174 as such a heap would natively have .pop_min() and .pop_max()

So I'd be tempted to "solve" this issue by adding MinMaxHeap (#76250), and using documentation to encourage people to use that instead of BinaryHeap (though not actually deprecating BinaryHeap itself, since that feels rather strong).

I don't know if libs-api would be interested in the whole new collection type, though...

jonhoo

comment created time in 3 days

startedrust-lang/portable-simd

started time in 3 days

delete branch scottmcm/rust

delete branch : operand-value-poison

delete time in 4 days

push eventscottmcm/rust

push time in 4 days

push eventscottmcm/rust

Ed Page

commit sha 8d2beb50c2b228f4bd6f8e2d81d82c9e1f5e5ba2

Allow access to `OsStr` bytes `OsStr` has historically kept its implementation details private out of concern for locking us into a specific encoding on Windows. This is an alternative to #95290 which proposed specifying the encoding on Windows. Instead, this only specifies that for cross-platform code, `OsStr`'s encoding is a superset of UTF-8 and defines rules for safely interacting with it At minimum, this can greatly simplify the `os_str_bytes` crate and every arg parser that interacts with `OsStr` directly (which is most of those that support invalid UTF-8).

view details

WANG Rui

commit sha 46252ef401c4134a125f4623a450a5d37079a7a8

asm: Stabilize loongarch64

view details

Ed Page

commit sha 7f1a6cd421d699aa249a282d7b5b7a8f486e3b01

refactor: Remove redundant, private OsStr::bytes

view details

Ed Page

commit sha 7b9290384e88e6960bc574e83219df50df5fe4e1

refactor: Remove bespoke from_os_str_bytes_unchecked

view details

Ed Page

commit sha f9aaad0939e1507990f02676e7f70b88a85a9aea

docs: Add examples of OsStr safety violation

view details

Ed Page

commit sha 5d177afe9591afc0e04b0d9cdfffa79c27c8af64

docs: Clarify OsStr is self-synchronizing

view details

Ed Page

commit sha e6a35c49533dd734f178b04677404df0da518737

docs: Add missing period

view details

Michael Howell

commit sha c1d72de030f3c1287a363ff7cb134664a6bf3032

rustdoc: add interaction delays for tooltip popovers Designing a good hover microinteraction is a matter of guessing user intent from what are, literally, vague gestures. In this case, guessing if hovering in our out of the tooltip base is intentional or not. To figure this out, a few different techniques are used: * When the mouse pointer enters a tooltip anchor point, its hitbox is grown on the bottom, where the popover is/will appear. This was already there before this commit: search "hover tunnel" in rustdoc.css for the implementation. * This commit adds a delay when the mouse pointer enters the base anchor, in case the mouse pointer was just passing through and the user didn't want to open it. * This commit also adds a delay when the mouse pointer exits the tooltip's base anchor or its popover, before hiding it. * A fade-out animation is layered onto the pointer exit delay to immediately inform the user that they successfully dismissed the popover, while still providing a way for them to cancel it if it was a mistake and they still wanted to interact with it. * No animation is used for revealing it, because we don't want people to try to interact with an element while it's in the middle of fading in: either they're allowed to interact with it while it's fading in, meaning it can't serve as mistake- proofing for opening the popover, or they can't, but they might try and be frustrated. See also: * https://www.nngroup.com/articles/timing-exposing-content/ * https://www.nngroup.com/articles/tooltip-guidelines/ * https://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown

view details

Michael Howell

commit sha b9302d72346444b74bfbb2274c6da1acda9622a7

rustdoc: add hover indicator for notable trait tooltip

view details

Caio

commit sha 25e395653df2a91fc9a76dfd3ef050f1c7ba9fca

Move tests

view details

Caio

commit sha 41d414e3f44fa728c0231d2ef69bdf60313e2431

Address comments

view details

Michael Howell

commit sha 64025bb168f3ae37428387ca37ba89eb80be6544

bootstrap: enable Cargo `public-dependency` feature for `libstd`

view details

Michael Howell

commit sha e36020cdb33a1c56ec4ff8c9fbb0bf331ade428a

rustc_metadata: inherit dependency privacy flag

view details

Michael Howell

commit sha 674a3d5c1c898156d7e4bba686593797f44d812a

diagnostics: exclude indirect private deps from trait impl suggest Fixes #88696

view details

Michael Howell

commit sha ffef807889c6f759fef3d229b59c3bd9b6e40fd6

Update compiler/rustc_metadata/src/creader.rs Co-authored-by: Camille Gillot <gillot.camille@gmail.com>

view details

Michael Howell

commit sha 8488e8aed9eb59e45589974985e7cb377576353c

rust-installer: include `RUSTC_BOOTSTRAP` when generating installer

view details

Michael Howell

commit sha 374024336a0dfed4a5cf5e97ccc99648b18cf00c

Improve comments

view details

Michael Howell

commit sha 0ca70be11b6b290d5d7d56dbe9ccd832be5a6809

rustc_metadata: fix private_dep logic in `register_crate`

view details

Michael Howell

commit sha d47dc326d63c6ed9cc2cd7f99596b5f1e051906d

diagnostics: don't crash if an injected crate shows up in suggestions

view details

Michael Howell

commit sha 5a7fffee7150639ba1c68fe41c9365227929f299

rustc_metadata: use AtomicBool for privateness instead of Lock

view details

push time in 4 days

pull request commentrust-lang/stdarch

Stabilize `__m512i`, `__m512`, and `__m512d`

FYI @dtolnay, it looks from the edit history like you attempted to check a box, but somehow rfcbot then removed your checkmark?

scottmcm

comment created time in 4 days

more