Latest in branch 1.15
1.15.15
Released 04 Aug 2021
(4 years ago)
SoftwareGo
Version1.15
Status
End of life
Initial release1.15
11 Aug 2020
(5 years ago)
Latest release1.15.15
04 Aug 2021
(4 years ago)
End of life16 Aug 2021
(Ended 4 years ago)
Release noteshttps://go.dev/doc/go1.15
Source codehttps://github.com/golang/go/tree/go1.15.15
Documentationhttps://go.dev/doc/
Go 1.15 ReleasesView full list

What Is New in Go 1.15

Go 1.15 delivers incremental but impactful improvements focused on tooling, runtime performance, and portability. This release polishes existing features rather than introducing major new syntax.

Category Key Changes
Tooling Faster builds, smaller binaries, improved linker, Go command enhancements
Runtime & Compiler More precise GC, optimizations for small allocations, new `tzdata` package
Ports New `riscv64` port, updates to `linux/arm64` and `js/wasm`
Core Library X.509 CommonName deprecation, new `time/tzdata` package, testing improvements

How did the linker and build performance improve?

The linker saw significant reductions in both memory usage and CPU time. In practice, this translates to faster build times for large codebases and lower memory pressure during compilation.

Binary sizes were reduced by approximately 5-10% for typical Go programs. This was achieved through more aggressive optimization of Go-specific metadata and elimination of unused runtime functionality.

What garbage collection improvements were made?

Garbage collection became more precise, reducing the heap size by up to 5% for some applications. This matters because it directly lowers memory overhead for production services.

The compiler also optimized small object allocations. Allocations smaller than 128 bytes now have improved allocation speed, which benefits high-throughput services creating many small objects.

What's new with X.509 certificate validation?

Certificate verification now ignores the deprecated CommonName field on X.509 certificates unless no Subject Alternative Names are present. This change pushes toward modern security standards.

You might need to update certificates that only use CommonName. The crypto/x509 package provides clearer error messages to help identify these cases during the transition.

How does the new time/tzdata package work?

The new time/tzdata package allows embedding timezone database information directly into binaries. This is crucial for systems that might not have a local timezone database available.

Import it with import _ "time/tzdata" to ensure your application has timezone data wherever it runs. This solves deployment issues on minimal container images or embedded systems.

What platform support changes should I know about?

Go 1.15 adds preliminary support for RISC-V 64-bit architecture (linux/riscv64). This expands Go's reach into emerging hardware platforms.

The js/wasm port now supports os.Pipe and delivers better performance. Linux ARM64 also gained support for non-coherent memory systems, improving stability on newer hardware.

FAQ

Will my Go 1.14 code still work with Go 1.15?
Yes, Go 1.15 maintains the Go 1 promise of compatibility. Your existing code should compile and run without changes, though some deprecated features may generate new warnings.

Why is my binary smaller after upgrading to Go 1.15?
The linker became more efficient at eliminating unused code and metadata. Most binaries see a 5-10% size reduction without any action on your part.

My certificate validation broke after upgrading - what happened?
Go 1.15 deprecated X.509 CommonName validation. Certificates must now use Subject Alternative Names. Check your certificates and update them to include proper SAN fields.

How do I ensure my Go app has timezone data everywhere?
Add import _ "time/tzdata" to your main package. This embeds the timezone database so your app works even on systems without local tzdata files.

Should I use the new RISC-V port for production?
The RISC-V port is still experimental in Go 1.15. Use it for testing and development, but wait for more mature support before deploying to production environments.

Releases In Branch 1.15

VersionRelease date
1.15.1504 Aug 2021
(4 years ago)
1.15.1412 Jul 2021
(4 years ago)
1.15.1303 Jun 2021
(5 years ago)
1.15.1206 May 2021
(5 years ago)
1.15.1101 Apr 2021
(5 years ago)
1.15.1011 Mar 2021
(5 years ago)
1.15.910 Mar 2021
(5 years ago)
1.15.804 Feb 2021
(5 years ago)
1.15.719 Jan 2021
(5 years ago)
1.15.603 Dec 2020
(5 years ago)
1.15.512 Nov 2020
(5 years ago)
1.15.405 Nov 2020
(5 years ago)
1.15.314 Oct 2020
(5 years ago)
1.15.209 Sep 2020
(5 years ago)
1.15.101 Sep 2020
(5 years ago)
1.1511 Aug 2020
(5 years ago)
1.15rc207 Aug 2020
(5 years ago)
1.15rc124 Jul 2020
(5 years ago)
1.15beta110 Jun 2020
(6 years ago)