Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Safe Transmute RFC #5

Merged
merged 61 commits into from
Aug 31, 2020
Merged

Safe Transmute RFC #5

merged 61 commits into from
Aug 31, 2020

Commits on Aug 3, 2020

  1. Configuration menu
    Copy the full SHA
    8e0dc26 View commit details
    Browse the repository at this point in the history
  2. Apply suggestions from code review

    typo fixes from @jonas-schievink
    
    Co-authored-by: Jonas Schievink <[email protected]>
    jswrenn and jonas-schievink committed Aug 3, 2020
    Configuration menu
    Copy the full SHA
    651e3bf View commit details
    Browse the repository at this point in the history
  3. Fix derive expansion.

    jswrenn committed Aug 3, 2020
    Configuration menu
    Copy the full SHA
    7a88370 View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2020

  1. Configuration menu
    Copy the full SHA
    32bc4b9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6ea3705 View commit details
    Browse the repository at this point in the history
  3. missing word

    jswrenn committed Aug 4, 2020
    Configuration menu
    Copy the full SHA
    5eafe9f View commit details
    Browse the repository at this point in the history
  4. Apply suggestions from code review

    Kelly -> Kelley
    jswrenn committed Aug 4, 2020
    Configuration menu
    Copy the full SHA
    3a4e576 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    00167d6 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    cf20426 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a5122b2 View commit details
    Browse the repository at this point in the history
  8. clarify why size expansion is dangerous, but leave the door open to it

    rust-lang#5 (comment)
    
    It's reasonably* valid to expand size when the bytes of destination type that overhang the source type may be uninitialized; e.g.:
      [MaybeUninit<u8>; 2] to [MaybeUninit<u8>; 4]
    
    I say "reasonably" valid, because the rule of thumb with `mem::transmute_copy` has always been DON'T EXPAND SIZE. But when you frame transmutation as a `union` with two variants:
      union Transmute<Src, Dst> {
          src: Src,
          dst: Dst,
      }
    then this interpretation of size-expanding transmutes is plausible.
    jswrenn committed Aug 4, 2020
    Configuration menu
    Copy the full SHA
    1a119b2 View commit details
    Browse the repository at this point in the history
  9. missing word

    jswrenn committed Aug 4, 2020
    Configuration menu
    Copy the full SHA
    575eb97 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    5297ad6 View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2020

  1. platform stability clarification

    clarify that platform-unstable types are addressed, but not their stability
    jswrenn committed Aug 5, 2020
    Configuration menu
    Copy the full SHA
    f85600d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a47b885 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bc1963f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ed172fe View commit details
    Browse the repository at this point in the history
  5. clarify the purpose of "Dissecting Stability"

    The section describes how user-facing complexity is turned into complexity the type system handles.
    jswrenn committed Aug 5, 2020
    Configuration menu
    Copy the full SHA
    15fd0e9 View commit details
    Browse the repository at this point in the history
  6. rust -> Rust; rustc -> rustc

    Co-authored-by: Zach Lute <[email protected]>
    jswrenn and zachlute committed Aug 5, 2020
    Configuration menu
    Copy the full SHA
    4946585 View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2020

  1. Configuration menu
    Copy the full SHA
    528df3a View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2020

  1. fix dead links

    jswrenn committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    216232e View commit details
    Browse the repository at this point in the history
  2. slice casting revamp

    For actually using slice casting to build other abstractions, it's useful to have a trait name to refer to in `where` bounds.
    jswrenn committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    70f2d9c View commit details
    Browse the repository at this point in the history
  3. packet parsing example

    jswrenn committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    5424df4 View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2020

  1. packet parsing tweaks

    jswrenn committed Aug 12, 2020
    Configuration menu
    Copy the full SHA
    cc01609 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2020

  1. Configuration menu
    Copy the full SHA
    4fe45b6 View commit details
    Browse the repository at this point in the history
  2. fix broken link

    jswrenn committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    b38d1df View commit details
    Browse the repository at this point in the history
  3. nix needless for<'a>

    jswrenn committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    ea04744 View commit details
    Browse the repository at this point in the history
  4. slice casting tweaks

    Pedantic changes that make the slice-casting extension closer to something shippable.
    jswrenn committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    0fb4863 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2020

  1. Configuration menu
    Copy the full SHA
    b7fef2d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    41fa339 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3d3a3e3 View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2020

  1. Configuration menu
    Copy the full SHA
    b25348c View commit details
    Browse the repository at this point in the history
  2. extension: casting revamp

    jswrenn committed Aug 25, 2020
    Configuration menu
    Copy the full SHA
    b2baf68 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    781cf1f View commit details
    Browse the repository at this point in the history
  4. dim of variation intro

    jswrenn committed Aug 25, 2020
    Configuration menu
    Copy the full SHA
    a98df6e View commit details
    Browse the repository at this point in the history
  5. typo

    jswrenn committed Aug 25, 2020
    Configuration menu
    Copy the full SHA
    1df275e View commit details
    Browse the repository at this point in the history
  6. possibility intros

    jswrenn committed Aug 25, 2020
    Configuration menu
    Copy the full SHA
    a1362e9 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    7eadf01 View commit details
    Browse the repository at this point in the history
  8. typo

    jswrenn committed Aug 25, 2020
    Configuration menu
    Copy the full SHA
    d86731c View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    618c8d5 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    98eb167 View commit details
    Browse the repository at this point in the history
  11. nix extra sentence

    jswrenn committed Aug 25, 2020
    Configuration menu
    Copy the full SHA
    2f85008 View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2020

  1. factor out extensions

    jswrenn committed Aug 27, 2020
    Configuration menu
    Copy the full SHA
    c4f5d60 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1fb9949 View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2020

  1. lingering Type -> Archetype

    jswrenn committed Aug 28, 2020
    Configuration menu
    Copy the full SHA
    579a7a0 View commit details
    Browse the repository at this point in the history
  2. abusing -> using

    rust-lang#5 (comment)
    
    Co-authored-by: Florian Gilcher <[email protected]>
    jswrenn and skade committed Aug 28, 2020
    Configuration menu
    Copy the full SHA
    8295f5b View commit details
    Browse the repository at this point in the history
  3. update minimal impl

    jswrenn committed Aug 28, 2020
    Configuration menu
    Copy the full SHA
    2eaa505 View commit details
    Browse the repository at this point in the history
  4. transmutation definition

    jswrenn committed Aug 28, 2020
    Configuration menu
    Copy the full SHA
    9081e53 View commit details
    Browse the repository at this point in the history
  5. union repr

    jswrenn committed Aug 28, 2020
    Configuration menu
    Copy the full SHA
    099896a View commit details
    Browse the repository at this point in the history
  6. REMOVE Dissecting Stability

    jswrenn committed Aug 28, 2020
    Configuration menu
    Copy the full SHA
    7fe2146 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    ed02a09 View commit details
    Browse the repository at this point in the history
  8. syntax highlighting

    jswrenn committed Aug 28, 2020
    Configuration menu
    Copy the full SHA
    c0063c4 View commit details
    Browse the repository at this point in the history
  9. rework stability rationale

    jswrenn committed Aug 28, 2020
    Configuration menu
    Copy the full SHA
    079324e View commit details
    Browse the repository at this point in the history
  10. note on endianness

    jswrenn committed Aug 28, 2020
    Configuration menu
    Copy the full SHA
    19e629e View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2020

  1. Configuration menu
    Copy the full SHA
    aadfec7 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2020

  1. improve stability explanation

    jswrenn committed Aug 31, 2020
    Configuration menu
    Copy the full SHA
    9ed6b6d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    93d8394 View commit details
    Browse the repository at this point in the history
  3. prior art: haskell

    jswrenn committed Aug 31, 2020
    Configuration menu
    Copy the full SHA
    b150c3f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9fe396e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    61448fb View commit details
    Browse the repository at this point in the history
  6. Move one of Archetype's bounds to where

    This improves the rendering of rustdoc, and leaves us free to remove that bound if need be without violating stability.
    jswrenn committed Aug 31, 2020
    Configuration menu
    Copy the full SHA
    3217d4a View commit details
    Browse the repository at this point in the history