Linux people doing Linux things, it seems.

  • @Giooschi@lemmy.world
    link
    fedilink
    English
    715 days ago

    “safe by default” can be done by starting your files with @safe:

    Last time I heard about that it was much more limited than Rust, for example it even disallowed taking references to local variables. Has something changed since then?

    • @ZILtoid1991@lemmy.world
      link
      fedilink
      015 days ago

      D has many memory safety features. 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.

      • @Giooschi@lemmy.world
        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?

        • @ZILtoid1991@lemmy.world
          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