Linux people doing Linux things, it seems.

  • @[email protected]
    link
    fedilink
    English
    515 days ago

    For local variables, one should use pointers, otherwise ref does references that are guaranteed to be valid to their lifetime, and thus have said limitations.

    Should I take this to mean that pointers instead are not guaranteed to be valid, and thus are not memory safe?

    • @[email protected]
      link
      fedilink
      115 days ago

      Pointers are not guaranteed to be safe. DIP1000 was supposed to solve the issue of a pointer referencing to a now expired variable (see example below), but it’s being replaced by something else instead.

      int* p;
      {
        int q = 42;
        p = &q;
      }
      writeln(*p);     //ERROR: This will cause memory leakage, due to q no longer existing
      
      • @[email protected]
        link
        fedilink
        English
        315 days ago

        Pointers are not guaranteed to be safe

        So I guess they are forbidden in @safe mode?

        but it’s being replaced by something else instead

        Do you know what is the replacement? I tried looking up DIP1000 but it only says “superceded” without mentioning by what.

        This makes me wonder how ready D is for someone that wants to extensively use @safe though.