Toots for predrag@hachyderm.io account

Written by Predrag Gruevski on 2025-01-31 at 00:36

"When can a trait be implemented without touching #[doc(hidden)] items?"

Simple question, extremely complex answer! Most intense 2000 lines I've written in a long time!

Still needs cleanup & refactoring, but it's passing tests!

https://github.com/obi1kenobi/trustfall-rustdoc-adapter/pull/742

[#]rust #rustlang #semver

=> View attached media

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-29 at 20:57

How the heck did I find this?

I want cargo-semver-checks to get all the edge cases right. This is what it takes.

When you become a GitHub Sponsor, you're funding that attention to detail: https://github.com/sponsors/obi1kenobi

[#]rust #rustlang #semver #sponsor

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-29 at 20:57

The Rust docs say:

Constants cannot refer to statics.

https://doc.rust-lang.org/reference/items/static-items.html#r-items.static.const

And yet the following works fine:

pub const A: i64 = 0;
pub static B: i64 = A + 1;
pub const C: i64 = B + 1;

[#]rust #rustlang

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-28 at 16:15

Happy "new cargo-semver-checks release" day!

✨ 20 new lints ✨

Full release notes here:

https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.39.0

[#]rust #rustlang #semver

=> View attached media

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-28 at 15:50

Today I misremembered a rule that I helped implement in cargo-semver-checks.

I described something as breaking when it isn't, and failed to remember the actually breaking part. 0/2 on my part.

[#]rust #rustlang #semver

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-23 at 16:58

Merged 5 new lints into cargo-semver-checks today 🦀

It's not even lunchtime yet 🔥🚀

[#]rust #rustlang #semver

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-21 at 15:43

If you'd like to keep your finger on the pulse of cargo-semver-checks development (& maybe even contribute), we have a Discord!

Come join the party!

https://discord.gg/k9h2M2cY

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-21 at 15:24

Here's my recap of 2024 for cargo-semver-checks:

✨ 63 new lints

✨ better linting performance

✨ shipped our most-requested features

✨ key thing I learned: as a community, we never update versions unless forced to!

https://predr.ag/blog/cargo-semver-checks-2024-year-in-review/

[#]rust #rustlang #semver

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-16 at 21:22

Good news / bad news combo: I caught a severe perf regression in the upcoming cargo-semver-checks version, so no new release until I fix it.

Stand back, I will do performance engineering to it!

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-09 at 15:20

I like to play "Where's Waldo" as much as the next person, but not during code review.

Let's have more tools that point out things humans might miss!

=> View attached media

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-09 at 15:10

Pay close attention to the spelling of the optional dependency vs the feature name.

One is mock_instant, the other is mock-instant. Underscore vs dash.

The change removes the mock_instant feature, which cargo-semver-checks caught.

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-09 at 15:09

cargo-semver-checks found the problem in this change, saving the project from breaking SemVer. Manifest linting for the win! 🔥

Do you see the breaking change?

[#]rust #rustlang #semver

=> View attached media

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-09 at 00:00

I wrote a post about how manifest linting in cargo-semver-checks works, if you'd like to learn more: https://predr.ag/blog/breakage-in-the-cargo-toml-how-rust-package-features-work/

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2025-01-08 at 23:45

Manifest linting in cargo-semver-checks means we also have a path toward catching breakage in future Rust functionality!

Take the RFC on package supported targets for example. We'll be able to catch "target no longer supported" breakage!

https://github.com/rust-lang/rfcs/pull/3759

[#]rust #rustlang #semver

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2024-12-17 at 22:34

If anyone is curious 👇

In my P99 CONF talk last year, I said that "massive perf improvements can be just a few hundred lines of code." This PR certainly fits that observation.

https://github.com/obi1kenobi/trustfall-rustdoc-adapter/pull/676

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2024-12-17 at 19:20

I think I just figured out how to make cargo-semver-checks A LOT faster 👀

... to the point that future optimization work should target only the ~5 slowest lints, because they are now the long poles in the perf graph by a factor of 100-500x

[#]rust #rustlang #semver

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2024-12-11 at 18:14

@orhun full release notes here: https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.38.0

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2024-12-11 at 18:06

cargo-semver-checks v0.38 is live, enjoy 🦀🔥

@orhun and I live-streamed writing one of these new lints last weekend, if you want to see how the proverbial sausage gets made!

[#]rust #rustlang #semver

=> View attached media

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2024-12-11 at 15:27

As promised, five new lints:

✨ type_mismatched_generic_lifetimes

✨ trait_mismatched_generic_lifetimes

✨ enum_repr_variant_discriminant_changed

✨ enum_discriminants_undefined_non_exhaustive_variant

✨ enum_discriminants_undefined_non_unit_variant

PRs #1036, #1037, #1039, #1040 if you want to check them out.

https://github.com/obi1kenobi/cargo-semver-checks/pulls?q=is%3Apr+is%3Aclosed

[#]rust #rustlang #semver

=> More informations about this toot | View the thread

Written by Predrag Gruevski on 2024-12-10 at 15:27

Huge thanks to @rerundotio @emilk for sponsoring my work on cargo-semver-checks 🙏

To celebrate, I'll write 5 new lints today ✨

[#]rust #rustlang #semver #sponsor

=> View attached media

=> More informations about this toot | View the thread

=> This profile with reblog | Go to predrag@hachyderm.io account

Proxy Information
Original URL
gemini://mastogem.picasoft.net/profile/109420036463093592
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
426.517863 milliseconds
Gemini-to-HTML Time
5.91519 milliseconds

This content has been proxied by September (3851b).