Commit Graph

3 Commits

Author SHA1 Message Date
Robert Griesemer d5bb1db3ec cmd/compile/internal/syntax: don't allocate a string for each keyword
$ go test -run StdLib -fast
parsed 1074061 lines (2828 files) in 571.1019ms (1880681 lines/s)
allocated 263.676Mb (461.696Mb/s)
PASS
2016-08-16 10:48:20 -07:00
Robert Griesemer c7cc983097 cmd/compile/internal/syntax: implement buffered reading from io.Reader
No performance impact:

$ go test -run StdLib -fast
parsed 1073074 lines (2823 files) in 575.606804ms (1864248 lines/s)
allocated 263.956Mb (458.570Mb/s)
PASS
2016-08-16 10:48:01 -07:00
Robert Griesemer a85b9c5467 cmd/compile/internal/syntax: fast Go syntax trees, initial commit.
Syntax tree nodes, scanner, parser, basic printers.

Builds syntax trees for entire Go std lib at a rate of ~1.8M lines/s
in warmed up state (MacMini, 2.3 GHz Intel Core i7, 8GB RAM):

$ go test -run StdLib -fast
parsed 1074617 lines (2832 files) in 579.66364ms (1853863 lines/s)
allocated 282.212Mb (486.854Mb/s)
PASS
2016-08-16 10:45:05 -07:00