)]}'
{
  "commit": "a5454c1cd90c24a48670f429816f6c703a1c0e62",
  "tree": "1eae41ef9740259d43d0376096c7a33be588e4f1",
  "parents": [
    "3950102c201a2c4ec49e353464f37e6ce16ee2e8",
    "e503d78f721a969030cbbe53cc0341ff366a9a9f"
  ],
  "author": {
    "name": "bors",
    "email": "bors@rust-lang.org",
    "time": "Mon Jun 29 00:40:20 2026 +0000"
  },
  "committer": {
    "name": "bors",
    "email": "bors@rust-lang.org",
    "time": "Mon Jun 29 00:40:20 2026 +0000"
  },
  "message": "Auto merge of #155625 - bushrat011899:core_io_error, r\u003dMark-Simulacrum\n\nMove `std::io::Error` into `core`\n\n\r\n\r\n\r\n\r\nACP: https://github.com/rust-lang/libs-team/issues/755\r\nTracking issue: https://github.com/rust-lang/rust/issues/154046\r\nRelated: https://github.com/rust-lang/rust/pull/155574\r\nRelated: https://github.com/rust-lang/rust/pull/152918\r\n\r\n## Description\r\n\r\nMoves `std::io::Error` into `core`, deferring `Box`-adjacent methods to incoherent implementations in `alloc`, and `RawOsError` methods to `std`. This requires some substantial changes to the internals of `Error`, but none of them are breaking changes or externally visible.\r\n\r\nNotably, I\u0027ve replaced usage of `Box` with a wrapper around a pointer and an appropriate drop function. This requires the addition of quite a few lines of unsafe, but is required to work around `Box` only being accessible from `alloc`. Additionally, an atomic pointer to a VTable is used for working with `RawOsError` in `core`, since we cannot know the required implementations without `std`.\r\n\r\nAs mention in [this comment](https://github.com/rust-lang/rust/pull/155625#issuecomment-4744932682), there may be concern around having a static `AtomicPtr` in `core` for certain users. I\u0027ve added a configuration option `no_io_statics` which (similar to `no_sync`/etc. in `alloc`) can be used to prevent their inclusion in `core`. When active, the fallback default implementation will always be used.\r\n\r\n---\r\n\r\n## Notes\r\n\r\n* This PR adopts the VTable technique from rust-lang/rust#152918\r\n* This PR builds on my previous PR rust-lang/rust#155574\r\n* No AI tooling of any kind was used during the creation of this PR.\r\n",
  "tree_diff": []
}
