3 ms·
TIL there are multiple flavors of Golang including “Microsoft Go”. Wow - I’ve been away from Golang too long. I was initially shocked and then kind of sad that
by dstroot 2y ago
TIL there are multiple flavors of Golang including “Microsoft Go”. Wow - I’ve been away from Golang too long. I was initially shocked and then kind of sad that Go is not so simple anymore.
- Tempest1981 2y agoIs the fragmentation due to FIPS 140-2 alone? Or are there other differences? Why couldn't the crypto changes be rolled into mainstream Go?
- cpuguy83 2y agoThe crypto changes are being rolled into mainstream Go, just that mainstream Go does not want the openssl/SCOSSL/SymCrypt parts.
- Tempest1981 2y agoAh, thanks. This reply also had more FIPS details: https://news.ycombinator.com/item?id=42966945 https://news.ycombinator.com/item?id=42966945
- gtirloni 2y agoI have been following Go for a while and didn't know that either.
- arp242 2y agohttps://github.com/microsoft/go/blob/microsoft/main/patches/0008-remove-long-path-support-hack.patch https://github.com/microsoft/go/blob/microsoft/main/patches/... Upstream Go tricks Windows into enabling long path support by setting an undocumented flag in the PEB. The Microsoft Go fork can't use undocumented APIs, so this commit removes the hack. There is no documented way to enable long path support from within the process, so this this is a breaking change for the Microsoft Go fork. Note that the Go standard library makes a best effort to support long paths by using the `\\?\` prefix when possible, so this change should only affect long relative paths, which can't be used with the `\\?\`. lol?
- fowl2 2y agoPresumably there's some reason Go can't just use an embedded manifest[1] like everyone else? Ahh, I'm inferring (from [2]) even with the manifest entry, a system wide registry key is also required to get long paths working: > I'm working with the Windows security team to find a way to enable long path support without having to modify the registry, just by using the embedded manifest, but the chances of this happening soon are quite low. [1] https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#application-manifest-updates-to-declare-long-path-capability https://learn.microsoft.com/en-us/windows/win32/fileio/maxim... [2] https://github.com/golang/go/issues/69853 https://github.com/golang/go/issues/69853
- tete 2y ago> I was initially shocked and then kind of sad that Go is not so simple anymore. Yeah, it's really sad. Go basically became like any other language. Now even fun stuff like net.IP, and a netip, with netip.Addr. Lots of way to write the same thing. And an even further shift from Go initially being something along the lines of "You shouldn't control or even think of the garbage collector" to now having runtime.AddCleanup) as well as more fun hacks to technically stay compatible. Now, I am not saying that the changes are bad per se, but more that they simply aren't matching the original design/claims/goals. I remember Rob Pike saying things like "The language likely won't change much" other than generics which have been said to likely come since pre-1.0 basically since Go got a website. The idea clearly was to stay simple, but that seems to have been thrown overboard. I wished Go's predecessors (Limo, Alef, et al) or something similar would have made it out of the more researchy state. But hey looks like some more stable languages get traction. To my complete surprise Ada is making a comeback with [Alire](https://alire.ada.dev/ https://alire.ada.dev/) and such. Not really a Go competitor, but nice to see it's still being worked on.