Go 1.13 to be Released

There are many new features and improvements in the new version of programming language
04 September 2019   1322

New version of Google support Go(lang) programming language has been released. 

We want to thank everyone who contributed to this release by writing code, filing bugs, providing feedback, and/or testing the beta and release candidates. Your contributions and diligence helped to ensure that Go 1.13 is as stable as possible. 
 

Go Team

These are some of the features:

  • The go command now downloads and authenticates modules using the Go module mirror and Go checksum database by default
  • Improvements to number literals
  • Error wrapping
  • TLS 1.3 on by default
  • Improved modules support

Learn more at the official website.  

Linux Kernel Bug to Affect Apps With AVX

The most often observed bugs due to this issue occurs in programms, written in Go
27 November 2019   293

Starting with release 5.2, an error has occurred in the Linux kernel that leads to violation of the contents of the AVX register when a signal is returned from the handler that is processed when a page-fault is thrown. The problem occurs when starting multi-threaded programs ("-pthread"), which have calculations with the AVX register, in case of building the kernel in GCC 9 (when building in earlier releases of GCC, an error does not occur, since GCC 9 caches the address of the thread-local variable in the register, and earlier versions of GCC download it every time).

The problem causes the program to terminate prematurely with a memory corruption error. The most noticeable and often observed manifestation of the error was the collapse of applications written in Go. Due to a noted problem, Go programs terminate prematurely, usually with the errors "runtime error: invalid memory address or nil pointer dereference", "runtime: unexpected return pc", and "segmentation violation". In the kernel, the error remains uncorrected. We consider the possibility of adding changes to Go runtime to selectively work around errors on problematic Linux kernels, at the cost of additional overhead.