• sugar_in_your_tea@sh.itjust.works
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    2 days ago

    Adds Future and IntoFuture to the prelude.

    Woo!

    std::env::set_var, std::env::remove_var… are now unsafe functions.

    That’s unfortunate. I understand why it’s unsafe, but it would be cool if they were atomic or something instead. I don’t really want to clutter code with unsafe for things that are technically safe in context (e.g. unit tests for config parsing).

    async closures

    Baller.

    Other cool stuff as usual, so I’ll be updating soon. Congrats on the release!

    Edit: Looks like they messed with default lifetimes on impl Trait, but the fix was easy enough. The upgrade was otherwise smooth. Good work!

    • BatmanAoD@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      10 hours ago

      They did consider making environment-manipulation functions atomic; the problem is that there’s simply no way to guarantee that everything that can manipulate your process’s environment is actually beholden to whatever atomic interface Rust provides. I could be misremembering, but I think there was even some discussion with glibc maintainers about whether this could be made safe, and the answer was basically “haha no.”