← Înapoi la Urmăritori

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 35
  1. Protecting the Rust standard library from accidental breakage

    Accidental breakage can happen in any codebase.

  2. The Self-Cancelling Subscription

    Happy April 1st!

  3. Last year's annual review post observed that cargo-semver-checks' lint library is undergoing exponential growth, doubling each year: 30 lints at the end of 2022, 57 lints in 2023, and 120 at the end of 2024.

  4. Ghosts in the Compilation

    Recently, a cargo-semver-checks user reached out with a conundrum: cargo-semver-checks reported being unable to build their crate, but when they ran cargo check themselves, it always completed successfully.

  5. Unsoundness and accidental features in the #[target_feature] attribute

    Researching the SemVer hazards of the #[target_feature] attribute led to finding unexpected unsoundness, discovering an "accidental feature" in Rust, finding bugs in rustdoc, the creation of an RFC that evolves the Rust language, and the addition of a doz…

  6. XORry Not Sorry: The Most Amusing Security Flaws I've Discovered

    Happy April 1st!

  7. cargo-semver-checks v0.40 ships a massive upgrade to its system for detecting sealed traits.

  8. cargo-semver-checks ends 2024 having improved dramatically over the course of the year: 12 new releases featuring 63 new lints, with 1175 merged PRs from 57 authors across the many repos that make the project tick.

  9. cargo-semver-checks v0.37 can now scan Cargo.toml files for breakage!

  10. Is this trait sealed, or not sealed — that is the question

    cargo-semver-checks v0.35 can determine whether Rust traits are "sealed", allowing it to catch many tricky new instances of SemVer breakage.

  11. How to Query (Almost) Everything

    In 2022, I gave a talk at a virtual conference with an unforgettable name: HYTRADBOI, which stands for "Have You Tried Rubbing a Database On It?"

  12. The Wi-Fi only works when it's raining

    Happy April 1st!

  13. SemVer in Rust: Tooling, Breakage, and Edge Cases — FOSDEM 2024

    Last month, I gave a talk titled "SemVer in Rust: Breakage, Tooling, and Edge Cases" at the FOSDEM 2024 conference.

  14. Four challenges cargo-semver-checks has yet to tackle

    My last post covered the key cargo-semver-checks achievements from 2023.

  15. Highlights of 2023 for cargo-semver-checks

    2023 was a big year for cargo-semver-checks!

  16. Checking semver in the presence of doc(hidden) items

    cargo-semver-checks v0.25 squashes nearly all bugs related to doc(hidden) items — its most common source of false-positives.

  17. Semver violations are common, better tooling is the answer

    This post is coauthored by Tomasz Nowak and Predrag Gruevski.

  18. A few days ago, I started polls on Mastodon and Twitter whether adding a new private type, or an import, can ever be a major breaking change.

  19. A definitive guide to sealed traits in Rust

    For the longest time, I thought that "sealed trait" in Rust was a singular concept implementable in one specific way.

  20. Mediocrity can be a sign of excellence, and other stories

    Happy April 1st!

  21. Re-exporting an enum with a type alias is breaking, but not major

    We've already explored some of the dark corners of Rust semantic versioning on this blog:

  22. Speeding up Rust semver-checking by over 2000x

    This post describes work in progress: how cargo-semver-checks will benefit from the upcoming query optimization API in the Trustfall query engine.

  23. Moving and re-exporting a Rust type can be a major breaking change

    I recently embarked on a quest: revamp the cargo-semver-checks import-handling system so that moving and re-exporting an item stops being incorrectly flagged as a major breaking change.

  24. Some Rust breaking changes don't require a major version

    I've been saying for a while now that semantic versioning in Rust is tricky and full of unexpected edge cases.

  25. EDIT: The Rust API evolution RFC distinguishes between breaking changes and changes that require a new semver-major version (called major changes).

  26. cargo-semver-checks today and in 2023

    cargo-semver-checks ends 2022 with 40,000 downloads from crates.io, able to prevent 30 different kinds of semver issues, and having done so in real-world use cases.

  27. Falsehoods programmers believe about undefined behavior

    Undefined behavior (UB) is a tricky concept in programming languages and compilers.

  28. My HYTRADBOI'22 Jam

    I had a lot of fun spending nights-and-weekends time participating in the HYTRADBOI Jam, a global hack week aimed at building "exciting and weird" data-centric solutions to familiar problems.

  29. Debugging Safari: If at first you succeed, don't try again

    The saying usually goes: "If at first you don't succeed, try, try again."

  30. Toward fearless cargo update

    I recently built cargo-semver-checks, a linter that ensures crates adhere to semantic versioning.

  31. Compiler Adventures, part 3: Value Numbering

    A beginner-friendly introduction to compilers: follow along as we build a compiler from scratch, or fork the code on GitHub and add your own optimizations too!

  32. To ace exams, get better at the easy questions

    Happy April 1st!

  33. Compiler Adventures, part 2: Constant Propagation

    A beginner-friendly introduction to compilers: follow along as we build a compiler from scratch, or fork the code on GitHub and add your own optimizations too!

  34. Compiler Adventures, part 1: No-op Instructions

    A beginner-friendly introduction to compilers: follow along as we build a compiler from scratch, or fork the code on GitHub and add your own optimizations too!

  35. How Paxos and Two-Phase Commit Differ

    Distributed systems courses frequently introduce the Paxos and two-phase commit (2PC) protocols in quick succession.