aboutsummaryrefslogtreecommitdiff
path: root/eval.go
Commit message (Collapse)AuthorAgeFilesLines
* [go] fix nested_call.mkFumitoshi Ukai2015-08-101-0/+21
|
* [go] fix hash_in_var.mkFumitoshi Ukai2015-07-281-0/+13
| | | | comment should handle literal #, not # in evaluated text.
* [go] backport [C++] Fix info, warning, and error for ninjaFumitoshi Ukai2015-07-281-2/+6
| | | | | | | | fix ninja test err_error_in_recipe.mk info.mk strip.mk warning.mk
* [go] fix recipe_var.mkFumitoshi Ukai2015-07-221-2/+7
|
* fix warn_extra_trailings.mkFumitoshi Ukai2015-07-151-2/+1
| | | | use warnNoPrefix instead of fmt.Printf for warning message.
* [go] fix override_export.mkFumitoshi Ukai2015-07-151-2/+14
| | | | | separete override_export.mk and create err_export_override.mk and err_override_export.mk
* [go] implement vpath directiveFumitoshi Ukai2015-07-151-0/+70
|
* [go] simpleVar has []string to make append fasterFumitoshi Ukai2015-07-151-1/+1
|
* use github.com/golang/glogFumitoshi Ukai2015-07-101-16/+18
|
* use sync.Pool for evalBuffer and wordBufferFumitoshi Ukai2015-07-091-18/+18
|
* minor improve findLiteralChar performanceFumitoshi Ukai2015-07-091-1/+1
|
* fix not_command_with_tab.mkFumitoshi Ukai2015-07-071-4/+6
|
* fix equal_in_target.mkFumitoshi Ukai2015-07-071-3/+8
|
* introduce evalWriterFumitoshi Ukai2015-07-071-4/+9
| | | | merge ssvWriter into buffer
* fix target_specific_var_var_name.mkFumitoshi Ukai2015-07-071-0/+1
|
* refactor parserFumitoshi Ukai2015-07-071-42/+40
| | | | fix backslash_in_rule_command.mk
* fix unmatched_paren.mkFumitoshi Ukai2015-07-031-3/+3
|
* Trim leading ./ when kati includes a fileShinichiro Hamaji2015-06-291-0/+1
|
* fix panic based error reportingFumitoshi Ukai2015-06-261-81/+173
|
* unexport LookupVarInCurrentScopeFumitoshi Ukai2015-06-261-1/+1
|
* unexport Logf, LogAlways, Warn*, Error*Fumitoshi Ukai2015-06-251-16/+16
|
* unexport Makefile, Parser and EvalResultFumitoshi Ukai2015-06-251-5/+5
|
* unexport RuleFumitoshi Ukai2015-06-251-13/+13
|
* unexport Func and ExprFumitoshi Ukai2015-06-251-1/+1
|
* unexport ReadMakefile and FileStateFumitoshi Ukai2015-06-251-63/+88
|
* unexport astFumitoshi Ukai2015-06-251-23/+23
|
* unexport *VarFumitoshi Ukai2015-06-251-2/+2
|
* go gettable for github.com/google/katiFumitoshi Ukai2015-06-251-13/+18
|
* reduce reading makefiles.Fumitoshi Ukai2015-06-231-26/+15
| | | | | make most global things (makefileCache, symtab, stats, shellStats, wildcardCache) concurrent safe.
* reduce allocation in funcPatsubstFumitoshi Ukai2015-06-191-1/+1
| | | | | | | | | | | benchmark old ns/op new ns/op delta BenchmarkFuncPatsubst 2030 1102 -45.71% benchmark old allocs new allocs delta BenchmarkFuncPatsubst 9 1 -88.89% benchmark old bytes new bytes delta BenchmarkFuncPatsubst 297 32 -89.23%
* add param.mkFumitoshi Ukai2015-06-191-1/+1
| | | | no need to assign/restore call parameter
* reduce runtime.convT2E -> runtime.newobject -> runtime.mallocgcFumitoshi Ukai2015-06-181-8/+24
| | | | passing value to ...interface{} requires runtime.convT2E.
* reduce runtime.convT2I -> runtime.newobject -> runtime.mallocgcFumitoshi Ukai2015-06-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* parseExpr less allocationFumitoshi Ukai2015-06-181-3/+3
|
* add findleaves supportFumitoshi Ukai2015-06-151-1/+1
|
* trace event: also emit findcache init eventFumitoshi Ukai2015-06-151-1/+1
|
* add -kati_trace_event=<json filename>Fumitoshi Ukai2015-06-111-3/+2
| | | | | if this option is given, it outputs trace json file for chrome://tracing for makefile include traces.
* Add LICENSE and licence headersShinichiro Hamaji2015-06-101-0/+14
|
* fix go lint (except comment on exported fields, error message with punct)Fumitoshi Ukai2015-06-081-18/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* fix go vet: possible formatting directive in Log callFumitoshi Ukai2015-06-081-10/+10
| | | | rename Log to Logf, since it takes format string in the first argument.
* Add --goma flagShinichiro Hamaji2015-06-041-1/+1
|
* Use Value instead of string in IfASTShinichiro Hamaji2015-06-041-12/+3
|
* Use Value instead of []byte in MaybeRuleASTShinichiro Hamaji2015-06-041-7/+4
|
* Move more logics for MaybeRule from eval.go to parser.goShinichiro Hamaji2015-06-041-12/+6
|
* Use []byte instead of string in MaybeRuleASTShinichiro Hamaji2015-06-041-3/+3
|
* Use Value in AssignASTShinichiro Hamaji2015-06-041-5/+1
|
* Introduce MakefileCacheShinichiro Hamaji2015-06-041-2/+5
|
* Add --ignore_optional_include flagShinichiro Hamaji2015-06-021-0/+3
| | | | | This flag will be used by Android build to ignore generated .mk files.
* fix readFile - fd leakFumitoshi Ukai2015-06-021-1/+2
| | | | | | use ioutil.ReadFile instead. exists uses os.Stat and os.IsNotExist
* Fix err_include.mkShinichiro Hamaji2015-05-291-16/+24
|