September 2015: gorename and FFI
Please RSVP at Meetup or Google+.
Food at 6:30 pm, sponsored by Bellstone.
News and Talks at 6:45.
Talks
gorename - how the sausage is made
@MatthiasStone explained how Go tooling is built, using the gorename command as the hook. He walked the compiler-analysis pipeline: lexical analysis with go/scanner and go/token, syntactic analysis with go/parser and the go/ast package, and traversing the resulting tree with ast.Walk and visitor types — noting that Go's syntax and its standard lexer, parser, and type checker were deliberately designed to make tools easy to write. He then toured existing tools: gofmt, goimports, gorename (precise, type-safe identifier renaming across $GOPATH), go list, the coverage-guided fuzzer go-fuzz, and errcheck for unchecked errors. The message was that building custom tools is approachable and a productivity win.
Key points:
- Go's standard library ships a lexer, parser, and type checker for Go source.
- Analysis pipeline: tokens (
go/token,go/scanner) then AST (go/parser,go/ast). ast.Walkwith visitor types makes AST traversal straightforward.gofmt/goimportsrewrite and tidy source automatically.gorenamedoes type-safe, semantically sensitive renaming across$GOPATH.go-fuzzfinds crashes with coverage-guided random input.errcheckflags unchecked errors (e.g.Writecalls).
Embedding Go into C
News and Articles
Inside Go
- Go 1.5.1 released
- Proposal: Rules for passing pointers between Go and C
- html/template
{{block}}syntax for Go 1.6 (example) - net/http2 moved, work resumes
Community
- Announcing: The Go Forum
- What Golang UK Taught Me About Community
- Golang UK Conference videos
Go Adoption
- Otto: the successor to Vagrant (from HashiCorp)
- Keybase command line beta (was JavaScript)
- Go at Basecamp by Noah Lorang
- Sorry, Ruby — I think I’ve fallen for Go! by Joshua Delsman
Technology
- code:mobile: Canada's First Coding Truck
- DigitalOcean's New Canadian Datacenter
- Elastic Beanstalk Update: Support for Go