{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihmuskbohkbg7niernmd72a7l6zag2eyu7cq6pwrojnrkesshmfdi",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3meij5xv4kfb2"
  },
  "path": "/t/idea-pre-rfc-null-free-pointers/23991#post_20",
  "publishedAt": "2026-02-10T08:01:51.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "I have two.\n\nFirst, RISC-V defines no standard RAM layout which means it's entirely implementation-defined. A conforming RISC-V implementation can place RAM at 0x0, and such implementations exist (e.g. the Micro RISC-V core, 0x0–0x7fb). Whether a particular implementation is a teaching core or a commercial SoC is irrelevant - the point is that the ISA permits it, and Rust should not prohibit what the architecture allows.\n\nSecond, the BCM2835 (Raspberry Pi 1, ARM1176JZF-S, tens of millions shipped) maps physical RAM starting at 0x0 per the official Broadcom datasheet. Yes, it has an MMU, but an identity map is a legitimate bare-metal design choice, not a workaround. And requiring every OS developer to remap around a language-level assumption is precisely \"shifting the language's responsibility onto the user.\"\n\nIf Rust intends to be a general-purpose systems language across these targets, \"sensibility\" must never be assumed.",
  "title": "Idea / Pre-RFC: Null-free pointers"
}