| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
| |
commit 5217658b199521f5f8947a7cac467b62d8f59b32
different from C++, emit environment variable name sorted.
|
| | |
|
| |
|
|
| |
merge ssvWriter into buffer
|
| | |
|
| |
|
|
|
|
|
| |
$(eval x+=$(x)) in $(foreach) will leave origin "file" variable.
but if it didn't assign by $(eval) in $(foreach), foreach's loop
variable will be restored.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
unexport ValueType*
|
| | |
|
| | |
|
| |
|
|
| |
SimpleVar uses string, while AutomaticVar uses []byte
|
| | |
|
| |
|
|
|
| |
don't use Vars.Lookup in Vars.Assign
Vars.Lookup may need to convert UndefinedVar to Var
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
conversion from value to interface is more expensive than
conversion from pointer to interface.
package main
import "testing"
type I interface {
String() string
}
type val struct {
s string
}
func (v val) String() string { return v.s }
type ptr struct {
s string
}
func (p *ptr) String() string { return p.s }
func BenchmarkT2IForValue(b *testing.B) {
var intf I
for i := 0; i < b.N; i++ {
intf = val{"abc"}
}
_ = intf
}
func BenchmarkT2IForPtr(b *testing.B) {
var intf I
for i := 0; i < b.N; i++ {
intf = &ptr{"abc"}
}
_ = intf
}
% go test -bench . a_test.go
testing: warning: no tests to run
PASS
BenchmarkT2IForValue 20000000 90.9 ns/op
BenchmarkT2IForPtr 20000000 76.8 ns/op
ok command-line-arguments 3.539s
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ast.go:70:1: comment on exported type MaybeRuleAST should be of the form "MaybeRuleAST ..." (with optional leading article)
eval.go:241:1: comment on exported method Evaluator.EvaluateVar should be of the form "EvaluateVar ..."
eval.go:14:2: don't use ALL_CAPS in Go names; use CamelCase
eval.go:15:2: don't use ALL_CAPS in Go names; use CamelCase
eval.go:16:2: don't use ALL_CAPS in Go names; use CamelCase
eval.go:431:2: don't use underscores in Go names; var makefile_list should be makefileList
main.go:29:2: var loadJson should be loadJSON
main.go:30:2: var saveJson should be saveJSON
ninja.go:19:2: struct field ruleId should be ruleID
para.go:15:9: if block ends with a return statement, so drop this else and outdent its block
para_test.go:21:2: don't use underscores in Go names; var num_tasks should be numTasks
parser.go:713:1: error should be the last type when returning multiple items
serialize.go:20:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:21:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:22:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:23:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:24:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:25:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:26:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:27:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:28:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:29:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:30:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:31:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:32:2: don't use ALL_CAPS in Go names; use CamelCase
serialize.go:230:6: func DumpDepGraphAsJson should be DumpDepGraphAsJSON
serialize.go:553:6: func LoadDepGraphFromJson should be LoadDepGraphFromJSON
serialize.go:437:9: if block ends with a return statement, so drop this else and outdent its block
var.go:174:1: receiver name should not be an underscore
var.go:175:1: receiver name should not be an underscore
var.go:176:1: receiver name should not be an underscore
var.go:177:1: receiver name should not be an underscore
var.go:178:1: receiver name should not be an underscore
var.go:180:1: receiver name should not be an underscore
var.go:183:1: receiver name should not be an underscore
var.go:187:1: receiver name should not be an underscore
var.go:191:1: receiver name should not be an underscore
|
| | |
|
| |
|
|
| |
Now serialization is 5 times faster (41 secs => 8 secs).
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
167.22user 131.10system 5:27.42elapsed 91%CPU (1355792maxresident)k =>
91.34user 122.72system 3:52.62elapsed 92%CPU (1180900maxresident)k
repo/android.sh time kati --kati_cpuprofile=kati.prof -n
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
before:
% ./run_integration_test.rb android
tar -xzf ../android.tgz
Running make for android... 6.05 secs
Running kati for android... 64.08 secs
android: OK
PASS!
after:
% ./run_integration_test.rb android
tar -xzf ../android.tgz
Running make for android... 5.76 secs
Running kati for android... 41.54 secs
android: OK
PASS!
|
| | |
|
| |
|
|
| |
32 secs => 30 secs
|
| | |
|
| | |
|
| | |
|
| | |
|
|
|
introduce Var and VarTab
|