• dhork@lemmy.world
    link
    fedilink
    English
    arrow-up
    80
    arrow-down
    1
    ·
    6 hours ago

    Just because you’re writing in a shiny new language that never misses an opportunity to crow about how memory safe it is, doesn’t mean that you can skip due diligence on input validation, checking every return value and writing exception handlers for even the most unlikely of situations.

    Lol

      • Noja@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        9
        arrow-down
        1
        ·
        3 hours ago

        Memory leaks are logic errors, Rust can’t really prevent you from leaking memory.

          • Mechanize@feddit.it
            link
            fedilink
            English
            arrow-up
            6
            ·
            edit-2
            1 hour ago

            You can leak memory in perfectly safe Rust, because it is not a bug per se, an example is by using Box::leak

            Preventing memory leaks was never in the intentions of Rust. What it tries to safeguard you from are Memory Safety bugs like the infamous and common double free.

        • socsa@piefed.social
          link
          fedilink
          English
          arrow-up
          3
          ·
          2 hours ago

          Some memory leaks are logic errors, and this is honestly the irony of modern dynamic languages. I have actually gotten into the argument in interviews before - it is arguably safer (and better) to work from maximal static memory allocations with memory safe data objects than it is to implement dynamic memory algorithms just because they are fun coding problems.

  • TurboWafflz@lemmy.world
    link
    fedilink
    English
    arrow-up
    39
    arrow-down
    1
    ·
    6 hours ago

    It’s crazy that cloudflare of all people even had unwrap enabled. Whenever I use unwrap in some tiny little not important thing I always treat it as a temporary thing that I need to come back and fix before the software is actually ready for anyone to seriously use

      • Mubelotix@jlai.lu
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 hours ago

        Yeah but man, they should have had a CI against this. And reviews! I have refused to merge PRs from friends on hobby projects for less than that

  • ragingHungryPanda@lemmy.zip
    link
    fedilink
    English
    arrow-up
    8
    ·
    5 hours ago

    I feel like I’ve seen an insane number of error messages in various apps and websites around the unwrap method.

    But this is on a result type, right? I’d figure the point would be that you would match on it and that the unwrap itself, which if my assumptions are correct, is more like get value or throw, should either not exist or take a default value. You shouldn’t be able to directly get the value of a monad.

    • calcopiritus@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 hours ago

      “unwrap should not exist” is true as long as you don’t want to ever use the language. If you actually want to use it, you need it. At least while developing.

      Some values cannot have a default value. And some cases it’s preferable to panic even if it has a default value.

      unwrap is not the problem. Cloudflare’s usage is.

    • SethranKada@lemmy.ca
      link
      fedilink
      English
      arrow-up
      11
      arrow-down
      1
      ·
      4 hours ago

      There is a function that does what you are asking for.

      .unarap_or()

      It either unwraps the value or uses a provided default. Personally, i think unwrap() should be renamed unwrap_or_panic() to follow existing conventions and prevent confusion for non-rust programmers.

      • Noja@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 hours ago

        I don’t think non-rust programmers are programming in Rust, LLMs on the other hand…

    • cygnus@lemmy.ca
      link
      fedilink
      English
      arrow-up
      11
      arrow-down
      1
      ·
      5 hours ago

      I feel like I’ve seen an insane number of error messages in various apps and websites around the unwrap method.

      I suspect this is related to LLM usage somehow. We’ll probably see a lot more of this type of problem (sudden flareups of a particular bad code implementation)

      • ragingHungryPanda@lemmy.zip
        link
        fedilink
        English
        arrow-up
        4
        ·
        4 hours ago

        I actually disagree, because I’ve both seen it everywhere and I also work mainly in dotnet, and when I’ve talked to people about option and result types, the first inclination is to have a .Value, but that defeats the purpose. I’ve done quite a few code reviews where I was essentially saying “you know this will throw, right? Use .Match or .Map instead”.

        I think the imperative programming backgrounds encourage this line of thinking, since one of the first questions I’ve gotten is “how do I get the value out of an Option? I’m 100% sure it’s there.” And often, surprise, it wasn’t.

        • cygnus@lemmy.ca
          link
          fedilink
          English
          arrow-up
          2
          ·
          3 hours ago

          Could be, but Rust has been around long enough that we’d see this already, no?

          • ragingHungryPanda@lemmy.zip
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 hours ago

            Agreed, that’s what I was trying to say but I’m not great at writing. I’ve seen this in rust and other languages long before llms

    • anyhow2503@lemmy.world
      link
      fedilink
      English
      arrow-up
      5
      ·
      4 hours ago

      There are good reasons to have unwrap or at least expect. There is no reason to use it in the case that Cloudflare used it in.

  • anon5621@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    4 hours ago

    It not exactly unwrap fault even if it would wrote in other way it still not work cause of wrong SQL request which spamming with results longer than expected to rust here was protecting from memory leak actually

    • NGram@piefed.ca
      link
      fedilink
      English
      arrow-up
      12
      ·
      4 hours ago

      No, the article is just not very precise with its words. It was causing the program to panic.

      • danA
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 hours ago

        They’re probably trying to write it in a way that non-Rust-developers can understand.