|
|
|
|
|
by tagrun
3872 days ago
|
|
> because it has platform specific C and assembly code from cgo's runtime I'm not sure what you mean by "cgo's runtime", but go runtime is in go since 1.5. Some bits are still written in assembly but that's mainly for performance. I don't think targeting every arch (and virtual archs like asm.js you mention [though there is a 3rd party GopherJS]) and OS out there was ever their purpose. In case you're interested, there is llgo which has recently been merged into LLVM. It's still not practical however. > But I guess Google just hates Apple that much? I don't understand what this is supposed to mean since LLVM does not belong to Apple, and Google is a heavy user and contributer thereof. |
|
Many bits in math and crypto have fast assembly variants, but the assembly code in the runtime and sync packages is not for performance, but because assembly is the only way to put data in the right registers, issue memory barriers, implement the right atomic operations and so on. Not performance.