‹ BackHN Continuity

Thread

Platform-independent SIMD in Go

414 points · 152 comments · yurivish

  1. u8 · · focus · HN ↗
    This is why I love Go. Nobody was asking for this, but they took the time to do it right and continue to Push go as a memory safe, high-level systems language.
    1. OutOfHere · · focus · HN ↗
      (removed)
      1. typical182 · · focus · HN ↗
        Go is broadly considered to be a memory safe language.

        See for example comments from tptacek like:

        <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43335748">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43335748

        <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=46028232">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=46028232

        <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=44672371">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=44672371

        (The gist: memory safety is a term of art coined by security practitioners. Go, Python, Rust, Java, others: memory safe. C&#x2F;C++: memory unsafe. Periodically, people in different slices of industry or academia come up with new definitions of memory safety that declare Rust or Go or other languages to be memory unsafe, but that is not by the broadly accepted definition across industry.)

        1. mitxela · · focus · HN ↗
          Rust does allow you to overflow buffers, confuse types, and duplicate mutable pointers in safe code. See cve-rs.
          1. simonask · · focus · HN ↗
            No, Rust does not allow that. The current Rust compiler does, but that’s a bug that is being fixed.

            At some point in the future, a fully backwards compatible Rust compiler will report an error when you try to compile cve-rs.

            1. nick__m · · focus · HN ↗
              Since we are not at some point in the future where that correct compiler exists and there is only one official compiler, the distinction you make is practically meaningless!
              1. simonask · · focus · HN ↗
                I mean… no? It matters whether something is a part of the language or not, because it matters if you can write code relying on this behavior. Since this is a compiler bug, you cannot - the code will stop compiling the moment the bug is fixed.

                There are no known instances of this bug being encountered in the wild, and if you look into it, you will see how extremely unlikely such code is.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.