Codegen test coverage

One of GoLang optimization that I named "cmd/compile: avoid mapaccess at m[k]=append(m[k].."  (Issue 24364 and CL 100838) removes excessive runtime.mapaccess call. I provided usual tests and benchmarks that guarantee that the map still works as expected and performance has been improved. And I had to generate ASM code manually to make sure that CALL runtime.mapaccess is … Continue reading Codegen test coverage

Art of Hacking Golang compiler

UPDATE 03/19/2018 CL https://golang.org/cl/91557 and https://golang.com/cl/100838 are committed and will be a part of Go 1.11. UPDATE 06/25/2018 Found a bug https://golang.org/issue/25936. Fixed by CL https://golang.org/cl/120255 What? map and append When I just started to learn Golang, found this example: You may see two likes[l] that are obviously not free if final machine code is doing it. There is no … Continue reading Art of Hacking Golang compiler

go vet: Printf family check

What? I use golang with VSCode IDE. One of the features that I enabled is on-fly static code analysis. It uses standard golang feature Command Vet https://golang.org/cmd/vet. This article is about interesting Printf family check https://golang.org/cmd/vet/#hdr-Printf_family behaviour. If write a code go vet reports "Missing argument for Errorf("%v"): format reads arg2, have on". go vet … Continue reading go vet: Printf family check