In particular, cartographer lists all source locations in a package which are loops over maps. If you're not careful, these may cause your program to be non-deterministic.
go get -u github.com/pwaller/cartographer
$ cartographer github.com/pwaller/cartographer/example
/home/pwaller/.local/src/github.com/pwaller/cartographer/example/main.go:7:2
/home/pwaller/.local/src/github.com/pwaller/cartographer/example/main.go:10:2
/home/pwaller/.local/src/github.com/pwaller/cartographer/example/main.go:14:2
/home/pwaller/.local/src/github.com/pwaller/cartographer/example/main.go:17:2
/home/pwaller/.local/src/github.com/pwaller/cartographer/example/main.go:20:2
3-clause BSD-style license.
(Please submit more if you have any! :)
-
A >7,000 line code base was emitting things in an arbitrary order, which made diffing the output difficult.
To @JohannesEbke for hacking on the earliest prototype together.