|
|
Subscribe / Log in / New account

Go 1.20 released

Go 1.20 released

Posted Feb 1, 2023 22:51 UTC (Wed) by pbonzini (subscriber, #60935)
Parent article: Go 1.20 released

Go not using either LLVM or GCC infrastructure is such a great example of Not-Invented-Here syndrome. PGO support would have come for free.


to post comments

Go 1.20 released

Posted Feb 2, 2023 2:02 UTC (Thu) by wahern (subscriber, #37304) [Link] (2 responses)

Go 1.20 released

Posted Feb 2, 2023 2:22 UTC (Thu) by rahulsundaram (subscriber, #21946) [Link] (1 responses)

> GCC Go is maintained in parallel. See https://gcc.gnu.org/onlinedocs/gccgo/ and https://go.dev/doc/install/gccgo

From the latter page, the last supported release suggests it isn't maintained in parallel anymore.

The GCC 11 releases include a complete implementation of the Go 1.16.3 release."

Granted, the delta between 1.16 and 1.20 isn't huge.

Go 1.20 released

Posted Feb 2, 2023 5:14 UTC (Thu) by wahern (subscriber, #37304) [Link]

I think GCC Go has always lagged behind by several releases. Also, because Go and GCC releases happen completely independently and the cadences are quite different, the Go version gap varies. It looks like GCC Go in the GCC master branch is up to 1.18: https://gcc.gnu.org/git/?p=gcc.git;a=history;f=libgo;hb=HEAD

Go 1.20 released

Posted Feb 2, 2023 4:58 UTC (Thu) by bradfitz (subscriber, #4378) [Link]

See Russ Cox's 2014 answer about this at https://news.ycombinator.com/item?id=8817990

He's the tech lead of the Go project.

Go 1.20 released

Posted Feb 2, 2023 6:58 UTC (Thu) by flussence (guest, #85566) [Link] (4 responses)

I don't think it would have come for free. Things like gcj, gdc and *gccgo* aren't exactly best-in-class, are they? LLVM's platform support hasn't improved one iota since the python cryptography module fiasco either.

Go 1.20 released

Posted Feb 2, 2023 8:33 UTC (Thu) by pbonzini (subscriber, #60935) [Link] (2 responses)

Go's platform support isn't any better than LLVM's, as of a couple of years ago for example it didn't support alpha or sparc.

GCJ was best in class when it was maintained (early 2000s), it just fell behind because features don't add themselves to the compiler; likewise GDC and gccgo aren't best in class because language development happens elsewhere.

Just like C and C++, GNAT *is* a great Ada environment because it is backed by enough money to be great.

Go 1.20 released

Posted Feb 2, 2023 14:07 UTC (Thu) by mathstuf (subscriber, #69389) [Link]

Go also doesn't have PowerPC (32) support (so I can't run `rclone` to sync my backups on the NAS directly and instead have to sling everything via the SMB mounts). But it is 10 years old and is now being replaced with a FreeNAS appliance, so that requirement goes away once I get time to migrate everything over…

Go 1.20 released

Posted Feb 2, 2023 19:06 UTC (Thu) by Cyberax (✭ supporter ✭, #52523) [Link]

> GCJ was best in class when it was maintained (early 2000s)

Sorry, but that has never been true. GCJ had never moved past conservative garbage collection, and its code generation was not comparable even with HotSpot.

Go 1.20 released

Posted Feb 2, 2023 18:53 UTC (Thu) by roc (subscriber, #30627) [Link]

M68K landed in LLVM mainline and patches for ESP32 landed late last year but I don't think it's officially supported yet.

Go 1.20 released

Posted Feb 2, 2023 19:32 UTC (Thu) by Cyberax (✭ supporter ✭, #52523) [Link]

Go's decision to write their own compiler and runtime, on the other hand, resulted in a very tidy self-contained system that is easy to hack.

It also allows them to build truly static binaries, with cross-compilation support. So I can easily build macOS versions of my tools from a Linux-based CI/CD pipeline, by just setting GOARCH and GOOS in the compiler command line.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds