From ef3c45adfcd91375765e662d875b71f65d455016 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Tue, 23 Feb 2016 11:15:56 -0800 Subject: [PATCH 001/101] text/tabwriter: clarify documentation More clearly distinguish between tab-terminated cells which are part of an (aligned) column, and non-tab terminated cells which are not part of a column. Added additional examples. For #14412. Change-Id: If72607385752e221eaa2518238b11f48fbcb8a90 Reviewed-on: https://go-review.googlesource.com/19855 Reviewed-by: Alan Donovan --- src/text/tabwriter/example_test.go | 35 ++++++++++++++++++++++++++ src/text/tabwriter/tabwriter.go | 40 ++++++++++++++++++++---------- 2 files changed, 62 insertions(+), 13 deletions(-) diff --git a/src/text/tabwriter/example_test.go b/src/text/tabwriter/example_test.go index 20443cb1ff..422ec117ad 100644 --- a/src/text/tabwriter/example_test.go +++ b/src/text/tabwriter/example_test.go @@ -36,3 +36,38 @@ func ExampleWriter_Init() { // a b c d. // 123 12345 1234567 123456789. } + +func Example_elastic() { + // Observe how the b's and the d's, despite appearing in the + // second cell of each line, belong to different columns. + w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, '.', tabwriter.AlignRight|tabwriter.Debug) + fmt.Fprintln(w, "a\tb\tc") + fmt.Fprintln(w, "aa\tbb\tcc") + fmt.Fprintln(w, "aaa\t") // trailing tab + fmt.Fprintln(w, "aaaa\tdddd\teeee") + w.Flush() + + // output: + // ....a|..b|c + // ...aa|.bb|cc + // ..aaa| + // .aaaa|.dddd|eeee +} + +func Example_trailingTab() { + // Observe that the third line has no trailing tab, + // so its final cell is not part of an aligned column. + const padding = 3 + w := tabwriter.NewWriter(os.Stdout, 0, 0, padding, '-', tabwriter.AlignRight|tabwriter.Debug) + fmt.Fprintln(w, "a\tb\taligned\t") + fmt.Fprintln(w, "aa\tbb\taligned\t") + fmt.Fprintln(w, "aaa\tbbb\tunaligned") // no trailing tab + fmt.Fprintln(w, "aaaa\tbbbb\taligned\t") + w.Flush() + + // output: + // ------a|------b|---aligned| + // -----aa|-----bb|---aligned| + // ----aaa|----bbb|unaligned + // ---aaaa|---bbbb|---aligned| +} diff --git a/src/text/tabwriter/tabwriter.go b/src/text/tabwriter/tabwriter.go index c0c32d5dec..4cafdba2b2 100644 --- a/src/text/tabwriter/tabwriter.go +++ b/src/text/tabwriter/tabwriter.go @@ -33,18 +33,32 @@ type cell struct { // A Writer is a filter that inserts padding around tab-delimited // columns in its input to align them in the output. // -// The Writer treats incoming bytes as UTF-8 encoded text consisting -// of cells terminated by (horizontal or vertical) tabs or line -// breaks (newline or formfeed characters). Cells in adjacent lines -// constitute a column. The Writer inserts padding as needed to -// make all cells in a column have the same width, effectively -// aligning the columns. It assumes that all characters have the -// same width except for tabs for which a tabwidth must be specified. -// Note that cells are tab-terminated, not tab-separated: trailing -// non-tab text at the end of a line does not form a column cell. +// The Writer treats incoming bytes as UTF-8-encoded text consisting +// of cells terminated by horizontal ('\t') or vertical ('\v') tabs, +// and newline ('\n') or formfeed ('\f') characters; both newline and +// formfeed act as line breaks. +// +// Tab-terminated cells in contiguous lines constitute a column. The +// Writer inserts padding as needed to make all cells in a column have +// the same width, effectively aligning the columns. It assumes that +// all characters have the same width, except for tabs for which a +// tabwidth must be specified. Column cells must be tab-terminated, not +// tab-separated: non-tab terminated trailing text at the end of a line +// forms a cell but that cell is not part of an aligned column. +// For instance, in this example (where | stands for a horizontal tab): +// +// aaaa|bbb|d +// aa |b |dd +// a | +// aa |cccc|eee +// +// the b and c are in distinct columns (the b column is not contiguous +// all the way). The d and e are not in a column at all (there's no +// terminating tab, nor would the column be contiguous). // // The Writer assumes that all Unicode code points have the same width; -// this may not be true in some fonts. +// this may not be true in some fonts or if the string contains combining +// characters. // // If DiscardEmptyColumns is set, empty columns that are terminated // entirely by vertical (or "soft") tabs are discarded. Columns @@ -64,9 +78,9 @@ type cell struct { // width of the escaped text is always computed excluding the Escape // characters. // -// The formfeed character ('\f') acts like a newline but it also -// terminates all columns in the current line (effectively calling -// Flush). Cells in the next line start new columns. Unless found +// The formfeed character acts like a newline but it also terminates +// all columns in the current line (effectively calling Flush). Tab- +// terminated cells in the next line start new columns. Unless found // inside an HTML tag or inside an escaped text segment, formfeed // characters appear as newlines in the output. // From d1cc7f70cdd4c99e821165b0e773e748a438f5b8 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Tue, 23 Feb 2016 13:35:12 -0800 Subject: [PATCH 002/101] cmd/compile: give informative error instead of "stupid shift" Fixes #13940. Change-Id: I00fe377c949e5be4cbc035f6ca18e547e326bfba Reviewed-on: https://go-review.googlesource.com/19856 Reviewed-by: Brad Fitzpatrick Run-TryBot: Robert Griesemer TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/mparith2.go | 8 ++++++-- test/fixedbugs/bug108.go | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/cmd/compile/internal/gc/mparith2.go b/src/cmd/compile/internal/gc/mparith2.go index 28c3a00825..67faf29479 100644 --- a/src/cmd/compile/internal/gc/mparith2.go +++ b/src/cmd/compile/internal/gc/mparith2.go @@ -217,7 +217,11 @@ func mplshfixfix(a, b *Mpint) { s := Mpgetfix(b) if s < 0 || s >= Mpprec { - Yyerror("stupid shift: %d", s) + msg := "shift count too large" + if s < 0 { + msg = "invalid negative shift count" + } + Yyerror("%s: %d", msg, s) Mpmovecfix(a, 0) return } @@ -236,7 +240,7 @@ func mprshfixfix(a, b *Mpint) { s := Mpgetfix(b) if s < 0 { - Yyerror("stupid shift: %d", s) + Yyerror("invalid negative shift count: %d", s) if a.Val.Sign() < 0 { Mpmovecfix(a, -1) } else { diff --git a/test/fixedbugs/bug108.go b/test/fixedbugs/bug108.go index 9f2a27ebd9..cfec4c9f1f 100644 --- a/test/fixedbugs/bug108.go +++ b/test/fixedbugs/bug108.go @@ -6,6 +6,6 @@ package main func f() { - v := 1 << 1025; // ERROR "overflow|stupid shift" + v := 1 << 1025; // ERROR "overflow|shift count too large" _ = v } From c4cb365ea23f4e3bd571f63a16d59ad6c01df145 Mon Sep 17 00:00:00 2001 From: Prashant Varanasi Date: Sat, 20 Feb 2016 09:43:15 -0800 Subject: [PATCH 003/101] net: fix for DialTimeout errors with large timeout The existing implementation converts the deadline time to an int64, but does not handle overflow. If the calculated deadline is negative but the user specified deadline is in the future, then we can assume the calculation overflowed, and set the deadline to math.MaxInt64. Fixes #14431 Change-Id: I54dbb4f02bc7ffb9cae8cf62e4e967e9c6541ec6 Reviewed-on: https://go-review.googlesource.com/19758 Reviewed-by: Ian Lance Taylor Reviewed-by: Mikio Hara --- src/net/fd_poll_runtime.go | 8 +++++- src/net/timeout_test.go | 50 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/src/net/fd_poll_runtime.go b/src/net/fd_poll_runtime.go index 8522ccebfb..5897e3d68c 100644 --- a/src/net/fd_poll_runtime.go +++ b/src/net/fd_poll_runtime.go @@ -120,7 +120,13 @@ func (fd *netFD) setWriteDeadline(t time.Time) error { } func setDeadlineImpl(fd *netFD, t time.Time, mode int) error { - d := runtimeNano() + int64(t.Sub(time.Now())) + diff := int64(t.Sub(time.Now())) + d := runtimeNano() + diff + if d <= 0 && diff > 0 { + // If the user has a deadline in the future, but the delay calculation + // overflows, then set the deadline to the maximum possible value. + d = 1<<63 - 1 + } if t.IsZero() { d = 0 } diff --git a/src/net/timeout_test.go b/src/net/timeout_test.go index 98e3164fb9..d80e478c77 100644 --- a/src/net/timeout_test.go +++ b/src/net/timeout_test.go @@ -26,6 +26,8 @@ var dialTimeoutTests = []struct { {-5 * time.Second, 0, -5 * time.Second, 100 * time.Millisecond}, {0, -5 * time.Second, -5 * time.Second, 100 * time.Millisecond}, {-5 * time.Second, 5 * time.Second, -5 * time.Second, 100 * time.Millisecond}, // timeout over deadline + {-1 << 63, 0, time.Second, 100 * time.Millisecond}, + {0, -1 << 63, time.Second, 100 * time.Millisecond}, {50 * time.Millisecond, 0, 100 * time.Millisecond, time.Second}, {0, 50 * time.Millisecond, 100 * time.Millisecond, time.Second}, @@ -99,6 +101,54 @@ func TestDialTimeout(t *testing.T) { } } +var dialTimeoutMaxDurationTests = []struct { + timeout time.Duration + delta time.Duration // for deadline +}{ + // Large timeouts that will overflow an int64 unix nanos. + {1<<63 - 1, 0}, + {0, 1<<63 - 1}, +} + +func TestDialTimeoutMaxDuration(t *testing.T) { + t.Parallel() + + ln, err := newLocalListener("tcp") + if err != nil { + t.Fatal(err) + } + defer ln.Close() + + for i, tt := range dialTimeoutMaxDurationTests { + ch := make(chan error) + max := time.NewTimer(100 * time.Millisecond) + defer max.Stop() + go func() { + d := Dialer{Timeout: tt.timeout} + if tt.delta != 0 { + d.Deadline = time.Now().Add(tt.delta) + } + c, err := d.Dial(ln.Addr().Network(), ln.Addr().String()) + if err == nil { + c.Close() + } + ch <- err + }() + + select { + case <-max.C: + t.Fatalf("#%d: Dial didn't return in an expected time", i) + case err := <-ch: + if perr := parseDialError(err); perr != nil { + t.Error(perr) + } + if err != nil { + t.Errorf("#%d: %v", i, err) + } + } + } +} + var acceptTimeoutTests = []struct { timeout time.Duration xerrs [2]error // expected errors in transition From e360f7c4dbb5695fc4cadb3d400e36ec09327732 Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Tue, 23 Feb 2016 10:54:36 -0800 Subject: [PATCH 004/101] cmd/compile: keep JMPs around with -N When -N, make sure we don't drop every instruction from a block, even ones which would otherwise be empty. Helps keep line numbers around for debugging, particularly for break and continue statements (which often compile down to nothing). Fixes #14379 Change-Id: I33722c4f0dcd502f146fa48af262ba3a477c959a Reviewed-on: https://go-review.googlesource.com/19854 Run-TryBot: Keith Randall TryBot-Result: Gobot Gobot Reviewed-by: Minux Ma --- src/cmd/compile/internal/gc/lex.go | 1 + src/cmd/compile/internal/gc/popt.go | 11 ++++++----- src/cmd/internal/obj/link.go | 1 + src/cmd/internal/obj/objfile.go | 4 +++- src/cmd/internal/obj/pass.go | 14 ++++++++------ src/cmd/internal/obj/sym.go | 1 + 6 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index 89b442796b..6298bbbbba 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -236,6 +236,7 @@ func Main() { } Ctxt.Flag_shared = int32(flag_shared) Ctxt.Flag_dynlink = flag_dynlink + Ctxt.Flag_optimize = Debug['N'] == 0 Ctxt.Debugasm = int32(Debug['S']) Ctxt.Debugvlog = int32(Debug['v']) diff --git a/src/cmd/compile/internal/gc/popt.go b/src/cmd/compile/internal/gc/popt.go index b708222845..87460875b7 100644 --- a/src/cmd/compile/internal/gc/popt.go +++ b/src/cmd/compile/internal/gc/popt.go @@ -138,15 +138,16 @@ func fixjmp(firstp *obj.Prog) { fmt.Printf("%v\n", p) } if p.As != obj.ACALL && p.To.Type == obj.TYPE_BRANCH && p.To.Val.(*obj.Prog) != nil && p.To.Val.(*obj.Prog).As == obj.AJMP { - p.To.Val = chasejmp(p.To.Val.(*obj.Prog), &jmploop) - if Debug['R'] != 0 && Debug['v'] != 0 { - fmt.Printf("->%v\n", p) + if Debug['N'] == 0 { + p.To.Val = chasejmp(p.To.Val.(*obj.Prog), &jmploop) + if Debug['R'] != 0 && Debug['v'] != 0 { + fmt.Printf("->%v\n", p) + } } } p.Opt = dead } - if Debug['R'] != 0 && Debug['v'] != 0 { fmt.Printf("\n") } @@ -186,7 +187,7 @@ func fixjmp(firstp *obj.Prog) { // pass 4: elide JMP to next instruction. // only safe if there are no jumps to JMPs anymore. - if jmploop == 0 { + if jmploop == 0 && Debug['N'] == 0 { var last *obj.Prog for p := firstp; p != nil; p = p.Link { if p.As == obj.AJMP && p.To.Type == obj.TYPE_BRANCH && p.To.Val == p.Link { diff --git a/src/cmd/internal/obj/link.go b/src/cmd/internal/obj/link.go index 762a49ecf2..0fe3275a8e 100644 --- a/src/cmd/internal/obj/link.go +++ b/src/cmd/internal/obj/link.go @@ -572,6 +572,7 @@ type Link struct { Debugpcln int32 Flag_shared int32 Flag_dynlink bool + Flag_optimize bool Bso *Biobuf Pathname string Windows int32 diff --git a/src/cmd/internal/obj/objfile.go b/src/cmd/internal/obj/objfile.go index bae64f4a29..40c92dd152 100644 --- a/src/cmd/internal/obj/objfile.go +++ b/src/cmd/internal/obj/objfile.go @@ -295,7 +295,9 @@ func Flushplist(ctxt *Link) { for s := text; s != nil; s = s.Next { mkfwd(s) linkpatch(ctxt, s) - ctxt.Arch.Follow(ctxt, s) + if ctxt.Flag_optimize { + ctxt.Arch.Follow(ctxt, s) + } ctxt.Arch.Preprocess(ctxt, s) ctxt.Arch.Assemble(ctxt, s) fieldtrack(ctxt, s) diff --git a/src/cmd/internal/obj/pass.go b/src/cmd/internal/obj/pass.go index b92dfe23fb..ae38c4130a 100644 --- a/src/cmd/internal/obj/pass.go +++ b/src/cmd/internal/obj/pass.go @@ -202,13 +202,15 @@ func linkpatch(ctxt *Link, sym *LSym) { p.Pcond = q } - for p := sym.Text; p != nil; p = p.Link { - p.Mark = 0 /* initialization for follow */ - if p.Pcond != nil { - p.Pcond = brloop(ctxt, p.Pcond) + if ctxt.Flag_optimize { + for p := sym.Text; p != nil; p = p.Link { + p.Mark = 0 /* initialization for follow */ if p.Pcond != nil { - if p.To.Type == TYPE_BRANCH { - p.To.Offset = p.Pcond.Pc + p.Pcond = brloop(ctxt, p.Pcond) + if p.Pcond != nil { + if p.To.Type == TYPE_BRANCH { + p.To.Offset = p.Pcond.Pc + } } } } diff --git a/src/cmd/internal/obj/sym.go b/src/cmd/internal/obj/sym.go index dd5297edc5..d9935b3d51 100644 --- a/src/cmd/internal/obj/sym.go +++ b/src/cmd/internal/obj/sym.go @@ -110,6 +110,7 @@ func Linknew(arch *LinkArch) *Link { ctxt.Goarm = Getgoarm() } + ctxt.Flag_optimize = true return ctxt } From 1e4e09612c9b48abc32bd4b75700440a7eeaa318 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Tue, 23 Feb 2016 15:29:19 -0800 Subject: [PATCH 005/101] cmd/compile: remove parser lineno hack for issue #13267 After golang.org/cl/19652 removed the bizarre lexlineno{++,--} statements for parsing canned imports, this hack for #13267 is no longer necessary: $ echo -n 0 > /tmp/0.go $ go tool compile /tmp/0.go /tmp/0.go:1: syntax error: package statement must be first Apparently setting lexlineno to 2 while parsing the canned imports caused prevlineno and lineno to also be set to 2. After we finished parsing imports and restored lexlineno to 1, since "package" is the first token in a source file, we'll have fixed lineno = 1, but prevlineno was still set to 2. Change-Id: Ibcc49fe3402264819b9abb53505631f7a0ad4a36 Reviewed-on: https://go-review.googlesource.com/19859 Reviewed-by: Robert Griesemer --- src/cmd/compile/internal/gc/parser.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/cmd/compile/internal/gc/parser.go b/src/cmd/compile/internal/gc/parser.go index fbc5a5e1eb..6165684574 100644 --- a/src/cmd/compile/internal/gc/parser.go +++ b/src/cmd/compile/internal/gc/parser.go @@ -280,13 +280,11 @@ func (p *parser) package_() { defer p.trace("package_")() } - if p.got(LPACKAGE) { - mkpackage(p.sym().Name) - } else { - prevlineno = lineno // see issue #13267 + if !p.got(LPACKAGE) { p.syntax_error("package statement must be first") errorexit() } + mkpackage(p.sym().Name) } // ImportDecl = "import" ( ImportSpec | "(" { ImportSpec ";" } ")" ) . From 733cae6acdbf191af673498fd23df46dfefd6d04 Mon Sep 17 00:00:00 2001 From: Shenghou Ma Date: Thu, 3 Sep 2015 20:27:12 -0400 Subject: [PATCH 006/101] cmd/dist, go/build: make cmd/dist generate cgoEnabled map for go/build This reduces the amount of duplication. Now there is only one list of platforms supporting cgo. Update #12270. Change-Id: I5dcd55cb6be7c5bb6ce560383c71d90ab1189dc9 Reviewed-on: https://go-review.googlesource.com/14278 Run-TryBot: Minux Ma TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- src/cmd/dist/build.go | 6 +++++- src/cmd/dist/buildgo.go | 28 +++++++++++++++++++++++++++- src/go/build/build.go | 28 ---------------------------- 3 files changed, 32 insertions(+), 30 deletions(-) diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index 7f2f75341f..8ef73e7a89 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -463,6 +463,9 @@ var deptab = []struct { {"runtime/internal/sys", []string{ "zversion.go", }}, + {"go/build", []string{ + "zcgo.go", + }}, } // depsuffix records the allowed suffixes for source files. @@ -478,6 +481,7 @@ var gentab = []struct { }{ {"zdefaultcc.go", mkzdefaultcc}, {"zversion.go", mkzversion}, + {"zcgo.go", mkzcgo}, // not generated anymore, but delete the file if we see it {"enam.c", nil}, @@ -1061,9 +1065,9 @@ func cmdbootstrap() { } } -// Copied from go/build/build.go. // Cannot use go/build directly because cmd/dist for a new release // builds against an old release's go/build, which may be out of sync. +// To reduce duplication, we generate the list for go/build from this. var cgoEnabled = map[string]bool{ "darwin/386": true, "darwin/amd64": true, diff --git a/src/cmd/dist/buildgo.go b/src/cmd/dist/buildgo.go index 437e9dd9a0..3dc9ff0dde 100644 --- a/src/cmd/dist/buildgo.go +++ b/src/cmd/dist/buildgo.go @@ -4,7 +4,10 @@ package main -import "fmt" +import ( + "bytes" + "fmt" +) /* * Helpers for building cmd/go and cmd/cgo. @@ -37,3 +40,26 @@ func mkzdefaultcc(dir, file string) { file = file[:i] + "c" + file[i:] writefile(out, file, writeSkipSame) } + +// mkzcgo writes zcgo.go for go/build package: +// +// package build +// var cgoEnabled = map[string]bool{} +// +// It is invoked to write go/build/zcgo.go. +func mkzcgo(dir, file string) { + var buf bytes.Buffer + + fmt.Fprintf(&buf, + "// auto generated by go tool dist\n"+ + "\n"+ + "package build\n"+ + "\n"+ + "var cgoEnabled = map[string]bool{\n") + for plat := range cgoEnabled { + fmt.Fprintf(&buf, "\t%q: true,\n", plat) + } + fmt.Fprintf(&buf, "}") + + writefile(buf.String(), file, writeSkipSame) +} diff --git a/src/go/build/build.go b/src/go/build/build.go index c1b70bcdd7..e524925d0d 100644 --- a/src/go/build/build.go +++ b/src/go/build/build.go @@ -256,34 +256,6 @@ func (ctxt *Context) SrcDirs() []string { // if set, or else the compiled code's GOARCH, GOOS, and GOROOT. var Default Context = defaultContext() -// Also known to cmd/dist/build.go. -var cgoEnabled = map[string]bool{ - "darwin/386": true, - "darwin/amd64": true, - "darwin/arm": true, - "darwin/arm64": true, - "dragonfly/amd64": true, - "freebsd/386": true, - "freebsd/amd64": true, - "freebsd/arm": true, - "linux/386": true, - "linux/amd64": true, - "linux/arm": true, - "linux/arm64": true, - "linux/ppc64le": true, - "android/386": true, - "android/amd64": true, - "android/arm": true, - "netbsd/386": true, - "netbsd/amd64": true, - "netbsd/arm": true, - "openbsd/386": true, - "openbsd/amd64": true, - "solaris/amd64": true, - "windows/386": true, - "windows/amd64": true, -} - func defaultContext() Context { var c Context From 7606e4a032616f2321754311731aea528d04088e Mon Sep 17 00:00:00 2001 From: Shenghou Ma Date: Tue, 23 Feb 2016 19:20:41 -0500 Subject: [PATCH 007/101] cmd/compile/internal/gc: update comment after c2go Change-Id: I02c60f6c767e917a8ed3772c2773fe266f781e44 Reviewed-on: https://go-review.googlesource.com/19834 Reviewed-by: Ian Lance Taylor --- src/cmd/compile/internal/gc/popt.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/cmd/compile/internal/gc/popt.go b/src/cmd/compile/internal/gc/popt.go index 87460875b7..6eb5c7b60c 100644 --- a/src/cmd/compile/internal/gc/popt.go +++ b/src/cmd/compile/internal/gc/popt.go @@ -218,22 +218,22 @@ func fixjmp(firstp *obj.Prog) { // Control flow analysis. The Flow structures hold predecessor and successor // information as well as basic loop analysis. // -// graph = flowstart(firstp, 0); +// graph = Flowstart(firstp, nil) // ... use flow graph ... -// flowend(graph); // free graph +// Flowend(graph) // free graph // // Typical uses of the flow graph are to iterate over all the flow-relevant instructions: // -// for(f = graph->start; f != nil; f = f->link) +// for f := graph.Start; f != nil; f = f.Link {} // // or, given an instruction f, to iterate over all the predecessors, which is -// f->p1 and this list: +// f.P1 and this list: // -// for(f2 = f->p2; f2 != nil; f2 = f2->p2link) +// for f2 := f.P2; f2 != nil; f2 = f2.P2link {} // -// The size argument to flowstart specifies an amount of zeroed memory -// to allocate in every f->data field, for use by the client. -// If size == 0, f->data will be nil. +// The second argument (newData) to Flowstart specifies a func to create object +// for every f.Data field, for use by the client. +// If newData is nil, f.Data will be nil. var flowmark int @@ -472,8 +472,8 @@ func flowrpo(g *Graph) { me = r1.Rpo d = -1 - // rpo2r[r->rpo] == r protects against considering dead code, - // which has r->rpo == 0. + // rpo2r[r.Rpo] == r protects against considering dead code, + // which has r.Rpo == 0. if r1.P1 != nil && rpo2r[r1.P1.Rpo] == r1.P1 && r1.P1.Rpo < me { d = r1.P1.Rpo } @@ -685,7 +685,7 @@ func mergetemp(firstp *obj.Prog) { // Traverse live range of each variable to set start, end. // Each flood uses a new value of gen so that we don't have - // to clear all the r->active words after each variable. + // to clear all the r.Active words after each variable. gen := uint32(0) for _, v := range vars { @@ -911,7 +911,7 @@ func varkillwalk(v *TempVar, f0 *Flow, gen uint32) { // from memory without being rechecked. Other variables need to be checked on // each load. -var killed int // f->data is either nil or &killed +var killed int // f.Data is either nil or &killed func nilopt(firstp *obj.Prog) { g := Flowstart(firstp, nil) From 5c096cc092013331022c33c5e3d31228edd17dab Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 23 Feb 2016 17:16:21 -0800 Subject: [PATCH 008/101] runtime: deflake TestCgoCheckBytes Bump up the multiplier to 20. Also run the fast version first, so that the slow version is likely to start up faster. Change-Id: Ia0654cc1212ab03a45da1904d3e4b57d6a8d02a0 Reviewed-on: https://go-review.googlesource.com/19835 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot Reviewed-by: Minux Ma --- src/runtime/crash_cgo_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/runtime/crash_cgo_test.go b/src/runtime/crash_cgo_test.go index 63769e801c..635e271d5d 100644 --- a/src/runtime/crash_cgo_test.go +++ b/src/runtime/crash_cgo_test.go @@ -162,19 +162,19 @@ func TestCgoCheckBytes(t *testing.T) { } cmd := testEnv(exec.Command(exe, "CgoCheckBytes")) + cmd.Env = append(cmd.Env, "GODEBUG=cgocheck=0") start := time.Now() cmd.Run() d1 := time.Since(start) cmd = testEnv(exec.Command(exe, "CgoCheckBytes")) - cmd.Env = append(cmd.Env, "GODEBUG=cgocheck=0") start = time.Now() cmd.Run() d2 := time.Since(start) - if d2*10 < d1 { + if d1*20 < d2 { t.Errorf("cgo check too slow: got %v, expected at most %v", d1, d2*10) } } From 1439158120742e5f41825de90a76b680da64bf76 Mon Sep 17 00:00:00 2001 From: Shenghou Ma Date: Tue, 23 Feb 2016 01:26:50 -0500 Subject: [PATCH 009/101] runtime, syscall: switch linux/386 to use int 0x80 Like bionic, musl also doesn't provide vsyscall helper in %gs:0x10, and as int $0x80 is as fast as calling %gs:0x10, just use int $0x80 always. Because we're no longer using vsyscall in VDSO, get rid of VDSO code for linux/386 too. Fixes #14476. Change-Id: I00ec8652060700e0a3c9b524bfe3c16a810263f6 Reviewed-on: https://go-review.googlesource.com/19833 Run-TryBot: Minux Ma Reviewed-by: Ian Lance Taylor TryBot-Result: Gobot Gobot --- src/runtime/os_linux_386.go | 5 ----- src/runtime/rt0_linux_386.s | 8 -------- src/runtime/runtime1.go | 2 +- src/runtime/signal_386.go | 25 +------------------------ src/runtime/sys_linux_386.s | 25 ++++++++++--------------- src/syscall/asm_linux_386.s | 13 ++----------- 6 files changed, 14 insertions(+), 64 deletions(-) diff --git a/src/runtime/os_linux_386.go b/src/runtime/os_linux_386.go index 3577a2406b..0f39cade3b 100644 --- a/src/runtime/os_linux_386.go +++ b/src/runtime/os_linux_386.go @@ -15,8 +15,6 @@ const ( _AT_SYSINFO = 32 ) -var _vdso uint32 - func sysargs(argc int32, argv **byte) { // skip over argv, envv to get to auxv n := argc + 1 @@ -28,9 +26,6 @@ func sysargs(argc int32, argv **byte) { for i := 0; auxv[i] != _AT_NULL; i += 2 { switch auxv[i] { - case _AT_SYSINFO: - _vdso = auxv[i+1] - case _AT_RANDOM: startupRandomData = (*[16]byte)(unsafe.Pointer(uintptr(auxv[i+1])))[:] } diff --git a/src/runtime/rt0_linux_386.s b/src/runtime/rt0_linux_386.s index 59a30b41e8..23bfc98b10 100644 --- a/src/runtime/rt0_linux_386.s +++ b/src/runtime/rt0_linux_386.s @@ -73,11 +73,3 @@ GLOBL _rt0_386_linux_lib_argv<>(SB),NOPTR, $4 TEXT main(SB),NOSPLIT,$0 JMP runtime·rt0_go(SB) - -TEXT _fallback_vdso(SB),NOSPLIT,$0 - INT $0x80 - RET - -DATA runtime·_vdso(SB)/4, $_fallback_vdso(SB) -GLOBL runtime·_vdso(SB), NOPTR, $4 - diff --git a/src/runtime/runtime1.go b/src/runtime/runtime1.go index f63e09cc61..400ea296a9 100644 --- a/src/runtime/runtime1.go +++ b/src/runtime/runtime1.go @@ -52,7 +52,7 @@ var ( argv **byte ) -// nosplit for use in linux/386 startup linux_setup_vdso +// nosplit for use in linux startup sysargs //go:nosplit func argv_index(argv **byte, i int32) *byte { return *(**byte)(add(unsafe.Pointer(argv), uintptr(i)*sys.PtrSize)) diff --git a/src/runtime/signal_386.go b/src/runtime/signal_386.go index 0374f4a2d7..25187dad74 100644 --- a/src/runtime/signal_386.go +++ b/src/runtime/signal_386.go @@ -142,30 +142,7 @@ func sighandler(sig uint32, info *siginfo, ctxt unsafe.Pointer, gp *g) { level, _, docrash := gotraceback() if level > 0 { goroutineheader(gp) - - // On Linux/386, all system calls go through the vdso kernel_vsyscall routine. - // Normally we don't see those PCs, but during signals we can. - // If we see a PC in the vsyscall area (it moves around, but near the top of memory), - // assume we're blocked in the vsyscall routine, which has saved - // three words on the stack after the initial call saved the caller PC. - // Pop all four words off SP and use the saved PC. - // The check of the stack bounds here should suffice to avoid a fault - // during the actual PC pop. - // If we do load a bogus PC, not much harm done: we weren't going - // to get a decent traceback anyway. - // TODO(rsc): Make this more precise: we should do more checks on the PC, - // and we should find out whether different versions of the vdso page - // use different prologues that store different amounts on the stack. - pc := uintptr(c.eip()) - sp := uintptr(c.esp()) - if GOOS == "linux" && pc >= 0xf4000000 && gp.stack.lo <= sp && sp+16 <= gp.stack.hi { - // Assume in vsyscall page. - sp += 16 - pc = *(*uintptr)(unsafe.Pointer(sp - 4)) - print("runtime: unwind vdso kernel_vsyscall: pc=", hex(pc), " sp=", hex(sp), "\n") - } - - tracebacktrap(pc, sp, 0, gp) + tracebacktrap(uintptr(c.eip()), uintptr(c.esp()), 0, gp) if crashing > 0 && gp != _g_.m.curg && _g_.m.curg != nil && readgstatus(_g_.m.curg)&^_Gscan == _Grunning { // tracebackothers on original m skipped this one; trace it now. goroutineheader(_g_.m.curg) diff --git a/src/runtime/sys_linux_386.s b/src/runtime/sys_linux_386.s index 1a3aaf0104..4a74196032 100644 --- a/src/runtime/sys_linux_386.s +++ b/src/runtime/sys_linux_386.s @@ -12,16 +12,17 @@ // Most linux systems use glibc's dynamic linker, which puts the // __kernel_vsyscall vdso helper at 0x10(GS) for easy access from position -// independent code and setldt in this file does the same in the statically -// linked case. Android, however, uses bionic's dynamic linker, which does not -// save the helper anywhere, and so the only way to invoke a syscall from -// position independent code is boring old int $0x80 (which is also what -// bionic's syscall wrappers use). -#ifdef GOOS_android +// independent code and setldt in runtime does the same in the statically +// linked case. However, systems that use alternative libc such as Android's +// bionic and musl, do not save the helper anywhere, and so the only way to +// invoke a syscall from position independent code is boring old int $0x80 +// (which is also what syscall wrappers in bionic/musl use). +// +// The benchmarks also showed that using int $0x80 is as fast as calling +// *%gs:0x10 except on AMD Opteron. See https://golang.org/cl/19833 +// for the benchmark program and raw data. +//#define INVOKE_SYSCALL CALL 0x10(GS) // non-portable #define INVOKE_SYSCALL INT $0x80 -#else -#define INVOKE_SYSCALL CALL 0x10(GS) -#endif TEXT runtime·exit(SB),NOSPLIT,$0 MOVL $252, AX // syscall number @@ -434,12 +435,6 @@ TEXT runtime·setldt(SB),NOSPLIT,$32 */ ADDL $0x4, DX // address MOVL DX, 0(DX) - // We copy the glibc dynamic linker behaviour of storing the - // __kernel_vsyscall entry point at 0x10(GS) so that it can be invoked - // by "CALL 0x10(GS)" in all situations, not only those where the - // binary is actually dynamically linked. - MOVL runtime·_vdso(SB), AX - MOVL AX, 0x10(DX) #endif // set up user_desc diff --git a/src/syscall/asm_linux_386.s b/src/syscall/asm_linux_386.s index c94060571b..228a542cf1 100644 --- a/src/syscall/asm_linux_386.s +++ b/src/syscall/asm_linux_386.s @@ -12,18 +12,9 @@ // func Syscall(trap uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr); // Trap # in AX, args in BX CX DX SI DI, return in AX -// Most linux systems use glibc's dynamic linker, which puts the -// __kernel_vsyscall vdso helper at 0x10(GS) for easy access from position -// independent code and setldt in runtime does the same in the statically -// linked case. Android, however, uses bionic's dynamic linker, which does not -// save the helper anywhere, and so the only way to invoke a syscall from -// position independent code is boring old int $0x80 (which is also what -// bionic's syscall wrappers use). -#ifdef GOOS_android +// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80 +// instead of the glibc-specific "CALL 0x10(GS)". #define INVOKE_SYSCALL INT $0x80 -#else -#define INVOKE_SYSCALL CALL 0x10(GS) -#endif TEXT ·Syscall(SB),NOSPLIT,$0-28 CALL runtime·entersyscall(SB) From 08f1a778c90b572716c6333c792e5f9bacef81c2 Mon Sep 17 00:00:00 2001 From: Mikio Hara Date: Tue, 23 Feb 2016 18:06:31 +0900 Subject: [PATCH 010/101] net: rename test files This change renames {ipraw,tcp,udp,unix}_test.go to {ipraw,tcp,udp,unix}sock_test.go for clarification. Also moves NSS-related system configuration test helpers into main_conf_test.go and main_noconf_test.go. Change-Id: I28ba1e8ceda7b182ee3aa85f0ca3321388ba45e2 Reviewed-on: https://go-review.googlesource.com/19787 Reviewed-by: Ian Lance Taylor --- src/net/{ipraw_test.go => iprawsock_test.go} | 0 src/net/main_conf_test.go | 38 +++++++++++++++++++ .../{non_unix_test.go => main_noconf_test.go} | 4 +- src/net/{tcp_test.go => tcpsock_test.go} | 0 src/net/{udp_test.go => udpsock_test.go} | 0 src/net/{unix_test.go => unixsock_test.go} | 31 --------------- 6 files changed, 40 insertions(+), 33 deletions(-) rename src/net/{ipraw_test.go => iprawsock_test.go} (100%) create mode 100644 src/net/main_conf_test.go rename src/net/{non_unix_test.go => main_noconf_test.go} (78%) rename src/net/{tcp_test.go => tcpsock_test.go} (100%) rename src/net/{udp_test.go => udpsock_test.go} (100%) rename src/net/{unix_test.go => unixsock_test.go} (93%) diff --git a/src/net/ipraw_test.go b/src/net/iprawsock_test.go similarity index 100% rename from src/net/ipraw_test.go rename to src/net/iprawsock_test.go diff --git a/src/net/main_conf_test.go b/src/net/main_conf_test.go new file mode 100644 index 0000000000..ba91e8b17d --- /dev/null +++ b/src/net/main_conf_test.go @@ -0,0 +1,38 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !nacl,!plan9,!windows + +package net + +// forceGoDNS forces the resolver configuration to use the pure Go resolver +// and returns a fixup function to restore the old settings. +func forceGoDNS() func() { + c := systemConf() + oldGo := c.netGo + oldCgo := c.netCgo + fixup := func() { + c.netGo = oldGo + c.netCgo = oldCgo + } + c.netGo = true + c.netCgo = false + return fixup +} + +// forceCgoDNS forces the resolver configuration to use the cgo resolver +// and returns a fixup function to restore the old settings. +// (On non-Unix systems forceCgoDNS returns nil.) +func forceCgoDNS() func() { + c := systemConf() + oldGo := c.netGo + oldCgo := c.netCgo + fixup := func() { + c.netGo = oldGo + c.netCgo = oldCgo + } + c.netGo = false + c.netCgo = true + return fixup +} diff --git a/src/net/non_unix_test.go b/src/net/main_noconf_test.go similarity index 78% rename from src/net/non_unix_test.go rename to src/net/main_noconf_test.go index db3427e7cb..a3a3d6e2ee 100644 --- a/src/net/non_unix_test.go +++ b/src/net/main_noconf_test.go @@ -8,7 +8,7 @@ package net import "runtime" -// See unix_test.go for what these (don't) do. +// See main_unix_test.go for what these (don't) do. func forceGoDNS() func() { switch runtime.GOOS { case "plan9", "windows": @@ -18,5 +18,5 @@ func forceGoDNS() func() { } } -// See unix_test.go for what these (don't) do. +// See main_unix_test.go for what these (don't) do. func forceCgoDNS() func() { return nil } diff --git a/src/net/tcp_test.go b/src/net/tcpsock_test.go similarity index 100% rename from src/net/tcp_test.go rename to src/net/tcpsock_test.go diff --git a/src/net/udp_test.go b/src/net/udpsock_test.go similarity index 100% rename from src/net/udp_test.go rename to src/net/udpsock_test.go diff --git a/src/net/unix_test.go b/src/net/unixsock_test.go similarity index 93% rename from src/net/unix_test.go rename to src/net/unixsock_test.go index f0c583068e..f5e069a121 100644 --- a/src/net/unix_test.go +++ b/src/net/unixsock_test.go @@ -440,34 +440,3 @@ func TestUnixUnlink(t *testing.T) { t.Fatal("closing unix listener did not remove unix socket") } } - -// forceGoDNS forces the resolver configuration to use the pure Go resolver -// and returns a fixup function to restore the old settings. -func forceGoDNS() func() { - c := systemConf() - oldGo := c.netGo - oldCgo := c.netCgo - fixup := func() { - c.netGo = oldGo - c.netCgo = oldCgo - } - c.netGo = true - c.netCgo = false - return fixup -} - -// forceCgoDNS forces the resolver configuration to use the cgo resolver -// and returns a fixup function to restore the old settings. -// (On non-Unix systems forceCgoDNS returns nil.) -func forceCgoDNS() func() { - c := systemConf() - oldGo := c.netGo - oldCgo := c.netCgo - fixup := func() { - c.netGo = oldGo - c.netCgo = oldCgo - } - c.netGo = false - c.netCgo = true - return fixup -} From 814978a013e0a11512b5f9fc103e522e506db113 Mon Sep 17 00:00:00 2001 From: Shenghou Ma Date: Tue, 23 Feb 2016 23:15:57 -0500 Subject: [PATCH 011/101] .gitignore: ignore src/go/build/zcgo.go Change-Id: I6d5db2781d05d6e7e49f5059db1fd84ad6ec328e Reviewed-on: https://go-review.googlesource.com/19839 Reviewed-by: Mikio Hara --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index de48481bf1..1677a18fc8 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,7 @@ src/cmd/**/y.output src/cmd/cgo/zdefaultcc.go src/cmd/go/zdefaultcc.go src/cmd/internal/obj/zbootstrap.go +src/go/build/zcgo.go src/go/doc/headscan src/runtime/internal/sys/zversion.go src/unicode/maketables From 539aa05a643e1e53d050ee94b1e6d2e8607ea7ac Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Mon, 22 Feb 2016 23:07:30 -0800 Subject: [PATCH 012/101] cmd/compile: towards simpler and faster lexing: always use getr Always reading runes (rather than bytes) has negligible overhead (a simple if at the moment - it can be eliminated eventually) but simplifies the lexer logic and opens up the door for speedups. In the process remove many int conversions that are now not needed anymore. Also, because identifiers are now more easily recognized, remove talph label and move identifier lexing "in place". Also, instead of accepting all chars < 0x80 and then check for "frogs", only permit valid characters in the first place. Removes an extra call for common simple tokens and leads to simpler logic. `time go build -a net/http` (best of 5 runs) seems 1% faster. Assuming this is in the noise, there is no noticeable performance degradation with this change. Change-Id: I3454c9bf8b91808188cf7a5f559341749da9a1eb Reviewed-on: https://go-review.googlesource.com/19847 Reviewed-by: Matthew Dempsky Run-TryBot: Robert Griesemer TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/lex.go | 422 ++++++++++++++--------------- test/fixedbugs/issue11610.go | 2 +- 2 files changed, 200 insertions(+), 224 deletions(-) diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index 6298bbbbba..ccbbeed2cc 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -37,6 +37,8 @@ var ( Debug_wb int ) +const BOM = 0xFEFF + // Debug arguments. // These can be specified with the -d flag, as in "-d nil" // to set the debug_checknil variable. In general the list passed @@ -310,7 +312,6 @@ func Main() { dclcontext = PEXTERN nerrors = 0 lexlineno = 1 - const BOM = 0xFEFF loadsys() @@ -575,10 +576,14 @@ func addidir(dir string) { } } +func isDriveLetter(b byte) bool { + return 'a' <= b && b <= 'z' || 'A' <= b && b <= 'Z' +} + // is this path a local name? begins with ./ or ../ or / func islocalname(name string) bool { return strings.HasPrefix(name, "/") || - Ctxt.Windows != 0 && len(name) >= 3 && isAlpha(int(name[0])) && name[1] == ':' && name[2] == '/' || + Ctxt.Windows != 0 && len(name) >= 3 && isDriveLetter(name[0]) && name[1] == ':' && name[2] == '/' || strings.HasPrefix(name, "./") || name == "." || strings.HasPrefix(name, "../") || name == ".." } @@ -829,20 +834,17 @@ func importfile(f *Val, indent []byte) { } } -func isSpace(c int) bool { +func isSpace(c rune) bool { return c == ' ' || c == '\t' || c == '\n' || c == '\r' } -func isAlpha(c int) bool { - return 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' +func isLetter(c rune) bool { + return 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || c == '_' } -func isDigit(c int) bool { +func isDigit(c rune) bool { return '0' <= c && c <= '9' } -func isAlnum(c int) bool { - return isAlpha(c) || isDigit(c) -} func plan9quote(s string) string { if s == "" { @@ -856,23 +858,11 @@ func plan9quote(s string) string { return s } -func isfrog(c int) bool { - // complain about possibly invisible control characters - if c < ' ' { - return !isSpace(c) // exclude good white space - } - - if 0x7f <= c && c <= 0xa0 { // DEL, unicode block including unbreakable space. - return true - } - return false -} - type lexer struct { // source bin *obj.Biobuf - peekc int - peekc1 int // second peekc for ... + peekr1 rune + peekr2 rune // second peekc for ... nlsemi bool // if set, '\n' and EOF translate to ';' @@ -932,7 +922,7 @@ const ( ) func (l *lexer) next() { - var c1 int + var c1 rune var op Op var escflag int var v int64 @@ -947,33 +937,73 @@ func (l *lexer) next() { l0: // skip white space - c := l.getc() + c := l.getr() for isSpace(c) { if c == '\n' && nlsemi { - l.ungetc(c) + // TODO(gri) we may be able avoid the ungetr and simply use lexlineno-1 below + l.ungetr(c) // for correct line number if Debug['x'] != 0 { fmt.Printf("lex: implicit semi\n") } + lineno = lexlineno l.tok = ';' return } - c = l.getc() + c = l.getr() } // start of token lineno = lexlineno - if c >= utf8.RuneSelf { - // all multibyte runes are alpha + // identifiers and keywords + // (for better error messages consume all chars >= utf8.RuneSelf for identifiers) + if isLetter(c) || c >= utf8.RuneSelf { cp = &lexbuf cp.Reset() - goto talph - } - if isAlpha(c) { - cp = &lexbuf - cp.Reset() - goto talph + // accelerate common case (7bit ASCII) + for isLetter(c) || isDigit(c) { + cp.WriteByte(byte(c)) + c = l.getr() + } + + // general case + for { + if c >= utf8.RuneSelf { + if unicode.IsLetter(c) || c == '_' || unicode.IsDigit(c) || importpkg != nil && c == 0xb7 { + if cp.Len() == 0 && unicode.IsDigit(c) { + Yyerror("identifier cannot begin with digit %#U", c) + } + } else { + Yyerror("invalid identifier character %#U", c) + } + cp.WriteRune(c) + } else if isLetter(c) || isDigit(c) { + cp.WriteByte(byte(c)) + } else { + break + } + c = l.getr() + } + + cp = nil + l.ungetr(c) + + s = LookupBytes(lexbuf.Bytes()) + if s.Lexical == LIGNORE { + goto l0 + } + + if Debug['x'] != 0 { + fmt.Printf("lex: %s %s\n", s, lexname(rune(s.Lexical))) + } + l.sym_ = s + switch s.Lexical { + case LNAME, LRETURN, LBREAK, LCONTINUE, LFALL: + l.nlsemi = true + } + l.tok = int32(s.Lexical) + return } if isDigit(c) { @@ -982,7 +1012,7 @@ l0: if c != '0' { for { cp.WriteByte(byte(c)) - c = l.getc() + c = l.getr() if isDigit(c) { continue } @@ -1000,11 +1030,11 @@ l0: } cp.WriteByte(byte(c)) - c = l.getc() + c = l.getr() if c == 'x' || c == 'X' { for { cp.WriteByte(byte(c)) - c = l.getc() + c = l.getr() if isDigit(c) { continue } @@ -1037,7 +1067,7 @@ l0: c1 = 1 // not octal } cp.WriteByte(byte(c)) - c = l.getc() + c = l.getr() } if c == '.' { @@ -1057,8 +1087,7 @@ l0: switch c { case EOF: - lineno = prevlineno - l.ungetc(EOF) + l.ungetr(EOF) // return EOF again in future next call // Treat EOF as "end of line" for the purposes // of inserting a semicolon. if nlsemi { @@ -1071,13 +1100,8 @@ l0: l.tok = -1 return - case '_': - cp = &lexbuf - cp.Reset() - goto talph - case '.': - c1 = l.getc() + c1 = l.getr() if isDigit(c1) { cp = &lexbuf cp.Reset() @@ -1087,13 +1111,13 @@ l0: } if c1 == '.' { - c1 = l.getc() + c1 = l.getr() if c1 == '.' { c = LDDD goto lx } - l.ungetc(c1) + l.ungetr(c1) c1 = '.' } @@ -1127,7 +1151,7 @@ l0: cp.Reset() for { - c = int(l.getr()) + c = l.getr() if c == '\r' { continue } @@ -1139,7 +1163,7 @@ l0: if c == '`' { break } - cp.WriteRune(rune(c)) + cp.WriteRune(c) } goto strlit @@ -1153,7 +1177,7 @@ l0: if !l.escchar('\'', &escflag, &v) { Yyerror("missing '") - l.ungetc(int(v)) + l.ungetr(rune(v)) } x := new(Mpint) @@ -1163,25 +1187,25 @@ l0: if Debug['x'] != 0 { fmt.Printf("lex: codepoint literal\n") } - litbuf = "string literal" + litbuf = "rune literal" l.nlsemi = true l.tok = LLITERAL return case '/': - c1 = l.getc() + c1 = l.getr() if c1 == '*' { nl := false for { - c = int(l.getr()) + c = l.getr() if c == '\n' { nl = true } for c == '*' { - c = int(l.getr()) + c = l.getr() if c == '/' { if nl { - l.ungetc('\n') + l.ungetr('\n') } goto l0 } @@ -1202,11 +1226,11 @@ l0: c = l.getlinepragma() for { if c == '\n' || c == EOF { - l.ungetc(c) + l.ungetr(c) goto l0 } - c = int(l.getr()) + c = l.getr() } } @@ -1216,31 +1240,31 @@ l0: } case ':': - c1 = l.getc() + c1 = l.getr() if c1 == '=' { - c = int(LCOLAS) + c = LCOLAS goto lx } case '*': - c1 = l.getc() + c1 = l.getr() if c1 == '=' { op = OMUL goto asop } case '%': - c1 = l.getc() + c1 = l.getr() if c1 == '=' { op = OMOD goto asop } case '+': - c1 = l.getc() + c1 = l.getr() if c1 == '+' { l.nlsemi = true - c = int(LINC) + c = LINC goto lx } @@ -1250,10 +1274,10 @@ l0: } case '-': - c1 = l.getc() + c1 = l.getr() if c1 == '-' { l.nlsemi = true - c = int(LDEC) + c = LDEC goto lx } @@ -1263,10 +1287,10 @@ l0: } case '>': - c1 = l.getc() + c1 = l.getr() if c1 == '>' { - c = int(LRSH) - c1 = l.getc() + c = LRSH + c1 = l.getr() if c1 == '=' { op = ORSH goto asop @@ -1276,17 +1300,17 @@ l0: } if c1 == '=' { - c = int(LGE) + c = LGE goto lx } - c = int(LGT) + c = LGT case '<': - c1 = l.getc() + c1 = l.getr() if c1 == '<' { - c = int(LLSH) - c1 = l.getc() + c = LLSH + c1 = l.getr() if c1 == '=' { op = OLSH goto asop @@ -1296,41 +1320,41 @@ l0: } if c1 == '=' { - c = int(LLE) + c = LLE goto lx } if c1 == '-' { - c = int(LCOMM) + c = LCOMM goto lx } - c = int(LLT) + c = LLT case '=': - c1 = l.getc() + c1 = l.getr() if c1 == '=' { - c = int(LEQ) + c = LEQ goto lx } case '!': - c1 = l.getc() + c1 = l.getr() if c1 == '=' { - c = int(LNE) + c = LNE goto lx } case '&': - c1 = l.getc() + c1 = l.getr() if c1 == '&' { - c = int(LANDAND) + c = LANDAND goto lx } if c1 == '^' { - c = int(LANDNOT) - c1 = l.getc() + c = LANDNOT + c1 = l.getr() if c1 == '=' { op = OANDNOT goto asop @@ -1345,9 +1369,9 @@ l0: } case '|': - c1 = l.getc() + c1 = l.getr() if c1 == '|' { - c = int(LOROR) + c = LOROR goto lx } @@ -1357,21 +1381,32 @@ l0: } case '^': - c1 = l.getc() + c1 = l.getr() if c1 == '=' { op = OXOR goto asop } + case '(', '[', '{', ',', ';': + goto lx + case ')', ']', '}': l.nlsemi = true goto lx + case '#', '$', '?', '@', '\\': + if importpkg != nil { + goto lx + } + fallthrough + default: - goto lx + // anything else is illegal + Yyerror("syntax error: illegal character %#U", c) + goto l0 } - l.ungetc(c1) + l.ungetr(c1) lx: if Debug['x'] != 0 { @@ -1381,17 +1416,8 @@ lx: fmt.Printf("%v lex: TOKEN '%c'\n", Ctxt.Line(int(lexlineno)), c) } } - if isfrog(c) { - Yyerror("illegal character 0x%x", uint(c)) - goto l0 - } - if importpkg == nil && (c == '#' || c == '$' || c == '?' || c == '@' || c == '\\') { - Yyerror("%s: unexpected %c", "syntax error", c) - goto l0 - } - - l.tok = int32(c) + l.tok = c return asop: @@ -1402,52 +1428,9 @@ asop: l.tok = LASOP return - // cp is set to lexbuf and some - // prefix has been stored -talph: - for { - if c >= utf8.RuneSelf { - l.ungetc(c) - r := rune(l.getr()) - - // 0xb7 · is used for internal names - if !unicode.IsLetter(r) && !unicode.IsDigit(r) && (importpkg == nil || r != 0xb7) { - Yyerror("invalid identifier character U+%04x", r) - } - if cp.Len() == 0 && unicode.IsDigit(r) { - Yyerror("identifier cannot begin with digit U+%04x", r) - } - cp.WriteRune(r) - } else if !isAlnum(c) && c != '_' { - break - } else { - cp.WriteByte(byte(c)) - } - c = l.getc() - } - - cp = nil - l.ungetc(c) - - s = LookupBytes(lexbuf.Bytes()) - if s.Lexical == LIGNORE { - goto l0 - } - - if Debug['x'] != 0 { - fmt.Printf("lex: %s %s\n", s, lexname(int(s.Lexical))) - } - l.sym_ = s - switch s.Lexical { - case LNAME, LRETURN, LBREAK, LCONTINUE, LFALL: - l.nlsemi = true - } - l.tok = int32(s.Lexical) - return - ncu: cp = nil - l.ungetc(c) + l.ungetr(c) str = lexbuf.String() l.val.U = new(Mpint) @@ -1468,7 +1451,7 @@ ncu: casedot: for { cp.WriteByte(byte(c)) - c = l.getc() + c = l.getr() if !isDigit(c) { break } @@ -1488,10 +1471,10 @@ caseep: Yyerror("malformed floating point constant") } cp.WriteByte(byte(c)) - c = l.getc() + c = l.getr() if c == '+' || c == '-' { cp.WriteByte(byte(c)) - c = l.getc() + c = l.getr() } if !isDigit(c) { @@ -1499,7 +1482,7 @@ caseep: } for isDigit(c) { cp.WriteByte(byte(c)) - c = l.getc() + c = l.getr() } if c == 'i' { @@ -1530,7 +1513,7 @@ casei: caseout: cp = nil - l.ungetc(c) + l.ungetr(c) str = lexbuf.String() l.val.U = newMpflt() @@ -1571,7 +1554,7 @@ func internString(b []byte) string { func more(pp *string) bool { p := *pp - for p != "" && isSpace(int(p[0])) { + for p != "" && isSpace(rune(p[0])) { p = p[1:] } *pp = p @@ -1582,16 +1565,16 @@ func more(pp *string) bool { // //line parse.y:15 // as a discontinuity in sequential line numbers. // the next line of input comes from parse.y:15 -func (l *lexer) getlinepragma() int { +func (l *lexer) getlinepragma() rune { var cmd, verb, name string - c := int(l.getr()) + c := l.getr() if c == 'g' { cp := &lexbuf cp.Reset() cp.WriteByte('g') // already read for { - c = int(l.getr()) + c = l.getr() if c == EOF || c >= utf8.RuneSelf { return c } @@ -1683,8 +1666,8 @@ func (l *lexer) getlinepragma() int { return c } for i := 1; i < 5; i++ { - c = int(l.getr()) - if c != int("line "[i]) { + c = l.getr() + if c != rune("line "[i]) { return c } } @@ -1693,7 +1676,7 @@ func (l *lexer) getlinepragma() int { cp.Reset() linep := 0 for { - c = int(l.getr()) + c = l.getr() if c == EOF { return c } @@ -1746,7 +1729,7 @@ func getimpsym(pp *string) string { return "" } i := 0 - for i < len(p) && !isSpace(int(p[i])) && p[i] != '"' { + for i < len(p) && !isSpace(rune(p[i])) && p[i] != '"' { i++ } sym := p[:i] @@ -1874,79 +1857,72 @@ func pragcgo(text string) { } } -func (l *lexer) getc() int { - c := l.peekc - if c != 0 { - l.peekc = l.peekc1 - l.peekc1 = 0 - goto check - } - -loop: - c = obj.Bgetc(l.bin) - // recognize BOM (U+FEFF): UTF-8 encoding is 0xef 0xbb 0xbf - if c == 0xef { - buf, err := l.bin.Peek(2) - if err != nil { - yyerrorl(int(lexlineno), "illegal UTF-8 sequence ef % x followed by read error (%v)", string(buf), err) - errorexit() +func (l *lexer) getr() rune { + // unread rune != 0 available + if r := l.peekr1; r != 0 { + l.peekr1 = l.peekr2 + l.peekr2 = 0 + if r == '\n' && importpkg == nil { + lexlineno++ } - if buf[0] == 0xbb && buf[1] == 0xbf { - yyerrorl(int(lexlineno), "Unicode (UTF-8) BOM in middle of file") + return r + } - // consume BOM bytes - obj.Bgetc(l.bin) - obj.Bgetc(l.bin) - goto loop +redo: + // common case: 7bit ASCII + c := obj.Bgetc(l.bin) + if c < utf8.RuneSelf { + if c == 0 { + // TODO(gri) do we need lineno = lexlineno here? Why not? + Yyerror("illegal NUL byte") + return 0 } + if c == '\n' && importpkg == nil { + lexlineno++ + } + return rune(c) + } + // c >= utf8.RuneSelf + + // uncommon case: non-ASCII + var buf [utf8.UTFMax]byte + buf[0] = byte(c) + buf[1] = byte(obj.Bgetc(l.bin)) + i := 2 + for ; i < len(buf) && !utf8.FullRune(buf[:i]); i++ { + buf[i] = byte(obj.Bgetc(l.bin)) } -check: - if c == 0 { - Yyerror("illegal NUL byte") - return 0 + r, w := utf8.DecodeRune(buf[:i]) + if r == utf8.RuneError && w == 1 { + lineno = lexlineno + // The string conversion here makes a copy for passing + // to fmt.Printf, so that buf itself does not escape and + // can be allocated on the stack. + Yyerror("illegal UTF-8 sequence % x", string(buf[:i+1])) } - if c == '\n' && importpkg == nil { - lexlineno++ + + if r == BOM { + // TODO(gri) can we use Yyerror here? Why not? + yyerrorl(int(lexlineno), "Unicode (UTF-8) BOM in middle of file") + goto redo } - return c + + return r } -func (l *lexer) ungetc(c int) { - l.peekc1 = l.peekc - l.peekc = c - if c == '\n' && importpkg == nil { +func (l *lexer) ungetr(r rune) { + l.peekr2 = l.peekr1 + l.peekr1 = r + if r == '\n' && importpkg == nil { lexlineno-- } } -func (l *lexer) getr() int32 { - var buf [utf8.UTFMax]byte - - for i := 0; ; i++ { - c := l.getc() - if i == 0 && c < utf8.RuneSelf { - return int32(c) - } - buf[i] = byte(c) - if i+1 == len(buf) || utf8.FullRune(buf[:i+1]) { - r, w := utf8.DecodeRune(buf[:i+1]) - if r == utf8.RuneError && w == 1 { - lineno = lexlineno - // The string conversion here makes a copy for passing - // to fmt.Printf, so that buf itself does not escape and can - // be allocated on the stack. - Yyerror("illegal UTF-8 sequence % x", string(buf[:i+1])) - } - return int32(r) - } - } -} - -func (l *lexer) escchar(e int, escflg *int, val *int64) bool { +func (l *lexer) escchar(e rune, escflg *int, val *int64) bool { *escflg = 0 - c := int(l.getr()) + c := l.getr() switch c { case EOF: Yyerror("eof in string") @@ -1968,7 +1944,7 @@ func (l *lexer) escchar(e int, escflg *int, val *int64) bool { } u := 0 - c = int(l.getr()) + c = l.getr() var i int switch c { case 'x': @@ -1997,14 +1973,14 @@ func (l *lexer) escchar(e int, escflg *int, val *int64) bool { *escflg = 1 // it's a byte x := int64(c) - '0' for i := 2; i > 0; i-- { - c = l.getc() + c = l.getr() if c >= '0' && c <= '7' { x = x*8 + int64(c) - '0' continue } Yyerror("non-octal character in escape sequence: %c", c) - l.ungetc(c) + l.ungetr(c) } if x > 255 { @@ -2043,7 +2019,7 @@ func (l *lexer) escchar(e int, escflg *int, val *int64) bool { hex: x := int64(0) for ; i > 0; i-- { - c = l.getc() + c = l.getr() if c >= '0' && c <= '9' { x = x*16 + int64(c) - '0' continue @@ -2060,7 +2036,7 @@ hex: } Yyerror("non-hex character in escape sequence: %c", c) - l.ungetc(c) + l.ungetr(c) break } @@ -2377,7 +2353,7 @@ func lexfini() { nodfp.Sym = Lookup(".fp") } -var lexn = map[int]string{ +var lexn = map[rune]string{ LANDAND: "ANDAND", LANDNOT: "ANDNOT", LASOP: "ASOP", @@ -2424,7 +2400,7 @@ var lexn = map[int]string{ LVAR: "VAR", } -func lexname(lex int) string { +func lexname(lex rune) string { if s, ok := lexn[lex]; ok { return s } diff --git a/test/fixedbugs/issue11610.go b/test/fixedbugs/issue11610.go index 56f245dee5..f32d480482 100644 --- a/test/fixedbugs/issue11610.go +++ b/test/fixedbugs/issue11610.go @@ -9,7 +9,7 @@ package a import"" // ERROR "import path is empty" -var? // ERROR "unexpected \?" +var? // ERROR "illegal character U\+003F '\?'" var x int // ERROR "unexpected var" "cannot declare name" From c3ecded729214abf8a146902741cd6f9d257f68c Mon Sep 17 00:00:00 2001 From: Shenghou Ma Date: Wed, 24 Feb 2016 12:34:56 -0500 Subject: [PATCH 013/101] cmd/dist: introduce list subcommand to list all supported platforms Fixes #12270. Change-Id: Ie3dcbd0403d270b4b7f5c39049e12315eee159ed Reviewed-on: https://go-review.googlesource.com/19837 Reviewed-by: Brad Fitzpatrick Run-TryBot: Minux Ma TryBot-Result: Gobot Gobot --- doc/go1.7.txt | 1 + src/cmd/dist/build.go | 58 +++++++++++++++++++++++++++++++++++++++++ src/cmd/dist/buildgo.go | 6 +++-- src/cmd/dist/main.go | 1 + 4 files changed, 64 insertions(+), 2 deletions(-) diff --git a/doc/go1.7.txt b/doc/go1.7.txt index 15efa287ce..2af8b5447e 100644 --- a/doc/go1.7.txt +++ b/doc/go1.7.txt @@ -1,5 +1,6 @@ Tools: +cmd/dist: add list subcommand to list all supported platforms (CL 19837) cmd/go: GO15VENDOREXPERIMENT gone, assumed on (CL 19615) cmd/link: "-X name value" form gone (CL 19614) diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index 8ef73e7a89..1b3df333d6 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -6,6 +6,7 @@ package main import ( "bytes" + "encoding/json" "flag" "fmt" "os" @@ -937,6 +938,7 @@ func usage() { "clean deletes all built files\n" + "env [-p] print environment (-p: include $PATH)\n" + "install [dir] install individual directory\n" + + "list [-json] list all supported platforms\n" + "test [-h] run Go test(s)\n" + "version print Go version\n" + "\n" + @@ -1068,6 +1070,10 @@ func cmdbootstrap() { // Cannot use go/build directly because cmd/dist for a new release // builds against an old release's go/build, which may be out of sync. // To reduce duplication, we generate the list for go/build from this. +// +// We list all supported platforms in this list, so that this is the +// single point of truth for supported platforms. This list is used +// by 'go tool dist list'. var cgoEnabled = map[string]bool{ "darwin/386": true, "darwin/amd64": true, @@ -1076,19 +1082,31 @@ var cgoEnabled = map[string]bool{ "dragonfly/amd64": true, "freebsd/386": true, "freebsd/amd64": true, + "freebsd/arm": false, "linux/386": true, "linux/amd64": true, "linux/arm": true, "linux/arm64": true, + "linux/ppc64": false, "linux/ppc64le": true, + "linux/mips64": false, + "linux/mips64le": false, "android/386": true, "android/amd64": true, "android/arm": true, + "android/arm64": true, + "nacl/386": false, + "nacl/amd64p32": false, + "nacl/arm": false, "netbsd/386": true, "netbsd/amd64": true, "netbsd/arm": true, "openbsd/386": true, "openbsd/amd64": true, + "openbsd/arm": false, + "plan9/386": false, + "plan9/amd64": false, + "plan9/arm": false, "solaris/amd64": true, "windows/386": true, "windows/amd64": true, @@ -1199,3 +1217,43 @@ func cmdversion() { xflagparse(0) xprintf("%s\n", findgoversion()) } + +// cmdlist lists all supported platforms. +func cmdlist() { + jsonFlag := flag.Bool("json", false, "produce JSON output") + xflagparse(0) + + var plats []string + for p := range cgoEnabled { + plats = append(plats, p) + } + sort.Strings(plats) + + if !*jsonFlag { + for _, p := range plats { + xprintf("%s\n", p) + } + return + } + + type jsonResult struct { + GOOS string + GOARCH string + CgoSupported bool + } + var results []jsonResult + for _, p := range plats { + fields := strings.Split(p, "/") + results = append(results, jsonResult{ + GOOS: fields[0], + GOARCH: fields[1], + CgoSupported: cgoEnabled[p]}) + } + out, err := json.MarshalIndent(results, "", "\t") + if err != nil { + fatal("json marshal error: %v", err) + } + if _, err := os.Stdout.Write(out); err != nil { + fatal("write failed: %v", err) + } +} diff --git a/src/cmd/dist/buildgo.go b/src/cmd/dist/buildgo.go index 3dc9ff0dde..c0bdfad9b1 100644 --- a/src/cmd/dist/buildgo.go +++ b/src/cmd/dist/buildgo.go @@ -56,8 +56,10 @@ func mkzcgo(dir, file string) { "package build\n"+ "\n"+ "var cgoEnabled = map[string]bool{\n") - for plat := range cgoEnabled { - fmt.Fprintf(&buf, "\t%q: true,\n", plat) + for plat, hasCgo := range cgoEnabled { + if hasCgo { + fmt.Fprintf(&buf, "\t%q: true,\n", plat) + } } fmt.Fprintf(&buf, "}") diff --git a/src/cmd/dist/main.go b/src/cmd/dist/main.go index 1f19a7ca18..eaee28ada8 100644 --- a/src/cmd/dist/main.go +++ b/src/cmd/dist/main.go @@ -21,6 +21,7 @@ var cmdtab = []struct { {"clean", cmdclean}, {"env", cmdenv}, {"install", cmdinstall}, + {"list", cmdlist}, {"test", cmdtest}, {"version", cmdversion}, } From 6e6637bdb478e98d32dd10659ea1975a00aeda0a Mon Sep 17 00:00:00 2001 From: Catalin Nicutar Date: Sun, 21 Feb 2016 18:32:25 +0000 Subject: [PATCH 014/101] cmd/vet: add a check for tests with malformed names According to golang.org/pkg/testing the first character after Test has to be non-lowercase. Functions that don't conform to this are not considered tests and are not loaded which can cause surprises. This change adds a check to warn about Test-like functions in a _test file that are not actually run by go test. Moved over from https://go-review.googlesource.com/#/c/19466/ Change-Id: I2f89676058b27a0e35f721bdabc9fa8a9d34430d Reviewed-on: https://go-review.googlesource.com/19724 Reviewed-by: Ian Lance Taylor Reviewed-by: Rob Pike --- src/cmd/vet/doc.go | 8 +- src/cmd/vet/example.go | 124 ------------ .../{examples_test.go => tests_test.go} | 30 ++- src/cmd/vet/tests.go | 182 ++++++++++++++++++ 4 files changed, 214 insertions(+), 130 deletions(-) delete mode 100644 src/cmd/vet/example.go rename src/cmd/vet/testdata/{examples_test.go => tests_test.go} (59%) create mode 100644 src/cmd/vet/tests.go diff --git a/src/cmd/vet/doc.go b/src/cmd/vet/doc.go index 53db6dde93..bb3238fc9e 100644 --- a/src/cmd/vet/doc.go +++ b/src/cmd/vet/doc.go @@ -85,12 +85,12 @@ Flag: -copylocks Locks that are erroneously passed by value. -Documentation examples +Tests, benchmarks and documentation examples -Flag: -example +Flag: -tests -Mistakes involving example tests, including examples with incorrect names or -function signatures, or that document identifiers not in the package. +Mistakes involving tests including functions with incorrect names or signatures +and example tests that document identifiers not in the package. Methods diff --git a/src/cmd/vet/example.go b/src/cmd/vet/example.go deleted file mode 100644 index 797c3ceec8..0000000000 --- a/src/cmd/vet/example.go +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package main - -import ( - "go/ast" - "go/types" - "strings" - "unicode" - "unicode/utf8" -) - -func init() { - register("example", - "check for common mistaken usages of documentation examples", - checkExample, - funcDecl) -} - -func isExampleSuffix(s string) bool { - r, size := utf8.DecodeRuneInString(s) - return size > 0 && unicode.IsLower(r) -} - -// checkExample walks the documentation example functions checking for common -// mistakes of misnamed functions, failure to map functions to existing -// identifiers, etc. -func checkExample(f *File, node ast.Node) { - if !strings.HasSuffix(f.name, "_test.go") { - return - } - var ( - pkg = f.pkg - pkgName = pkg.typesPkg.Name() - scopes = []*types.Scope{pkg.typesPkg.Scope()} - lookup = func(name string) types.Object { - for _, scope := range scopes { - if o := scope.Lookup(name); o != nil { - return o - } - } - return nil - } - ) - if strings.HasSuffix(pkgName, "_test") { - // Treat 'package foo_test' as an alias for 'package foo'. - var ( - basePkg = strings.TrimSuffix(pkgName, "_test") - pkg = f.pkg - ) - for _, p := range pkg.typesPkg.Imports() { - if p.Name() == basePkg { - scopes = append(scopes, p.Scope()) - break - } - } - } - fn, ok := node.(*ast.FuncDecl) - if !ok { - // Ignore non-functions. - return - } - var ( - fnName = fn.Name.Name - report = func(format string, args ...interface{}) { f.Badf(node.Pos(), format, args...) } - ) - if fn.Recv != nil || !strings.HasPrefix(fnName, "Example") { - // Ignore methods and types not named "Example". - return - } - if params := fn.Type.Params; len(params.List) != 0 { - report("%s should be niladic", fnName) - } - if results := fn.Type.Results; results != nil && len(results.List) != 0 { - report("%s should return nothing", fnName) - } - if fnName == "Example" { - // Nothing more to do. - return - } - if filesRun && !includesNonTest { - // The coherence checks between a test and the package it tests - // will report false positives if no non-test files have - // been provided. - return - } - var ( - exName = strings.TrimPrefix(fnName, "Example") - elems = strings.SplitN(exName, "_", 3) - ident = elems[0] - obj = lookup(ident) - ) - if ident != "" && obj == nil { - // Check ExampleFoo and ExampleBadFoo. - report("%s refers to unknown identifier: %s", fnName, ident) - // Abort since obj is absent and no subsequent checks can be performed. - return - } - if elemCnt := strings.Count(exName, "_"); elemCnt == 0 { - // Nothing more to do. - return - } - mmbr := elems[1] - if ident == "" { - // Check Example_suffix and Example_BadSuffix. - if residual := strings.TrimPrefix(exName, "_"); !isExampleSuffix(residual) { - report("%s has malformed example suffix: %s", fnName, residual) - } - return - } - if !isExampleSuffix(mmbr) { - // Check ExampleFoo_Method and ExampleFoo_BadMethod. - if obj, _, _ := types.LookupFieldOrMethod(obj.Type(), true, obj.Pkg(), mmbr); obj == nil { - report("%s refers to unknown field or method: %s.%s", fnName, ident, mmbr) - } - } - if len(elems) == 3 && !isExampleSuffix(elems[2]) { - // Check ExampleFoo_Method_suffix and ExampleFoo_Method_Badsuffix. - report("%s has malformed example suffix: %s", fnName, elems[2]) - } - return -} diff --git a/src/cmd/vet/testdata/examples_test.go b/src/cmd/vet/testdata/tests_test.go similarity index 59% rename from src/cmd/vet/testdata/examples_test.go rename to src/cmd/vet/testdata/tests_test.go index 9c53672a7d..f5bbc3922a 100644 --- a/src/cmd/vet/testdata/examples_test.go +++ b/src/cmd/vet/testdata/tests_test.go @@ -1,7 +1,9 @@ -// Test of examples. - package testdata +import ( + "testing" +) + // Buf is a ... type Buf []byte @@ -46,3 +48,27 @@ func ExamplePuffer() // ERROR "ExamplePuffer refers to unknown identifier: Puffe func ExamplePuffer_Append() // ERROR "ExamplePuffer_Append refers to unknown identifier: Puffer" func ExamplePuffer_suffix() // ERROR "ExamplePuffer_suffix refers to unknown identifier: Puffer" + +func nonTest() {} // OK because it doesn't start with "Test". + +func (Buf) TesthasReceiver() {} // OK because it has a receiver. + +func TestOKSuffix(*testing.T) {} // OK because first char after "Test" is Uppercase. + +func TestÜnicodeWorks(*testing.T) {} // OK because the first char after "Test" is Uppercase. + +func TestbadSuffix(*testing.T) {} // ERROR "first letter after 'Test' must not be lowercase" + +func TestemptyImportBadSuffix(*T) {} // ERROR "first letter after 'Test' must not be lowercase" + +func Test(*testing.T) {} // OK "Test" on its own is considered a test. + +func Testify() {} // OK because it takes no parameters. + +func TesttooManyParams(*testing.T, string) {} // OK because it takes too many parameters. + +func TesttooManyNames(a, b *testing.T) {} // OK because it takes too many names. + +func TestnoTParam(string) {} // OK because it doesn't take a *testing.T + +func BenchmarkbadSuffix(*testing.B) {} // ERROR "first letter after 'Benchmark' must not be lowercase" diff --git a/src/cmd/vet/tests.go b/src/cmd/vet/tests.go new file mode 100644 index 0000000000..52ad334098 --- /dev/null +++ b/src/cmd/vet/tests.go @@ -0,0 +1,182 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import ( + "go/ast" + "go/types" + "strings" + "unicode" + "unicode/utf8" +) + +func init() { + register("tests", + "check for common mistaken usages of tests/documentation examples", + checkTestFunctions, + funcDecl) +} + +func isExampleSuffix(s string) bool { + r, size := utf8.DecodeRuneInString(s) + return size > 0 && unicode.IsLower(r) +} + +func isTestSuffix(name string) bool { + if len(name) == 0 { + // "Test" is ok. + return true + } + r, _ := utf8.DecodeRuneInString(name) + return !unicode.IsLower(r) +} + +func isTestParam(typ ast.Expr, wantType string) bool { + ptr, ok := typ.(*ast.StarExpr) + if !ok { + // Not a pointer. + return false + } + // No easy way of making sure it's a *testing.T or *testing.B: + // ensure the name of the type matches. + if name, ok := ptr.X.(*ast.Ident); ok { + return name.Name == wantType + } + if sel, ok := ptr.X.(*ast.SelectorExpr); ok { + return sel.Sel.Name == wantType + } + return false +} + +func lookup(name string, scopes []*types.Scope) types.Object { + for _, scope := range scopes { + if o := scope.Lookup(name); o != nil { + return o + } + } + return nil +} + +func extendedScope(pkg *Package) []*types.Scope { + scopes := []*types.Scope{pkg.typesPkg.Scope()} + + pkgName := pkg.typesPkg.Name() + if strings.HasPrefix(pkgName, "_test") { + basePkg := strings.TrimSuffix(pkgName, "_test") + for _, p := range pkg.typesPkg.Imports() { + if p.Name() == basePkg { + scopes = append(scopes, p.Scope()) + break + } + } + } + return scopes +} + +func checkExample(fn *ast.FuncDecl, pkg *Package, report reporter) { + fnName := fn.Name.Name + if params := fn.Type.Params; len(params.List) != 0 { + report("%s should be niladic", fnName) + } + if results := fn.Type.Results; results != nil && len(results.List) != 0 { + report("%s should return nothing", fnName) + } + + if filesRun && !includesNonTest { + // The coherence checks between a test and the package it tests + // will report false positives if no non-test files have + // been provided. + return + } + + if fnName == "Example" { + // Nothing more to do. + return + } + + var ( + exName = strings.TrimPrefix(fnName, "Example") + elems = strings.SplitN(exName, "_", 3) + ident = elems[0] + obj = lookup(ident, extendedScope(pkg)) + ) + if ident != "" && obj == nil { + // Check ExampleFoo and ExampleBadFoo. + report("%s refers to unknown identifier: %s", fnName, ident) + // Abort since obj is absent and no subsequent checks can be performed. + return + } + if len(elems) < 2 { + // Nothing more to do. + return + } + + if ident == "" { + // Check Example_suffix and Example_BadSuffix. + if residual := strings.TrimPrefix(exName, "_"); !isExampleSuffix(residual) { + report("%s has malformed example suffix: %s", fnName, residual) + } + return + } + + mmbr := elems[1] + if !isExampleSuffix(mmbr) { + // Check ExampleFoo_Method and ExampleFoo_BadMethod. + if obj, _, _ := types.LookupFieldOrMethod(obj.Type(), true, obj.Pkg(), mmbr); obj == nil { + report("%s refers to unknown field or method: %s.%s", fnName, ident, mmbr) + } + } + if len(elems) == 3 && !isExampleSuffix(elems[2]) { + // Check ExampleFoo_Method_suffix and ExampleFoo_Method_Badsuffix. + report("%s has malformed example suffix: %s", fnName, elems[2]) + } +} + +func checkTest(fn *ast.FuncDecl, prefix string, report reporter) { + // Want functions with 0 results and 1 parameter. + if fn.Type.Results != nil && len(fn.Type.Results.List) > 0 || + fn.Type.Params == nil || + len(fn.Type.Params.List) != 1 || + len(fn.Type.Params.List[0].Names) > 1 { + return + } + + // The param must look like a *testing.T or *testing.B. + if !isTestParam(fn.Type.Params.List[0].Type, prefix[:1]) { + return + } + + if !isTestSuffix(fn.Name.Name[len(prefix):]) { + report("%s has malformed name: first letter after '%s' must not be lowercase", fn.Name.Name, prefix) + } +} + +type reporter func(format string, args ...interface{}) + +// checkTestFunctions walks Test, Benchmark and Example functions checking +// malformed names, wrong signatures and examples documenting inexistent +// identifiers. +func checkTestFunctions(f *File, node ast.Node) { + if !strings.HasSuffix(f.name, "_test.go") { + return + } + + fn, ok := node.(*ast.FuncDecl) + if !ok || fn.Recv != nil { + // Ignore non-functions or functions with receivers. + return + } + + report := func(format string, args ...interface{}) { f.Badf(node.Pos(), format, args...) } + + switch { + case strings.HasPrefix(fn.Name.Name, "Example"): + checkExample(fn, f.pkg, report) + case strings.HasPrefix(fn.Name.Name, "Test"): + checkTest(fn, "Test", report) + case strings.HasPrefix(fn.Name.Name, "Benchmark"): + checkTest(fn, "Benchmark", report) + } +} From 50c38d46e870435c17ac86957e2eb469ce41dd6d Mon Sep 17 00:00:00 2001 From: kortschak Date: Thu, 18 Feb 2016 21:19:03 +1030 Subject: [PATCH 015/101] cmd/go, go/build: add support for Fortran This change adds support for Fortran files (.f, .F, .for, .f90) to the go tool, in a similar fashion to Objective-C/C++. Only gfortran is supported out of the box so far but leaves other Fortran compiler toolchains the ability to pass the correct link options via CGO_LDFLAGS. A simple test (misc/cgo/fortran) has been added and plugged into the general test infrastructure. This test is only enabled when the $FC environment variable is defined (or if 'gfortran' was found in $PATH.) Derived from CL 4114. Change-Id: Ifc855091942f95c6e9b17d91c17ceb4eee376408 Reviewed-on: https://go-review.googlesource.com/19670 Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot --- misc/cgo/fortran/answer.f90 | 9 ++++ misc/cgo/fortran/fortran.go | 12 ++++++ misc/cgo/fortran/fortran_test.go | 13 ++++++ src/cmd/cgo/doc.go | 20 +++++---- src/cmd/dist/test.go | 14 +++++++ src/cmd/go/build.go | 71 ++++++++++++++++++++++++++++---- src/cmd/go/list.go | 2 + src/cmd/go/pkg.go | 6 ++- src/go/build/build.go | 9 +++- src/make.bash | 3 ++ src/make.bat | 3 ++ 11 files changed, 143 insertions(+), 19 deletions(-) create mode 100644 misc/cgo/fortran/answer.f90 create mode 100644 misc/cgo/fortran/fortran.go create mode 100644 misc/cgo/fortran/fortran_test.go diff --git a/misc/cgo/fortran/answer.f90 b/misc/cgo/fortran/answer.f90 new file mode 100644 index 0000000000..6b29d78da1 --- /dev/null +++ b/misc/cgo/fortran/answer.f90 @@ -0,0 +1,9 @@ +! Copyright 2016 The Go Authors. All rights reserved. +! Use of this source code is governed by a BSD-style +! license that can be found in the LICENSE file. + +function the_answer() result(j) bind(C) + use iso_c_binding, only: c_int + integer(c_int) :: j ! output + j = 42 +end function the_answer diff --git a/misc/cgo/fortran/fortran.go b/misc/cgo/fortran/fortran.go new file mode 100644 index 0000000000..8d008b48c8 --- /dev/null +++ b/misc/cgo/fortran/fortran.go @@ -0,0 +1,12 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package fortran + +// int the_answer(); +import "C" + +func TheAnswer() int { + return int(C.the_answer()) +} diff --git a/misc/cgo/fortran/fortran_test.go b/misc/cgo/fortran/fortran_test.go new file mode 100644 index 0000000000..a7ba64850a --- /dev/null +++ b/misc/cgo/fortran/fortran_test.go @@ -0,0 +1,13 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package fortran + +import "testing" + +func TestFortran(t *testing.T) { + if a := TheAnswer(); a != 42 { + t.Errorf("Unexpected result for The Answer. Got: %d Want: 42", a) + } +} diff --git a/src/cmd/cgo/doc.go b/src/cmd/cgo/doc.go index 90c2584c7f..58be391573 100644 --- a/src/cmd/cgo/doc.go +++ b/src/cmd/cgo/doc.go @@ -31,9 +31,9 @@ See $GOROOT/misc/cgo/stdio and $GOROOT/misc/cgo/gmp for examples. See "C? Go? Cgo!" for an introduction to using cgo: https://golang.org/doc/articles/c_go_cgo.html. -CFLAGS, CPPFLAGS, CXXFLAGS and LDFLAGS may be defined with pseudo #cgo -directives within these comments to tweak the behavior of the C or C++ -compiler. Values defined in multiple directives are concatenated +CFLAGS, CPPFLAGS, CXXFLAGS, FFLAGS and LDFLAGS may be defined with pseudo +#cgo directives within these comments to tweak the behavior of the C, C++ +or Fortran compiler. Values defined in multiple directives are concatenated together. The directive can include a list of build constraints limiting its effect to systems satisfying one of the constraints (see https://golang.org/pkg/go/build/#hdr-Build_Constraints for details about the constraint syntax). @@ -53,7 +53,7 @@ For example: // #include import "C" -When building, the CGO_CFLAGS, CGO_CPPFLAGS, CGO_CXXFLAGS and +When building, the CGO_CFLAGS, CGO_CPPFLAGS, CGO_CXXFLAGS, CGO_FFLAGS and CGO_LDFLAGS environment variables are added to the flags derived from these directives. Package-specific flags should be set using the directives, not the environment variables, so that builds work in @@ -62,10 +62,11 @@ unmodified environments. All the cgo CPPFLAGS and CFLAGS directives in a package are concatenated and used to compile C files in that package. All the CPPFLAGS and CXXFLAGS directives in a package are concatenated and used to compile C++ files in that -package. All the LDFLAGS directives in any package in the program are -concatenated and used at link time. All the pkg-config directives are -concatenated and sent to pkg-config simultaneously to add to each appropriate -set of command-line flags. +package. All the CPPFLAGS and FFLAGS directives in a package are concatenated +and used to compile Fortran files in that package. All the LDFLAGS directives +in any package in the program are concatenated and used at link time. All the +pkg-config directives are concatenated and sent to pkg-config simultaneously +to add to each appropriate set of command-line flags. When the cgo directives are parsed, any occurrence of the string ${SRCDIR} will be replaced by the absolute path to the directory containing the source @@ -83,7 +84,8 @@ When the Go tool sees that one or more Go files use the special import "C", it will look for other non-Go files in the directory and compile them as part of the Go package. Any .c, .s, or .S files will be compiled with the C compiler. Any .cc, .cpp, or .cxx files will be -compiled with the C++ compiler. Any .h, .hh, .hpp, or .hxx files will +compiled with the C++ compiler. Any .f, .F, .for or .f90 files will be +compiled with the fortran compiler. Any .h, .hh, .hpp, or .hxx files will not be compiled separately, but, if these header files are changed, the C and C++ files will be recompiled. The default C and C++ compilers may be changed by the CC and CXX environment variables, diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go index 36c829d1b9..f23eb6299f 100644 --- a/src/cmd/dist/test.go +++ b/src/cmd/dist/test.go @@ -441,6 +441,20 @@ func (t *tester) registerTests() { return nil }, }) + fortran := os.Getenv("FC") + if fortran == "" { + fortran, _ = exec.LookPath("gfortran") + } + if fortran != "" { + t.tests = append(t.tests, distTest{ + name: "cgo_fortran", + heading: "../misc/cgo/fortran", + fn: func(dt *distTest) error { + t.addCmd(dt, "misc/cgo/fortran", "go", "test") + return nil + }, + }) + } } if t.cgoEnabled && t.goos != "android" && !t.iOS() { // TODO(crawshaw): reenable on android and iOS diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go index e65aee4a27..89ab1c0dd4 100644 --- a/src/cmd/go/build.go +++ b/src/cmd/go/build.go @@ -1348,6 +1348,11 @@ func (b *builder) build(a *action) (err error) { return fmt.Errorf("can't build package %s because it contains Objective-C files (%s) but it's not using cgo nor SWIG", a.p.ImportPath, strings.Join(a.p.MFiles, ",")) } + // Same as above for Fortran files + if len(a.p.FFiles) > 0 && !a.p.usesCgo() && !a.p.usesSwig() { + return fmt.Errorf("can't build package %s because it contains Fortran files (%s) but it's not using cgo nor SWIG", + a.p.ImportPath, strings.Join(a.p.FFiles, ",")) + } defer func() { if err != nil && err != errPrintedOutput { err = fmt.Errorf("go build %s: %v", a.p.ImportPath, err) @@ -1437,7 +1442,7 @@ func (b *builder) build(a *action) (err error) { if a.cgo != nil && a.cgo.target != "" { cgoExe = a.cgo.target } - outGo, outObj, err := b.cgo(a.p, cgoExe, obj, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, cxxfiles, a.p.MFiles) + outGo, outObj, err := b.cgo(a.p, cgoExe, obj, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, cxxfiles, a.p.MFiles, a.p.FFiles) if err != nil { return err } @@ -2272,7 +2277,7 @@ func (gcToolchain) gc(b *builder, p *Package, archive, obj string, asmhdr bool, // so that it can give good error messages about forward declarations. // Exceptions: a few standard packages have forward declarations for // pieces supplied behind-the-scenes by package runtime. - extFiles := len(p.CgoFiles) + len(p.CFiles) + len(p.CXXFiles) + len(p.MFiles) + len(p.SFiles) + len(p.SysoFiles) + len(p.SwigFiles) + len(p.SwigCXXFiles) + extFiles := len(p.CgoFiles) + len(p.CFiles) + len(p.CXXFiles) + len(p.MFiles) + len(p.FFiles) + len(p.SFiles) + len(p.SysoFiles) + len(p.SwigFiles) + len(p.SwigCXXFiles) if p.Standard { switch p.ImportPath { case "bytes", "net", "os", "runtime/pprof", "sync", "time": @@ -2623,6 +2628,7 @@ func (tools gccgoToolchain) ld(b *builder, root *action, out string, allactions usesCgo := false cxx := len(root.p.CXXFiles) > 0 || len(root.p.SwigCXXFiles) > 0 objc := len(root.p.MFiles) > 0 + fortran := len(root.p.FFiles) > 0 actionsSeen := make(map[*action]bool) // Make a pre-order depth-first traversal of the action graph, taking note of @@ -2697,6 +2703,9 @@ func (tools gccgoToolchain) ld(b *builder, root *action, out string, allactions if len(a.p.MFiles) > 0 { objc = true } + if len(a.p.FFiles) > 0 { + fortran = true + } } ldflags = append(ldflags, "-Wl,--whole-archive") @@ -2768,6 +2777,17 @@ func (tools gccgoToolchain) ld(b *builder, root *action, out string, allactions if objc { ldflags = append(ldflags, "-lobjc") } + if fortran { + fc := os.Getenv("FC") + if fc == "" { + fc = "gfortran" + } + // support gfortran out of the box and let others pass the correct link options + // via CGO_LDFLAGS + if strings.Contains(fc, "gfortran") { + ldflags = append(ldflags, "-lgfortran") + } + } } if err := b.run(".", root.p.ImportPath, nil, tools.linker(), "-o", out, ofiles, ldflags, buildGccgoflags); err != nil { @@ -2862,6 +2882,11 @@ func (b *builder) gxx(p *Package, out string, flags []string, cxxfile string) er return b.ccompile(p, out, flags, cxxfile, b.gxxCmd(p.Dir)) } +// gfortran runs the gfortran Fortran compiler to create an object from a single Fortran file. +func (b *builder) gfortran(p *Package, out string, flags []string, ffile string) error { + return b.ccompile(p, out, flags, ffile, b.gfortranCmd(p.Dir)) +} + // ccompile runs the given C or C++ compiler and creates an object from a single source file. func (b *builder) ccompile(p *Package, out string, flags []string, file string, compiler []string) error { file = mkAbs(p.Dir, file) @@ -2891,6 +2916,11 @@ func (b *builder) gxxCmd(objdir string) []string { return b.ccompilerCmd("CXX", defaultCXX, objdir) } +// gfortranCmd returns a gfortran command line prefix. +func (b *builder) gfortranCmd(objdir string) []string { + return b.ccompilerCmd("FC", "gfortran", objdir) +} + // ccompilerCmd returns a command line prefix for the given environment // variable and using the default command when the variable is empty. func (b *builder) ccompilerCmd(envvar, defcmd, objdir string) []string { @@ -3009,8 +3039,8 @@ func envList(key, def string) []string { return strings.Fields(v) } -// Return the flags to use when invoking the C or C++ compilers, or cgo. -func (b *builder) cflags(p *Package, def bool) (cppflags, cflags, cxxflags, ldflags []string) { +// Return the flags to use when invoking the C, C++ or Fortran compilers, or cgo. +func (b *builder) cflags(p *Package, def bool) (cppflags, cflags, cxxflags, fflags, ldflags []string) { var defaults string if def { defaults = "-g -O2" @@ -3019,15 +3049,16 @@ func (b *builder) cflags(p *Package, def bool) (cppflags, cflags, cxxflags, ldfl cppflags = stringList(envList("CGO_CPPFLAGS", ""), p.CgoCPPFLAGS) cflags = stringList(envList("CGO_CFLAGS", defaults), p.CgoCFLAGS) cxxflags = stringList(envList("CGO_CXXFLAGS", defaults), p.CgoCXXFLAGS) + fflags = stringList(envList("CGO_FFLAGS", defaults), p.CgoFFLAGS) ldflags = stringList(envList("CGO_LDFLAGS", defaults), p.CgoLDFLAGS) return } var cgoRe = regexp.MustCompile(`[/\\:]`) -func (b *builder) cgo(p *Package, cgoExe, obj string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles []string) (outGo, outObj []string, err error) { - cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoLDFLAGS := b.cflags(p, true) - _, cgoexeCFLAGS, _, _ := b.cflags(p, false) +func (b *builder) cgo(p *Package, cgoExe, obj string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, err error) { + cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS := b.cflags(p, true) + _, cgoexeCFLAGS, _, _, _ := b.cflags(p, false) cgoCPPFLAGS = append(cgoCPPFLAGS, pcCFLAGS...) cgoLDFLAGS = append(cgoLDFLAGS, pcLDFLAGS...) // If we are compiling Objective-C code, then we need to link against libobjc @@ -3035,6 +3066,19 @@ func (b *builder) cgo(p *Package, cgoExe, obj string, pcCFLAGS, pcLDFLAGS, cgofi cgoLDFLAGS = append(cgoLDFLAGS, "-lobjc") } + // Likewise for Fortran, except there are many Fortran compilers. + // Support gfortran out of the box and let others pass the correct link options + // via CGO_LDFLAGS + if len(ffiles) > 0 { + fc := os.Getenv("FC") + if fc == "" { + fc = "gfortran" + } + if strings.Contains(fc, "gfortran") { + cgoLDFLAGS = append(cgoLDFLAGS, "-lgfortran") + } + } + if buildMSan && p.ImportPath != "runtime/cgo" { cgoCFLAGS = append([]string{"-fsanitize=memory"}, cgoCFLAGS...) cgoLDFLAGS = append([]string{"-fsanitize=memory"}, cgoLDFLAGS...) @@ -3202,6 +3246,17 @@ func (b *builder) cgo(p *Package, cgoExe, obj string, pcCFLAGS, pcLDFLAGS, cgofi outObj = append(outObj, ofile) } + fflags := stringList(cgoCPPFLAGS, cgoFFLAGS) + for _, file := range ffiles { + // Append .o to the file, just in case the pkg has file.c and file.f + ofile := obj + cgoRe.ReplaceAllString(file, "_") + ".o" + if err := b.gfortran(p, ofile, fflags, file); err != nil { + return nil, nil, err + } + linkobj = append(linkobj, ofile) + outObj = append(outObj, ofile) + } + linkobj = append(linkobj, p.SysoFiles...) dynobj := obj + "_cgo_.o" pie := (goarch == "arm" && goos == "linux") || goos == "android" @@ -3395,7 +3450,7 @@ func (b *builder) swigIntSize(obj string) (intsize string, err error) { // Run SWIG on one SWIG input file. func (b *builder) swigOne(p *Package, file, obj string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) { - cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _ := b.cflags(p, true) + cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _ := b.cflags(p, true) var cflags []string if cxx { cflags = stringList(cgoCPPFLAGS, pcCFLAGS, cgoCXXFLAGS) diff --git a/src/cmd/go/list.go b/src/cmd/go/list.go index 8f741a636b..d2f1265985 100644 --- a/src/cmd/go/list.go +++ b/src/cmd/go/list.go @@ -51,6 +51,7 @@ syntax of package template. The default output is equivalent to -f CXXFiles []string // .cc, .cxx and .cpp source files MFiles []string // .m source files HFiles []string // .h, .hh, .hpp and .hxx source files + FFiles []string // .f, .F, .for and .f90 Fortran source files SFiles []string // .s source files SwigFiles []string // .swig files SwigCXXFiles []string // .swigcxx files @@ -60,6 +61,7 @@ syntax of package template. The default output is equivalent to -f CgoCFLAGS []string // cgo: flags for C compiler CgoCPPFLAGS []string // cgo: flags for C preprocessor CgoCXXFLAGS []string // cgo: flags for C++ compiler + CgoFFLAGS []string // cgo: flags for Fortran compiler CgoLDFLAGS []string // cgo: flags for linker CgoPkgConfig []string // cgo: pkg-config names diff --git a/src/cmd/go/pkg.go b/src/cmd/go/pkg.go index 6b5ead2b8c..f9988bf2d7 100644 --- a/src/cmd/go/pkg.go +++ b/src/cmd/go/pkg.go @@ -50,6 +50,7 @@ type Package struct { CXXFiles []string `json:",omitempty"` // .cc, .cpp and .cxx source files MFiles []string `json:",omitempty"` // .m source files HFiles []string `json:",omitempty"` // .h, .hh, .hpp and .hxx source files + FFiles []string `json:",omitempty"` // .f, .F, .for and .f90 Fortran source files SFiles []string `json:",omitempty"` // .s source files SwigFiles []string `json:",omitempty"` // .swig files SwigCXXFiles []string `json:",omitempty"` // .swigcxx files @@ -59,6 +60,7 @@ type Package struct { CgoCFLAGS []string `json:",omitempty"` // cgo: flags for C compiler CgoCPPFLAGS []string `json:",omitempty"` // cgo: flags for C preprocessor CgoCXXFLAGS []string `json:",omitempty"` // cgo: flags for C++ compiler + CgoFFLAGS []string `json:",omitempty"` // cgo: flags for Fortran compiler CgoLDFLAGS []string `json:",omitempty"` // cgo: flags for linker CgoPkgConfig []string `json:",omitempty"` // cgo: pkg-config names @@ -161,6 +163,7 @@ func (p *Package) copyBuild(pp *build.Package) { p.CXXFiles = pp.CXXFiles p.MFiles = pp.MFiles p.HFiles = pp.HFiles + p.FFiles = pp.FFiles p.SFiles = pp.SFiles p.SwigFiles = pp.SwigFiles p.SwigCXXFiles = pp.SwigCXXFiles @@ -909,6 +912,7 @@ func (p *Package) load(stk *importStack, bp *build.Package, err error) *Package p.CXXFiles, p.MFiles, p.HFiles, + p.FFiles, p.SFiles, p.SysoFiles, p.SwigFiles, @@ -1495,7 +1499,7 @@ func isStale(p *Package) bool { // to test for write access, and then skip GOPATH roots we don't have write // access to. But hopefully we can just use the mtimes always. - srcs := stringList(p.GoFiles, p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.SFiles, p.CgoFiles, p.SysoFiles, p.SwigFiles, p.SwigCXXFiles) + srcs := stringList(p.GoFiles, p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.CgoFiles, p.SysoFiles, p.SwigFiles, p.SwigCXXFiles) for _, src := range srcs { if olderThan(filepath.Join(p.Dir, src)) { return true diff --git a/src/go/build/build.go b/src/go/build/build.go index e524925d0d..0835c1e3c0 100644 --- a/src/go/build/build.go +++ b/src/go/build/build.go @@ -358,6 +358,7 @@ type Package struct { CXXFiles []string // .cc, .cpp and .cxx source files MFiles []string // .m (Objective-C) source files HFiles []string // .h, .hh, .hpp and .hxx source files + FFiles []string // .f, .F, .for and .f90 Fortran source files SFiles []string // .s source files SwigFiles []string // .swig files SwigCXXFiles []string // .swigcxx files @@ -367,6 +368,7 @@ type Package struct { CgoCFLAGS []string // Cgo CFLAGS directives CgoCPPFLAGS []string // Cgo CPPFLAGS directives CgoCXXFLAGS []string // Cgo CXXFLAGS directives + CgoFFLAGS []string // Cgo FFLAGS directives CgoLDFLAGS []string // Cgo LDFLAGS directives CgoPkgConfig []string // Cgo pkg-config directives @@ -703,6 +705,9 @@ Found: case ".h", ".hh", ".hpp", ".hxx": p.HFiles = append(p.HFiles, name) continue + case ".f", ".F", ".for", ".f90": + p.FFiles = append(p.FFiles, name) + continue case ".s": p.SFiles = append(p.SFiles, name) continue @@ -1017,7 +1022,7 @@ func (ctxt *Context) matchFile(dir, name string, returnImports bool, allTags map } switch ext { - case ".go", ".c", ".cc", ".cxx", ".cpp", ".m", ".s", ".h", ".hh", ".hpp", ".hxx", ".S", ".swig", ".swigcxx": + case ".go", ".c", ".cc", ".cxx", ".cpp", ".m", ".s", ".h", ".hh", ".hpp", ".hxx", ".f", ".F", ".f90", ".S", ".swig", ".swigcxx": // tentatively okay - read to make sure case ".syso": // binary, no reading @@ -1208,6 +1213,8 @@ func (ctxt *Context) saveCgo(filename string, di *Package, cg *ast.CommentGroup) di.CgoCPPFLAGS = append(di.CgoCPPFLAGS, args...) case "CXXFLAGS": di.CgoCXXFLAGS = append(di.CgoCXXFLAGS, args...) + case "FFLAGS": + di.CgoFFLAGS = append(di.CgoFFLAGS, args...) case "LDFLAGS": di.CgoLDFLAGS = append(di.CgoLDFLAGS, args...) case "pkg-config": diff --git a/src/make.bash b/src/make.bash index 2531ca4bb3..21cc29730d 100755 --- a/src/make.bash +++ b/src/make.bash @@ -44,6 +44,9 @@ # This is used by cgo. Default is CXX, or, if that is not set, # "g++" or "clang++". # +# FC: Command line to run to compile Fortran code for GOARCH. +# This is used by cgo. Default is "gfortran". +# # GO_DISTFLAGS: extra flags to provide to "dist bootstrap". set -e diff --git a/src/make.bat b/src/make.bat index 0efdcc576c..a64777ee91 100644 --- a/src/make.bat +++ b/src/make.bat @@ -31,6 +31,9 @@ :: :: CC_FOR_TARGET: Command line to run compile C code for GOARCH. :: This is used by cgo. Default is CC. +:: +:: FC: Command line to run to compile Fortran code. +:: This is used by cgo. Default is "gfortran". @echo off From 38d4511b104ad61d949d91652985bcdef8cbea5a Mon Sep 17 00:00:00 2001 From: Jure Ham Date: Tue, 23 Feb 2016 11:41:27 +0100 Subject: [PATCH 016/101] sort: fix for nondeterministic less function in quicksort pivot Fixes #14377 Change-Id: I130a6e1b8bc827db44efd0a74e759b894ecc4977 Reviewed-on: https://go-review.googlesource.com/19823 Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot --- src/sort/sort.go | 14 +++++++------- src/sort/sort_test.go | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/src/sort/sort.go b/src/sort/sort.go index 5eb45c6d4a..ce3dc06f88 100644 --- a/src/sort/sort.go +++ b/src/sort/sort.go @@ -119,15 +119,15 @@ func doPivot(data Interface, lo, hi int) (midlo, midhi int) { pivot := lo a, c := lo+1, hi-1 - for ; a != c && data.Less(a, pivot); a++ { + for ; a < c && data.Less(a, pivot); a++ { } b := a for { - for ; b != c && !data.Less(pivot, b); b++ { // data[b] <= pivot + for ; b < c && !data.Less(pivot, b); b++ { // data[b] <= pivot } - for ; b != c && data.Less(pivot, c-1); c-- { // data[c-1] > pivot + for ; b < c && data.Less(pivot, c-1); c-- { // data[c-1] > pivot } - if b == c { + if b >= c { break } // data[b] > pivot; data[c-1] <= pivot @@ -167,11 +167,11 @@ func doPivot(data Interface, lo, hi int) (midlo, midhi int) { // data[a <= i < b] unexamined // data[b <= i < c] = pivot for { - for ; a != b && !data.Less(b-1, pivot); b-- { // data[b] == pivot + for ; a < b && !data.Less(b-1, pivot); b-- { // data[b] == pivot } - for ; a != b && data.Less(a, pivot); a++ { // data[a] < pivot + for ; a < b && data.Less(a, pivot); a++ { // data[a] < pivot } - if a == b { + if a >= b { break } // data[a] == pivot; data[b-1] < pivot diff --git a/src/sort/sort_test.go b/src/sort/sort_test.go index 6c36f30e0e..a5da6b2630 100644 --- a/src/sort/sort_test.go +++ b/src/sort/sort_test.go @@ -109,6 +109,43 @@ func TestReverseSortIntSlice(t *testing.T) { } } +type nonDeterministicTestingData struct { + r *rand.Rand +} + +func (t *nonDeterministicTestingData) Len() int { + return 500 +} +func (t *nonDeterministicTestingData) Less(i, j int) bool { + if i < 0 || j < 0 || i >= t.Len() || j >= t.Len() { + panic("nondeterministic comparison out of bounds") + } + return t.r.Float32() < 0.5 +} +func (t *nonDeterministicTestingData) Swap(i, j int) { + if i < 0 || j < 0 || i >= t.Len() || j >= t.Len() { + panic("nondeterministic comparison out of bounds") + } +} + +func TestNonDeterministicComparison(t *testing.T) { + // Ensure that sort.Sort does not panic when Less returns inconsistent results. + // See https://golang.org/issue/14377. + defer func() { + if r := recover(); r != nil { + t.Error(r) + } + }() + + td := &nonDeterministicTestingData{ + r: rand.New(rand.NewSource(0)), + } + + for i := 0; i < 10; i++ { + Sort(td) + } +} + func BenchmarkSortString1K(b *testing.B) { b.StopTimer() for i := 0; i < b.N; i++ { From 8dd2ce2b980d341a4c88e4f3c95e4eca396b6a07 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Tue, 23 Feb 2016 22:04:20 -0800 Subject: [PATCH 017/101] cmd/compile: factor our literal lexing from main lexer function Further reduces complexity of lexer.next which is now readable. Also removes the need to initialize various local variables in each next call even if they are not used for the current token. No measurable performance change for `time go build -a net/http` (best of 5 runs): difference < 0.3% (in the noise). Change-Id: I0d74caa2768920af1ceee027e0f46595119d4210 Reviewed-on: https://go-review.googlesource.com/19865 TryBot-Result: Gobot Gobot Reviewed-by: Matthew Dempsky --- src/cmd/compile/internal/gc/lex.go | 461 +++++++++++++++-------------- 1 file changed, 232 insertions(+), 229 deletions(-) diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index ccbbeed2cc..cbd435b49e 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -7,7 +7,6 @@ package gc import ( - "bytes" "cmd/internal/obj" "flag" "fmt" @@ -922,14 +921,6 @@ const ( ) func (l *lexer) next() { - var c1 rune - var op Op - var escflag int - var v int64 - var cp *bytes.Buffer - var s *Sym - var str string - prevlineno = lineno nlsemi := l.nlsemi @@ -958,132 +949,15 @@ l0: // identifiers and keywords // (for better error messages consume all chars >= utf8.RuneSelf for identifiers) if isLetter(c) || c >= utf8.RuneSelf { - cp = &lexbuf - cp.Reset() - - // accelerate common case (7bit ASCII) - for isLetter(c) || isDigit(c) { - cp.WriteByte(byte(c)) - c = l.getr() - } - - // general case - for { - if c >= utf8.RuneSelf { - if unicode.IsLetter(c) || c == '_' || unicode.IsDigit(c) || importpkg != nil && c == 0xb7 { - if cp.Len() == 0 && unicode.IsDigit(c) { - Yyerror("identifier cannot begin with digit %#U", c) - } - } else { - Yyerror("invalid identifier character %#U", c) - } - cp.WriteRune(c) - } else if isLetter(c) || isDigit(c) { - cp.WriteByte(byte(c)) - } else { - break - } - c = l.getr() - } - - cp = nil - l.ungetr(c) - - s = LookupBytes(lexbuf.Bytes()) - if s.Lexical == LIGNORE { + l.ident(c) + if l.tok == LIGNORE { goto l0 } - - if Debug['x'] != 0 { - fmt.Printf("lex: %s %s\n", s, lexname(rune(s.Lexical))) - } - l.sym_ = s - switch s.Lexical { - case LNAME, LRETURN, LBREAK, LCONTINUE, LFALL: - l.nlsemi = true - } - l.tok = int32(s.Lexical) return } - if isDigit(c) { - cp = &lexbuf - cp.Reset() - if c != '0' { - for { - cp.WriteByte(byte(c)) - c = l.getr() - if isDigit(c) { - continue - } - if c == '.' { - goto casedot - } - if c == 'e' || c == 'E' || c == 'p' || c == 'P' { - goto caseep - } - if c == 'i' { - goto casei - } - goto ncu - } - } - - cp.WriteByte(byte(c)) - c = l.getr() - if c == 'x' || c == 'X' { - for { - cp.WriteByte(byte(c)) - c = l.getr() - if isDigit(c) { - continue - } - if c >= 'a' && c <= 'f' { - continue - } - if c >= 'A' && c <= 'F' { - continue - } - if lexbuf.Len() == 2 { - Yyerror("malformed hex constant") - } - if c == 'p' { - goto caseep - } - goto ncu - } - } - - if c == 'p' { // 0p begins floating point zero - goto caseep - } - - c1 = 0 - for { - if !isDigit(c) { - break - } - if c < '0' || c > '7' { - c1 = 1 // not octal - } - cp.WriteByte(byte(c)) - c = l.getr() - } - - if c == '.' { - goto casedot - } - if c == 'e' || c == 'E' { - goto caseep - } - if c == 'i' { - goto casei - } - if c1 != 0 { - Yyerror("malformed octal constant") - } - goto ncu - } + var c1 rune + var op Op switch c { case EOF: @@ -1100,14 +974,16 @@ l0: l.tok = -1 return + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + l.number(c) + return + case '.': c1 = l.getr() if isDigit(c1) { - cp = &lexbuf - cp.Reset() - cp.WriteByte(byte(c)) - c = c1 - goto casedot + l.ungetr(c1) + l.number('.') + return } if c1 == '.' { @@ -1121,75 +997,16 @@ l0: c1 = '.' } - // "..." case '"': - lexbuf.Reset() - lexbuf.WriteString(`""`) + l.stdString() + return - cp = &strbuf - cp.Reset() - - for { - if l.escchar('"', &escflag, &v) { - break - } - if v < utf8.RuneSelf || escflag != 0 { - cp.WriteByte(byte(v)) - } else { - cp.WriteRune(rune(v)) - } - } - - goto strlit - - // `...` case '`': - lexbuf.Reset() - lexbuf.WriteString("``") + l.rawString() + return - cp = &strbuf - cp.Reset() - - for { - c = l.getr() - if c == '\r' { - continue - } - if c == EOF { - Yyerror("eof in string") - break - } - - if c == '`' { - break - } - cp.WriteRune(c) - } - - goto strlit - - // '.' case '\'': - if l.escchar('\'', &escflag, &v) { - Yyerror("empty character literal or unescaped ' in character literal") - v = '\'' - } - - if !l.escchar('\'', &escflag, &v) { - Yyerror("missing '") - l.ungetr(rune(v)) - } - - x := new(Mpint) - l.val.U = x - Mpmovecfix(x, v) - x.Rune = true - if Debug['x'] != 0 { - fmt.Printf("lex: codepoint literal\n") - } - litbuf = "rune literal" - l.nlsemi = true - l.tok = LLITERAL + l.rune() return case '/': @@ -1426,45 +1243,144 @@ asop: fmt.Printf("lex: TOKEN ASOP %s=\n", goopnames[op]) } l.tok = LASOP - return +} + +func (l *lexer) ident(c rune) { + cp := &lexbuf + cp.Reset() + + // accelerate common case (7bit ASCII) + for isLetter(c) || isDigit(c) { + cp.WriteByte(byte(c)) + c = l.getr() + } + + // general case + for { + if c >= utf8.RuneSelf { + if unicode.IsLetter(c) || c == '_' || unicode.IsDigit(c) || importpkg != nil && c == 0xb7 { + if cp.Len() == 0 && unicode.IsDigit(c) { + Yyerror("identifier cannot begin with digit %#U", c) + } + } else { + Yyerror("invalid identifier character %#U", c) + } + cp.WriteRune(c) + } else if isLetter(c) || isDigit(c) { + cp.WriteByte(byte(c)) + } else { + break + } + c = l.getr() + } -ncu: cp = nil l.ungetr(c) - str = lexbuf.String() - l.val.U = new(Mpint) - mpatofix(l.val.U.(*Mpint), str) - if l.val.U.(*Mpint).Ovf { - Yyerror("overflow in constant") - Mpmovecfix(l.val.U.(*Mpint), 0) - } - + s := LookupBytes(lexbuf.Bytes()) if Debug['x'] != 0 { - fmt.Printf("lex: integer literal\n") + fmt.Printf("lex: %s %s\n", s, lexname(rune(s.Lexical))) + } + l.sym_ = s + switch s.Lexical { + case LNAME, LRETURN, LBREAK, LCONTINUE, LFALL: + l.nlsemi = true + } + l.tok = int32(s.Lexical) +} + +func (l *lexer) number(c rune) { + // TODO(gri) this can be done nicely with fewer or even without labels + + var str string + cp := &lexbuf + cp.Reset() + + if c != '.' { + if c != '0' { + for isDigit(c) { + cp.WriteByte(byte(c)) + c = l.getr() + } + if c == '.' { + goto casedot + } + if c == 'e' || c == 'E' || c == 'p' || c == 'P' { + goto caseep + } + if c == 'i' { + goto casei + } + goto ncu + } + + // c == 0 + cp.WriteByte('0') + c = l.getr() + if c == 'x' || c == 'X' { + cp.WriteByte(byte(c)) + c = l.getr() + for isDigit(c) || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' { + cp.WriteByte(byte(c)) + c = l.getr() + } + if lexbuf.Len() == 2 { + Yyerror("malformed hex constant") + } + if c == 'p' { + goto caseep + } + goto ncu + } + + if c == 'p' { // 0p begins floating point zero + goto caseep + } + + has8or9 := false + for isDigit(c) { + if c > '7' { + has8or9 = true + } + cp.WriteByte(byte(c)) + c = l.getr() + } + if c == '.' { + goto casedot + } + if c == 'e' || c == 'E' { + goto caseep + } + if c == 'i' { + goto casei + } + if has8or9 { + Yyerror("malformed octal constant") + } + goto ncu } - litbuf = "literal " + str - l.nlsemi = true - l.tok = LLITERAL - return casedot: - for { + // fraction + // c == '.' + cp.WriteByte('.') + c = l.getr() + for isDigit(c) { cp.WriteByte(byte(c)) c = l.getr() - if !isDigit(c) { - break - } } - if c == 'i' { goto casei } if c != 'e' && c != 'E' { goto caseout } + // base-2-exponents (p or P) don't appear in numbers + // with fractions - ok to not test for 'p' or 'P' + // above caseep: + // exponent if importpkg == nil && (c == 'p' || c == 'P') { // p is allowed in .a/.o imports, // but not in .go sources. See #9036. @@ -1485,13 +1401,12 @@ caseep: c = l.getr() } - if c == 'i' { - goto casei + if c != 'i' { + goto caseout } - goto caseout - // imaginary constant casei: + // imaginary constant cp = nil str = lexbuf.String() @@ -1506,10 +1421,7 @@ casei: if Debug['x'] != 0 { fmt.Printf("lex: imaginary literal\n") } - litbuf = "literal " + str - l.nlsemi = true - l.tok = LLITERAL - return + goto done caseout: cp = nil @@ -1526,12 +1438,47 @@ caseout: if Debug['x'] != 0 { fmt.Printf("lex: floating literal\n") } + goto done + +ncu: + cp = nil + l.ungetr(c) + + str = lexbuf.String() + l.val.U = new(Mpint) + mpatofix(l.val.U.(*Mpint), str) + if l.val.U.(*Mpint).Ovf { + Yyerror("overflow in constant") + Mpmovecfix(l.val.U.(*Mpint), 0) + } + + if Debug['x'] != 0 { + fmt.Printf("lex: integer literal\n") + } + +done: litbuf = "literal " + str l.nlsemi = true l.tok = LLITERAL - return +} + +func (l *lexer) stdString() { + lexbuf.Reset() + lexbuf.WriteString(`""`) + + cp := &strbuf + cp.Reset() + + var escflag int + var v int64 + for !l.escchar('"', &escflag, &v) { + if v < utf8.RuneSelf || escflag != 0 { + cp.WriteByte(byte(v)) + } else { + cp.WriteRune(rune(v)) + } + } -strlit: l.val.U = internString(cp.Bytes()) if Debug['x'] != 0 { fmt.Printf("lex: string literal\n") @@ -1541,6 +1488,62 @@ strlit: l.tok = LLITERAL } +func (l *lexer) rawString() { + lexbuf.Reset() + lexbuf.WriteString("``") + + cp := &strbuf + cp.Reset() + + for { + c := l.getr() + if c == '\r' { + continue + } + if c == EOF { + Yyerror("eof in string") + break + } + if c == '`' { + break + } + cp.WriteRune(c) + } + + l.val.U = internString(cp.Bytes()) + if Debug['x'] != 0 { + fmt.Printf("lex: string literal\n") + } + litbuf = "string literal" + l.nlsemi = true + l.tok = LLITERAL +} + +func (l *lexer) rune() { + var escflag int + var v int64 + if l.escchar('\'', &escflag, &v) { + Yyerror("empty character literal or unescaped ' in character literal") + v = '\'' + } + + if !l.escchar('\'', &escflag, &v) { + Yyerror("missing '") + l.ungetr(rune(v)) + } + + x := new(Mpint) + l.val.U = x + Mpmovecfix(x, v) + x.Rune = true + if Debug['x'] != 0 { + fmt.Printf("lex: codepoint literal\n") + } + litbuf = "rune literal" + l.nlsemi = true + l.tok = LLITERAL +} + var internedStrings = map[string]string{} func internString(b []byte) string { From a8589312004157de09677e182c3c77399f2d628d Mon Sep 17 00:00:00 2001 From: David Crawshaw Date: Tue, 16 Feb 2016 22:23:14 -0500 Subject: [PATCH 018/101] cmd/compile: embed type string header in rtype Reduces binary size of cmd/go by 1%. For #6853. Change-Id: I6f2992a4dd3699db1b532ab08683e82741b9c2e4 Reviewed-on: https://go-review.googlesource.com/19692 Reviewed-by: Brad Fitzpatrick Run-TryBot: David Crawshaw TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/reflect.go | 8 +++-- src/cmd/link/internal/ld/decodesym.go | 2 +- src/reflect/export_test.go | 2 +- src/reflect/type.go | 50 +++++++++++++------------- src/runtime/alg.go | 8 ++--- src/runtime/error.go | 2 +- src/runtime/heapdump.go | 2 +- src/runtime/iface.go | 24 ++++++------- src/runtime/mbitmap.go | 10 +++--- src/runtime/mfinal.go | 8 ++--- src/runtime/mprof.go | 2 +- src/runtime/type.go | 2 +- 12 files changed, 61 insertions(+), 59 deletions(-) diff --git a/src/cmd/compile/internal/gc/reflect.go b/src/cmd/compile/internal/gc/reflect.go index 8693e3c112..04e94f18eb 100644 --- a/src/cmd/compile/internal/gc/reflect.go +++ b/src/cmd/compile/internal/gc/reflect.go @@ -764,12 +764,14 @@ func dcommontype(s *Sym, ot int, t *Type) int { } else { ot = dsymptr(s, ot, algsym, 0) } - ot = dsymptr(s, ot, gcsym, 0) + ot = dsymptr(s, ot, gcsym, 0) // gcdata p := Tconv(t, obj.FmtLeft|obj.FmtUnsigned) - //print("dcommontype: %s\n", p); - ot = dgostringptr(s, ot, p) // string + _, symdata := stringsym(p) // string + ot = dsymptr(s, ot, symdata, 0) + ot = duintxx(s, ot, uint64(len(p)), Widthint) + //fmt.Printf("dcommontype: %s\n", p) // skip pointer to extraType, // which follows the rest of this type structure. diff --git a/src/cmd/link/internal/ld/decodesym.go b/src/cmd/link/internal/ld/decodesym.go index 52eb46bb5c..8a16b05656 100644 --- a/src/cmd/link/internal/ld/decodesym.go +++ b/src/cmd/link/internal/ld/decodesym.go @@ -47,7 +47,7 @@ func decode_inuxi(p []byte, sz int) uint64 { // commonsize returns the size of the common prefix for all type // structures (runtime._type). func commonsize() int { - return 7*Thearch.Ptrsize + 8 + return 8*Thearch.Ptrsize + 8 } // Type.commonType.kind diff --git a/src/reflect/export_test.go b/src/reflect/export_test.go index 26a648e193..a6b0fda737 100644 --- a/src/reflect/export_test.go +++ b/src/reflect/export_test.go @@ -48,7 +48,7 @@ func TypeLinks() []string { var r []string for _, m := range typelinks() { for _, t := range m { - r = append(r, *t.string) + r = append(r, t.string) } } return r diff --git a/src/reflect/type.go b/src/reflect/type.go index 003c610cb1..3fce24e849 100644 --- a/src/reflect/type.go +++ b/src/reflect/type.go @@ -254,7 +254,7 @@ type rtype struct { kind uint8 // enumeration for C alg *typeAlg // algorithm table gcdata *byte // garbage collection data - string *string // string form; unnecessary but undeniably useful + string string // string form; unnecessary but undeniably useful *uncommonType // (relatively) uncommon fields ptrToThis *rtype // type for pointer to this type, if used in binary or has methods } @@ -460,7 +460,7 @@ func (t *uncommonType) Name() string { return *t.name } -func (t *rtype) String() string { return *t.string } +func (t *rtype) String() string { return t.string } func (t *rtype) Size() uintptr { return t.size } @@ -1059,7 +1059,7 @@ func (t *rtype) ptrTo() *rtype { } // Look in known types. - s := "*" + *t.string + s := "*" + t.string for _, tt := range typesByString(s) { p = (*ptrType)(unsafe.Pointer(tt)) if p.elem == t { @@ -1076,7 +1076,7 @@ func (t *rtype) ptrTo() *rtype { prototype := *(**ptrType)(unsafe.Pointer(&iptr)) *p = *prototype - p.string = &s + p.string = s // For the type structures linked into the binary, the // compiler provides a good hash of the string. @@ -1328,7 +1328,7 @@ func typesByString(s string) []*rtype { for i < j { h := i + (j-i)/2 // avoid overflow when computing h // i ≤ h < j - if !(*typ[h].string >= s) { + if !(typ[h].string >= s) { i = h + 1 // preserves f(i-1) == false } else { j = h // preserves f(j) == true @@ -1340,7 +1340,7 @@ func typesByString(s string) []*rtype { // We could do a second binary search, but the caller is going // to do a linear scan anyway. j = i - for j < len(typ) && *typ[j].string == s { + for j < len(typ) && typ[j].string == s { j++ } @@ -1442,11 +1442,11 @@ func ChanOf(dir ChanDir, t Type) Type { lookupCache.Unlock() panic("reflect.ChanOf: invalid dir") case SendDir: - s = "chan<- " + *typ.string + s = "chan<- " + typ.string case RecvDir: - s = "<-chan " + *typ.string + s = "<-chan " + typ.string case BothDir: - s = "chan " + *typ.string + s = "chan " + typ.string } for _, tt := range typesByString(s) { ch := (*chanType)(unsafe.Pointer(tt)) @@ -1461,7 +1461,7 @@ func ChanOf(dir ChanDir, t Type) Type { ch := new(chanType) *ch = *prototype ch.dir = uintptr(dir) - ch.string = &s + ch.string = s ch.hash = fnv1(typ.hash, 'c', byte(dir)) ch.elem = typ ch.uncommonType = nil @@ -1493,7 +1493,7 @@ func MapOf(key, elem Type) Type { } // Look in known types. - s := "map[" + *ktyp.string + "]" + *etyp.string + s := "map[" + ktyp.string + "]" + etyp.string for _, tt := range typesByString(s) { mt := (*mapType)(unsafe.Pointer(tt)) if mt.key == ktyp && mt.elem == etyp { @@ -1505,7 +1505,7 @@ func MapOf(key, elem Type) Type { var imap interface{} = (map[unsafe.Pointer]unsafe.Pointer)(nil) mt := new(mapType) *mt = **(**mapType)(unsafe.Pointer(&imap)) - mt.string = &s + mt.string = s mt.hash = fnv1(etyp.hash, 'm', byte(ktyp.hash>>24), byte(ktyp.hash>>16), byte(ktyp.hash>>8), byte(ktyp.hash)) mt.key = ktyp mt.elem = etyp @@ -1605,7 +1605,7 @@ func FuncOf(in, out []Type, variadic bool) Type { } // Populate the remaining fields of ft and store in cache. - ft.string = &str + ft.string = str ft.uncommonType = nil ft.ptrToThis = nil funcLookupCache.m[hash] = append(funcLookupCache.m[hash], &ft.rtype) @@ -1623,9 +1623,9 @@ func funcStr(ft *funcType) string { } if ft.dotdotdot && i == len(ft.in)-1 { repr = append(repr, "..."...) - repr = append(repr, *(*sliceType)(unsafe.Pointer(t)).elem.string...) + repr = append(repr, (*sliceType)(unsafe.Pointer(t)).elem.string...) } else { - repr = append(repr, *t.string...) + repr = append(repr, t.string...) } } repr = append(repr, ')') @@ -1638,7 +1638,7 @@ func funcStr(ft *funcType) string { if i > 0 { repr = append(repr, ", "...) } - repr = append(repr, *t.string...) + repr = append(repr, t.string...) } if len(ft.out) > 1 { repr = append(repr, ')') @@ -1803,8 +1803,8 @@ func bucketOf(ktyp, etyp *rtype) *rtype { b.ptrdata = ptrdata b.kind = kind b.gcdata = gcdata - s := "bucket(" + *ktyp.string + "," + *etyp.string + ")" - b.string = &s + s := "bucket(" + ktyp.string + "," + etyp.string + ")" + b.string = s return b } @@ -1820,7 +1820,7 @@ func SliceOf(t Type) Type { } // Look in known types. - s := "[]" + *typ.string + s := "[]" + typ.string for _, tt := range typesByString(s) { slice := (*sliceType)(unsafe.Pointer(tt)) if slice.elem == typ { @@ -1833,7 +1833,7 @@ func SliceOf(t Type) Type { prototype := *(**sliceType)(unsafe.Pointer(&islice)) slice := new(sliceType) *slice = *prototype - slice.string = &s + slice.string = s slice.hash = fnv1(typ.hash, '[') slice.elem = typ slice.uncommonType = nil @@ -1864,7 +1864,7 @@ func ArrayOf(count int, elem Type) Type { } // Look in known types. - s := "[" + strconv.Itoa(count) + "]" + *typ.string + s := "[" + strconv.Itoa(count) + "]" + typ.string for _, tt := range typesByString(s) { array := (*arrayType)(unsafe.Pointer(tt)) if array.elem == typ { @@ -1877,7 +1877,7 @@ func ArrayOf(count int, elem Type) Type { prototype := *(**arrayType)(unsafe.Pointer(&iarray)) array := new(arrayType) *array = *prototype - array.string = &s + array.string = s array.hash = fnv1(typ.hash, '[') for n := uint32(count); n > 0; n >>= 8 { array.hash = fnv1(array.hash, byte(n)) @@ -2133,11 +2133,11 @@ func funcLayout(t *rtype, rcvr *rtype) (frametype *rtype, argSize, retOffset uin var s string if rcvr != nil { - s = "methodargs(" + *rcvr.string + ")(" + *t.string + ")" + s = "methodargs(" + rcvr.string + ")(" + t.string + ")" } else { - s = "funcargs(" + *t.string + ")" + s = "funcargs(" + t.string + ")" } - x.string = &s + x.string = s // cache result for future callers if layoutCache.m == nil { diff --git a/src/runtime/alg.go b/src/runtime/alg.go index 9e19119f4a..e507e71715 100644 --- a/src/runtime/alg.go +++ b/src/runtime/alg.go @@ -146,7 +146,7 @@ func interhash(p unsafe.Pointer, h uintptr) uintptr { t := tab._type fn := t.alg.hash if fn == nil { - panic(errorString("hash of unhashable type " + *t._string)) + panic(errorString("hash of unhashable type " + t._string)) } if isDirectIface(t) { return c1 * fn(unsafe.Pointer(&a.data), h^c0) @@ -163,7 +163,7 @@ func nilinterhash(p unsafe.Pointer, h uintptr) uintptr { } fn := t.alg.hash if fn == nil { - panic(errorString("hash of unhashable type " + *t._string)) + panic(errorString("hash of unhashable type " + t._string)) } if isDirectIface(t) { return c1 * fn(unsafe.Pointer(&a.data), h^c0) @@ -221,7 +221,7 @@ func efaceeq(x, y eface) bool { } eq := t.alg.equal if eq == nil { - panic(errorString("comparing uncomparable type " + *t._string)) + panic(errorString("comparing uncomparable type " + t._string)) } if isDirectIface(t) { return eq(noescape(unsafe.Pointer(&x.data)), noescape(unsafe.Pointer(&y.data))) @@ -239,7 +239,7 @@ func ifaceeq(x, y iface) bool { t := xtab._type eq := t.alg.equal if eq == nil { - panic(errorString("comparing uncomparable type " + *t._string)) + panic(errorString("comparing uncomparable type " + t._string)) } if isDirectIface(t) { return eq(noescape(unsafe.Pointer(&x.data)), noescape(unsafe.Pointer(&y.data))) diff --git a/src/runtime/error.go b/src/runtime/error.go index de07bcb643..3e1ec4bc5a 100644 --- a/src/runtime/error.go +++ b/src/runtime/error.go @@ -56,7 +56,7 @@ type stringer interface { func typestring(x interface{}) string { e := efaceOf(&x) - return *e._type._string + return e._type._string } // For calling from C. diff --git a/src/runtime/heapdump.go b/src/runtime/heapdump.go index 4d1da1c1df..20ca27bc35 100644 --- a/src/runtime/heapdump.go +++ b/src/runtime/heapdump.go @@ -184,7 +184,7 @@ func dumptype(t *_type) { dumpint(uint64(uintptr(unsafe.Pointer(t)))) dumpint(uint64(t.size)) if t.x == nil || t.x.pkgpath == nil || t.x.name == nil { - dumpstr(*t._string) + dumpstr(t._string) } else { pkgpath := stringStructOf(t.x.pkgpath) name := stringStructOf(t.x.name) diff --git a/src/runtime/iface.go b/src/runtime/iface.go index 50dff77e42..d980367866 100644 --- a/src/runtime/iface.go +++ b/src/runtime/iface.go @@ -30,7 +30,7 @@ func getitab(inter *interfacetype, typ *_type, canfail bool) *itab { if canfail { return nil } - panic(&TypeAssertionError{"", *typ._string, *inter.typ._string, *inter.mhdr[0].name}) + panic(&TypeAssertionError{"", typ._string, inter.typ._string, *inter.mhdr[0].name}) } // compiler has provided some good hash codes for us. @@ -101,7 +101,7 @@ search: if locked != 0 { unlock(&ifaceLock) } - panic(&TypeAssertionError{"", *typ._string, *inter.typ._string, *iname}) + panic(&TypeAssertionError{"", typ._string, inter.typ._string, *iname}) } m.bad = 1 break @@ -177,18 +177,18 @@ func convT2I(t *_type, inter *interfacetype, cache **itab, elem unsafe.Pointer, func panicdottype(have, want, iface *_type) { haveString := "" if have != nil { - haveString = *have._string + haveString = have._string } - panic(&TypeAssertionError{*iface._string, haveString, *want._string, ""}) + panic(&TypeAssertionError{iface._string, haveString, want._string, ""}) } func assertI2T(t *_type, i iface, r unsafe.Pointer) { tab := i.tab if tab == nil { - panic(&TypeAssertionError{"", "", *t._string, ""}) + panic(&TypeAssertionError{"", "", t._string, ""}) } if tab._type != t { - panic(&TypeAssertionError{*tab.inter.typ._string, *tab._type._string, *t._string, ""}) + panic(&TypeAssertionError{tab.inter.typ._string, tab._type._string, t._string, ""}) } if r != nil { if isDirectIface(t) { @@ -219,10 +219,10 @@ func assertI2T2(t *_type, i iface, r unsafe.Pointer) bool { func assertE2T(t *_type, e eface, r unsafe.Pointer) { if e._type == nil { - panic(&TypeAssertionError{"", "", *t._string, ""}) + panic(&TypeAssertionError{"", "", t._string, ""}) } if e._type != t { - panic(&TypeAssertionError{"", *e._type._string, *t._string, ""}) + panic(&TypeAssertionError{"", e._type._string, t._string, ""}) } if r != nil { if isDirectIface(t) { @@ -266,7 +266,7 @@ func assertI2E(inter *interfacetype, i iface, r *eface) { tab := i.tab if tab == nil { // explicit conversions require non-nil interface value. - panic(&TypeAssertionError{"", "", *inter.typ._string, ""}) + panic(&TypeAssertionError{"", "", inter.typ._string, ""}) } r._type = tab._type r.data = i.data @@ -303,7 +303,7 @@ func assertI2I(inter *interfacetype, i iface, r *iface) { tab := i.tab if tab == nil { // explicit conversions require non-nil interface value. - panic(&TypeAssertionError{"", "", *inter.typ._string, ""}) + panic(&TypeAssertionError{"", "", inter.typ._string, ""}) } if tab.inter == inter { r.tab = tab @@ -342,7 +342,7 @@ func assertE2I(inter *interfacetype, e eface, r *iface) { t := e._type if t == nil { // explicit conversions require non-nil interface value. - panic(&TypeAssertionError{"", "", *inter.typ._string, ""}) + panic(&TypeAssertionError{"", "", inter.typ._string, ""}) } r.tab = getitab(inter, t, false) r.data = e.data @@ -383,7 +383,7 @@ func reflect_ifaceE2I(inter *interfacetype, e eface, dst *iface) { func assertE2E(inter *interfacetype, e eface, r *eface) { if e._type == nil { // explicit conversions require non-nil interface value. - panic(&TypeAssertionError{"", "", *inter.typ._string, ""}) + panic(&TypeAssertionError{"", "", inter.typ._string, ""}) } *r = e } diff --git a/src/runtime/mbitmap.go b/src/runtime/mbitmap.go index 336d4d8c81..80c267f7bb 100644 --- a/src/runtime/mbitmap.go +++ b/src/runtime/mbitmap.go @@ -459,11 +459,11 @@ func typeBitsBulkBarrier(typ *_type, p, size uintptr) { throw("runtime: typeBitsBulkBarrier without type") } if typ.size != size { - println("runtime: typeBitsBulkBarrier with type ", *typ._string, " of size ", typ.size, " but memory size", size) + println("runtime: typeBitsBulkBarrier with type ", typ._string, " of size ", typ.size, " but memory size", size) throw("runtime: invalid typeBitsBulkBarrier") } if typ.kind&kindGCProg != 0 { - println("runtime: typeBitsBulkBarrier with type ", *typ._string, " with GC prog") + println("runtime: typeBitsBulkBarrier with type ", typ._string, " with GC prog") throw("runtime: invalid typeBitsBulkBarrier") } if !writeBarrier.needed { @@ -910,7 +910,7 @@ func heapBitsSetType(x, size, dataSize uintptr, typ *_type) { } if nw == 0 { // No pointers! Caller was supposed to check. - println("runtime: invalid type ", *typ._string) + println("runtime: invalid type ", typ._string) throw("heapBitsSetType: called with non-pointer type") return } @@ -1094,7 +1094,7 @@ Phase4: if doubleCheck { end := heapBitsForAddr(x + size) if typ.kind&kindGCProg == 0 && (hbitp != end.bitp || (w == nw+2) != (end.shift == 2)) { - println("ended at wrong bitmap byte for", *typ._string, "x", dataSize/typ.size) + println("ended at wrong bitmap byte for", typ._string, "x", dataSize/typ.size) print("typ.size=", typ.size, " typ.ptrdata=", typ.ptrdata, " dataSize=", dataSize, " size=", size, "\n") print("w=", w, " nw=", nw, " b=", hex(b), " nb=", nb, " hb=", hex(hb), "\n") h0 := heapBitsForAddr(x) @@ -1130,7 +1130,7 @@ Phase4: } } if have != want { - println("mismatch writing bits for", *typ._string, "x", dataSize/typ.size) + println("mismatch writing bits for", typ._string, "x", dataSize/typ.size) print("typ.size=", typ.size, " typ.ptrdata=", typ.ptrdata, " dataSize=", dataSize, " size=", size, "\n") print("kindGCProg=", typ.kind&kindGCProg != 0, "\n") print("w=", w, " nw=", nw, " b=", hex(b), " nb=", nb, " hb=", hex(hb), "\n") diff --git a/src/runtime/mfinal.go b/src/runtime/mfinal.go index 512edeffe8..778cbcb416 100644 --- a/src/runtime/mfinal.go +++ b/src/runtime/mfinal.go @@ -274,7 +274,7 @@ func SetFinalizer(obj interface{}, finalizer interface{}) { throw("runtime.SetFinalizer: first argument is nil") } if etyp.kind&kindMask != kindPtr { - throw("runtime.SetFinalizer: first argument is " + *etyp._string + ", not pointer") + throw("runtime.SetFinalizer: first argument is " + etyp._string + ", not pointer") } ot := (*ptrtype)(unsafe.Pointer(etyp)) if ot.elem == nil { @@ -328,11 +328,11 @@ func SetFinalizer(obj interface{}, finalizer interface{}) { } if ftyp.kind&kindMask != kindFunc { - throw("runtime.SetFinalizer: second argument is " + *ftyp._string + ", not a function") + throw("runtime.SetFinalizer: second argument is " + ftyp._string + ", not a function") } ft := (*functype)(unsafe.Pointer(ftyp)) if ft.dotdotdot || len(ft.in) != 1 { - throw("runtime.SetFinalizer: cannot pass " + *etyp._string + " to finalizer " + *ftyp._string) + throw("runtime.SetFinalizer: cannot pass " + etyp._string + " to finalizer " + ftyp._string) } fint := ft.in[0] switch { @@ -355,7 +355,7 @@ func SetFinalizer(obj interface{}, finalizer interface{}) { goto okarg } } - throw("runtime.SetFinalizer: cannot pass " + *etyp._string + " to finalizer " + *ftyp._string) + throw("runtime.SetFinalizer: cannot pass " + etyp._string + " to finalizer " + ftyp._string) okarg: // compute size needed for return parameters nret := uintptr(0) diff --git a/src/runtime/mprof.go b/src/runtime/mprof.go index 3efa375d6a..d498a9328a 100644 --- a/src/runtime/mprof.go +++ b/src/runtime/mprof.go @@ -624,7 +624,7 @@ func tracealloc(p unsafe.Pointer, size uintptr, typ *_type) { if typ == nil { print("tracealloc(", p, ", ", hex(size), ")\n") } else { - print("tracealloc(", p, ", ", hex(size), ", ", *typ._string, ")\n") + print("tracealloc(", p, ", ", hex(size), ", ", typ._string, ")\n") } if gp.m.curg == nil || gp == gp.m.curg { goroutineheader(gp) diff --git a/src/runtime/type.go b/src/runtime/type.go index d5f3bb1ef0..1323adaf64 100644 --- a/src/runtime/type.go +++ b/src/runtime/type.go @@ -24,7 +24,7 @@ type _type struct { // If the KindGCProg bit is set in kind, gcdata is a GC program. // Otherwise it is a ptrmask bitmap. See mbitmap.go for details. gcdata *byte - _string *string + _string string x *uncommontype ptrto *_type } From 039d455f9d3d5d5109424f15d86b7f9b63768b42 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Wed, 24 Feb 2016 19:00:10 +0100 Subject: [PATCH 019/101] cmd/compile: don't use duffzero on Plan 9 In CL 14408, the implementation of duffzero on amd64 was changed to replace the use of the MOVQ instructions by MOVUPS. However, it broke the build on plan9/amd64, since Plan 9 doesn't allow floating point in note handler. This change disables the use of duffzero on Plan 9. We also take care to not use the MOVUPS instruction. Fixes #14471. Change-Id: I8277b485dfe65a68d7d8338e52a048c5d45069bf Reviewed-on: https://go-review.googlesource.com/19890 Reviewed-by: Keith Randall Reviewed-by: Brad Fitzpatrick --- src/cmd/compile/internal/amd64/ggen.go | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/cmd/compile/internal/amd64/ggen.go b/src/cmd/compile/internal/amd64/ggen.go index 84c3d5d7d4..b9e5bfb15f 100644 --- a/src/cmd/compile/internal/amd64/ggen.go +++ b/src/cmd/compile/internal/amd64/ggen.go @@ -10,6 +10,9 @@ import ( "cmd/internal/obj/x86" ) +// no floating point in note handlers on Plan 9 +var isPlan9 = obj.Getgoos() == "plan9" + func defframe(ptxt *obj.Prog) { var n *gc.Node @@ -126,7 +129,7 @@ func zerorange(p *obj.Prog, frame int64, lo int64, hi int64, ax *uint32, x0 *uin *ax = 1 } p = appendpp(p, x86.AMOVQ, obj.TYPE_REG, x86.REG_AX, 0, obj.TYPE_MEM, x86.REG_SP, frame+lo) - } else if cnt <= int64(8*gc.Widthreg) { + } else if !isPlan9 && cnt <= int64(8*gc.Widthreg) { if *x0 == 0 { p = appendpp(p, x86.AXORPS, obj.TYPE_REG, x86.REG_X0, 0, obj.TYPE_REG, x86.REG_X0, 0) *x0 = 1 @@ -139,12 +142,11 @@ func zerorange(p *obj.Prog, frame int64, lo int64, hi int64, ax *uint32, x0 *uin if cnt%16 != 0 { p = appendpp(p, x86.AMOVUPS, obj.TYPE_REG, x86.REG_X0, 0, obj.TYPE_MEM, x86.REG_SP, frame+lo+cnt-int64(16)) } - } else if !gc.Nacl && (cnt <= int64(128*gc.Widthreg)) { + } else if !gc.Nacl && !isPlan9 && (cnt <= int64(128*gc.Widthreg)) { if *x0 == 0 { p = appendpp(p, x86.AXORPS, obj.TYPE_REG, x86.REG_X0, 0, obj.TYPE_REG, x86.REG_X0, 0) *x0 = 1 } - p = appendpp(p, leaptr, obj.TYPE_MEM, x86.REG_SP, frame+lo+dzDI(cnt), obj.TYPE_REG, x86.REG_DI, 0) p = appendpp(p, obj.ADUFFZERO, obj.TYPE_NONE, 0, 0, obj.TYPE_ADDR, 0, dzOff(cnt)) p.To.Sym = gc.Linksym(gc.Pkglookup("duffzero", gc.Runtimepkg)) @@ -563,7 +565,7 @@ func clearfat(nl *gc.Node) { w := nl.Type.Width - if w > 1024 || (gc.Nacl && w >= 64) { + if w > 1024 || (w >= 64 && (gc.Nacl || isPlan9)) { var oldn1 gc.Node var n1 gc.Node savex(x86.REG_DI, &n1, &oldn1, nil, gc.Types[gc.Tptr]) @@ -630,6 +632,22 @@ func clearfat(nl *gc.Node) { } func clearfat_tail(n1 *gc.Node, b int64) { + if b >= 16 && isPlan9 { + var z gc.Node + gc.Nodconst(&z, gc.Types[gc.TUINT64], 0) + q := b / 8 + for ; q > 0; q-- { + n1.Type = z.Type + gins(x86.AMOVQ, &z, n1) + n1.Xoffset += 8 + b -= 8 + } + if b != 0 { + n1.Xoffset -= 8 - b + gins(x86.AMOVQ, &z, n1) + } + return + } if b >= 16 { var vec_zero gc.Node gc.Regalloc(&vec_zero, gc.Types[gc.TFLOAT64], nil) From 4feb47bc765d2cd7d774b0a28b06e8d81a1affe7 Mon Sep 17 00:00:00 2001 From: Eric Lagergren Date: Tue, 23 Feb 2016 18:19:52 -0800 Subject: [PATCH 020/101] encoding/csv: clarify that TrimLeadingSpace can trim the delimiter Fixes #14464 Change-Id: Iafc21641cca7d35b7a5631cfc94742ee8e7d5042 Reviewed-on: https://go-review.googlesource.com/19861 Reviewed-by: Brad Fitzpatrick --- src/encoding/csv/reader.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/encoding/csv/reader.go b/src/encoding/csv/reader.go index a6bb780bf2..816ed26754 100644 --- a/src/encoding/csv/reader.go +++ b/src/encoding/csv/reader.go @@ -99,6 +99,8 @@ var ( // non-doubled quote may appear in a quoted field. // // If TrimLeadingSpace is true, leading white space in a field is ignored. +// If the field delimiter is white space, TrimLeadingSpace will trim the +// delimiter. type Reader struct { Comma rune // field delimiter (set to ',' by NewReader) Comment rune // comment character for start of line From fdd0179bb1fdd70d405929b78c7d2fb6b61369b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Mo=CC=88hrmann?= Date: Wed, 24 Feb 2016 11:55:20 +0100 Subject: [PATCH 021/101] all: fix typos and spelling Change-Id: Icd06d99c42b8299fd931c7da821e1f418684d913 Reviewed-on: https://go-review.googlesource.com/19829 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/bufio/bufio.go | 2 +- src/bufio/scan_test.go | 2 +- src/cmd/asm/doc.go | 2 +- src/cmd/asm/internal/asm/testdata/arm64.s | 2 +- src/cmd/asm/internal/flags/flags.go | 4 ++-- src/cmd/compile/internal/amd64/peep.go | 2 +- src/cmd/compile/internal/arm64/ggen.go | 2 +- src/cmd/compile/internal/gc/bexport.go | 2 +- src/cmd/compile/internal/gc/mparith3.go | 2 +- src/cmd/compile/internal/gc/order.go | 2 +- src/cmd/compile/internal/gc/plive.go | 2 +- src/cmd/compile/internal/gc/reflect.go | 2 +- src/cmd/compile/internal/ppc64/ggen.go | 2 +- src/cmd/compile/internal/x86/peep.go | 2 +- src/cmd/dist/build.go | 2 +- src/cmd/go/go_test.go | 2 +- src/cmd/go/pkg.go | 2 +- src/cmd/internal/obj/arm/obj5.go | 2 +- src/cmd/internal/obj/mips/obj0.go | 2 +- src/cmd/internal/obj/x86/obj6.go | 2 +- src/cmd/link/internal/arm/asm.go | 2 +- src/cmd/link/internal/arm/obj.go | 2 +- src/cmd/link/internal/arm64/asm.go | 2 +- src/cmd/link/internal/ld/dwarf_defs.go | 2 +- src/cmd/link/internal/ld/ldelf.go | 6 +++--- src/cmd/link/internal/ld/macho.go | 2 +- src/cmd/pprof/internal/report/report.go | 2 +- src/cmd/pprof/internal/report/source.go | 2 +- src/crypto/ecdsa/ecdsa_test.go | 2 +- src/crypto/md5/md5block_arm.s | 2 +- src/crypto/tls/handshake_client_test.go | 2 +- src/crypto/x509/root_darwin_test.go | 2 +- src/database/sql/sql_test.go | 2 +- src/debug/dwarf/entry.go | 2 +- src/encoding/base32/base32_test.go | 2 +- src/encoding/base64/base64_test.go | 2 +- src/encoding/json/bench_test.go | 4 ++-- src/go/build/build.go | 2 +- src/go/build/build_test.go | 8 ++++---- src/go/internal/gcimporter/gcimporter.go | 2 +- src/go/types/builtins.go | 2 +- src/go/types/testdata/const0.src | 2 +- src/html/template/template_test.go | 2 +- src/image/gif/reader.go | 2 +- .../syscall/windows/registry/registry_test.go | 4 ++-- src/math/big/float.go | 2 +- src/math/big/floatconv.go | 2 +- src/net/dnsclient.go | 2 +- src/net/dnsclient_unix_test.go | 4 ++-- src/net/http/client_test.go | 2 +- src/net/http/cookie.go | 2 +- src/net/http/h2_bundle.go | 14 +++++++------- src/net/http/httptest/server_test.go | 2 +- src/net/http/request.go | 2 +- src/net/http/request_test.go | 2 +- src/net/http/requestwrite_test.go | 2 +- src/net/http/server.go | 2 +- src/net/http/transport.go | 2 +- src/net/http/transport_test.go | 2 +- src/net/interface_bsd.go | 2 +- src/net/interface_darwin.go | 2 +- src/net/interface_freebsd.go | 2 +- src/net/interface_test.go | 4 ++-- src/net/interface_unix_test.go | 2 +- src/net/ip_test.go | 4 ++-- src/net/ipsock_posix.go | 2 +- src/net/listen_test.go | 4 ++-- src/net/net_windows_test.go | 4 ++-- src/net/sendfile_windows.go | 2 +- src/net/udpsock_test.go | 2 +- src/os/exec/exec_test.go | 2 +- src/os/exec/lp_windows_test.go | 6 +++--- src/os/os_test.go | 2 +- src/os/str.go | 2 +- src/os/user/lookup_windows.go | 2 +- src/path/filepath/path_windows.go | 2 +- src/reflect/all_test.go | 2 +- src/regexp/exec_test.go | 2 +- src/runtime/asm_arm.s | 2 +- src/runtime/cgo/callbacks.go | 2 +- src/runtime/chan_test.go | 2 +- src/runtime/memclr_amd64.s | 2 +- src/runtime/memmove_ppc64x.s | 2 +- src/runtime/mgcwork.go | 2 +- src/runtime/netpoll_solaris.go | 4 ++-- src/runtime/proc.go | 2 +- src/runtime/runtime_test.go | 2 +- src/runtime/softfloat_arm.go | 2 +- src/runtime/sys_solaris_amd64.s | 2 +- src/sort/sort_test.go | 4 ++-- src/syscall/route_bsd.go | 2 +- src/text/template/multi_test.go | 2 +- 92 files changed, 115 insertions(+), 115 deletions(-) diff --git a/src/bufio/bufio.go b/src/bufio/bufio.go index 6a70f7034d..33470ccd41 100644 --- a/src/bufio/bufio.go +++ b/src/bufio/bufio.go @@ -705,7 +705,7 @@ func (b *Writer) ReadFrom(r io.Reader) (n int64, err error) { } } if err == io.EOF { - // If we filled the buffer exactly, flush pre-emptively. + // If we filled the buffer exactly, flush preemptively. if b.Available() == 0 { err = b.flush() } else { diff --git a/src/bufio/scan_test.go b/src/bufio/scan_test.go index 07b1a56dc0..d64d0b45d7 100644 --- a/src/bufio/scan_test.go +++ b/src/bufio/scan_test.go @@ -351,7 +351,7 @@ func TestSplitError(t *testing.T) { // Test that an EOF is overridden by a user-generated scan error. func TestErrAtEOF(t *testing.T) { s := NewScanner(strings.NewReader("1 2 33")) - // This spitter will fail on last entry, after s.err==EOF. + // This splitter will fail on last entry, after s.err==EOF. split := func(data []byte, atEOF bool) (advance int, token []byte, err error) { advance, token, err = ScanWords(data, atEOF) if len(token) > 1 { diff --git a/src/cmd/asm/doc.go b/src/cmd/asm/doc.go index a9c8bfb7db..aa62147957 100644 --- a/src/cmd/asm/doc.go +++ b/src/cmd/asm/doc.go @@ -20,7 +20,7 @@ The GOOS and GOARCH environment variables set the desired target. Flags: -D value - predefined symbol with optional simple value -D=identifer=value; + predefined symbol with optional simple value -D=identifier=value; can be set multiple times -I value include directory; can be set multiple times diff --git a/src/cmd/asm/internal/asm/testdata/arm64.s b/src/cmd/asm/internal/asm/testdata/arm64.s index 22d430631c..6466da7190 100644 --- a/src/cmd/asm/internal/asm/testdata/arm64.s +++ b/src/cmd/asm/internal/asm/testdata/arm64.s @@ -237,7 +237,7 @@ again: // // LSTXR reg ',' addr ',' reg // { -// outtcode($1, &$2, &$4, &$6); +// outcode($1, &$2, &$4, &$6); // } LDAXRW (R0), R2 STLXRW R1, (R0), R3 diff --git a/src/cmd/asm/internal/flags/flags.go b/src/cmd/asm/internal/flags/flags.go index fd42e8443b..4557c2a7f9 100644 --- a/src/cmd/asm/internal/flags/flags.go +++ b/src/cmd/asm/internal/flags/flags.go @@ -20,7 +20,7 @@ var ( TrimPath = flag.String("trimpath", "", "remove prefix from recorded source file paths") Shared = flag.Bool("shared", false, "generate code that can be linked into a shared library") Dynlink = flag.Bool("dynlink", false, "support references to Go symbols defined in other shared libraries") - AllErrors = flag.Bool("e", false, "no limit on number of errors reported") + AllErrors = flag.Bool("e", false, "no limit on number of errors reported") ) var ( @@ -29,7 +29,7 @@ var ( ) func init() { - flag.Var(&D, "D", "predefined symbol with optional simple value -D=identifer=value; can be set multiple times") + flag.Var(&D, "D", "predefined symbol with optional simple value -D=identifier=value; can be set multiple times") flag.Var(&I, "I", "include directory; can be set multiple times") } diff --git a/src/cmd/compile/internal/amd64/peep.go b/src/cmd/compile/internal/amd64/peep.go index 452f954bd8..810214504f 100644 --- a/src/cmd/compile/internal/amd64/peep.go +++ b/src/cmd/compile/internal/amd64/peep.go @@ -427,7 +427,7 @@ func elimshortmov(g *gc.Graph) { } if regtyp(&p.From) || p.From.Type == obj.TYPE_CONST { - // move or artihmetic into partial register. + // move or arithmetic into partial register. // from another register or constant can be movl. // we don't switch to 64-bit arithmetic if it can // change how the carry bit is set (and the carry bit is needed). diff --git a/src/cmd/compile/internal/arm64/ggen.go b/src/cmd/compile/internal/arm64/ggen.go index c495bbc77f..99ffd5acd5 100644 --- a/src/cmd/compile/internal/arm64/ggen.go +++ b/src/cmd/compile/internal/arm64/ggen.go @@ -146,7 +146,7 @@ func dodiv(op gc.Op, nl *gc.Node, nr *gc.Node, res *gc.Node) { // The hardware will generate undefined result. // Also need to explicitly trap on division on zero, // the hardware will silently generate undefined result. - // DIVW will leave unpredicable result in higher 32-bit, + // DIVW will leave unpredictable result in higher 32-bit, // so always use DIVD/DIVDU. t := nl.Type diff --git a/src/cmd/compile/internal/gc/bexport.go b/src/cmd/compile/internal/gc/bexport.go index ff0465f64c..dc55bb023e 100644 --- a/src/cmd/compile/internal/gc/bexport.go +++ b/src/cmd/compile/internal/gc/bexport.go @@ -72,7 +72,7 @@ amount of space to hold the list without the need to grow it later. All integer values use a variable-length encoding for compact representation. -If debugFormat is set, each integer and string value is preceeded by a marker +If debugFormat is set, each integer and string value is preceded by a marker and position information in the encoding. This mechanism permits an importer to recognize immediately when it is out of sync. The importer recognizes this mode automatically (i.e., it can import export data produced with debugging diff --git a/src/cmd/compile/internal/gc/mparith3.go b/src/cmd/compile/internal/gc/mparith3.go index 9bcfda7c0d..5b61a9e17f 100644 --- a/src/cmd/compile/internal/gc/mparith3.go +++ b/src/cmd/compile/internal/gc/mparith3.go @@ -11,7 +11,7 @@ import ( "math" ) -/// implements float arihmetic +// implements float arithmetic func newMpflt() *Mpflt { var a Mpflt diff --git a/src/cmd/compile/internal/gc/order.go b/src/cmd/compile/internal/gc/order.go index ddd6cb9719..a3a8441f50 100644 --- a/src/cmd/compile/internal/gc/order.go +++ b/src/cmd/compile/internal/gc/order.go @@ -386,7 +386,7 @@ func ordercall(n *Node, order *Order) { // Ordermapassign appends n to order->out, introducing temporaries // to make sure that all map assignments have the form m[k] = x, -// where x is adressable. +// where x is addressable. // (Orderexpr has already been called on n, so we know k is addressable.) // // If n is m[k] = x where x is not addressable, the rewrite is: diff --git a/src/cmd/compile/internal/gc/plive.go b/src/cmd/compile/internal/gc/plive.go index feb66f625a..8719029c91 100644 --- a/src/cmd/compile/internal/gc/plive.go +++ b/src/cmd/compile/internal/gc/plive.go @@ -121,7 +121,7 @@ func addedge(from *BasicBlock, to *BasicBlock) { } // Inserts prev before curr in the instruction -// stream. Any control flow, such as branches or fall throughs, that target the +// stream. Any control flow, such as branches or fall-throughs, that target the // existing instruction are adjusted to target the new instruction. func splicebefore(lv *Liveness, bb *BasicBlock, prev *obj.Prog, curr *obj.Prog) { // There may be other instructions pointing at curr, diff --git a/src/cmd/compile/internal/gc/reflect.go b/src/cmd/compile/internal/gc/reflect.go index 04e94f18eb..d2f00d0a05 100644 --- a/src/cmd/compile/internal/gc/reflect.go +++ b/src/cmd/compile/internal/gc/reflect.go @@ -1380,7 +1380,7 @@ func dalgsym(t *Type) *Sym { // be multiples of four words. On 32-bit systems that's 16 bytes, and // all size classes >= 16 bytes are 16-byte aligned, so no real constraint. // On 64-bit systems, that's 32 bytes, and 32-byte alignment is guaranteed -// for size classes >= 256 bytes. On a 64-bit sytem, 256 bytes allocated +// for size classes >= 256 bytes. On a 64-bit system, 256 bytes allocated // is 32 pointers, the bits for which fit in 4 bytes. So maxPtrmaskBytes // must be >= 4. // diff --git a/src/cmd/compile/internal/ppc64/ggen.go b/src/cmd/compile/internal/ppc64/ggen.go index 28fcecf8f4..00fcdb8443 100644 --- a/src/cmd/compile/internal/ppc64/ggen.go +++ b/src/cmd/compile/internal/ppc64/ggen.go @@ -133,7 +133,7 @@ func dodiv(op gc.Op, nl *gc.Node, nr *gc.Node, res *gc.Node) { // The hardware will generate undefined result. // Also need to explicitly trap on division on zero, // the hardware will silently generate undefined result. - // DIVW will leave unpredicable result in higher 32-bit, + // DIVW will leave unpredictable result in higher 32-bit, // so always use DIVD/DIVDU. t := nl.Type diff --git a/src/cmd/compile/internal/x86/peep.go b/src/cmd/compile/internal/x86/peep.go index 63e64cb77c..239e9cc35f 100644 --- a/src/cmd/compile/internal/x86/peep.go +++ b/src/cmd/compile/internal/x86/peep.go @@ -284,7 +284,7 @@ func elimshortmov(g *gc.Graph) { } if regtyp(&p.From) || p.From.Type == obj.TYPE_CONST { - // move or artihmetic into partial register. + // move or arithmetic into partial register. // from another register or constant can be movl. // we don't switch to 32-bit arithmetic if it can // change how the carry bit is set (and the carry bit is needed). diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index 1b3df333d6..0b2ce271dc 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -1150,7 +1150,7 @@ func defaulttarg() string { fatal("current directory %s is not under %s", pwd, real_src) } pwd = pwd[len(real_src):] - // guard againt xrealwd return the directory without the trailing / + // guard against xrealwd returning the directory without the trailing / pwd = strings.TrimPrefix(pwd, "/") return pwd diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go index 51931769d5..b43a786727 100644 --- a/src/cmd/go/go_test.go +++ b/src/cmd/go/go_test.go @@ -2122,7 +2122,7 @@ func TestIssue7108(t *testing.T) { // cmd/go: go test -a foo does not rebuild regexp. func TestIssue6844(t *testing.T) { if testing.Short() { - t.Skip("don't rebuild the standard libary in short mode") + t.Skip("don't rebuild the standard library in short mode") } tg := testgo(t) diff --git a/src/cmd/go/pkg.go b/src/cmd/go/pkg.go index f9988bf2d7..ccff783c29 100644 --- a/src/cmd/go/pkg.go +++ b/src/cmd/go/pkg.go @@ -1220,7 +1220,7 @@ var isGoRelease = strings.HasPrefix(runtime.Version(), "go1") // an explicit data comparison. Specifically, we build a list of the // inputs to the build, compute its SHA1 hash, and record that as the // ``build ID'' in the generated object. At the next build, we can -// recompute the buid ID and compare it to the one in the generated +// recompute the build ID and compare it to the one in the generated // object. If they differ, the list of inputs has changed, so the object // is out of date and must be rebuilt. // diff --git a/src/cmd/internal/obj/arm/obj5.go b/src/cmd/internal/obj/arm/obj5.go index 1a51dc3b88..c5af929b14 100644 --- a/src/cmd/internal/obj/arm/obj5.go +++ b/src/cmd/internal/obj/arm/obj5.go @@ -55,7 +55,7 @@ func progedit(ctxt *obj.Link, p *obj.Prog) { } } - // Replace TLS register fetches on older ARM procesors. + // Replace TLS register fetches on older ARM processors. switch p.As { // Treat MRC 15, 0, , C13, C0, 3 specially. case AMRC: diff --git a/src/cmd/internal/obj/mips/obj0.go b/src/cmd/internal/obj/mips/obj0.go index a3ccad2764..fccff707be 100644 --- a/src/cmd/internal/obj/mips/obj0.go +++ b/src/cmd/internal/obj/mips/obj0.go @@ -1234,7 +1234,7 @@ func markregused(ctxt *obj.Link, s *Sch) { } /* - * test to see if 2 instrictions can be + * test to see if two instructions can be * interchanged without changing semantics */ func depend(ctxt *obj.Link, sa, sb *Sch) bool { diff --git a/src/cmd/internal/obj/x86/obj6.go b/src/cmd/internal/obj/x86/obj6.go index 55ddfe108c..6332b7e4d9 100644 --- a/src/cmd/internal/obj/x86/obj6.go +++ b/src/cmd/internal/obj/x86/obj6.go @@ -189,7 +189,7 @@ func progedit(ctxt *obj.Link, p *obj.Prog) { } } - // Rewrite 0 to $0 in 3rd argment to CMPPS etc. + // Rewrite 0 to $0 in 3rd argument to CMPPS etc. // That's what the tables expect. switch p.As { case ACMPPD, ACMPPS, ACMPSD, ACMPSS: diff --git a/src/cmd/link/internal/arm/asm.go b/src/cmd/link/internal/arm/asm.go index 74c2249702..ca55512575 100644 --- a/src/cmd/link/internal/arm/asm.go +++ b/src/cmd/link/internal/arm/asm.go @@ -109,7 +109,7 @@ func gentext() { } // Preserve highest 8 bits of a, and do addition to lower 24-bit -// of a and b; used to adjust ARM branch intruction's target +// of a and b; used to adjust ARM branch instruction's target func braddoff(a int32, b int32) int32 { return int32((uint32(a))&0xff000000 | 0x00ffffff&uint32(a+b)) } diff --git a/src/cmd/link/internal/arm/obj.go b/src/cmd/link/internal/arm/obj.go index 10eb723bb9..29a58c6fd2 100644 --- a/src/cmd/link/internal/arm/obj.go +++ b/src/cmd/link/internal/arm/obj.go @@ -156,7 +156,7 @@ func archinit() { } case obj.Hdarwin: /* apple MACH */ - ld.Debug['w'] = 1 // disable DWARF generataion + ld.Debug['w'] = 1 // disable DWARF generation ld.Machoinit() ld.HEADR = ld.INITIAL_MACHO_HEADR if ld.INITTEXT == -1 { diff --git a/src/cmd/link/internal/arm64/asm.go b/src/cmd/link/internal/arm64/asm.go index 0e5a2d0a63..be8afa5d26 100644 --- a/src/cmd/link/internal/arm64/asm.go +++ b/src/cmd/link/internal/arm64/asm.go @@ -162,7 +162,7 @@ func machoreloc1(r *ld.Reloc, sectoff int64) int { rs := r.Xsym // ld64 has a bug handling MACHO_ARM64_RELOC_UNSIGNED with !extern relocation. - // see cmd/internal/ld/data.go for details. The workarond is that don't use !extern + // see cmd/internal/ld/data.go for details. The workaround is that don't use !extern // UNSIGNED relocation at all. if rs.Type == obj.SHOSTOBJ || r.Type == obj.R_CALLARM64 || r.Type == obj.R_ADDRARM64 || r.Type == obj.R_ADDR { if rs.Dynid < 0 { diff --git a/src/cmd/link/internal/ld/dwarf_defs.go b/src/cmd/link/internal/ld/dwarf_defs.go index 61389d9218..c52879cbbe 100644 --- a/src/cmd/link/internal/ld/dwarf_defs.go +++ b/src/cmd/link/internal/ld/dwarf_defs.go @@ -116,7 +116,7 @@ const ( DW_CHILDREN_yes = 0x01 ) -// Not from the spec, but logicaly belongs here +// Not from the spec, but logically belongs here const ( DW_CLS_ADDRESS = 0x01 + iota DW_CLS_BLOCK diff --git a/src/cmd/link/internal/ld/ldelf.go b/src/cmd/link/internal/ld/ldelf.go index bea3f2dcc3..9eeca218d3 100644 --- a/src/cmd/link/internal/ld/ldelf.go +++ b/src/cmd/link/internal/ld/ldelf.go @@ -1066,9 +1066,9 @@ func readelfsym(elfobj *ElfObj, i int, sym *ElfSym, needSym int) (err error) { } if needSym != 0 { - // local names and hidden visiblity global names are unique - // and should only reference by its index, not name, so we - // don't bother to add them into hash table + // local names and hidden global names are unique + // and should only be referenced by their index, not name, so we + // don't bother to add them into the hash table s = linknewsym(Ctxt, sym.name, Ctxt.Version) s.Type |= obj.SHIDDEN diff --git a/src/cmd/link/internal/ld/macho.go b/src/cmd/link/internal/ld/macho.go index 1c7f3a0d82..010e7da0ee 100644 --- a/src/cmd/link/internal/ld/macho.go +++ b/src/cmd/link/internal/ld/macho.go @@ -569,7 +569,7 @@ func Asmbmacho() { if Linkmode == LinkInternal { // For lldb, must say LC_VERSION_MIN_MACOSX or else // it won't know that this Mach-O binary is from OS X - // (could be iOS or WatchOS intead). + // (could be iOS or WatchOS instead). // Go on iOS uses linkmode=external, and linkmode=external // adds this itself. So we only need this code for linkmode=internal // and we can assume OS X. diff --git a/src/cmd/pprof/internal/report/report.go b/src/cmd/pprof/internal/report/report.go index 0265e2384c..b6694f559f 100644 --- a/src/cmd/pprof/internal/report/report.go +++ b/src/cmd/pprof/internal/report/report.go @@ -1340,7 +1340,7 @@ const ( addressOrder ) -// sort reoders the entries in a report based on the specified +// sort reorders the entries in a report based on the specified // ordering criteria. The result is sorted in decreasing order for // numeric quantities, alphabetically for text, and increasing for // addresses. diff --git a/src/cmd/pprof/internal/report/source.go b/src/cmd/pprof/internal/report/source.go index 73ae1b4ea2..908be21424 100644 --- a/src/cmd/pprof/internal/report/source.go +++ b/src/cmd/pprof/internal/report/source.go @@ -408,7 +408,7 @@ func getMissingFunctionSource(filename string, asm map[int]nodes, start, end int return fnodes, filename } -// adjustSourcePath adjusts the pathe for a source file by trimmming +// adjustSourcePath adjusts the path for a source file by trimming // known prefixes and searching for the file on all parents of the // current working dir. func adjustSourcePath(path string) (*os.File, string, error) { diff --git a/src/crypto/ecdsa/ecdsa_test.go b/src/crypto/ecdsa/ecdsa_test.go index 62a3fcc496..5e588b9258 100644 --- a/src/crypto/ecdsa/ecdsa_test.go +++ b/src/crypto/ecdsa/ecdsa_test.go @@ -130,7 +130,7 @@ func testNonceSafety(t *testing.T, c elliptic.Curve, tag string) { } if r0.Cmp(r1) == 0 { - t.Errorf("%s: the nonce used for two diferent messages was the same", tag) + t.Errorf("%s: the nonce used for two different messages was the same", tag) } } diff --git a/src/crypto/md5/md5block_arm.s b/src/crypto/md5/md5block_arm.s index f1f0f67e55..54d02b743a 100644 --- a/src/crypto/md5/md5block_arm.s +++ b/src/crypto/md5/md5block_arm.s @@ -46,7 +46,7 @@ loop: BEQ aligned // aligned detected - skip copy // Copy the unaligned source data into the aligned temporary buffer - // memove(to=4(R13), from=8(R13), n=12(R13)) - Corrupts all registers + // memmove(to=4(R13), from=8(R13), n=12(R13)) - Corrupts all registers MOVW $buf, Rtable // to MOVW $64, Rc0 // n MOVM.IB [Rtable,Rdata,Rc0], (R13) diff --git a/src/crypto/tls/handshake_client_test.go b/src/crypto/tls/handshake_client_test.go index f78cc46935..9598d2feae 100644 --- a/src/crypto/tls/handshake_client_test.go +++ b/src/crypto/tls/handshake_client_test.go @@ -448,7 +448,7 @@ func TestClientResumption(t *testing.T) { t.Fatalf("%s resumed: %v, expected: %v", test, hs.DidResume, didResume) } if didResume && (hs.PeerCertificates == nil || hs.VerifiedChains == nil) { - t.Fatalf("expected non-nil certificates after resumption. Got peerCertificates: %#v, verifedCertificates: %#v", hs.PeerCertificates, hs.VerifiedChains) + t.Fatalf("expected non-nil certificates after resumption. Got peerCertificates: %#v, verifiedCertificates: %#v", hs.PeerCertificates, hs.VerifiedChains) } } diff --git a/src/crypto/x509/root_darwin_test.go b/src/crypto/x509/root_darwin_test.go index cc6d23c505..8b6b1516ae 100644 --- a/src/crypto/x509/root_darwin_test.go +++ b/src/crypto/x509/root_darwin_test.go @@ -57,6 +57,6 @@ func TestSystemRoots(t *testing.T) { } if have < want { - t.Errorf("insufficent overlap between cgo and non-cgo roots; want at least %d, have %d", want, have) + t.Errorf("insufficient overlap between cgo and non-cgo roots; want at least %d, have %d", want, have) } } diff --git a/src/database/sql/sql_test.go b/src/database/sql/sql_test.go index 8ec70d99b0..68f17fb6b0 100644 --- a/src/database/sql/sql_test.go +++ b/src/database/sql/sql_test.go @@ -1591,7 +1591,7 @@ func TestStmtCloseOrder(t *testing.T) { _, err := db.Query("SELECT|non_existent|name|") if err == nil { - t.Fatal("Quering non-existent table should fail") + t.Fatal("Querying non-existent table should fail") } } diff --git a/src/debug/dwarf/entry.go b/src/debug/dwarf/entry.go index 5ca86679fa..6b140c60c7 100644 --- a/src/debug/dwarf/entry.go +++ b/src/debug/dwarf/entry.go @@ -243,7 +243,7 @@ type Field struct { Class Class } -// A Class is the DWARF 4 class of an attibute value. +// A Class is the DWARF 4 class of an attribute value. // // In general, a given attribute's value may take on one of several // possible classes defined by DWARF, each of which leads to a diff --git a/src/encoding/base32/base32_test.go b/src/encoding/base32/base32_test.go index 5a68f06e1c..66a48a3f6f 100644 --- a/src/encoding/base32/base32_test.go +++ b/src/encoding/base32/base32_test.go @@ -171,7 +171,7 @@ func TestDecodeCorrupt(t *testing.T) { _, err := StdEncoding.Decode(dbuf, []byte(tc.input)) if tc.offset == -1 { if err != nil { - t.Error("Decoder wrongly detected coruption in", tc.input) + t.Error("Decoder wrongly detected corruption in", tc.input) } continue } diff --git a/src/encoding/base64/base64_test.go b/src/encoding/base64/base64_test.go index fc6a1ea654..eebf113212 100644 --- a/src/encoding/base64/base64_test.go +++ b/src/encoding/base64/base64_test.go @@ -221,7 +221,7 @@ func TestDecodeCorrupt(t *testing.T) { _, err := StdEncoding.Decode(dbuf, []byte(tc.input)) if tc.offset == -1 { if err != nil { - t.Error("Decoder wrongly detected coruption in", tc.input) + t.Error("Decoder wrongly detected corruption in", tc.input) } continue } diff --git a/src/encoding/json/bench_test.go b/src/encoding/json/bench_test.go index ed89d1156e..8a514e58cd 100644 --- a/src/encoding/json/bench_test.go +++ b/src/encoding/json/bench_test.go @@ -158,7 +158,7 @@ func BenchmarkCodeUnmarshal(b *testing.B) { for i := 0; i < b.N; i++ { var r codeResponse if err := Unmarshal(codeJSON, &r); err != nil { - b.Fatal("Unmmarshal:", err) + b.Fatal("Unmarshal:", err) } } b.SetBytes(int64(len(codeJSON))) @@ -173,7 +173,7 @@ func BenchmarkCodeUnmarshalReuse(b *testing.B) { var r codeResponse for i := 0; i < b.N; i++ { if err := Unmarshal(codeJSON, &r); err != nil { - b.Fatal("Unmmarshal:", err) + b.Fatal("Unmarshal:", err) } } } diff --git a/src/go/build/build.go b/src/go/build/build.go index 0835c1e3c0..d3b83b9f46 100644 --- a/src/go/build/build.go +++ b/src/go/build/build.go @@ -1230,7 +1230,7 @@ func (ctxt *Context) saveCgo(filename string, di *Package, cg *ast.CommentGroup) // the result is safe for the shell. func expandSrcDir(str string, srcdir string) (string, bool) { // "\" delimited paths cause safeCgoName to fail - // so convert native paths with a different delimeter + // so convert native paths with a different delimiter // to "/" before starting (eg: on windows). srcdir = filepath.ToSlash(srcdir) diff --git a/src/go/build/build_test.go b/src/go/build/build_test.go index 7312af08b5..9a473f41ec 100644 --- a/src/go/build/build_test.go +++ b/src/go/build/build_test.go @@ -155,15 +155,15 @@ func TestShouldBuild(t *testing.T) { t.Errorf("shouldBuild(file1) = false, want true") } if !reflect.DeepEqual(m, want1) { - t.Errorf("shoudBuild(file1) tags = %v, want %v", m, want1) + t.Errorf("shouldBuild(file1) tags = %v, want %v", m, want1) } m = map[string]bool{} if ctx.shouldBuild([]byte(file2), m) { - t.Errorf("shouldBuild(file2) = true, want fakse") + t.Errorf("shouldBuild(file2) = true, want false") } if !reflect.DeepEqual(m, want2) { - t.Errorf("shoudBuild(file2) tags = %v, want %v", m, want2) + t.Errorf("shouldBuild(file2) tags = %v, want %v", m, want2) } m = map[string]bool{} @@ -172,7 +172,7 @@ func TestShouldBuild(t *testing.T) { t.Errorf("shouldBuild(file3) = false, want true") } if !reflect.DeepEqual(m, want3) { - t.Errorf("shoudBuild(file3) tags = %v, want %v", m, want3) + t.Errorf("shouldBuild(file3) tags = %v, want %v", m, want3) } } diff --git a/src/go/internal/gcimporter/gcimporter.go b/src/go/internal/gcimporter/gcimporter.go index 052277f4fe..b2848c3023 100644 --- a/src/go/internal/gcimporter/gcimporter.go +++ b/src/go/internal/gcimporter/gcimporter.go @@ -451,7 +451,7 @@ func (p *parser) parseMapType(parent *types.Package) types.Type { // For qualified names, the returned package is nil (and not created if // it doesn't exist yet) unless materializePkg is set (which creates an // unnamed package with valid package path). In the latter case, a -// subequent import clause is expected to provide a name for the package. +// subsequent import clause is expected to provide a name for the package. // func (p *parser) parseName(parent *types.Package, materializePkg bool) (pkg *types.Package, name string) { pkg = parent diff --git a/src/go/types/builtins.go b/src/go/types/builtins.go index 803264fb58..0082be9e2e 100644 --- a/src/go/types/builtins.go +++ b/src/go/types/builtins.go @@ -366,7 +366,7 @@ func (check *Checker) builtin(x *operand, call *ast.CallExpr, id builtinId) (_ b } else { // an untyped non-constant argument may appear if // it contains a (yet untyped non-constant) shift - // epression: convert it to complex128 which will + // expression: convert it to complex128 which will // result in an error (shift of complex value) check.convertUntyped(x, Typ[Complex128]) // x should be invalid now, but be conservative and check diff --git a/src/go/types/testdata/const0.src b/src/go/types/testdata/const0.src index 716a5907ce..a61717887e 100644 --- a/src/go/types/testdata/const0.src +++ b/src/go/types/testdata/const0.src @@ -239,7 +239,7 @@ const ( type A [iota /* ERROR "cannot use iota" */ ]int -// constant expressions with operands accross different +// constant expressions with operands across different // constant declarations must use the right iota values const ( _c0 = iota diff --git a/src/html/template/template_test.go b/src/html/template/template_test.go index 6f70d67de9..46df1f8d49 100644 --- a/src/html/template/template_test.go +++ b/src/html/template/template_test.go @@ -13,7 +13,7 @@ func TestTemplateClone(t *testing.T) { t.Fatal(err) } if len(clone.Templates()) != len(orig.Templates()) { - t.Fatalf("Invalid lenth of t.Clone().Templates()") + t.Fatalf("Invalid length of t.Clone().Templates()") } const want = "stuff" diff --git a/src/image/gif/reader.go b/src/image/gif/reader.go index 6a133124ad..72b52e36e5 100644 --- a/src/image/gif/reader.go +++ b/src/image/gif/reader.go @@ -210,7 +210,7 @@ func (d *decoder) decode(r io.Reader, configOnly bool) error { // for an image". In practice, though, giflib (a widely used C // library) does not enforce this, so we also accept lzwr returning // io.ErrUnexpectedEOF (meaning that the encoded stream hit io.EOF - // before the LZW decoder saw an explict end code), provided that + // before the LZW decoder saw an explicit end code), provided that // the io.ReadFull call above successfully read len(m.Pix) bytes. // See https://golang.org/issue/9856 for an example GIF. if n, err := lzwr.Read(d.tmp[:1]); n != 0 || (err != io.EOF && err != io.ErrUnexpectedEOF) { diff --git a/src/internal/syscall/windows/registry/registry_test.go b/src/internal/syscall/windows/registry/registry_test.go index a63c42022d..56069d7684 100644 --- a/src/internal/syscall/windows/registry/registry_test.go +++ b/src/internal/syscall/windows/registry/registry_test.go @@ -213,7 +213,7 @@ func enumerateValues(t *testing.T, k registry.Key) { } } for n, v := range haveNames { - t.Errorf("value %s (%v) is found while enumerating, but has not been cretaed", n, v) + t.Errorf("value %s (%v) is found while enumerating, but has not been created", n, v) } } @@ -335,7 +335,7 @@ func testGetValue(t *testing.T, k registry.Key, test ValueTest, size int) { // read data with short buffer gotsize, gottype, err = k.GetValue(test.Name, make([]byte, size-1)) if err == nil { - t.Errorf("GetValue(%s, [%d]byte) should fail, but suceeded", test.Name, size-1) + t.Errorf("GetValue(%s, [%d]byte) should fail, but succeeded", test.Name, size-1) return } if err != registry.ErrShortBuffer { diff --git a/src/math/big/float.go b/src/math/big/float.go index b1c748c9a5..6460620bde 100644 --- a/src/math/big/float.go +++ b/src/math/big/float.go @@ -1427,7 +1427,7 @@ func (z *Float) Add(x, y *Float) *Float { } if x.form == finite && y.form == finite { - // x + y (commom case) + // x + y (common case) z.neg = x.neg if x.neg == y.neg { // x + y == x + y diff --git a/src/math/big/floatconv.go b/src/math/big/floatconv.go index 37d5c06a6f..a884df6fe1 100644 --- a/src/math/big/floatconv.go +++ b/src/math/big/floatconv.go @@ -85,7 +85,7 @@ func (z *Float) scan(r io.ByteScanner, base int) (f *Float, b int, err error) { if fcount < 0 { // The mantissa has a "decimal" point ddd.dddd; and // -fcount is the number of digits to the right of '.'. - // Adjust relevant exponent accodingly. + // Adjust relevant exponent accordingly. d := int64(fcount) switch b { case 10: diff --git a/src/net/dnsclient.go b/src/net/dnsclient.go index 5dc2a0368c..5094ac4f1b 100644 --- a/src/net/dnsclient.go +++ b/src/net/dnsclient.go @@ -161,7 +161,7 @@ func isDomainName(s string) bool { return ok } -// absDomainName returns an absoulte domain name which ends with a +// absDomainName returns an absolute domain name which ends with a // trailing dot to match pure Go reverse resolver and all other lookup // routines. // See golang.org/issue/12189. diff --git a/src/net/dnsclient_unix_test.go b/src/net/dnsclient_unix_test.go index d7f00c784d..5623039b7b 100644 --- a/src/net/dnsclient_unix_test.go +++ b/src/net/dnsclient_unix_test.go @@ -67,7 +67,7 @@ var specialDomainNameTests = []struct { // Name resolution APIs and libraries should recognize the // followings as special and should not send any queries. - // Though, we test those names here for verifying nagative + // Though, we test those names here for verifying negative // answers at DNS query-response interaction level. {"localhost.", dnsTypeALL, dnsRcodeNameError}, {"invalid.", dnsTypeALL, dnsRcodeNameError}, @@ -398,7 +398,7 @@ func TestGoLookupIPOrderFallbackToFile(t *testing.T) { for _, order := range []hostLookupOrder{hostLookupFilesDNS, hostLookupDNSFiles} { name := fmt.Sprintf("order %v", order) - // First ensure that we get an error when contacting a non-existant host. + // First ensure that we get an error when contacting a non-existent host. _, err := goLookupIPOrder("notarealhost", order) if err == nil { t.Errorf("%s: expected error while looking up name not in hosts file", name) diff --git a/src/net/http/client_test.go b/src/net/http/client_test.go index 8939dc8baf..e4fed26803 100644 --- a/src/net/http/client_test.go +++ b/src/net/http/client_test.go @@ -273,7 +273,7 @@ func TestClientRedirects(t *testing.T) { t.Fatal("didn't see redirect") } if lastReq.Cancel != cancel { - t.Errorf("expected lastReq to have the cancel channel set on the inital req") + t.Errorf("expected lastReq to have the cancel channel set on the initial req") } checkErr = errors.New("no redirects allowed") diff --git a/src/net/http/cookie.go b/src/net/http/cookie.go index 648709dd99..1ea0e9397a 100644 --- a/src/net/http/cookie.go +++ b/src/net/http/cookie.go @@ -223,7 +223,7 @@ func readCookies(h Header, filter string) []*Cookie { return cookies } -// validCookieDomain returns wheter v is a valid cookie domain-value. +// validCookieDomain returns whether v is a valid cookie domain-value. func validCookieDomain(v string) bool { if isCookieDomainName(v) { return true diff --git a/src/net/http/h2_bundle.go b/src/net/http/h2_bundle.go index 4e19b3e71f..f778acb2b5 100644 --- a/src/net/http/h2_bundle.go +++ b/src/net/http/h2_bundle.go @@ -288,7 +288,7 @@ func http2configureTransport(t1 *Transport) (*http2Transport, error) { } // registerHTTPSProtocol calls Transport.RegisterProtocol but -// convering panics into errors. +// converting panics into errors. func http2registerHTTPSProtocol(t *Transport, rt RoundTripper) (err error) { defer func() { if e := recover(); e != nil { @@ -1410,7 +1410,7 @@ type http2PriorityFrame struct { http2PriorityParam } -// PriorityParam are the stream prioritzation parameters. +// PriorityParam are the stream prioritization parameters. type http2PriorityParam struct { // StreamDep is a 31-bit stream identifier for the // stream that this stream depends on. Zero means no @@ -2850,7 +2850,7 @@ type http2stream struct { weight uint8 state http2streamState sentReset bool // only true once detached from streams map - gotReset bool // only true once detacted from streams map + gotReset bool // only true once detached from streams map gotTrailerHeader bool // HEADER frame for trailers was seen trailer Header // accumulated trailers @@ -4391,7 +4391,7 @@ const http2TrailerPrefix = "Trailer:" // trailers. That worked for a while, until we found the first major // user of Trailers in the wild: gRPC (using them only over http2), // and gRPC libraries permit setting trailers mid-stream without -// predeclarnig them. So: change of plans. We still permit the old +// predeclaring them. So: change of plans. We still permit the old // way, but we also permit this hack: if a Header() key begins with // "Trailer:", the suffix of that key is a Trailer. Because ':' is an // invalid token byte anyway, there is no ambiguity. (And it's already @@ -4605,7 +4605,7 @@ type http2Transport struct { // send in the initial settings frame. It is how many bytes // of response headers are allow. Unlike the http2 spec, zero here // means to use a default limit (currently 10MB). If you actually - // want to advertise an ulimited value to the peer, Transport + // want to advertise an unlimited value to the peer, Transport // interprets the highest possible value here (0xffffffff or 1<<32-1) // to mean no limit. MaxHeaderListSize uint32 @@ -5012,7 +5012,7 @@ const http2maxAllocFrameSize = 512 << 10 // frameBuffer returns a scratch buffer suitable for writing DATA frames. // They're capped at the min of the peer's max frame size or 512KB // (kinda arbitrarily), but definitely capped so we don't allocate 4GB -// bufers. +// buffers. func (cc *http2ClientConn) frameScratchBuffer() []byte { cc.mu.Lock() size := cc.maxFrameSize @@ -6544,7 +6544,7 @@ func (ws *http2writeScheduler) take() (wm http2frameWriteMsg, ok bool) { return ws.takeFrom(q.streamID(), q) } -// zeroCanSend is defered from take. +// zeroCanSend is deferred from take. func (ws *http2writeScheduler) zeroCanSend() { for i := range ws.canSend { ws.canSend[i] = nil diff --git a/src/net/http/httptest/server_test.go b/src/net/http/httptest/server_test.go index c9606f2419..61470c3822 100644 --- a/src/net/http/httptest/server_test.go +++ b/src/net/http/httptest/server_test.go @@ -53,7 +53,7 @@ func TestGetAfterClose(t *testing.T) { res, err = http.Get(ts.URL) if err == nil { body, _ := ioutil.ReadAll(res.Body) - t.Fatalf("Unexected response after close: %v, %v, %s", res.Status, res.Header, body) + t.Fatalf("Unexpected response after close: %v, %v, %s", res.Status, res.Header, body) } } diff --git a/src/net/http/request.go b/src/net/http/request.go index 8cdab02af5..c3e43bb99d 100644 --- a/src/net/http/request.go +++ b/src/net/http/request.go @@ -521,7 +521,7 @@ func cleanHost(in string) string { return in } -// removeZone removes IPv6 zone identifer from host. +// removeZone removes IPv6 zone identifier from host. // E.g., "[fe80::1%en0]:8080" to "[fe80::1]:8080" func removeZone(host string) string { if !strings.HasPrefix(host, "[") { diff --git a/src/net/http/request_test.go b/src/net/http/request_test.go index 0ecdf85a56..3d215ff538 100644 --- a/src/net/http/request_test.go +++ b/src/net/http/request_test.go @@ -99,7 +99,7 @@ type parseContentTypeTest struct { var parseContentTypeTests = []parseContentTypeTest{ {false, stringMap{"Content-Type": {"text/plain"}}}, - // Empty content type is legal - shoult be treated as + // Empty content type is legal - should be treated as // application/octet-stream (RFC 2616, section 7.2.1) {false, stringMap{}}, {true, stringMap{"Content-Type": {"text/plain; boundary="}}}, diff --git a/src/net/http/requestwrite_test.go b/src/net/http/requestwrite_test.go index cfb95b0a80..9b70fcbf8a 100644 --- a/src/net/http/requestwrite_test.go +++ b/src/net/http/requestwrite_test.go @@ -573,7 +573,7 @@ func TestRequestWriteClosesBody(t *testing.T) { "Transfer-Encoding: chunked\r\n\r\n" + // TODO: currently we don't buffer before chunking, so we get a // single "m" chunk before the other chunks, as this was the 1-byte - // read from our MultiReader where we stiched the Body back together + // read from our MultiReader where we stitched the Body back together // after sniffing whether the Body was 0 bytes or not. chunk("m") + chunk("y body") + diff --git a/src/net/http/server.go b/src/net/http/server.go index e2d8d277e0..773dd59c6b 100644 --- a/src/net/http/server.go +++ b/src/net/http/server.go @@ -1374,7 +1374,7 @@ func (c *conn) setState(nc net.Conn, state ConnState) { // badRequestError is a literal string (used by in the server in HTML, // unescaped) to tell the user why their request was bad. It should -// be plain text without user info or other embeddded errors. +// be plain text without user info or other embedded errors. type badRequestError string func (e badRequestError) Error() string { return "Bad Request: " + string(e) } diff --git a/src/net/http/transport.go b/src/net/http/transport.go index 03e9162b14..f622f6f983 100644 --- a/src/net/http/transport.go +++ b/src/net/http/transport.go @@ -982,7 +982,7 @@ func (k connectMethodKey) String() string { // (but may be used for non-keep-alive requests as well) type persistConn struct { // alt optionally specifies the TLS NextProto RoundTripper. - // This is used for HTTP/2 today and future protocol laters. + // This is used for HTTP/2 today and future protocols later. // If it's non-nil, the rest of the fields are unused. alt RoundTripper diff --git a/src/net/http/transport_test.go b/src/net/http/transport_test.go index d9da078fa0..e8a4623556 100644 --- a/src/net/http/transport_test.go +++ b/src/net/http/transport_test.go @@ -853,7 +853,7 @@ func TestTransportExpect100Continue(t *testing.T) { {path: "/100", body: []byte("hello"), sent: 5, status: 200}, // Got 100 followed by 200, entire body is sent. {path: "/200", body: []byte("hello"), sent: 0, status: 200}, // Got 200 without 100. body isn't sent. {path: "/500", body: []byte("hello"), sent: 0, status: 500}, // Got 500 without 100. body isn't sent. - {path: "/keepalive", body: []byte("hello"), sent: 0, status: 500}, // Althogh without Connection:close, body isn't sent. + {path: "/keepalive", body: []byte("hello"), sent: 0, status: 500}, // Although without Connection:close, body isn't sent. {path: "/timeout", body: []byte("hello"), sent: 5, status: 200}, // Timeout exceeded and entire body is sent. } diff --git a/src/net/interface_bsd.go b/src/net/interface_bsd.go index 208f37f9fd..e0814798e7 100644 --- a/src/net/interface_bsd.go +++ b/src/net/interface_bsd.go @@ -161,7 +161,7 @@ func newAddr(ifi *Interface, m *syscall.InterfaceAddrMessage) (*IPNet, error) { case *syscall.SockaddrInet6: ifa.IP = make(IP, IPv6len) copy(ifa.IP, sa.Addr[:]) - // NOTE: KAME based IPv6 protcol stack usually embeds + // NOTE: KAME based IPv6 protocol stack usually embeds // the interface index in the interface-local or // link-local address as the kernel-internal form. if ifa.IP.IsLinkLocalUnicast() { diff --git a/src/net/interface_darwin.go b/src/net/interface_darwin.go index b7a333849d..b3719d6092 100644 --- a/src/net/interface_darwin.go +++ b/src/net/interface_darwin.go @@ -49,7 +49,7 @@ func newMulticastAddr(ifi *Interface, m *syscall.InterfaceMulticastAddrMessage) case *syscall.SockaddrInet6: ifma := IPAddr{IP: make(IP, IPv6len)} copy(ifma.IP, sa.Addr[:]) - // NOTE: KAME based IPv6 protcol stack usually embeds + // NOTE: KAME based IPv6 protocol stack usually embeds // the interface index in the interface-local or // link-local address as the kernel-internal form. if ifma.IP.IsInterfaceLocalMulticast() || ifma.IP.IsLinkLocalMulticast() { diff --git a/src/net/interface_freebsd.go b/src/net/interface_freebsd.go index c42d90b740..44ef2c1a2a 100644 --- a/src/net/interface_freebsd.go +++ b/src/net/interface_freebsd.go @@ -49,7 +49,7 @@ func newMulticastAddr(ifi *Interface, m *syscall.InterfaceMulticastAddrMessage) case *syscall.SockaddrInet6: ifma := IPAddr{IP: make(IP, IPv6len)} copy(ifma.IP, sa.Addr[:]) - // NOTE: KAME based IPv6 protcol stack usually embeds + // NOTE: KAME based IPv6 protocol stack usually embeds // the interface index in the interface-local or // link-local address as the kernel-internal form. if ifma.IP.IsInterfaceLocalMulticast() || ifma.IP.IsLinkLocalMulticast() { diff --git a/src/net/interface_test.go b/src/net/interface_test.go index 7bdd924150..6721f72bb5 100644 --- a/src/net/interface_test.go +++ b/src/net/interface_test.go @@ -102,7 +102,7 @@ func TestInterfaces(t *testing.T) { } // Test the existence of connected unicast routes for // IPv6. We can assume the existence of ::1/128 when - // at least one looopback interface is installed. + // at least one loopback interface is installed. if supportsIPv6 && stats.loop > 0 && stats.uni6 == 0 { t.Errorf("num IPv6 unicast routes = 0; want >0; summary: %+v", stats) } @@ -155,7 +155,7 @@ func TestInterfaceAddrs(t *testing.T) { } // Test the existence of connected unicast routes for IPv6. // We can assume the existence of ::1/128 when at least one - // looopback interface is installed. + // loopback interface is installed. if supportsIPv6 && stats.loop > 0 && stats.uni6 == 0 { t.Errorf("num IPv6 unicast routes = 0; want >0; summary: %+v", stats) } diff --git a/src/net/interface_unix_test.go b/src/net/interface_unix_test.go index 93b3b79afd..dd20de4ac7 100644 --- a/src/net/interface_unix_test.go +++ b/src/net/interface_unix_test.go @@ -56,7 +56,7 @@ func TestPointToPointInterface(t *testing.T) { for i := 0; i < 3; i++ { ti := &testInterface{local: local, remote: remote} if err := ti.setPointToPoint(5963 + i); err != nil { - t.Skipf("test requries external command: %v", err) + t.Skipf("test requires external command: %v", err) } if err := ti.setup(); err != nil { t.Fatal(err) diff --git a/src/net/ip_test.go b/src/net/ip_test.go index 3d95a73c09..2b24baf58e 100644 --- a/src/net/ip_test.go +++ b/src/net/ip_test.go @@ -379,8 +379,8 @@ var splitJoinTests = []struct { {"", "0", ":0"}, {"google.com", "https%foo", "google.com:https%foo"}, // Go 1.0 behavior - {"127.0.0.1", "", "127.0.0.1:"}, // Go 1.0 behaviour - {"www.google.com", "", "www.google.com:"}, // Go 1.0 behaviour + {"127.0.0.1", "", "127.0.0.1:"}, // Go 1.0 behavior + {"www.google.com", "", "www.google.com:"}, // Go 1.0 behavior } var splitFailureTests = []struct { diff --git a/src/net/ipsock_posix.go b/src/net/ipsock_posix.go index 2bddd46a15..d512fc3e57 100644 --- a/src/net/ipsock_posix.go +++ b/src/net/ipsock_posix.go @@ -61,7 +61,7 @@ func probeIPv6Stack() (supportsIPv6, supportsIPv4map bool) { // Some released versions of DragonFly BSD pretend to // accept IPV6_V6ONLY=0 successfully, but the state // still stays IPV6_V6ONLY=1. Eventually DragonFly BSD - // stops preteding, but the transition period would + // stops pretending, but the transition period would // cause unpredictable behavior and we need to avoid // it. // diff --git a/src/net/listen_test.go b/src/net/listen_test.go index 51ffe67238..158a8ed598 100644 --- a/src/net/listen_test.go +++ b/src/net/listen_test.go @@ -157,7 +157,7 @@ var dualStackTCPListenerTests = []struct { network2, address2 string // second listener xerr error // expected error value, nil or other }{ - // Test cases and expected results for the attemping 2nd listen on the same port + // Test cases and expected results for the attempting 2nd listen on the same port // 1st listen 2nd listen darwin freebsd linux openbsd // ------------------------------------------------------------------------------------ // "tcp" "" "tcp" "" - - - - @@ -301,7 +301,7 @@ var dualStackUDPListenerTests = []struct { } // TestDualStackUDPListener tests both single and double listen -// to a test listener with various address families, differnet +// to a test listener with various address families, different // listening address and same port. func TestDualStackUDPListener(t *testing.T) { switch runtime.GOOS { diff --git a/src/net/net_windows_test.go b/src/net/net_windows_test.go index df39032721..ab21798969 100644 --- a/src/net/net_windows_test.go +++ b/src/net/net_windows_test.go @@ -315,7 +315,7 @@ func TestInterfacesWithNetsh(t *testing.T) { } func netshInterfaceIPv4ShowAddress(name string, netshOutput []byte) []string { - // adress information is listed like: + // Address information is listed like: // //Configuration for interface "Local Area Connection" // DHCP enabled: Yes @@ -378,7 +378,7 @@ func netshInterfaceIPv4ShowAddress(name string, netshOutput []byte) []string { } func netshInterfaceIPv6ShowAddress(name string, netshOutput []byte) []string { - // adress information is listed like: + // Address information is listed like: // //Address ::1 Parameters //--------------------------------------------------------- diff --git a/src/net/sendfile_windows.go b/src/net/sendfile_windows.go index f3f3b54b88..eafb372f7c 100644 --- a/src/net/sendfile_windows.go +++ b/src/net/sendfile_windows.go @@ -18,7 +18,7 @@ import ( // // if handled == false, sendFile performed no work. // -// Note that sendfile for windows does not suppport >2GB file. +// Note that sendfile for windows does not support >2GB file. func sendFile(fd *netFD, r io.Reader) (written int64, err error, handled bool) { var n int64 = 0 // by default, copy until EOF diff --git a/src/net/udpsock_test.go b/src/net/udpsock_test.go index b25f96a3fd..12d1256f0a 100644 --- a/src/net/udpsock_test.go +++ b/src/net/udpsock_test.go @@ -356,7 +356,7 @@ func TestUDPZeroByteBuffer(t *testing.T) { switch err { case nil: // ReadFrom succeeds default: // Read may timeout, it depends on the platform - if nerr, ok := err.(Error); (!ok || !nerr.Timeout()) && runtime.GOOS != "windows" { // Windows retruns WSAEMSGSIZ + if nerr, ok := err.(Error); (!ok || !nerr.Timeout()) && runtime.GOOS != "windows" { // Windows returns WSAEMSGSIZ t.Fatal(err) } } diff --git a/src/os/exec/exec_test.go b/src/os/exec/exec_test.go index 52b4724ab0..a69b5176d5 100644 --- a/src/os/exec/exec_test.go +++ b/src/os/exec/exec_test.go @@ -341,7 +341,7 @@ func TestExtraFilesFDShuffle(t *testing.T) { // // We want to test that FDs in the child do not get overwritten // by one another as this shuffle occurs. The original implementation - // was buggy in that in some data dependent cases it would ovewrite + // was buggy in that in some data dependent cases it would overwrite // stderr in the child with one of the ExtraFile members. // Testing for this case is difficult because it relies on using // the same FD values as that case. In particular, an FD of 3 diff --git a/src/os/exec/lp_windows_test.go b/src/os/exec/lp_windows_test.go index 8e1d4239bf..042e5a1389 100644 --- a/src/os/exec/lp_windows_test.go +++ b/src/os/exec/lp_windows_test.go @@ -117,7 +117,7 @@ func createEnv(dir, PATH, PATHEXT string) []string { } // createFiles copies srcPath file into multiply files. -// It uses dir as preifx for all destination files. +// It uses dir as prefix for all destination files. func createFiles(t *testing.T, dir string, files []string, srcPath string) { for _, f := range files { installProg(t, filepath.Join(dir, f), srcPath) @@ -431,7 +431,7 @@ var commandTests = []commandTest{ }, { // LookPath(`a.exe`) will find `.\a.exe`, but prefixing that with - // dir `p\a.exe` will refer to not existant file + // dir `p\a.exe` will refer to a non-existent file files: []string{`a.exe`, `p\not_important_file`}, dir: `p`, arg0: `a.exe`, @@ -440,7 +440,7 @@ var commandTests = []commandTest{ }, { // like above, but making test succeed by installing file - // in refered destination (so LookPath(`a.exe`) will still + // in referred destination (so LookPath(`a.exe`) will still // find `.\a.exe`, but we successfully execute `p\a.exe`) files: []string{`a.exe`, `p\a.exe`}, dir: `p`, diff --git a/src/os/os_test.go b/src/os/os_test.go index 945724b2b2..68f8f2b90a 100644 --- a/src/os/os_test.go +++ b/src/os/os_test.go @@ -538,7 +538,7 @@ func TestReaddirStatFailures(t *testing.T) { return s } - if got, want := names(mustReadDir("inital readdir")), + if got, want := names(mustReadDir("initial readdir")), []string{"good1", "good2", "x"}; !reflect.DeepEqual(got, want) { t.Errorf("initial readdir got %q; want %q", got, want) } diff --git a/src/os/str.go b/src/os/str.go index d3e03e9849..cba9fa3e8d 100644 --- a/src/os/str.go +++ b/src/os/str.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Simple converions to avoid depending on strconv. +// Simple conversions to avoid depending on strconv. package os diff --git a/src/os/user/lookup_windows.go b/src/os/user/lookup_windows.go index 99c325ff01..9fb3c5546f 100644 --- a/src/os/user/lookup_windows.go +++ b/src/os/user/lookup_windows.go @@ -61,7 +61,7 @@ func lookupFullName(domain, username, domainAndUser string) (string, error) { if err == nil { return name, nil } - // domain worked neigher as a domain nor as a server + // domain worked neither as a domain nor as a server // could be domain server unavailable // pretend username is fullname return username, nil diff --git a/src/path/filepath/path_windows.go b/src/path/filepath/path_windows.go index ef6e7ca93f..41c57df738 100644 --- a/src/path/filepath/path_windows.go +++ b/src/path/filepath/path_windows.go @@ -121,7 +121,7 @@ func join(elem []string) string { // joinNonEmpty is like join, but it assumes that the first element is non-empty. func joinNonEmpty(elem []string) string { if len(elem[0]) == 2 && elem[0][1] == ':' { - // First element is drive leter without terminating slash. + // First element is drive letter without terminating slash. // Keep path relative to current directory on that drive. return Clean(elem[0] + strings.Join(elem[1:], string(Separator))) } diff --git a/src/reflect/all_test.go b/src/reflect/all_test.go index c80df34077..58090cde70 100644 --- a/src/reflect/all_test.go +++ b/src/reflect/all_test.go @@ -4465,7 +4465,7 @@ func TestFieldByIndexNil(t *testing.T) { // off the stack into the frame will store an *Inner there, and then if a garbage collection // happens to scan that argument frame before it is discarded, it will scan the *Inner // memory as if it were an *Outer. If the two have different memory layouts, the -// collection will intepret the memory incorrectly. +// collection will interpret the memory incorrectly. // // One such possible incorrect interpretation is to treat two arbitrary memory words // (Inner.P1 and Inner.P2 below) as an interface (Outer.R below). Because interpreting diff --git a/src/regexp/exec_test.go b/src/regexp/exec_test.go index 4872cb3def..0f95b95972 100644 --- a/src/regexp/exec_test.go +++ b/src/regexp/exec_test.go @@ -409,7 +409,7 @@ Reading: // h REG_MULTIREF multiple digit backref // i REG_ICASE ignore case // j REG_SPAN . matches \n - // k REG_ESCAPE \ to ecape [...] delimiter + // k REG_ESCAPE \ to escape [...] delimiter // l REG_LEFT implicit ^... // m REG_MINIMAL minimal match // n REG_NEWLINE explicit \n match diff --git a/src/runtime/asm_arm.s b/src/runtime/asm_arm.s index 5d0206d1c9..2fdfbea0e1 100644 --- a/src/runtime/asm_arm.s +++ b/src/runtime/asm_arm.s @@ -706,7 +706,7 @@ TEXT runtime·abort(SB),NOSPLIT,$-4-0 // armPublicationBarrier is a native store/store barrier for ARMv7+. // On earlier ARM revisions, armPublicationBarrier is a no-op. // This will not work on SMP ARMv6 machines, if any are in use. -// To implement publiationBarrier in sys_$GOOS_arm.s using the native +// To implement publicationBarrier in sys_$GOOS_arm.s using the native // instructions, use: // // TEXT ·publicationBarrier(SB),NOSPLIT,$-4-0 diff --git a/src/runtime/cgo/callbacks.go b/src/runtime/cgo/callbacks.go index 08f230d47e..14ac9da0ac 100644 --- a/src/runtime/cgo/callbacks.go +++ b/src/runtime/cgo/callbacks.go @@ -78,7 +78,7 @@ var _cgo_thread_start = &x_cgo_thread_start var x_cgo_sys_thread_create byte var _cgo_sys_thread_create = &x_cgo_sys_thread_create -// Notifies that the runtime has been intialized. +// Notifies that the runtime has been initialized. // // We currently block at every CGO entry point (via _cgo_wait_runtime_init_done) // to ensure that the runtime has been initialized before the CGO call is diff --git a/src/runtime/chan_test.go b/src/runtime/chan_test.go index 497e87f43d..2cdfae866c 100644 --- a/src/runtime/chan_test.go +++ b/src/runtime/chan_test.go @@ -573,7 +573,7 @@ func TestSelectDuplicateChannel(t *testing.T) { } e <- 9 }() - time.Sleep(time.Millisecond) // make sure goroutine A gets qeueued first on c + time.Sleep(time.Millisecond) // make sure goroutine A gets queued first on c // goroutine B go func() { diff --git a/src/runtime/memclr_amd64.s b/src/runtime/memclr_amd64.s index c257d59b30..6f30eca242 100644 --- a/src/runtime/memclr_amd64.s +++ b/src/runtime/memclr_amd64.s @@ -103,7 +103,7 @@ loop_avx2_huge: ADDQ $128, DI CMPQ BX, $128 JAE loop_avx2_huge - // In the desciption of MOVNTDQ in [1] + // In the description of MOVNTDQ in [1] // "... fencing operation implemented with the SFENCE or MFENCE instruction // should be used in conjunction with MOVNTDQ instructions..." // [1] 64-ia-32-architectures-software-developer-manual-325462.pdf diff --git a/src/runtime/memmove_ppc64x.s b/src/runtime/memmove_ppc64x.s index b6d0b85459..ea73b455b4 100644 --- a/src/runtime/memmove_ppc64x.s +++ b/src/runtime/memmove_ppc64x.s @@ -24,7 +24,7 @@ check: BC 12, 9, backward // I think you should be able to write this as "BGT CR2, backward" // Copying forward proceeds by copying R6 words then copying R7 bytes. - // R3 and R4 are advanced as we copy. Becuase PPC64 lacks post-increment + // R3 and R4 are advanced as we copy. Because PPC64 lacks post-increment // load/store, R3 and R4 point before the bytes that are to be copied. BC 12, 6, noforwardlarge // "BEQ CR1, noforwardlarge" diff --git a/src/runtime/mgcwork.go b/src/runtime/mgcwork.go index 0a0285d816..340604fb36 100644 --- a/src/runtime/mgcwork.go +++ b/src/runtime/mgcwork.go @@ -259,7 +259,7 @@ func (w *gcWork) empty() bool { type workbufhdr struct { node lfnode // must be first nobj int - inuse bool // This workbuf is in use by some gorotuine and is not on the work.empty/full queues. + inuse bool // This workbuf is in use by some goroutine and is not on the work.empty/full queues. log [4]int // line numbers forming a history of ownership changes to workbuf } diff --git a/src/runtime/netpoll_solaris.go b/src/runtime/netpoll_solaris.go index 86e9b997ef..53b2aacdb5 100644 --- a/src/runtime/netpoll_solaris.go +++ b/src/runtime/netpoll_solaris.go @@ -58,7 +58,7 @@ import "unsafe" // // The open and arming mechanisms are serialized using the lock // inside PollDesc. This is required because the netpoll loop runs -// asynchonously in respect to other Go code and by the time we get +// asynchronously in respect to other Go code and by the time we get // to call port_associate to update the association in the loop, the // file descriptor might have been closed and reopened already. The // lock allows runtime·netpollupdate to be called synchronously from @@ -125,7 +125,7 @@ func netpollopen(fd uintptr, pd *pollDesc) int32 { lock(&pd.lock) // We don't register for any specific type of events yet, that's // netpollarm's job. We merely ensure we call port_associate before - // asynchonous connect/accept completes, so when we actually want + // asynchronous connect/accept completes, so when we actually want // to do any I/O, the call to port_associate (from netpollarm, // with the interested event set) will unblock port_getn right away // because of the I/O readiness notification. diff --git a/src/runtime/proc.go b/src/runtime/proc.go index 389917916f..2dc53b5b72 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -3910,7 +3910,7 @@ retry: if runqputslow(_p_, gp, h, t) { return } - // the queue is not full, now the put above must suceed + // the queue is not full, now the put above must succeed goto retry } diff --git a/src/runtime/runtime_test.go b/src/runtime/runtime_test.go index a6150a77ee..b3350ef82f 100644 --- a/src/runtime/runtime_test.go +++ b/src/runtime/runtime_test.go @@ -104,7 +104,7 @@ func TestStopCPUProfilingWithProfilerOff(t *testing.T) { // of the larger addresses must themselves be invalid addresses. // We might get unlucky and the OS might have mapped one of these // addresses, but probably not: they're all in the first page, very high -// adderesses that normally an OS would reserve for itself, or malformed +// addresses that normally an OS would reserve for itself, or malformed // addresses. Even so, we might have to remove one or two on different // systems. We will see. diff --git a/src/runtime/softfloat_arm.go b/src/runtime/softfloat_arm.go index 202e7bbf86..99048d612e 100644 --- a/src/runtime/softfloat_arm.go +++ b/src/runtime/softfloat_arm.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Software floating point interpretaton of ARM 7500 FP instructions. +// Software floating point interpretation of ARM 7500 FP instructions. // The interpretation is not bit compatible with the 7500. // It uses true little-endian doubles, while the 7500 used mixed-endian. diff --git a/src/runtime/sys_solaris_amd64.s b/src/runtime/sys_solaris_amd64.s index 3a82674684..09f22636a9 100644 --- a/src/runtime/sys_solaris_amd64.s +++ b/src/runtime/sys_solaris_amd64.s @@ -52,7 +52,7 @@ TEXT runtime·nanotime1(SB),NOSPLIT,$0 // pipe(3c) wrapper that returns fds in AX, DX. // NOT USING GO CALLING CONVENTION. TEXT runtime·pipe1(SB),NOSPLIT,$0 - SUBQ $16, SP // 8 bytes will do, but stack has to be 16-byte alligned + SUBQ $16, SP // 8 bytes will do, but stack has to be 16-byte aligned MOVQ SP, DI LEAQ libc_pipe(SB), AX CALL AX diff --git a/src/sort/sort_test.go b/src/sort/sort_test.go index a5da6b2630..60fac2d695 100644 --- a/src/sort/sort_test.go +++ b/src/sort/sort_test.go @@ -506,10 +506,10 @@ func TestStability(t *testing.T) { data.initB() Stable(data) if !IsSorted(data) { - t.Errorf("Stable shuffeled sorted %d ints (order)", n) + t.Errorf("Stable shuffled sorted %d ints (order)", n) } if !data.inOrder() { - t.Errorf("Stable shuffeled sorted %d ints (stability)", n) + t.Errorf("Stable shuffled sorted %d ints (stability)", n) } // sorted reversed diff --git a/src/syscall/route_bsd.go b/src/syscall/route_bsd.go index c635a1385e..d9b6697a75 100644 --- a/src/syscall/route_bsd.go +++ b/src/syscall/route_bsd.go @@ -138,7 +138,7 @@ func parseNetworkLayerAddr(b []byte, family byte) (Sockaddr, error) { // // - The kernel form appends leading bytes to the prefix field // to make the tuple to be conformed with - // the routing messeage boundary + // the routing message boundary l := int(rsaAlignOf(int(b[0]))) if len(b) < l { return nil, EINVAL diff --git a/src/text/template/multi_test.go b/src/text/template/multi_test.go index a8342f50aa..c8723cb7a8 100644 --- a/src/text/template/multi_test.go +++ b/src/text/template/multi_test.go @@ -4,7 +4,7 @@ package template -// Tests for mulitple-template parsing and execution. +// Tests for multiple-template parsing and execution. import ( "bytes" From 45c2e38b37e40c3b6bdc508065edce0643f79110 Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Wed, 24 Feb 2016 09:12:51 -0800 Subject: [PATCH 022/101] cmd/compile: Drop references to Prog structs after each function Don't accumulate a massive list of Prog structs during compilation and write them all out at the end of compilation. Instead, convert them to code+relocs (or data+relocs) after each function is compiled. Track down a few other places that were keeping Progs alive and nil them out so the Progs get GCd promptly. Saves ~20% in peak memory usage for the compiler. Surprisingly not much help speed-wise (only because we end up doing more GCs. With a compensating GOGC=120, it does help a bit), but this provides a base for more changes (e.g. reusing a cache of Progs). Change-Id: I838e01017c228995a687a8110d0cd67bf8596407 Reviewed-on: https://go-review.googlesource.com/19867 Run-TryBot: Keith Randall TryBot-Result: Gobot Gobot Reviewed-by: Josh Bleecher Snyder Reviewed-by: Ian Lance Taylor --- src/cmd/compile/internal/gc/dcl.go | 5 +++++ src/cmd/compile/internal/gc/gsubr.go | 12 ++++++++++++ src/cmd/internal/obj/objfile.go | 16 +++++++++++----- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/cmd/compile/internal/gc/dcl.go b/src/cmd/compile/internal/gc/dcl.go index fc47a39ee6..7e44a4756d 100644 --- a/src/cmd/compile/internal/gc/dcl.go +++ b/src/cmd/compile/internal/gc/dcl.go @@ -1449,8 +1449,13 @@ func funccompile(n *Node) { Funcdepth = n.Func.Depth + 1 compile(n) Curfn = nil + Pc = nil + continpc = nil + breakpc = nil Funcdepth = 0 dclcontext = PEXTERN + flushdata() + obj.Flushplist(Ctxt) // convert from Prog list to machine code } func funcsym(s *Sym) *Sym { diff --git a/src/cmd/compile/internal/gc/gsubr.go b/src/cmd/compile/internal/gc/gsubr.go index 30bf736e3e..04e986562d 100644 --- a/src/cmd/compile/internal/gc/gsubr.go +++ b/src/cmd/compile/internal/gc/gsubr.go @@ -173,6 +173,18 @@ func dumpdata() { Clearp(Pc) } +func flushdata() { + if dfirst == nil { + return + } + newplist() + *Pc = *dfirst + Pc = dpc + Clearp(Pc) + dfirst = nil + dpc = nil +} + // Fixup instructions after allocauto (formerly compactframe) has moved all autos around. func fixautoused(p *obj.Prog) { for lp := &p; ; { diff --git a/src/cmd/internal/obj/objfile.go b/src/cmd/internal/obj/objfile.go index 40c92dd152..3dc5152f54 100644 --- a/src/cmd/internal/obj/objfile.go +++ b/src/cmd/internal/obj/objfile.go @@ -302,16 +302,22 @@ func Flushplist(ctxt *Link) { ctxt.Arch.Assemble(ctxt, s) fieldtrack(ctxt, s) linkpcln(ctxt, s) + s.Text = nil + s.Etext = nil } // Add to running list in ctxt. - if ctxt.Etext == nil { - ctxt.Text = text - } else { - ctxt.Etext.Next = text + if text != nil { + if ctxt.Text == nil { + ctxt.Text = text + } else { + ctxt.Etext.Next = text + } + ctxt.Etext = etext } - ctxt.Etext = etext ctxt.Plist = nil + ctxt.Plast = nil + ctxt.Curp = nil } func Writeobjfile(ctxt *Link, b *Biobuf) { From f388b58540c2cc401dfa79e3d7b6a1846ac9a59f Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Wed, 24 Feb 2016 09:53:27 -0800 Subject: [PATCH 023/101] cmd/compile: reuseable cache of Prog structs Reuseable cache of Prog entries. Improves compiler speed by ~10%. Update #13646 Change-Id: I01bd8606540d989ea8b8ba5131d1275ba380d976 Reviewed-on: https://go-review.googlesource.com/19868 Reviewed-by: Brad Fitzpatrick Reviewed-by: Ian Lance Taylor --- src/cmd/internal/obj/link.go | 4 ++++ src/cmd/internal/obj/objfile.go | 1 + src/cmd/internal/obj/util.go | 15 ++++++++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/cmd/internal/obj/link.go b/src/cmd/internal/obj/link.go index 0fe3275a8e..c63c8e3c56 100644 --- a/src/cmd/internal/obj/link.go +++ b/src/cmd/internal/obj/link.go @@ -618,6 +618,10 @@ type Link struct { Data *LSym Etext *LSym Edata *LSym + + // Cache of Progs + allocIdx int + progs [10000]Prog } func (ctxt *Link) Diag(format string, args ...interface{}) { diff --git a/src/cmd/internal/obj/objfile.go b/src/cmd/internal/obj/objfile.go index 3dc5152f54..2d5c82376b 100644 --- a/src/cmd/internal/obj/objfile.go +++ b/src/cmd/internal/obj/objfile.go @@ -318,6 +318,7 @@ func Flushplist(ctxt *Link) { ctxt.Plist = nil ctxt.Plast = nil ctxt.Curp = nil + ctxt.freeProgs() } func Writeobjfile(ctxt *Link, b *Biobuf) { diff --git a/src/cmd/internal/obj/util.go b/src/cmd/internal/obj/util.go index 5103299526..12b048d8e1 100644 --- a/src/cmd/internal/obj/util.go +++ b/src/cmd/internal/obj/util.go @@ -325,10 +325,23 @@ func (p *Prog) String() string { } func (ctxt *Link) NewProg() *Prog { - p := new(Prog) // should be the only call to this; all others should use ctxt.NewProg + var p *Prog + if i := ctxt.allocIdx; i < len(ctxt.progs) { + p = &ctxt.progs[i] + ctxt.allocIdx = i + 1 + } else { + p = new(Prog) // should be the only call to this; all others should use ctxt.NewProg + } p.Ctxt = ctxt return p } +func (ctxt *Link) freeProgs() { + s := ctxt.progs[:ctxt.allocIdx] + for i := range s { + s[i] = Prog{} + } + ctxt.allocIdx = 0 +} func (ctxt *Link) Line(n int) string { return ctxt.LineHist.LineString(n) From 47b04228858e9a4a767acd12a029e59d582f3ba1 Mon Sep 17 00:00:00 2001 From: Burcu Dogan Date: Wed, 24 Feb 2016 11:58:57 -0800 Subject: [PATCH 024/101] os: fix tests on brillo Not every Android contains the /system/framework directory, e.g. Brillo. Test against other Android-only system files. Fixes #14489. Change-Id: I6d9ec1c4d4ceba3803798015e6917d59cf515de8 Reviewed-on: https://go-review.googlesource.com/19904 Reviewed-by: Brad Fitzpatrick Reviewed-by: Burcu Dogan Run-TryBot: Burcu Dogan TryBot-Result: Gobot Gobot --- src/os/os_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/os/os_test.go b/src/os/os_test.go index 68f8f2b90a..b2f45b48f8 100644 --- a/src/os/os_test.go +++ b/src/os/os_test.go @@ -47,10 +47,10 @@ var sysdir = func() *sysDir { switch runtime.GOOS { case "android": return &sysDir{ - "/system/framework", + "/system/lib", []string{ - "ext.jar", - "framework.jar", + "libmedia.so", + "libpowermanager.so", }, } case "darwin": From a9581e2e7abfa0dd7033ee75ef6a64ce0a89bee2 Mon Sep 17 00:00:00 2001 From: Alberto Donizetti Date: Tue, 23 Feb 2016 22:54:38 +0100 Subject: [PATCH 025/101] unicode/utf16: speed up and clean up Encode and EncodeRune MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit name old time/op new time/op delta EncodeValidASCII-4 74.1ns ± 1% 70.1ns ± 1% -5.46% (p=0.000 n=10+10) EncodeValidJapaneseChars-4 61.3ns ± 0% 58.9ns ± 0% -3.82% (p=0.000 n=10+10) EncodeRune-4 13.1ns ± 1% 9.8ns ± 0% -25.24% (p=0.000 n=10+9) Fixes #6957 Change-Id: I9dde6d77420c34c6e2ef3e6213bb6be9b58a3074 Reviewed-on: https://go-review.googlesource.com/19891 Reviewed-by: Rob Pike Run-TryBot: Rob Pike TryBot-Result: Gobot Gobot --- src/unicode/utf16/utf16.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/unicode/utf16/utf16.go b/src/unicode/utf16/utf16.go index 276fce9e56..0a5a02ebe2 100644 --- a/src/unicode/utf16/utf16.go +++ b/src/unicode/utf16/utf16.go @@ -45,7 +45,7 @@ func DecodeRune(r1, r2 rune) rune { // If the rune is not a valid Unicode code point or does not need encoding, // EncodeRune returns U+FFFD, U+FFFD. func EncodeRune(r rune) (r1, r2 rune) { - if r < surrSelf || r > maxRune || IsSurrogate(r) { + if r < surrSelf || r > maxRune { return replacementChar, replacementChar } r -= surrSelf @@ -65,20 +65,22 @@ func Encode(s []rune) []uint16 { n = 0 for _, v := range s { switch { - case v < 0, surr1 <= v && v < surr3, v > maxRune: - v = replacementChar - fallthrough - case v < surrSelf: + case 0 <= v && v < surr1, surr3 <= v && v < surrSelf: + // normal rune a[n] = uint16(v) n++ - default: + case surrSelf <= v && v <= maxRune: + // needs surrogate sequence r1, r2 := EncodeRune(v) a[n] = uint16(r1) a[n+1] = uint16(r2) n += 2 + default: + a[n] = uint16(replacementChar) + n++ } } - return a[0:n] + return a[:n] } // Decode returns the Unicode code point sequence represented From 9c269e6a46fce4ee19e1603eaa9f5bb78dec78fd Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Wed, 24 Feb 2016 14:07:25 -0800 Subject: [PATCH 026/101] cmd/compile: don't free the Prog list if we look at it after flush Only tests do this, provide them a hook to disable freeing after flush. Change-Id: I810c6c51414a93f476a18ba07b807e16092bf8cf Reviewed-on: https://go-review.googlesource.com/19907 Reviewed-by: Keith Randall --- src/cmd/asm/internal/asm/endtoend_test.go | 2 +- src/cmd/internal/obj/objfile.go | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/cmd/asm/internal/asm/endtoend_test.go b/src/cmd/asm/internal/asm/endtoend_test.go index 4bc7e2fb74..4a3e0ee265 100644 --- a/src/cmd/asm/internal/asm/endtoend_test.go +++ b/src/cmd/asm/internal/asm/endtoend_test.go @@ -179,7 +179,7 @@ Diff: t.Errorf(format, args...) ok = false } - obj.Flushplist(ctxt) + obj.FlushplistNoFree(ctxt) for p := top; p != nil; p = p.Link { if p.As == obj.ATEXT { diff --git a/src/cmd/internal/obj/objfile.go b/src/cmd/internal/obj/objfile.go index 2d5c82376b..6757067dd6 100644 --- a/src/cmd/internal/obj/objfile.go +++ b/src/cmd/internal/obj/objfile.go @@ -116,6 +116,12 @@ func Writeobjdirect(ctxt *Link, b *Biobuf) { } func Flushplist(ctxt *Link) { + flushplist(ctxt, true) +} +func FlushplistNoFree(ctxt *Link) { + flushplist(ctxt, false) +} +func flushplist(ctxt *Link, freeProgs bool) { var flag int var s *LSym var p *Prog @@ -318,7 +324,9 @@ func Flushplist(ctxt *Link) { ctxt.Plist = nil ctxt.Plast = nil ctxt.Curp = nil - ctxt.freeProgs() + if freeProgs { + ctxt.freeProgs() + } } func Writeobjfile(ctxt *Link, b *Biobuf) { From 0625fc8e8229f64a98c45c652fe35119048925cc Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Mon, 8 Jun 2015 10:17:38 -0700 Subject: [PATCH 027/101] cmd/compile: clean up getlinepragma Passes toolstash -cmp. Change-Id: Ia497b51c74a9c760a873e1ed690e4408fd0fe596 Reviewed-on: https://go-review.googlesource.com/19844 Reviewed-by: Matthew Dempsky Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/lex.go | 89 ++++++++++-------------------- 1 file changed, 28 insertions(+), 61 deletions(-) diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index cbd435b49e..09b233548b 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -1569,10 +1569,8 @@ func more(pp *string) bool { // as a discontinuity in sequential line numbers. // the next line of input comes from parse.y:15 func (l *lexer) getlinepragma() rune { - var cmd, verb, name string - c := l.getr() - if c == 'g' { + if c == 'g' { // check for //go: directive cp := &lexbuf cp.Reset() cp.WriteByte('g') // already read @@ -1594,77 +1592,55 @@ func (l *lexer) getlinepragma() rune { pragcgo(text) } - cmd = text - verb = cmd - if i := strings.Index(verb, " "); i >= 0 { + verb := text + if i := strings.Index(text, " "); i >= 0 { verb = verb[:i] } - if verb == "go:linkname" { + switch verb { + case "go:linkname": if !imported_unsafe { Yyerror("//go:linkname only allowed in Go files that import \"unsafe\"") } - f := strings.Fields(cmd) + f := strings.Fields(text) if len(f) != 3 { Yyerror("usage: //go:linkname localname linkname") - return c + break } - Lookup(f[1]).Linkname = f[2] - return c - } - - if verb == "go:nointerface" && obj.Fieldtrack_enabled != 0 { - nointerface = true - return c - } - - if verb == "go:noescape" { + case "go:nointerface": + if obj.Fieldtrack_enabled != 0 { + nointerface = true + } + case "go:noescape": noescape = true - return c - } - - if verb == "go:norace" { + case "go:norace": norace = true - return c - } - - if verb == "go:nosplit" { + case "go:nosplit": nosplit = true - return c - } - - if verb == "go:noinline" { + case "go:noinline": noinline = true - return c - } - - if verb == "go:systemstack" { + case "go:systemstack": if compiling_runtime == 0 { Yyerror("//go:systemstack only allowed in runtime") } systemstack = true - return c - } - - if verb == "go:nowritebarrier" { + case "go:nowritebarrier": if compiling_runtime == 0 { Yyerror("//go:nowritebarrier only allowed in runtime") } nowritebarrier = true - return c - } - - if verb == "go:nowritebarrierrec" { + case "go:nowritebarrierrec": if compiling_runtime == 0 { Yyerror("//go:nowritebarrierrec only allowed in runtime") } nowritebarrierrec = true nowritebarrier = true // Implies nowritebarrier - return c } return c } + + // check for //line directive if c != 'l' { return c } @@ -1694,34 +1670,25 @@ func (l *lexer) getlinepragma() rune { } cp.WriteByte(byte(c)) } - cp = nil if linep == 0 { return c } text := strings.TrimSuffix(lexbuf.String(), "\r") - n := 0 - for _, c := range text[linep:] { - if c < '0' || c > '9' { - goto out - } - n = n*10 + int(c) - '0' - if n > 1e8 { - Yyerror("line number out of range") - errorexit() - } + n, err := strconv.Atoi(text[linep:]) + if err != nil { + return c // todo: make this an error instead? it is almost certainly a bug. + } + if n > 1e8 { + Yyerror("line number out of range") + errorexit() } - if n <= 0 { return c } - name = text[:linep-1] - linehistupdate(name, n) - return c - -out: + linehistupdate(text[:linep-1], n) return c } From 588876342876ca18e350638a73d0f1a12abf7856 Mon Sep 17 00:00:00 2001 From: Damien Neil Date: Wed, 24 Feb 2016 15:18:41 -0800 Subject: [PATCH 028/101] cmd/go: skip consistent cgo build test on Solaris. See #13247. Change-Id: I06636157028d98430eb29277c822270592907856 Reviewed-on: https://go-review.googlesource.com/19910 Reviewed-by: Brad Fitzpatrick --- src/cmd/go/go_test.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go index b43a786727..1d6184c337 100644 --- a/src/cmd/go/go_test.go +++ b/src/cmd/go/go_test.go @@ -2763,6 +2763,10 @@ func TestCgoConsistentResults(t *testing.T) { if !canCgo { t.Skip("skipping because cgo not enabled") } + if runtime.GOOS == "solaris" { + // See https://golang.org/issue/13247 + t.Skip("skipping because Solaris builds are known to be inconsistent; see #13247") + } tg := testgo(t) defer tg.cleanup() From d17727bdb4b925427dd03d6b235b586418e47f89 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Wed, 24 Feb 2016 11:49:31 -0800 Subject: [PATCH 029/101] cmd/compile: cleanup escape sequence lexing Change-Id: I7fe4d0cdcc284d5319c130ee3c351f23489af273 Reviewed-on: https://go-review.googlesource.com/19902 Reviewed-by: Robert Griesemer Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/lex.go | 141 +++++++++++++---------------- 1 file changed, 64 insertions(+), 77 deletions(-) diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index 09b233548b..562b2b9001 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -1469,13 +1469,15 @@ func (l *lexer) stdString() { cp := &strbuf cp.Reset() - var escflag int - var v int64 - for !l.escchar('"', &escflag, &v) { - if v < utf8.RuneSelf || escflag != 0 { - cp.WriteByte(byte(v)) + for { + r, b, ok := l.onechar('"') + if !ok { + break + } + if r == 0 { + cp.WriteByte(b) } else { - cp.WriteRune(rune(v)) + cp.WriteRune(r) } } @@ -1520,21 +1522,23 @@ func (l *lexer) rawString() { } func (l *lexer) rune() { - var escflag int - var v int64 - if l.escchar('\'', &escflag, &v) { + r, b, ok := l.onechar('\'') + if !ok { Yyerror("empty character literal or unescaped ' in character literal") - v = '\'' + r = '\'' + } + if r == 0 { + r = rune(b) } - if !l.escchar('\'', &escflag, &v) { + if c := l.getr(); c != '\'' { Yyerror("missing '") - l.ungetr(rune(v)) + l.ungetr(c) } x := new(Mpint) l.val.U = x - Mpmovecfix(x, v) + Mpmovecfix(x, int64(r)) x.Rune = true if Debug['x'] != 0 { fmt.Printf("lex: codepoint literal\n") @@ -1889,63 +1893,48 @@ func (l *lexer) ungetr(r rune) { } } -func (l *lexer) escchar(e rune, escflg *int, val *int64) bool { - *escflg = 0 - +// onechar lexes a single character within a rune or interpreted string literal, +// handling escape sequences as necessary. +func (l *lexer) onechar(quote rune) (r rune, b byte, ok bool) { c := l.getr() switch c { case EOF: Yyerror("eof in string") - return true + l.ungetr(EOF) + return case '\n': Yyerror("newline in string") - return true + l.ungetr('\n') + return case '\\': break + case quote: + return + default: - if c == e { - return true - } - *val = int64(c) - return false + return c, 0, true } - u := 0 c = l.getr() - var i int switch c { case 'x': - *escflg = 1 // it's a byte - i = 2 - goto hex + return 0, byte(l.hexchar(2)), true case 'u': - i = 4 - u = 1 - goto hex + return l.unichar(4), 0, true case 'U': - i = 8 - u = 1 - goto hex + return l.unichar(8), 0, true - case '0', - '1', - '2', - '3', - '4', - '5', - '6', - '7': - *escflg = 1 // it's a byte - x := int64(c) - '0' + case '0', '1', '2', '3', '4', '5', '6', '7': + x := c - '0' for i := 2; i > 0; i-- { c = l.getr() if c >= '0' && c <= '7' { - x = x*8 + int64(c) - '0' + x = x*8 + c - '0' continue } @@ -1957,8 +1946,7 @@ func (l *lexer) escchar(e rune, escflg *int, val *int64) bool { Yyerror("octal escape value > 255: %d", x) } - *val = x - return false + return 0, byte(x), true case 'a': c = '\a' @@ -1978,45 +1966,44 @@ func (l *lexer) escchar(e rune, escflg *int, val *int64) bool { c = '\\' default: - if c != e { + if c != quote { Yyerror("unknown escape sequence: %c", c) } } - *val = int64(c) - return false + return c, 0, true +} -hex: - x := int64(0) - for ; i > 0; i-- { - c = l.getr() - if c >= '0' && c <= '9' { - x = x*16 + int64(c) - '0' - continue - } - - if c >= 'a' && c <= 'f' { - x = x*16 + int64(c) - 'a' + 10 - continue - } - - if c >= 'A' && c <= 'F' { - x = x*16 + int64(c) - 'A' + 10 - continue - } - - Yyerror("non-hex character in escape sequence: %c", c) - l.ungetr(c) - break - } - - if u != 0 && (x > utf8.MaxRune || (0xd800 <= x && x < 0xe000)) { +func (l *lexer) unichar(n int) rune { + x := l.hexchar(n) + if x > utf8.MaxRune || 0xd800 <= x && x < 0xe000 { Yyerror("invalid Unicode code point in escape sequence: %#x", x) x = utf8.RuneError } + return rune(x) +} - *val = x - return false +func (l *lexer) hexchar(n int) uint32 { + var x uint32 + + for ; n > 0; n-- { + var d uint32 + switch c := l.getr(); { + case isDigit(c): + d = uint32(c - '0') + case 'a' <= c && c <= 'f': + d = uint32(c - 'a' + 10) + case 'A' <= c && c <= 'F': + d = uint32(c - 'A' + 10) + default: + Yyerror("non-hex character in escape sequence: %c", c) + l.ungetr(c) + return x + } + x = x*16 + d + } + + return x } var syms = []struct { From 45c4ebec5bdd387842868d38dbe495e2992302e1 Mon Sep 17 00:00:00 2001 From: Tal Shprecher Date: Fri, 19 Feb 2016 16:02:54 -0800 Subject: [PATCH 030/101] cmd/asm: fix EOF message on operand parsing errors. If the parsing of an operand completes but the parser thinks there is more to read, return an "expected end of operand" error message instead of "expected EOF." This also removes extra "asm: " prefixes in error strings since "asm: " is already set as the global log prefix. Fixes #14071 Change-Id: I7d621c1aea529a0eca3bcba032359bd25b3e1080 Reviewed-on: https://go-review.googlesource.com/19731 Reviewed-by: Rob Pike --- src/cmd/asm/internal/asm/parse.go | 25 +++++++++++++++---------- src/cmd/asm/internal/asm/pseudo_test.go | 4 ++-- src/cmd/asm/internal/lex/input.go | 2 +- src/cmd/asm/internal/lex/lex.go | 2 +- src/cmd/asm/main.go | 4 ++-- 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/cmd/asm/internal/asm/parse.go b/src/cmd/asm/internal/asm/parse.go index 4258c5ce26..6c324ce3af 100644 --- a/src/cmd/asm/internal/asm/parse.go +++ b/src/cmd/asm/internal/asm/parse.go @@ -297,7 +297,7 @@ func (p *Parser) operand(a *obj.Addr) bool { p.errorf("illegal use of register list") } p.registerList(a) - p.expect(scanner.EOF) + p.expectOperandEnd() return true } @@ -331,7 +331,7 @@ func (p *Parser) operand(a *obj.Addr) bool { } } // fmt.Printf("REG %s\n", obj.Dconv(&emptyProg, 0, a)) - p.expect(scanner.EOF) + p.expectOperandEnd() return true } @@ -363,7 +363,7 @@ func (p *Parser) operand(a *obj.Addr) bool { a.Type = obj.TYPE_FCONST a.Val = p.floatExpr() // fmt.Printf("FCONST %s\n", obj.Dconv(&emptyProg, 0, a)) - p.expect(scanner.EOF) + p.expectOperandEnd() return true } if p.have(scanner.String) { @@ -378,7 +378,7 @@ func (p *Parser) operand(a *obj.Addr) bool { a.Type = obj.TYPE_SCONST a.Val = str // fmt.Printf("SCONST %s\n", obj.Dconv(&emptyProg, 0, a)) - p.expect(scanner.EOF) + p.expectOperandEnd() return true } a.Offset = int64(p.expr()) @@ -392,7 +392,7 @@ func (p *Parser) operand(a *obj.Addr) bool { a.Type = obj.TYPE_MEM } // fmt.Printf("CONST %d %s\n", a.Offset, obj.Dconv(&emptyProg, 0, a)) - p.expect(scanner.EOF) + p.expectOperandEnd() return true } // fmt.Printf("offset %d \n", a.Offset) @@ -402,7 +402,7 @@ func (p *Parser) operand(a *obj.Addr) bool { p.registerIndirect(a, prefix) // fmt.Printf("DONE %s\n", p.arch.Dconv(&emptyProg, 0, a)) - p.expect(scanner.EOF) + p.expectOperandEnd() return true } @@ -983,14 +983,19 @@ func (p *Parser) more() bool { // get verifies that the next item has the expected type and returns it. func (p *Parser) get(expected lex.ScanToken) lex.Token { - p.expect(expected) + p.expect(expected, expected.String()) return p.next() } +// expectOperandEnd verifies that the parsing state is properly at the end of an operand. +func (p *Parser) expectOperandEnd() { + p.expect(scanner.EOF, "end of operand") +} + // expect verifies that the next item has the expected type. It does not consume it. -func (p *Parser) expect(expected lex.ScanToken) { - if p.peek() != expected { - p.errorf("expected %s, found %s", expected, p.next()) +func (p *Parser) expect(expectedToken lex.ScanToken, expectedMessage string) { + if p.peek() != expectedToken { + p.errorf("expected %s, found %s", expectedMessage, p.next()) } } diff --git a/src/cmd/asm/internal/asm/pseudo_test.go b/src/cmd/asm/internal/asm/pseudo_test.go index ee13b724eb..2e6d6c8154 100644 --- a/src/cmd/asm/internal/asm/pseudo_test.go +++ b/src/cmd/asm/internal/asm/pseudo_test.go @@ -35,8 +35,8 @@ func TestErroneous(t *testing.T) { {"TEXT", "%", "expect two or three operands for TEXT"}, {"TEXT", "1, 1", "TEXT symbol \"\" must be a symbol(SB)"}, {"TEXT", "$\"foo\", 0, $1", "TEXT symbol \"\" must be a symbol(SB)"}, - {"TEXT", "$0É:0, 0, $1", "expected EOF, found É"}, // Issue #12467. - {"TEXT", "$:0:(SB, 0, $1", "expected '(', found 0"}, // Issue 12468. + {"TEXT", "$0É:0, 0, $1", "expected end of operand, found É"}, // Issue #12467. + {"TEXT", "$:0:(SB, 0, $1", "expected '(', found 0"}, // Issue 12468. {"FUNCDATA", "", "expect two operands for FUNCDATA"}, {"FUNCDATA", "(SB ", "expect two operands for FUNCDATA"}, {"DATA", "", "expect two operands for DATA"}, diff --git a/src/cmd/asm/internal/lex/input.go b/src/cmd/asm/internal/lex/input.go index 33b9d8adea..4855daa892 100644 --- a/src/cmd/asm/internal/lex/input.go +++ b/src/cmd/asm/internal/lex/input.go @@ -30,7 +30,7 @@ type Input struct { peekText string } -// NewInput returns a +// NewInput returns an Input from the given path. func NewInput(name string) *Input { return &Input{ // include directories: look in source dir, then -I directories. diff --git a/src/cmd/asm/internal/lex/lex.go b/src/cmd/asm/internal/lex/lex.go index 6fce55f7f4..81339059b1 100644 --- a/src/cmd/asm/internal/lex/lex.go +++ b/src/cmd/asm/internal/lex/lex.go @@ -77,7 +77,7 @@ func NewLexer(name string, ctxt *obj.Link) TokenReader { input := NewInput(name) fd, err := os.Open(name) if err != nil { - log.Fatalf("asm: %s\n", err) + log.Fatalf("%s\n", err) } input.Push(NewTokenizer(name, fd, fd)) return input diff --git a/src/cmd/asm/main.go b/src/cmd/asm/main.go index f48050c137..4e450bec98 100644 --- a/src/cmd/asm/main.go +++ b/src/cmd/asm/main.go @@ -26,7 +26,7 @@ func main() { architecture := arch.Set(GOARCH) if architecture == nil { - log.Fatalf("asm: unrecognized architecture %s", GOARCH) + log.Fatalf("unrecognized architecture %s", GOARCH) } flags.Parse() @@ -66,7 +66,7 @@ func main() { obj.Writeobjdirect(ctxt, output) } if !ok || diag { - log.Printf("asm: assembly of %s failed", flag.Arg(0)) + log.Printf("assembly of %s failed", flag.Arg(0)) os.Remove(*flags.OutputFile) os.Exit(1) } From 9e173f9db97b98b25efd708b72108012a8b5d7f6 Mon Sep 17 00:00:00 2001 From: Burcu Dogan Date: Wed, 24 Feb 2016 15:06:03 -0800 Subject: [PATCH 031/101] doc: add android/arm as a valid GOOS/GOARCH combination Fixes #14497. Change-Id: Ibdd55acf9e416873c64f8751c2f65f7ccdb1d500 Reviewed-on: https://go-review.googlesource.com/19914 Reviewed-by: David Crawshaw --- doc/install-source.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/install-source.html b/doc/install-source.html index 332c72097e..b8cd8dbcfc 100644 --- a/doc/install-source.html +++ b/doc/install-source.html @@ -445,6 +445,9 @@ The valid combinations of $GOOS and $GOARCH are: $GOOS $GOARCH +android arm + + darwin 386 From 772cea817d075c496091f4c735800f14159c5051 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Wed, 24 Feb 2016 16:20:59 -0800 Subject: [PATCH 032/101] cmd/compile: fix off-by-1 in getr Introduced by (and missed during code review of) golang.org/cl/19847. Change-Id: I03b76f36e5da69c31730380592dfa1c32570e17f Reviewed-on: https://go-review.googlesource.com/19912 Run-TryBot: Matthew Dempsky Reviewed-by: Robert Griesemer TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/lex.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index 562b2b9001..71ed8d6841 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -1873,7 +1873,7 @@ redo: // The string conversion here makes a copy for passing // to fmt.Printf, so that buf itself does not escape and // can be allocated on the stack. - Yyerror("illegal UTF-8 sequence % x", string(buf[:i+1])) + Yyerror("illegal UTF-8 sequence % x", string(buf[:i])) } if r == BOM { From d2e1dae3fec6953a37702710a3a7d7998c41bb69 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Wed, 24 Feb 2016 16:17:49 -0800 Subject: [PATCH 033/101] cmd/compile: adjust starting token value The actual values assigned to tokens was inherited from the yacc-based grammar. With the most recent cleanups, all single-char tokens such as commas, semis, parens, etc., that get returned from lexer.next simply as their Unicode values are below utf8.RuneSelf (i.e., 7bit ASCII). Lower the initial starting value for named token constants accordingly. Change-Id: I7eb8e584dbb3bc7f9dab849d1b68a91320cffebd Reviewed-on: https://go-review.googlesource.com/19913 Reviewed-by: Matthew Dempsky --- src/cmd/compile/internal/gc/lex.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index 71ed8d6841..8809ac4016 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -873,7 +873,9 @@ type lexer struct { } const ( - LLITERAL = 57346 + iota + // The value of single-char tokens is just their character's Unicode value. + // They are all below utf8.RuneSelf. Shift other tokens up to avoid conflicts. + LLITERAL = utf8.RuneSelf + iota LASOP LCOLAS LBREAK @@ -955,6 +957,7 @@ l0: } return } + // c < utf8.RuneSelf var c1 rune var op Op From 7c90abe2062436d0e583184f1f38f97b7aab3c14 Mon Sep 17 00:00:00 2001 From: Mikio Hara Date: Thu, 25 Feb 2016 09:55:40 +0900 Subject: [PATCH 034/101] net: fix typo Change-Id: Ic828256efe0f50a3e11a25d85092d7531b342d2e Reviewed-on: https://go-review.googlesource.com/19873 Reviewed-by: Ian Lance Taylor --- src/net/main_noconf_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/net/main_noconf_test.go b/src/net/main_noconf_test.go index a3a3d6e2ee..ce978365dc 100644 --- a/src/net/main_noconf_test.go +++ b/src/net/main_noconf_test.go @@ -8,7 +8,7 @@ package net import "runtime" -// See main_unix_test.go for what these (don't) do. +// See main_conf_test.go for what these (don't) do. func forceGoDNS() func() { switch runtime.GOOS { case "plan9", "windows": @@ -18,5 +18,5 @@ func forceGoDNS() func() { } } -// See main_unix_test.go for what these (don't) do. +// See main_conf_test.go for what these (don't) do. func forceCgoDNS() func() { return nil } From b48120ca3a5e8767ef1dea46c6231538f374a640 Mon Sep 17 00:00:00 2001 From: Mikio Hara Date: Wed, 24 Feb 2016 11:59:49 +0900 Subject: [PATCH 035/101] net: make TestGoLookupIPWithResolverConfig robust It crashes when the node under the test is shaken up. -- FAIL: TestGoLookupIPWithResolverConfig (11.73s) panic: interface conversion: error is nil, not *net.DNSError [recovered] panic: interface conversion: error is nil, not *net.DNSError goroutine 23 [running]: panic(0x2e2620, 0xc820181440) /go/src/runtime/panic.go:483 +0x3f3 testing.tRunner.func1(0xc820136d80) /go/src/testing/testing.go:467 +0x192 panic(0x2e2620, 0xc820181440) /go/src/runtime/panic.go:441 +0x4f6 net.TestGoLookupIPWithResolverConfig(0xc820136d80) /go/src/net/dnsclient_unix_test.go:358 +0x7ca testing.tRunner(0xc820136d80, 0x49ddc0) /go/src/testing/testing.go:473 +0x98 created by testing.RunTests /go/src/testing/testing.go:582 +0x892 exit status 2 Change-Id: I9631f41a3c73f3269c7e30d679c025ae64d71a98 Reviewed-on: https://go-review.googlesource.com/19870 Reviewed-by: Ian Lance Taylor --- src/net/dnsclient_unix_test.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/net/dnsclient_unix_test.go b/src/net/dnsclient_unix_test.go index 5623039b7b..4a5c438e46 100644 --- a/src/net/dnsclient_unix_test.go +++ b/src/net/dnsclient_unix_test.go @@ -355,7 +355,13 @@ func TestGoLookupIPWithResolverConfig(t *testing.T) { } addrs, err := goLookupIP(tt.name) if err != nil { - if err, ok := err.(*DNSError); !ok || (err.Name != tt.error.(*DNSError).Name || err.Server != tt.error.(*DNSError).Server || err.IsTimeout != tt.error.(*DNSError).IsTimeout) { + // This test uses external network connectivity. + // We need to take care with errors on both + // DNS message exchange layer and DNS + // transport layer because goLookupIP may fail + // when the IP connectivty on node under test + // gets lost during its run. + if err, ok := err.(*DNSError); !ok || tt.error != nil && (err.Name != tt.error.(*DNSError).Name || err.Server != tt.error.(*DNSError).Server || err.IsTimeout != tt.error.(*DNSError).IsTimeout) { t.Errorf("got %v; want %v", err, tt.error) } continue From 4accfe1be5d6324a31543a6bfd9eadfa00d90342 Mon Sep 17 00:00:00 2001 From: Mikio Hara Date: Fri, 19 Feb 2016 17:39:27 +0900 Subject: [PATCH 036/101] net: re-enable TestDualStack{TCP,UDP}Listener on dragonfly It looks like the latest DragonFly BSD kernels, at least 4.4 and above, have finished working on handling of shared IP control blocks. Let's re-enbale test cases referring to IP control blocks and see what happens. Updates #13146. Change-Id: Icbe2250e788f6a445a648541272c99b598c3013d Reviewed-on: https://go-review.googlesource.com/19406 Reviewed-by: Ian Lance Taylor --- src/net/listen_test.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/net/listen_test.go b/src/net/listen_test.go index 158a8ed598..0fc8889628 100644 --- a/src/net/listen_test.go +++ b/src/net/listen_test.go @@ -216,9 +216,12 @@ var dualStackTCPListenerTests = []struct { // TestDualStackTCPListener tests both single and double listen // to a test listener with various address families, different // listening address and same port. +// +// On DragonFly BSD, we expect the kernel version of node under test +// to be greater than or equal to 4.4. func TestDualStackTCPListener(t *testing.T) { switch runtime.GOOS { - case "dragonfly", "nacl", "plan9": // re-enable on dragonfly once the new IP control block management has landed + case "nacl", "plan9": t.Skipf("not supported on %s", runtime.GOOS) } if !supportsIPv4 || !supportsIPv6 { @@ -303,9 +306,12 @@ var dualStackUDPListenerTests = []struct { // TestDualStackUDPListener tests both single and double listen // to a test listener with various address families, different // listening address and same port. +// +// On DragonFly BSD, we expect the kernel version of node under test +// to be greater than or equal to 4.4. func TestDualStackUDPListener(t *testing.T) { switch runtime.GOOS { - case "dragonfly", "nacl", "plan9": // re-enable on dragonfly once the new IP control block management has landed + case "nacl", "plan9": t.Skipf("not supported on %s", runtime.GOOS) } if !supportsIPv4 || !supportsIPv6 { From 5abd327d0069af3abc353ba8ee77dd7d1c0c3e75 Mon Sep 17 00:00:00 2001 From: Rick Arnold Date: Wed, 24 Feb 2016 19:25:38 -0500 Subject: [PATCH 037/101] expvar: document that Get returns nil for non-existent vars Also added a test to ensure the behavior. Fixes #14150 Change-Id: Ib3ee9fdae59826fa594ce1be3c49b51d740b56eb Reviewed-on: https://go-review.googlesource.com/19915 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/expvar/expvar.go | 3 ++- src/expvar/expvar_test.go | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/expvar/expvar.go b/src/expvar/expvar.go index 24c2d6b29a..1d51bc97f9 100644 --- a/src/expvar/expvar.go +++ b/src/expvar/expvar.go @@ -258,7 +258,8 @@ func Publish(name string, v Var) { sort.Strings(varKeys) } -// Get retrieves a named exported variable. +// Get retrieves a named exported variable. It returns nil if the name has +// not been registered. func Get(name string) Var { mutex.RLock() defer mutex.RUnlock() diff --git a/src/expvar/expvar_test.go b/src/expvar/expvar_test.go index 8bc633e4a9..385fea81ad 100644 --- a/src/expvar/expvar_test.go +++ b/src/expvar/expvar_test.go @@ -26,6 +26,14 @@ func RemoveAll() { varKeys = nil } +func TestNil(t *testing.T) { + RemoveAll() + val := Get("missing") + if val != nil { + t.Errorf("got %v, want nil", val) + } +} + func TestInt(t *testing.T) { RemoveAll() reqs := NewInt("requests") From 30f93f09944c54147bec9e5c39631f17addd94c7 Mon Sep 17 00:00:00 2001 From: David Crawshaw Date: Thu, 18 Feb 2016 06:31:57 -0500 Subject: [PATCH 038/101] cmd/compile: remove rtype.ptrToThis Simplifies some code as ptrToThis was unreliable under dynamic linking. Now the same type lookup is used regardless of execution mode. A synthetic relocation, R_USETYPE, is introduced to make sure the linker includes *T on use of T, if *T is carrying methods. Changes the heap dump format. Anything reading the format needs to look at the last bool of a type of an interface value to determine if the type should be the pointer-to type. Reduces binary size of cmd/go by 0.2%. For #6853. Change-Id: I79fcb19a97402bdb0193f3c7f6d94ddf061ee7b2 Reviewed-on: https://go-review.googlesource.com/19695 Reviewed-by: Keith Randall Run-TryBot: David Crawshaw TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/reflect.go | 46 +++++++++----------------- src/cmd/internal/obj/link.go | 5 +++ src/cmd/link/internal/ld/decodesym.go | 2 +- src/reflect/type.go | 20 ++--------- src/runtime/heapdump.go | 28 +++------------- src/runtime/type.go | 1 - 6 files changed, 30 insertions(+), 72 deletions(-) diff --git a/src/cmd/compile/internal/gc/reflect.go b/src/cmd/compile/internal/gc/reflect.go index d2f00d0a05..4fdbbd6967 100644 --- a/src/cmd/compile/internal/gc/reflect.go +++ b/src/cmd/compile/internal/gc/reflect.go @@ -701,12 +701,14 @@ func dcommontype(s *Sym, ot int, t *Type) int { algsym = dalgsym(t) } - var sptr *Sym tptr := Ptrto(t) if !Isptr[t.Etype] && (t.Sym != nil || methods(tptr) != nil) { - sptr = dtypesym(tptr) - } else { - sptr = weaktypesym(tptr) + sptr := dtypesym(tptr) + r := obj.Addrel(Linksym(s)) + r.Off = 0 + r.Siz = 0 + r.Sym = sptr.Lsym + r.Type = obj.R_USETYPE } gcsym, useGCProg, ptrdata := dgcsym(t) @@ -725,7 +727,6 @@ func dcommontype(s *Sym, ot int, t *Type) int { // gcdata *byte // string *string // *uncommonType - // ptrToThis *rtype // } ot = duintptr(s, ot, uint64(t.Width)) ot = duintptr(s, ot, uint64(ptrdata)) @@ -779,7 +780,6 @@ func dcommontype(s *Sym, ot int, t *Type) int { // otherwise linker will assume 0. ot += Widthptr - ot = dsymptr(s, ot, sptr, 0) // ptrto type return ot } @@ -1009,7 +1009,7 @@ ok: switch t.Etype { default: ot = dcommontype(s, ot, t) - xt = ot - 2*Widthptr + xt = ot - 1*Widthptr case TARRAY: if t.Bound >= 0 { @@ -1021,7 +1021,7 @@ ok: t2.Bound = -1 // slice s2 := dtypesym(t2) ot = dcommontype(s, ot, t) - xt = ot - 2*Widthptr + xt = ot - 1*Widthptr ot = dsymptr(s, ot, s1, 0) ot = dsymptr(s, ot, s2, 0) ot = duintptr(s, ot, uint64(t.Bound)) @@ -1030,7 +1030,7 @@ ok: s1 := dtypesym(t.Type) ot = dcommontype(s, ot, t) - xt = ot - 2*Widthptr + xt = ot - 1*Widthptr ot = dsymptr(s, ot, s1, 0) } @@ -1039,7 +1039,7 @@ ok: s1 := dtypesym(t.Type) ot = dcommontype(s, ot, t) - xt = ot - 2*Widthptr + xt = ot - 1*Widthptr ot = dsymptr(s, ot, s1, 0) ot = duintptr(s, ot, uint64(t.Chan)) @@ -1058,7 +1058,7 @@ ok: } ot = dcommontype(s, ot, t) - xt = ot - 2*Widthptr + xt = ot - 1*Widthptr ot = duint8(s, ot, uint8(obj.Bool2int(isddd))) // two slice headers: in and out. @@ -1096,7 +1096,7 @@ ok: // ../../../../runtime/type.go:/interfaceType ot = dcommontype(s, ot, t) - xt = ot - 2*Widthptr + xt = ot - 1*Widthptr ot = dsymptr(s, ot, s, ot+Widthptr+2*Widthint) ot = duintxx(s, ot, uint64(n), Widthint) ot = duintxx(s, ot, uint64(n), Widthint) @@ -1116,7 +1116,7 @@ ok: s3 := dtypesym(mapbucket(t)) s4 := dtypesym(hmap(t)) ot = dcommontype(s, ot, t) - xt = ot - 2*Widthptr + xt = ot - 1*Widthptr ot = dsymptr(s, ot, s1, 0) ot = dsymptr(s, ot, s2, 0) ot = dsymptr(s, ot, s3, 0) @@ -1153,7 +1153,7 @@ ok: s1 := dtypesym(t.Type) ot = dcommontype(s, ot, t) - xt = ot - 2*Widthptr + xt = ot - 1*Widthptr ot = dsymptr(s, ot, s1, 0) // ../../../../runtime/type.go:/structType @@ -1167,7 +1167,7 @@ ok: } ot = dcommontype(s, ot, t) - xt = ot - 2*Widthptr + xt = ot - 1*Widthptr ot = dsymptr(s, ot, s, ot+Widthptr+2*Widthint) ot = duintxx(s, ot, uint64(n), Widthint) ot = duintxx(s, ot, uint64(n), Widthint) @@ -1206,21 +1206,7 @@ ok: // we want be able to find. if t.Sym == nil { switch t.Etype { - case TPTR32, TPTR64: - // The ptrto field of the type data cannot be relied on when - // dynamic linking: a type T may be defined in a module that makes - // no use of pointers to that type, but another module can contain - // a package that imports the first one and does use *T pointers. - // The second module will end up defining type data for *T and a - // type.*T symbol pointing at it. It's important that calling - // .PtrTo() on the reflect.Type for T returns this type data and - // not some synthesized object, so we need reflect to be able to - // find it! - if !Ctxt.Flag_dynlink { - break - } - fallthrough - case TARRAY, TCHAN, TFUNC, TMAP: + case TPTR32, TPTR64, TARRAY, TCHAN, TFUNC, TMAP: slink := typelinksym(t) dsymptr(slink, 0, s, 0) ggloblsym(slink, int32(Widthptr), int16(dupok|obj.RODATA)) diff --git a/src/cmd/internal/obj/link.go b/src/cmd/internal/obj/link.go index c63c8e3c56..e89c1412e2 100644 --- a/src/cmd/internal/obj/link.go +++ b/src/cmd/internal/obj/link.go @@ -444,6 +444,11 @@ const ( R_PLT1 R_PLT2 R_USEFIELD + // R_USETYPE resolves to an *rtype, but no relocation is created. The + // linker uses this as a signal that the pointed-to type information + // should be linked into the final binary, even if there are no other + // direct references. (This is used for types reachable by reflection.) + R_USETYPE R_POWER_TOC R_GOTPCREL // R_JMPMIPS (only used on mips64) resolves to non-PC-relative target address diff --git a/src/cmd/link/internal/ld/decodesym.go b/src/cmd/link/internal/ld/decodesym.go index 8a16b05656..52eb46bb5c 100644 --- a/src/cmd/link/internal/ld/decodesym.go +++ b/src/cmd/link/internal/ld/decodesym.go @@ -47,7 +47,7 @@ func decode_inuxi(p []byte, sz int) uint64 { // commonsize returns the size of the common prefix for all type // structures (runtime._type). func commonsize() int { - return 8*Thearch.Ptrsize + 8 + return 7*Thearch.Ptrsize + 8 } // Type.commonType.kind diff --git a/src/reflect/type.go b/src/reflect/type.go index 3fce24e849..2c7c1fb30b 100644 --- a/src/reflect/type.go +++ b/src/reflect/type.go @@ -256,7 +256,6 @@ type rtype struct { gcdata *byte // garbage collection data string string // string form; unnecessary but undeniably useful *uncommonType // (relatively) uncommon fields - ptrToThis *rtype // type for pointer to this type, if used in binary or has methods } // a copy of runtime.typeAlg @@ -1030,15 +1029,7 @@ func PtrTo(t Type) Type { } func (t *rtype) ptrTo() *rtype { - if p := t.ptrToThis; p != nil { - return p - } - - // Otherwise, synthesize one. - // This only happens for pointers with no methods. - // We keep the mapping in a map on the side, because - // this operation is rare and a separate map lets us keep - // the type structures in read-only memory. + // Check the cache. ptrMap.RLock() if m := ptrMap.m; m != nil { if p := m[t]; p != nil { @@ -1047,6 +1038,7 @@ func (t *rtype) ptrTo() *rtype { } } ptrMap.RUnlock() + ptrMap.Lock() if ptrMap.m == nil { ptrMap.m = make(map[*rtype]*ptrType) @@ -1086,7 +1078,6 @@ func (t *rtype) ptrTo() *rtype { p.hash = fnv1(t.hash, '*') p.uncommonType = nil - p.ptrToThis = nil p.elem = t ptrMap.m[t] = p @@ -1310,7 +1301,7 @@ func haveIdenticalUnderlyingType(T, V *rtype) bool { // Note that strings are not unique identifiers for types: // there can be more than one with a given string. // Only types we might want to look up are included: -// channels, maps, slices, and arrays. +// pointers, channels, maps, slices, and arrays. func typelinks() [][]*rtype // typesByString returns the subslice of typelinks() whose elements have @@ -1465,7 +1456,6 @@ func ChanOf(dir ChanDir, t Type) Type { ch.hash = fnv1(typ.hash, 'c', byte(dir)) ch.elem = typ ch.uncommonType = nil - ch.ptrToThis = nil return cachePut(ckey, &ch.rtype) } @@ -1528,7 +1518,6 @@ func MapOf(key, elem Type) Type { mt.reflexivekey = isReflexive(ktyp) mt.needkeyupdate = needKeyUpdate(ktyp) mt.uncommonType = nil - mt.ptrToThis = nil return cachePut(ckey, &mt.rtype) } @@ -1607,7 +1596,6 @@ func FuncOf(in, out []Type, variadic bool) Type { // Populate the remaining fields of ft and store in cache. ft.string = str ft.uncommonType = nil - ft.ptrToThis = nil funcLookupCache.m[hash] = append(funcLookupCache.m[hash], &ft.rtype) return &ft.rtype @@ -1837,7 +1825,6 @@ func SliceOf(t Type) Type { slice.hash = fnv1(typ.hash, '[') slice.elem = typ slice.uncommonType = nil - slice.ptrToThis = nil return cachePut(ckey, &slice.rtype) } @@ -1895,7 +1882,6 @@ func ArrayOf(count int, elem Type) Type { array.align = typ.align array.fieldAlign = typ.fieldAlign array.uncommonType = nil - array.ptrToThis = nil array.len = uintptr(count) array.slice = slice.(*rtype) diff --git a/src/runtime/heapdump.go b/src/runtime/heapdump.go index 20ca27bc35..1e1157d054 100644 --- a/src/runtime/heapdump.go +++ b/src/runtime/heapdump.go @@ -502,28 +502,10 @@ func dumpparams() { func itab_callback(tab *itab) { t := tab._type - // Dump a map from itab* to the type of its data field. - // We want this map so we can deduce types of interface referents. - if t.kind&kindDirectIface == 0 { - // indirect - data slot is a pointer to t. - dumptype(t.ptrto) - dumpint(tagItab) - dumpint(uint64(uintptr(unsafe.Pointer(tab)))) - dumpint(uint64(uintptr(unsafe.Pointer(t.ptrto)))) - } else if t.kind&kindNoPointers == 0 { - // t is pointer-like - data slot is a t. - dumptype(t) - dumpint(tagItab) - dumpint(uint64(uintptr(unsafe.Pointer(tab)))) - dumpint(uint64(uintptr(unsafe.Pointer(t)))) - } else { - // Data slot is a scalar. Dump type just for fun. - // With pointer-only interfaces, this shouldn't happen. - dumptype(t) - dumpint(tagItab) - dumpint(uint64(uintptr(unsafe.Pointer(tab)))) - dumpint(uint64(uintptr(unsafe.Pointer(t)))) - } + dumptype(t) + dumpint(tagItab) + dumpint(uint64(uintptr(unsafe.Pointer(tab)))) + dumpint(uint64(uintptr(unsafe.Pointer(t)))) } func dumpitabs() { @@ -639,7 +621,7 @@ func dumpmemprof() { } } -var dumphdr = []byte("go1.6 heap dump\n") +var dumphdr = []byte("go1.7 heap dump\n") func mdump() { // make sure we're done sweeping diff --git a/src/runtime/type.go b/src/runtime/type.go index 1323adaf64..8304ad7b77 100644 --- a/src/runtime/type.go +++ b/src/runtime/type.go @@ -26,7 +26,6 @@ type _type struct { gcdata *byte _string string x *uncommontype - ptrto *_type } type method struct { From db44223fde80485132f477a51b690d5d54dad56e Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 25 Feb 2016 19:16:18 +0100 Subject: [PATCH 039/101] runtime: fix getcallerpc args Change-Id: I6b14b8eecf125dd74bd40f4e7fff6b49de150e42 Reviewed-on: https://go-review.googlesource.com/19897 Run-TryBot: Dmitry Vyukov Reviewed-by: Keith Randall --- src/runtime/race/output_test.go | 17 +++++++++++++++++ src/runtime/string.go | 4 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/runtime/race/output_test.go b/src/runtime/race/output_test.go index 0c71a019dd..27d9efb687 100644 --- a/src/runtime/race/output_test.go +++ b/src/runtime/race/output_test.go @@ -180,4 +180,21 @@ func TestFail(t *testing.T) { PASS Found 1 data race\(s\) FAIL`}, + + {"slicebytetostring_pc", "run", "atexit_sleep_ms=0", ` +package main +func main() { + done := make(chan string) + data := make([]byte, 10) + go func() { + done <- string(data) + }() + data[0] = 1 + <-done +} +`, ` + runtime\.slicebytetostring\(\) + .*/runtime/string\.go:.* + main\.main\.func1\(\) + .*/main.go:7`}, } diff --git a/src/runtime/string.go b/src/runtime/string.go index dd04bda04b..5dc7e0295a 100644 --- a/src/runtime/string.go +++ b/src/runtime/string.go @@ -84,7 +84,7 @@ func slicebytetostring(buf *tmpBuf, b []byte) string { if raceenabled && l > 0 { racereadrangepc(unsafe.Pointer(&b[0]), uintptr(l), - getcallerpc(unsafe.Pointer(&b)), + getcallerpc(unsafe.Pointer(&buf)), funcPC(slicebytetostring)) } if msanenabled && l > 0 { @@ -189,7 +189,7 @@ func slicerunetostring(buf *tmpBuf, a []rune) string { if raceenabled && len(a) > 0 { racereadrangepc(unsafe.Pointer(&a[0]), uintptr(len(a))*unsafe.Sizeof(a[0]), - getcallerpc(unsafe.Pointer(&a)), + getcallerpc(unsafe.Pointer(&buf)), funcPC(slicerunetostring)) } if msanenabled && len(a) > 0 { From d44088f173efab62a25be9cf1f26c29982fc2617 Mon Sep 17 00:00:00 2001 From: Emmanuel Odeke Date: Fri, 19 Feb 2016 02:10:56 -0800 Subject: [PATCH 040/101] net/http: refactored internal shouldClose for readability Change-Id: Ie89c0945a4cc3aebfa9f7ad7f107bc7ab59ab61c Reviewed-on: https://go-review.googlesource.com/19685 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/net/http/transfer.go | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/net/http/transfer.go b/src/net/http/transfer.go index 6e59af8f6f..7ff4953a14 100644 --- a/src/net/http/transfer.go +++ b/src/net/http/transfer.go @@ -558,21 +558,19 @@ func fixLength(isResponse bool, status int, requestMethod string, header Header, func shouldClose(major, minor int, header Header, removeCloseHeader bool) bool { if major < 1 { return true - } else if major == 1 && minor == 0 { - vv := header["Connection"] - if headerValuesContainsToken(vv, "close") || !headerValuesContainsToken(vv, "keep-alive") { - return true - } - return false - } else { - if headerValuesContainsToken(header["Connection"], "close") { - if removeCloseHeader { - header.Del("Connection") - } - return true - } } - return false + + conv := header["Connection"] + hasClose := headerValuesContainsToken(conv, "close") + if major == 1 && minor == 0 { + return hasClose || !headerValuesContainsToken(conv, "keep-alive") + } + + if hasClose && removeCloseHeader { + header.Del("Connection") + } + + return hasClose } // Parse the trailer header From 14113b3a89624ee6d97a7847b68361158ad43822 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 25 Feb 2016 10:44:31 -0800 Subject: [PATCH 041/101] cmd/internal/obj: don't crash on nil in Prog.String I can't remember just how this happened to me, but I got an unfortunate crash with some set of cmd/compile debug options and source code. Change-Id: Ibef6129c50b68dad0594ac439466bfbc4b32a095 Reviewed-on: https://go-review.googlesource.com/19920 Run-TryBot: Ian Lance Taylor Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/cmd/internal/obj/util.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cmd/internal/obj/util.go b/src/cmd/internal/obj/util.go index 12b048d8e1..8ecf800502 100644 --- a/src/cmd/internal/obj/util.go +++ b/src/cmd/internal/obj/util.go @@ -287,6 +287,10 @@ func CConv(s uint8) string { } func (p *Prog) String() string { + if p == nil { + return "" + } + if p.Ctxt == nil { return "" } From ad03af66ebfb368fe0f87262092094e1793a9ef5 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sun, 21 Feb 2016 12:50:35 -0800 Subject: [PATCH 042/101] runtime, runtime/pprof: add Frames to get file/line for Callers This indirectly implements a small fix for runtime/pprof: it used to look for runtime.gopanic when it should have been looking for runtime.sigpanic. Update #11432. Change-Id: I5e3f5203b2ac5463efd85adf6636e64174aacb1d Reviewed-on: https://go-review.googlesource.com/19869 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot Reviewed-by: David Chase --- src/runtime/callers_test.go | 83 +++++++++++++++++++++++++++++++++++++ src/runtime/extern.go | 7 +--- src/runtime/pprof/pprof.go | 29 +++++-------- src/runtime/symtab.go | 78 ++++++++++++++++++++++++++++++++++ 4 files changed, 173 insertions(+), 24 deletions(-) create mode 100644 src/runtime/callers_test.go diff --git a/src/runtime/callers_test.go b/src/runtime/callers_test.go new file mode 100644 index 0000000000..cb3e6e87c7 --- /dev/null +++ b/src/runtime/callers_test.go @@ -0,0 +1,83 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package runtime_test + +import ( + "runtime" + "strings" + "testing" +) + +func f1(pan bool) []uintptr { + return f2(pan) // line 14 +} + +func f2(pan bool) []uintptr { + return f3(pan) // line 18 +} + +func f3(pan bool) []uintptr { + if pan { + panic("f3") // line 23 + } + ret := make([]uintptr, 20) + return ret[:runtime.Callers(0, ret)] // line 26 +} + +func testCallers(t *testing.T, pcs []uintptr, pan bool) { + m := make(map[string]int, len(pcs)) + frames := runtime.CallersFrames(pcs) + for { + frame, more := frames.Next() + if frame.Function != "" { + m[frame.Function] = frame.Line + } + if !more { + break + } + } + + var seen []string + for k := range m { + seen = append(seen, k) + } + t.Logf("functions seen: %s", strings.Join(seen, " ")) + + var f3Line int + if pan { + f3Line = 23 + } else { + f3Line = 26 + } + want := []struct { + name string + line int + }{ + {"f1", 14}, + {"f2", 18}, + {"f3", f3Line}, + } + for _, w := range want { + if got := m["runtime_test."+w.name]; got != w.line { + t.Errorf("%s is line %d, want %d", w.name, got, w.line) + } + } +} + +func TestCallers(t *testing.T) { + testCallers(t, f1(false), false) +} + +func TestCallersPanic(t *testing.T) { + defer func() { + if r := recover(); r == nil { + t.Fatal("did not panic") + } + pcs := make([]uintptr, 20) + pcs = pcs[:runtime.Callers(0, pcs)] + testCallers(t, pcs, true) + }() + f1(true) +} diff --git a/src/runtime/extern.go b/src/runtime/extern.go index 2c98482e26..9c1f9f5a03 100644 --- a/src/runtime/extern.go +++ b/src/runtime/extern.go @@ -191,12 +191,9 @@ func Caller(skip int) (pc uintptr, file string, line int, ok bool) { // // Note that since each slice entry pc[i] is a return program counter, // looking up the file and line for pc[i] (for example, using (*Func).FileLine) -// will return the file and line number of the instruction immediately +// will normally return the file and line number of the instruction immediately // following the call. -// To look up the file and line number of the call itself, use pc[i]-1. -// As an exception to this rule, if pc[i-1] corresponds to the function -// runtime.sigpanic, then pc[i] is the program counter of a faulting -// instruction and should be used without any subtraction. +// To easily look up file/line information for the call sequence, use Frames. func Callers(skip int, pc []uintptr) int { // runtime.callers uses pc.array==nil as a signal // to print a stack trace. Pick off 0-length pc here diff --git a/src/runtime/pprof/pprof.go b/src/runtime/pprof/pprof.go index e09a33d5d9..5e91fa8abe 100644 --- a/src/runtime/pprof/pprof.go +++ b/src/runtime/pprof/pprof.go @@ -325,33 +325,24 @@ func printCountProfile(w io.Writer, debug int, name string, p countProfile) erro // for a single stack trace. func printStackRecord(w io.Writer, stk []uintptr, allFrames bool) { show := allFrames - wasPanic := false - for i, pc := range stk { - f := runtime.FuncForPC(pc) - if f == nil { + frames := runtime.CallersFrames(stk) + for { + frame, more := frames.Next() + name := frame.Function + if name == "" { show = true - fmt.Fprintf(w, "#\t%#x\n", pc) - wasPanic = false + fmt.Fprintf(w, "#\t%#x\n", frame.PC) } else { - tracepc := pc - // Back up to call instruction. - if i > 0 && pc > f.Entry() && !wasPanic { - if runtime.GOARCH == "386" || runtime.GOARCH == "amd64" { - tracepc-- - } else { - tracepc -= 4 // arm, etc - } - } - file, line := f.FileLine(tracepc) - name := f.Name() // Hide runtime.goexit and any runtime functions at the beginning. // This is useful mainly for allocation traces. - wasPanic = name == "runtime.gopanic" if name == "runtime.goexit" || !show && strings.HasPrefix(name, "runtime.") { continue } show = true - fmt.Fprintf(w, "#\t%#x\t%s+%#x\t%s:%d\n", pc, name, pc-f.Entry(), file, line) + fmt.Fprintf(w, "#\t%#x\t%s+%#x\t%s:%d\n", frame.PC, name, frame.PC-frame.Entry, frame.File, frame.Line) + } + if !more { + break } } if !show { diff --git a/src/runtime/symtab.go b/src/runtime/symtab.go index 00b0a850e0..afea41448f 100644 --- a/src/runtime/symtab.go +++ b/src/runtime/symtab.go @@ -9,6 +9,84 @@ import ( "unsafe" ) +// Frames may be used to get function/file/line information for a +// slice of PC values returned by Callers. +type Frames struct { + callers []uintptr + + // If previous caller in iteration was a panic, then + // ci.callers[0] is the address of the faulting instruction + // instead of the return address of the call. + wasPanic bool +} + +// Frame is the information returned by Frames for each call frame. +type Frame struct { + // Program counter for this frame; multiple frames may have + // the same PC value. + PC uintptr + + // Func for this frame; may be nil for non-Go code or fully + // inlined functions. + Func *Func + + // Function name, file name, and line number for this call frame. + // May be the empty string or zero if not known. + // If Func is not nil then Function == Func.Name(). + Function string + File string + Line int + + // Entry point for the function; may be zero if not known. + // If Func is not nil then Entry == Func.Entry(). + Entry uintptr +} + +// CallersFrames takes a slice of PC values returned by Callers and +// prepares to return function/file/line information. +// Do not change the slice until you are done with the Frames. +func CallersFrames(callers []uintptr) *Frames { + return &Frames{callers, false} +} + +// Next returns frame information for the next caller. +// If more is false, there are no more callers (the Frame value is valid). +func (ci *Frames) Next() (frame Frame, more bool) { + if len(ci.callers) == 0 { + ci.wasPanic = false + return Frame{}, false + } + pc := ci.callers[0] + ci.callers = ci.callers[1:] + more = len(ci.callers) > 0 + f := FuncForPC(pc) + if f == nil { + ci.wasPanic = false + return Frame{}, more + } + + entry := f.Entry() + xpc := pc + if xpc > entry && !ci.wasPanic { + xpc-- + } + file, line := f.FileLine(xpc) + + function := f.Name() + ci.wasPanic = entry == sigpanicPC + + frame = Frame{ + PC: xpc, + Func: f, + Function: function, + File: file, + Line: line, + Entry: entry, + } + + return frame, more +} + // NOTE: Func does not expose the actual unexported fields, because we return *Func // values to users, and we want to keep them from being able to overwrite the data // with (say) *f = Func{}. From 13d6414e9dd070e6479d3244ca376cbb891c8751 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 25 Feb 2016 11:43:45 -0800 Subject: [PATCH 043/101] doc/go1.7: mention CallersFrames and Frames Change-Id: I73ae6a6837a6dcf75b3b8f431d97a18348e01a42 Reviewed-on: https://go-review.googlesource.com/19921 Reviewed-by: Ian Lance Taylor --- doc/go1.7.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/doc/go1.7.txt b/doc/go1.7.txt index 2af8b5447e..a73ba59297 100644 --- a/doc/go1.7.txt +++ b/doc/go1.7.txt @@ -10,6 +10,4 @@ SOMETHING WILL HAPPEN API additions and behavior changes: -SOMETHING WILL HAPPEN - - +runtime: add CallerFrames and Frames (CL 19869) From b24c6fbfb3303f994ea8adfdf68436d95d2f841b Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 20 Jan 2016 06:19:38 +0000 Subject: [PATCH 044/101] net/textproto: permit all valid token chars in CanonicalMIMEHeaderKey input Fixes #13767 Change-Id: Ib743db7d9d72022ea911bc5ac535243489425642 Reviewed-on: https://go-review.googlesource.com/18725 Reviewed-by: Andrew Gerrand Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/net/textproto/reader.go | 94 +++++++++++++++++++++++++++++--- src/net/textproto/reader_test.go | 6 ++ 2 files changed, 92 insertions(+), 8 deletions(-) diff --git a/src/net/textproto/reader.go b/src/net/textproto/reader.go index 91bbb57304..109afd3cea 100644 --- a/src/net/textproto/reader.go +++ b/src/net/textproto/reader.go @@ -581,18 +581,14 @@ func CanonicalMIMEHeaderKey(s string) string { const toLower = 'a' - 'A' // validHeaderFieldByte reports whether b is a valid byte in a header -// field key. This is actually stricter than RFC 7230, which says: +// field name. RFC 7230 says: +// header-field = field-name ":" OWS field-value OWS +// field-name = token // tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / // "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA // token = 1*tchar -// TODO: revisit in Go 1.6+ and possibly expand this. But note that many -// servers have historically dropped '_' to prevent ambiguities when mapping -// to CGI environment variables. func validHeaderFieldByte(b byte) bool { - return ('A' <= b && b <= 'Z') || - ('a' <= b && b <= 'z') || - ('0' <= b && b <= '9') || - b == '-' + return int(b) < len(isTokenTable) && isTokenTable[b] } // canonicalMIMEHeaderKey is like CanonicalMIMEHeaderKey but is @@ -682,3 +678,85 @@ func init() { commonHeader[v] = v } } + +// isTokenTable is a copy of net/http/lex.go's isTokenTable. +// See https://httpwg.github.io/specs/rfc7230.html#rule.token.separators +var isTokenTable = [127]bool{ + '!': true, + '#': true, + '$': true, + '%': true, + '&': true, + '\'': true, + '*': true, + '+': true, + '-': true, + '.': true, + '0': true, + '1': true, + '2': true, + '3': true, + '4': true, + '5': true, + '6': true, + '7': true, + '8': true, + '9': true, + 'A': true, + 'B': true, + 'C': true, + 'D': true, + 'E': true, + 'F': true, + 'G': true, + 'H': true, + 'I': true, + 'J': true, + 'K': true, + 'L': true, + 'M': true, + 'N': true, + 'O': true, + 'P': true, + 'Q': true, + 'R': true, + 'S': true, + 'T': true, + 'U': true, + 'W': true, + 'V': true, + 'X': true, + 'Y': true, + 'Z': true, + '^': true, + '_': true, + '`': true, + 'a': true, + 'b': true, + 'c': true, + 'd': true, + 'e': true, + 'f': true, + 'g': true, + 'h': true, + 'i': true, + 'j': true, + 'k': true, + 'l': true, + 'm': true, + 'n': true, + 'o': true, + 'p': true, + 'q': true, + 'r': true, + 's': true, + 't': true, + 'u': true, + 'v': true, + 'w': true, + 'x': true, + 'y': true, + 'z': true, + '|': true, + '~': true, +} diff --git a/src/net/textproto/reader_test.go b/src/net/textproto/reader_test.go index 9c71594362..8a07adf4d3 100644 --- a/src/net/textproto/reader_test.go +++ b/src/net/textproto/reader_test.go @@ -25,6 +25,12 @@ var canonicalHeaderKeyTests = []canonicalHeaderKeyTest{ {"user-agent", "User-Agent"}, {"USER-AGENT", "User-Agent"}, + // Other valid tchar bytes in tokens: + {"foo-bar_baz", "Foo-Bar_baz"}, + {"foo-bar$baz", "Foo-Bar$baz"}, + {"foo-bar~baz", "Foo-Bar~baz"}, + {"foo-bar*baz", "Foo-Bar*baz"}, + // Non-ASCII or anything with spaces or non-token chars is unchanged: {"üser-agenT", "üser-agenT"}, {"a B", "a B"}, From ca42f1f50e4cc26b896275673218d7376fab501d Mon Sep 17 00:00:00 2001 From: Dmitriy Dudkin Date: Thu, 25 Feb 2016 21:48:57 +0200 Subject: [PATCH 045/101] cmd/go: clear cmd cache to avoid duplicate loads errors go get -u all command updates all packages including standard commands. We need to get commands evicted from their cache to avoid loading old versions of the packages evicted from the packages cache. Fixes #14444 Change-Id: Icd581a26e1db34ca634aba595fed62b097094c2f Reviewed-on: https://go-review.googlesource.com/19899 Reviewed-by: Brad Fitzpatrick --- src/cmd/go/get.go | 8 ++++++++ src/cmd/go/go_test.go | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/cmd/go/get.go b/src/cmd/go/get.go index a298049a9d..9d4b94acf1 100644 --- a/src/cmd/go/get.go +++ b/src/cmd/go/get.go @@ -119,6 +119,14 @@ func runGet(cmd *Command, args []string) { delete(packageCache, name) } + // In order to rebuild packages information completely, + // we need to clear commands cache. Command packages are + // referring to evicted packages from the package cache. + // This leads to duplicated loads of the standard packages. + for name := range cmdCache { + delete(cmdCache, name) + } + args = importPaths(args) packagesForBuild(args) diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go index 1d6184c337..928224cee6 100644 --- a/src/cmd/go/go_test.go +++ b/src/cmd/go/go_test.go @@ -2789,3 +2789,15 @@ func TestCgoConsistentResults(t *testing.T) { t.Error("building cgotest twice did not produce the same output") } } + +// Issue 14444: go get -u .../ duplicate loads errors +func TestGoGetUpdateAllDoesNotTryToLoadDuplicates(t *testing.T) { + testenv.MustHaveExternalNetwork(t) + + tg := testgo(t) + defer tg.cleanup() + tg.makeTempdir() + tg.setenv("GOPATH", tg.path(".")) + tg.run("get", "-u", ".../") + tg.grepStderrNot("duplicate loads of", "did not remove old packages from cache") +} From e1024b6030e181f3994d93cac6099d3d0f341260 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Tue, 9 Feb 2016 17:24:26 -0500 Subject: [PATCH 046/101] runtime: fix heapBitsSweepSpan comment Currently the heapBitsSweepSpan comment claims that heapBitsSweepSpan sets the heap bitmap for the first two words to dead. In fact, it sets the first *four* words to scalar/dead. This is important because first two words don't actually have a dead bit, so for objects larger than two words it *must* set a dead bit in third word to reset the object to a "noscan" state. For example, we use this in heapBits.hasPointers to detect that an object larger than two words is noscan. Change-Id: Ie166a628bed5060851db083475c7377adb349d6c Reviewed-on: https://go-review.googlesource.com/19630 Reviewed-by: Rick Hudson Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot --- src/runtime/mbitmap.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/mbitmap.go b/src/runtime/mbitmap.go index 80c267f7bb..35fc82bf4a 100644 --- a/src/runtime/mbitmap.go +++ b/src/runtime/mbitmap.go @@ -558,7 +558,7 @@ func (h heapBits) clearCheckmarkSpan(size, n, total uintptr) { // heapBitsSweepSpan coordinates the sweeping of a span by reading // and updating the corresponding heap bitmap entries. // For each free object in the span, heapBitsSweepSpan sets the type -// bits for the first two words (or one for single-word objects) to typeDead +// bits for the first four words (less for smaller objects) to scalar/dead // and then calls f(p), where p is the object's base address. // f is expected to add the object to a free list. // For non-free objects, heapBitsSweepSpan turns off the marked bit. From 39f2bd737bb0b9446b4d241aa76fcb87d7e77278 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Tue, 9 Feb 2016 17:34:14 -0500 Subject: [PATCH 047/101] runtime: improve initSpan documentation Change-Id: I9c45aad1c35a99da4c3b8990649dcd962fd23b81 Reviewed-on: https://go-review.googlesource.com/19631 Reviewed-by: Rick Hudson Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot --- src/runtime/mbitmap.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/runtime/mbitmap.go b/src/runtime/mbitmap.go index 35fc82bf4a..04992890a1 100644 --- a/src/runtime/mbitmap.go +++ b/src/runtime/mbitmap.go @@ -494,6 +494,10 @@ func typeBitsBulkBarrier(typ *_type, p, size uintptr) { // TODO(rsc): Perhaps introduce a different heapBitsSpan type. // initSpan initializes the heap bitmap for a span. +// It clears all mark and checkmark bits. +// If this is a span of pointer-sized objects, it initializes all +// words to pointer (and there are no dead bits). +// Otherwise, it initializes all words to scalar/dead. func (h heapBits) initSpan(size, n, total uintptr) { if total%heapBitmapScale != 0 { throw("initSpan: unaligned length") From 1e91e2a25a0058cc25b3836b59a0954c6c75a62c Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Mon, 15 Feb 2016 16:50:12 -0500 Subject: [PATCH 048/101] runtime: document non-obvious requirement on sudog.elem The channel code must not allow stack splits between when it assigns a potential stack pointer to sudog.elem (or sudog.selectdone) and when it makes the sudog visible to copystack by putting it on the g.waiting list. We do get this right everywhere, but add a comment about this subtlety for future eyes. Change-Id: I941da150437167acff37b0e56983c793f40fcf79 Reviewed-on: https://go-review.googlesource.com/19632 Reviewed-by: Rick Hudson Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot --- src/runtime/chan.go | 4 ++++ src/runtime/select.go | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/runtime/chan.go b/src/runtime/chan.go index 063c5ce391..f6f3ce4d90 100644 --- a/src/runtime/chan.go +++ b/src/runtime/chan.go @@ -203,6 +203,8 @@ func chansend(t *chantype, c *hchan, ep unsafe.Pointer, block bool, callerpc uin if t0 != 0 { mysg.releasetime = -1 } + // No stack splits between assigning elem and enqueuing mysg + // on gp.waiting where copystack can find it. mysg.elem = ep mysg.waitlink = nil mysg.g = gp @@ -460,6 +462,8 @@ func chanrecv(t *chantype, c *hchan, ep unsafe.Pointer, block bool) (selected, r if t0 != 0 { mysg.releasetime = -1 } + // No stack splits between assigning elem and enqueuing mysg + // on gp.waiting where copystack can find it. mysg.elem = ep mysg.waitlink = nil gp.waiting = mysg diff --git a/src/runtime/select.go b/src/runtime/select.go index b6c3fea001..b315dde6c6 100644 --- a/src/runtime/select.go +++ b/src/runtime/select.go @@ -370,6 +370,8 @@ loop: sg.g = gp // Note: selectdone is adjusted for stack copies in stack1.go:adjustsudogs sg.selectdone = (*uint32)(noescape(unsafe.Pointer(&done))) + // No stack splits between assigning elem and enqueuing + // sg on gp.waiting where copystack can find it. sg.elem = cas.elem sg.releasetime = 0 if t0 != 0 { From 0d26efb12ae255d0f4cbf9484c1fedc2596ff09c Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Tue, 9 Feb 2016 18:30:38 -0500 Subject: [PATCH 049/101] runtime: remove unnecessary clears of the heap bitmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently we clear the heap bitmap of a span both when we allocate that span *and* when we free it. There's no point in doing both, and we definitely have to write the heap bitmap when we allocate a span for pointer-sized objects, so switch to clearing only when we allocate a span. This results in a slight overall performance improvement; however, most of the benchmarks that get slower are very short, while the longer benchmarks generally got faster. name old time/op new time/op delta XBenchGarbage-12 2.48ms ± 1% 2.47ms ± 1% -0.58% (p=0.000 n=91+91) name old time/op new time/op delta BinaryTree17-12 2.85s ± 2% 2.85s ± 2% ~ (p=0.550 n=20+19) Fannkuch11-12 2.54s ± 0% 2.47s ± 1% -2.72% (p=0.000 n=19+18) FmtFprintfEmpty-12 51.3ns ± 4% 51.0ns ± 3% ~ (p=0.223 n=20+20) FmtFprintfString-12 169ns ± 0% 167ns ± 0% -1.18% (p=0.000 n=17+16) FmtFprintfInt-12 160ns ± 0% 161ns ± 0% +0.63% (p=0.000 n=16+15) FmtFprintfIntInt-12 267ns ± 0% 269ns ± 1% +0.62% (p=0.000 n=17+20) FmtFprintfPrefixedInt-12 234ns ± 1% 240ns ± 0% +2.80% (p=0.000 n=20+20) FmtFprintfFloat-12 316ns ± 0% 313ns ± 0% -0.76% (p=0.000 n=20+19) FmtManyArgs-12 1.04µs ± 0% 1.05µs ± 0% +0.45% (p=0.000 n=19+16) GobDecode-12 7.90ms ± 1% 7.81ms ± 0% -1.10% (p=0.000 n=18+18) GobEncode-12 6.61ms ± 1% 6.58ms ± 0% -0.46% (p=0.000 n=20+15) Gzip-12 320ms ± 1% 322ms ± 1% +0.47% (p=0.030 n=20+20) Gunzip-12 42.4ms ± 1% 42.6ms ± 0% +0.37% (p=0.000 n=20+20) HTTPClientServer-12 70.7µs ± 1% 70.6µs ± 2% ~ (p=0.784 n=18+20) JSONEncode-12 16.9ms ± 1% 16.8ms ± 0% -0.64% (p=0.000 n=20+20) JSONDecode-12 60.8ms ± 0% 58.6ms ± 1% -3.50% (p=0.000 n=17+18) Mandelbrot200-12 3.92ms ± 0% 3.91ms ± 0% -0.25% (p=0.000 n=19+19) GoParse-12 3.65ms ± 0% 3.68ms ± 1% +0.67% (p=0.000 n=17+16) RegexpMatchEasy0_32-12 102ns ± 1% 102ns ± 2% +0.67% (p=0.009 n=19+19) RegexpMatchEasy0_1K-12 350ns ± 0% 351ns ± 1% +0.34% (p=0.002 n=20+20) RegexpMatchEasy1_32-12 84.1ns ± 2% 84.2ns ± 2% ~ (p=0.799 n=20+18) RegexpMatchEasy1_1K-12 510ns ± 1% 508ns ± 1% -0.45% (p=0.000 n=20+17) RegexpMatchMedium_32-12 132ns ± 1% 134ns ± 1% +0.85% (p=0.000 n=20+19) RegexpMatchMedium_1K-12 40.0µs ± 1% 39.9µs ± 1% -0.29% (p=0.014 n=19+18) RegexpMatchHard_32-12 2.09µs ± 1% 2.05µs ± 0% -1.76% (p=0.000 n=20+18) RegexpMatchHard_1K-12 62.7µs ± 1% 61.8µs ± 1% -1.39% (p=0.000 n=20+19) Revcomp-12 541ms ± 1% 534ms ± 0% -1.16% (p=0.000 n=19+20) Template-12 71.1ms ± 0% 69.1ms ± 0% -2.83% (p=0.000 n=18+19) TimeParse-12 356ns ± 0% 357ns ± 0% +0.36% (p=0.000 n=17+19) TimeFormat-12 358ns ± 0% 372ns ± 1% +3.74% (p=0.000 n=15+18) [Geo mean] 62.6µs 62.5µs -0.25% Change-Id: Ied190b77c7a4d91ec7b2218c592fc31cf7acf362 Reviewed-on: https://go-review.googlesource.com/19633 Reviewed-by: Rick Hudson Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot --- src/runtime/mcentral.go | 1 - src/runtime/mgcsweep.go | 1 - 2 files changed, 2 deletions(-) diff --git a/src/runtime/mcentral.go b/src/runtime/mcentral.go index 29a7b77376..8a2fbe98c9 100644 --- a/src/runtime/mcentral.go +++ b/src/runtime/mcentral.go @@ -195,7 +195,6 @@ func (c *mcentral) freeSpan(s *mspan, n int32, start gclinkptr, end gclinkptr, p s.needzero = 1 s.freelist = 0 unlock(&c.lock) - heapBitsForSpan(s.base()).initSpan(s.layout()) mheap_.freeSpan(s, 0) return true } diff --git a/src/runtime/mgcsweep.go b/src/runtime/mgcsweep.go index b00ceb0a8a..d6d91d2021 100644 --- a/src/runtime/mgcsweep.go +++ b/src/runtime/mgcsweep.go @@ -276,7 +276,6 @@ func (s *mspan) sweep(preserve bool) bool { if preserve { throw("can't preserve large span") } - heapBitsForSpan(p).initSpan(s.layout()) s.needzero = 1 // Free the span after heapBitsSweepSpan From 98130b39f50f51ac966201461b96a20f923c7d64 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Tue, 9 Feb 2016 18:37:41 -0500 Subject: [PATCH 050/101] runtime: remove noescape hacks from gcWork When gcWork was first introduced, the compiler's escape analysis wasn't good enough to detect that that method receiver didn't escape, so we had to hack around this. Now that the compiler can figure out this for itself, remove these hacks. Change-Id: I9f73fab721e272410b8b6905b564e7abc03c0dfe Reviewed-on: https://go-review.googlesource.com/19634 Reviewed-by: Rick Hudson Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot --- src/runtime/mgcwork.go | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/runtime/mgcwork.go b/src/runtime/mgcwork.go index 340604fb36..e97039bed6 100644 --- a/src/runtime/mgcwork.go +++ b/src/runtime/mgcwork.go @@ -105,9 +105,7 @@ func (w *gcWork) init() { // put enqueues a pointer for the garbage collector to trace. // obj must point to the beginning of a heap object. //go:nowritebarrier -func (ww *gcWork) put(obj uintptr) { - w := (*gcWork)(noescape(unsafe.Pointer(ww))) // TODO: remove when escape analysis is fixed - +func (w *gcWork) put(obj uintptr) { wbuf := w.wbuf1.ptr() if wbuf == nil { w.init() @@ -133,9 +131,7 @@ func (ww *gcWork) put(obj uintptr) { // queue, tryGet returns 0. Note that there may still be pointers in // other gcWork instances or other caches. //go:nowritebarrier -func (ww *gcWork) tryGet() uintptr { - w := (*gcWork)(noescape(unsafe.Pointer(ww))) // TODO: remove when escape analysis is fixed - +func (w *gcWork) tryGet() uintptr { wbuf := w.wbuf1.ptr() if wbuf == nil { w.init() @@ -164,9 +160,7 @@ func (ww *gcWork) tryGet() uintptr { // if necessary to ensure all pointers from all queues and caches have // been retrieved. get returns 0 if there are no pointers remaining. //go:nowritebarrier -func (ww *gcWork) get() uintptr { - w := (*gcWork)(noescape(unsafe.Pointer(ww))) // TODO: remove when escape analysis is fixed - +func (w *gcWork) get() uintptr { wbuf := w.wbuf1.ptr() if wbuf == nil { w.init() From 7b229001e710f48134a51b2f5abebda4b35d9de4 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Mon, 23 Nov 2015 18:44:03 -0500 Subject: [PATCH 051/101] runtime: pass gcWork to markroot Currently markroot uses a gcWork on the stack and disposes of it immediately after marking one root. This used to be necessary because markroot was called from the depths of parfor, but now that we call it directly and have ready access to a gcWork at the call site, pass the gcWork in, use it directly in markroot, and share it across calls to markroot from the same P. Change-Id: Id7c3b811bfb944153760e01873c07c8d18909be1 Reviewed-on: https://go-review.googlesource.com/19635 Reviewed-by: Rick Hudson Run-TryBot: Austin Clements --- src/runtime/mgcmark.go | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/runtime/mgcmark.go b/src/runtime/mgcmark.go index eac45ec168..0be908bfe8 100644 --- a/src/runtime/mgcmark.go +++ b/src/runtime/mgcmark.go @@ -98,10 +98,7 @@ var oneptrmask = [...]uint8{1} // Preemption must be disabled (because this uses a gcWork). // //go:nowritebarrier -func markroot(i uint32) { - // TODO: Consider using getg().m.p.ptr().gcw. - var gcw gcWork - +func markroot(gcw *gcWork, i uint32) { baseData := uint32(fixedRootCount) baseBSS := baseData + uint32(work.nDataRoots) baseSpans := baseBSS + uint32(work.nBSSRoots) @@ -111,17 +108,17 @@ func markroot(i uint32) { switch { case baseData <= i && i < baseBSS: for datap := &firstmoduledata; datap != nil; datap = datap.next { - markrootBlock(datap.data, datap.edata-datap.data, datap.gcdatamask.bytedata, &gcw, int(i-baseData)) + markrootBlock(datap.data, datap.edata-datap.data, datap.gcdatamask.bytedata, gcw, int(i-baseData)) } case baseBSS <= i && i < baseSpans: for datap := &firstmoduledata; datap != nil; datap = datap.next { - markrootBlock(datap.bss, datap.ebss-datap.bss, datap.gcbssmask.bytedata, &gcw, int(i-baseBSS)) + markrootBlock(datap.bss, datap.ebss-datap.bss, datap.gcbssmask.bytedata, gcw, int(i-baseBSS)) } case i == fixedRootFinalizers: for fb := allfin; fb != nil; fb = fb.alllink { - scanblock(uintptr(unsafe.Pointer(&fb.fin[0])), uintptr(fb.cnt)*unsafe.Sizeof(fb.fin[0]), &finptrmask[0], &gcw) + scanblock(uintptr(unsafe.Pointer(&fb.fin[0])), uintptr(fb.cnt)*unsafe.Sizeof(fb.fin[0]), &finptrmask[0], gcw) } case i == fixedRootFlushCaches: @@ -131,7 +128,7 @@ func markroot(i uint32) { case baseSpans <= i && i < baseStacks: // mark MSpan.specials - markrootSpans(&gcw, int(i-baseSpans)) + markrootSpans(gcw, int(i-baseSpans)) default: // the rest is scanning goroutine stacks @@ -193,8 +190,6 @@ func markroot(i uint32) { } }) } - - gcw.dispose() } // markrootBlock scans the shard'th shard of the block of memory [b0, @@ -808,8 +803,7 @@ func gcDrain(gcw *gcWork, flags gcDrainFlags) { if job >= work.markrootJobs { break } - // TODO: Pass in gcw. - markroot(job) + markroot(gcw, job) } } From 0168c2676f73071331cd385cb3d174313c857738 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Mon, 23 Nov 2015 18:45:18 -0500 Subject: [PATCH 052/101] runtime: use only per-P gcWork Currently most uses of gcWork use the per-P gcWork, but there are two places that still use a stack-based gcWork. Simplify things by making these instead use the per-P gcWork. Change-Id: I712d012cce9dd5757c8541824e9641ac1c2a329c Reviewed-on: https://go-review.googlesource.com/19636 Reviewed-by: Rick Hudson Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot --- src/runtime/mgc.go | 8 ++++---- src/runtime/mgcwork.go | 8 -------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go index 94301c6dc7..df8b4536fa 100644 --- a/src/runtime/mgc.go +++ b/src/runtime/mgc.go @@ -1555,8 +1555,8 @@ func gcMark(start_time int64) { gchelperstart() - var gcw gcWork - gcDrain(&gcw, gcDrainBlock) + gcw := &getg().m.p.ptr().gcw + gcDrain(gcw, gcDrainBlock) gcw.dispose() gcMarkRootCheck() @@ -1798,8 +1798,8 @@ func gchelper() { // Parallel mark over GC roots and heap if gcphase == _GCmarktermination { - var gcw gcWork - gcDrain(&gcw, gcDrainBlock) // blocks in getfull + gcw := &_g_.m.p.ptr().gcw + gcDrain(gcw, gcDrainBlock) // blocks in getfull gcw.dispose() } diff --git a/src/runtime/mgcwork.go b/src/runtime/mgcwork.go index e97039bed6..35bc12db22 100644 --- a/src/runtime/mgcwork.go +++ b/src/runtime/mgcwork.go @@ -44,14 +44,6 @@ func (wp wbufptr) ptr() *workbuf { // // A gcWork can be used on the stack as follows: // -// var gcw gcWork -// disable preemption -// .. call gcw.put() to produce and gcw.get() to consume .. -// gcw.dispose() -// enable preemption -// -// Or from the per-P gcWork cache: -// // (preemption must be disabled) // gcw := &getg().m.p.ptr().gcw // .. call gcw.put() to produce and gcw.get() to consume .. From 4eb33f6b8d6d1de70d7c08ab1258dd2852ecebe4 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Thu, 21 Jan 2016 13:44:16 -0500 Subject: [PATCH 053/101] runtime: eliminate a conditional branch from heapBits.bits Change-Id: I1fa5e629b2890a8509559ce4ea17b74f47d71925 Reviewed-on: https://go-review.googlesource.com/19637 Reviewed-by: Ian Lance Taylor Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot --- src/runtime/mbitmap.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/runtime/mbitmap.go b/src/runtime/mbitmap.go index 04992890a1..154fc3e0f3 100644 --- a/src/runtime/mbitmap.go +++ b/src/runtime/mbitmap.go @@ -290,7 +290,9 @@ func (h heapBits) forward(n uintptr) heapBits { // The result includes in its higher bits the bits for subsequent words // described by the same bitmap byte. func (h heapBits) bits() uint32 { - return uint32(*h.bitp) >> h.shift + // The (shift & 31) eliminates a test and conditional branch + // from the generated code. + return uint32(*h.bitp) >> (h.shift & 31) } // isMarked reports whether the heap bits have the marked bit set. From cbe849fc38a63d55d74738276baab2fbc33e0c0d Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Thu, 18 Feb 2016 09:38:49 -0500 Subject: [PATCH 054/101] runtime: eliminate unused _Genqueue state _Genqueue and _Gscanenqueue were introduced as part of the GC quiesce code. The quiesce code was removed by 197aa9e, but these states and some associated code stuck around. Remove them. Change-Id: I69df81881602d4a431556513dac2959668d27c20 Reviewed-on: https://go-review.googlesource.com/19638 Reviewed-by: Rick Hudson Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot --- src/runtime/proc.go | 20 +------------------- src/runtime/runtime2.go | 4 ++-- src/runtime/traceback.go | 1 - 3 files changed, 3 insertions(+), 22 deletions(-) diff --git a/src/runtime/proc.go b/src/runtime/proc.go index 2dc53b5b72..d9c38f9cb0 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -660,10 +660,6 @@ func casfrom_Gscanstatus(gp *g, oldval, newval uint32) { if newval == oldval&^_Gscan { success = atomic.Cas(&gp.atomicstatus, oldval, newval) } - case _Gscanenqueue: - if newval == _Gwaiting { - success = atomic.Cas(&gp.atomicstatus, oldval, newval) - } } if !success { print("runtime: casfrom_Gscanstatus failed gp=", gp, ", oldval=", hex(oldval), ", newval=", hex(newval), "\n") @@ -680,15 +676,12 @@ func casfrom_Gscanstatus(gp *g, oldval, newval uint32) { func castogscanstatus(gp *g, oldval, newval uint32) bool { switch oldval { case _Grunnable, + _Grunning, _Gwaiting, _Gsyscall: if newval == oldval|_Gscan { return atomic.Cas(&gp.atomicstatus, oldval, newval) } - case _Grunning: - if newval == _Gscanrunning || newval == _Gscanenqueue { - return atomic.Cas(&gp.atomicstatus, oldval, newval) - } } print("runtime: castogscanstatus oldval=", hex(oldval), " newval=", hex(newval), "\n") throw("castogscanstatus") @@ -843,17 +836,6 @@ func restartg(gp *g) { _Gscanwaiting, _Gscansyscall: casfrom_Gscanstatus(gp, s, s&^_Gscan) - - // Scan is now completed. - // Goroutine now needs to be made runnable. - // We put it on the global run queue; ready blocks on the global scheduler lock. - case _Gscanenqueue: - casfrom_Gscanstatus(gp, _Gscanenqueue, _Gwaiting) - if gp != getg().m.curg { - throw("processing Gscanenqueue on wrong m") - } - dropg() - ready(gp, 0) } } diff --git a/src/runtime/runtime2.go b/src/runtime/runtime2.go index 6a4dfa17b8..5f22afd863 100644 --- a/src/runtime/runtime2.go +++ b/src/runtime/runtime2.go @@ -26,7 +26,7 @@ const ( _Gwaiting // 4 _Gmoribund_unused // 5 currently unused, but hardcoded in gdb scripts _Gdead // 6 - _Genqueue // 7 Only the Gscanenqueue is used. + _Genqueue_unused // 7 currently unused _Gcopystack // 8 in this state when newstack is moving the stack // the following encode that the GC is scanning the stack and what to do when it is done _Gscan = 0x1000 // atomicstatus&~Gscan = the non-scan state, @@ -37,7 +37,7 @@ const ( _Gscanwaiting = _Gscan + _Gwaiting // 0x1004 When scanning completes make it Gwaiting // _Gscanmoribund_unused, // not possible // _Gscandead, // not possible - _Gscanenqueue = _Gscan + _Genqueue // When scanning completes make it Grunnable and put on runqueue + // _Gscanenqueue_unused // not possible ) const ( diff --git a/src/runtime/traceback.go b/src/runtime/traceback.go index b4bfe71627..1d76947380 100644 --- a/src/runtime/traceback.go +++ b/src/runtime/traceback.go @@ -645,7 +645,6 @@ var gStatusStrings = [...]string{ _Gsyscall: "syscall", _Gwaiting: "waiting", _Gdead: "dead", - _Genqueue: "enqueue", _Gcopystack: "copystack", } From a337e30620ca8557943190a988f53487ced68f05 Mon Sep 17 00:00:00 2001 From: kortschak Date: Thu, 25 Feb 2016 17:39:45 +1030 Subject: [PATCH 055/101] cmd/dist: don't run fortran test if fortran compilation fails Fixes #14498. Change-Id: I4cfab3e45898466179cefbd31c6f7f796da82363 Reviewed-on: https://go-review.googlesource.com/19874 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- misc/cgo/fortran/helloworld/helloworld.f90 | 3 +++ misc/cgo/fortran/test.bash | 22 ++++++++++++++++++++++ src/cmd/dist/test.go | 2 +- 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 misc/cgo/fortran/helloworld/helloworld.f90 create mode 100755 misc/cgo/fortran/test.bash diff --git a/misc/cgo/fortran/helloworld/helloworld.f90 b/misc/cgo/fortran/helloworld/helloworld.f90 new file mode 100644 index 0000000000..cbc34c16ef --- /dev/null +++ b/misc/cgo/fortran/helloworld/helloworld.f90 @@ -0,0 +1,3 @@ + program HelloWorldF90 + write(*,*) "Hello World!" + end program HelloWorldF90 diff --git a/misc/cgo/fortran/test.bash b/misc/cgo/fortran/test.bash new file mode 100755 index 0000000000..9350dbe2d6 --- /dev/null +++ b/misc/cgo/fortran/test.bash @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# Copyright 2016 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# This directory is intended to test the use of Fortran with cgo. + +set -e + +FC=$1 + +if ! $FC helloworld/helloworld.f90 -o main.exe >& /dev/null; then + echo "skipping Fortran test: could not build helloworld.f90 with $FC" + exit 0 +fi + +if ! go test; then + echo "FAIL: go test" + status=1 +fi + +exit $status diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go index f23eb6299f..e268e1207e 100644 --- a/src/cmd/dist/test.go +++ b/src/cmd/dist/test.go @@ -450,7 +450,7 @@ func (t *tester) registerTests() { name: "cgo_fortran", heading: "../misc/cgo/fortran", fn: func(dt *distTest) error { - t.addCmd(dt, "misc/cgo/fortran", "go", "test") + t.addCmd(dt, "misc/cgo/fortran", "./test.bash", fortran) return nil }, }) From 687abca1ea828dd4745d50c351f3b73ccd4d09be Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Fri, 15 Jan 2016 18:17:09 -0800 Subject: [PATCH 056/101] runtime: avoid using REP prefix for IndexByte REP-prefixed instructions have a large startup cost. Avoid them like the plague. benchmark old ns/op new ns/op delta BenchmarkIndexByte10-8 22.4 5.34 -76.16% Fixes #13983 Change-Id: I857e956e240fc9681d053f2584ccf24c1b272bb3 Reviewed-on: https://go-review.googlesource.com/18703 Reviewed-by: Minux Ma Run-TryBot: Keith Randall TryBot-Result: Gobot Gobot --- src/bytes/bytes_test.go | 37 +++++++++++ src/runtime/asm_amd64.s | 144 ++++++++++++++++++++-------------------- 2 files changed, 110 insertions(+), 71 deletions(-) diff --git a/src/bytes/bytes_test.go b/src/bytes/bytes_test.go index 8df62fcc6a..a412dc89b9 100644 --- a/src/bytes/bytes_test.go +++ b/src/bytes/bytes_test.go @@ -335,6 +335,41 @@ func TestIndexByteBig(t *testing.T) { } } +// test a small index across all page offsets +func TestIndexByteSmall(t *testing.T) { + b := make([]byte, 5015) // bigger than a page + // Make sure we find the correct byte even when straddling a page. + for i := 0; i <= len(b)-15; i++ { + for j := 0; j < 15; j++ { + b[i+j] = byte(100 + j) + } + for j := 0; j < 15; j++ { + p := IndexByte(b[i:i+15], byte(100+j)) + if p != j { + t.Errorf("IndexByte(%q, %d) = %d", b[i:i+15], 100+j, p) + } + } + for j := 0; j < 15; j++ { + b[i+j] = 0 + } + } + // Make sure matches outside the slice never trigger. + for i := 0; i <= len(b)-15; i++ { + for j := 0; j < 15; j++ { + b[i+j] = 1 + } + for j := 0; j < 15; j++ { + p := IndexByte(b[i:i+15], byte(0)) + if p != -1 { + t.Errorf("IndexByte(%q, %d) = %d", b[i:i+15], 0, p) + } + } + for j := 0; j < 15; j++ { + b[i+j] = 0 + } + } +} + func TestIndexRune(t *testing.T) { for _, tt := range indexRuneTests { a := []byte(tt.a) @@ -348,10 +383,12 @@ func TestIndexRune(t *testing.T) { var bmbuf []byte +func BenchmarkIndexByte10(b *testing.B) { bmIndexByte(b, IndexByte, 10) } func BenchmarkIndexByte32(b *testing.B) { bmIndexByte(b, IndexByte, 32) } func BenchmarkIndexByte4K(b *testing.B) { bmIndexByte(b, IndexByte, 4<<10) } func BenchmarkIndexByte4M(b *testing.B) { bmIndexByte(b, IndexByte, 4<<20) } func BenchmarkIndexByte64M(b *testing.B) { bmIndexByte(b, IndexByte, 64<<20) } +func BenchmarkIndexBytePortable10(b *testing.B) { bmIndexByte(b, IndexBytePortable, 10) } func BenchmarkIndexBytePortable32(b *testing.B) { bmIndexByte(b, IndexBytePortable, 32) } func BenchmarkIndexBytePortable4K(b *testing.B) { bmIndexByte(b, IndexBytePortable, 4<<10) } func BenchmarkIndexBytePortable4M(b *testing.B) { bmIndexByte(b, IndexBytePortable, 4<<20) } diff --git a/src/runtime/asm_amd64.s b/src/runtime/asm_amd64.s index 98a8e839ed..ac4630c833 100644 --- a/src/runtime/asm_amd64.s +++ b/src/runtime/asm_amd64.s @@ -1838,80 +1838,98 @@ TEXT strings·IndexByte(SB),NOSPLIT,$0-32 // AL: byte sought // R8: address to put result TEXT runtime·indexbytebody(SB),NOSPLIT,$0 - MOVQ SI, DI - - CMPQ BX, $16 - JLT small - - CMPQ BX, $32 - JA avx2 -no_avx2: - // round up to first 16-byte boundary - TESTQ $15, SI - JZ aligned - MOVQ SI, CX - ANDQ $~15, CX - ADDQ $16, CX - - // search the beginning - SUBQ SI, CX - REPN; SCASB - JZ success - -// DI is 16-byte aligned; get ready to search using SSE instructions -aligned: - // round down to last 16-byte boundary - MOVQ BX, R11 - ADDQ SI, R11 - ANDQ $~15, R11 - - // shuffle X0 around so that each byte contains c + // Shuffle X0 around so that each byte contains + // the character we're looking for. MOVD AX, X0 PUNPCKLBW X0, X0 PUNPCKLBW X0, X0 PSHUFL $0, X0, X0 - JMP condition + + CMPQ BX, $16 + JLT small + MOVQ SI, DI + + CMPQ BX, $32 + JA avx2 sse: - // move the next 16-byte chunk of the buffer into X1 - MOVO (DI), X1 - // compare bytes in X0 to X1 - PCMPEQB X0, X1 - // take the top bit of each byte in X1 and put the result in DX + LEAQ -16(SI)(BX*1), AX // AX = address of last 16 bytes + JMP sseloopentry + +sseloop: + // Move the next 16-byte chunk of the data into X1. + MOVOU (DI), X1 + // Compare bytes in X0 to X1. + PCMPEQB X0, X1 + // Take the top bit of each byte in X1 and put the result in DX. PMOVMSKB X1, DX - TESTL DX, DX - JNZ ssesuccess - ADDQ $16, DI + // Find first set bit, if any. + BSFL DX, DX + JNZ ssesuccess + // Advance to next block. + ADDQ $16, DI +sseloopentry: + CMPQ DI, AX + JB sseloop -condition: - CMPQ DI, R11 - JLT sse - - // search the end - MOVQ SI, CX - ADDQ BX, CX - SUBQ R11, CX - // if CX == 0, the zero flag will be set and we'll end up - // returning a false success - JZ failure - REPN; SCASB - JZ success + // Search the last 16-byte chunk. This chunk may overlap with the + // chunks we've already searched, but that's ok. + MOVQ AX, DI + MOVOU (AX), X1 + PCMPEQB X0, X1 + PMOVMSKB X1, DX + BSFL DX, DX + JNZ ssesuccess failure: MOVQ $-1, (R8) RET +// We've found a chunk containing the byte. +// The chunk was loaded from DI. +// The index of the matching byte in the chunk is DX. +// The start of the data is SI. +ssesuccess: + SUBQ SI, DI // Compute offset of chunk within data. + ADDQ DX, DI // Add offset of byte within chunk. + MOVQ DI, (R8) + RET + // handle for lengths < 16 small: - MOVQ BX, CX - REPN; SCASB - JZ success - MOVQ $-1, (R8) + TESTQ BX, BX + JEQ failure + + // Check if we'll load across a page boundary. + LEAQ 16(SI), AX + TESTW $0xff0, AX + JEQ endofpage + + MOVOU (SI), X1 // Load data + PCMPEQB X0, X1 // Compare target byte with each byte in data. + PMOVMSKB X1, DX // Move result bits to integer register. + BSFL DX, DX // Find first set bit. + JZ failure // No set bit, failure. + CMPL DX, BX + JAE failure // Match is past end of data. + MOVQ DX, (R8) + RET + +endofpage: + MOVOU -16(SI)(BX*1), X1 // Load data into the high end of X1. + PCMPEQB X0, X1 // Compare target byte with each byte in data. + PMOVMSKB X1, DX // Move result bits to integer register. + MOVL BX, CX + SHLL CX, DX + SHRL $16, DX // Shift desired bits down to bottom of register. + BSFL DX, DX // Find first set bit. + JZ failure // No set bit, failure. + MOVQ DX, (R8) RET avx2: CMPB runtime·support_avx2(SB), $1 - JNE no_avx2 + JNE sse MOVD AX, X0 LEAQ -32(SI)(BX*1), R11 VPBROADCASTB X0, Y1 @@ -1941,22 +1959,6 @@ avx2success: VZEROUPPER RET -// we've found the chunk containing the byte -// now just figure out which specific byte it is -ssesuccess: - // get the index of the least significant set bit - BSFW DX, DX - SUBQ SI, DI - ADDQ DI, DX - MOVQ DX, (R8) - RET - -success: - SUBQ SI, DI - SUBL $1, DI - MOVQ DI, (R8) - RET - TEXT bytes·Equal(SB),NOSPLIT,$0-49 MOVQ a_len+8(FP), BX MOVQ b_len+32(FP), CX From e0fa809f4cd219c04efb5b4d78250ab937589dca Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Thu, 25 Feb 2016 16:07:04 -0800 Subject: [PATCH 057/101] cmd/compile: rationalize (lex)?lineno handling Previously, many error messages inconsistantly used either lexlineno and lineno. In general this works out okay because they're almost always the same. The only exceptional case is after lexing a multi-line raw string literal, where lineno will be the line number of the opening quote and lexlineno is the line number of the closing quote. This CL makes the compiler's error message more consistent: - Lexer error messages related to invalid byte sequences (i.e., NUL bytes, bad UTF-8 sequences, and non-initial BOMs) are emitted at lexlineno (i.e., the source line that contains the invalid byte sequence). - All other error messages (notably the parser's "syntax errors") now use lineno. The minor change from this is that bogus input like: package ` bogus` will emit "syntax error: unexpected string literal, expecting name" error at line 1, instead of line 2. - Instead of maintaining prevlineno all the time, just record it when/where actually needed and not already available elsewhere (which turns out to be just one function). - Lastly, we remove the legacy "syntax error near ..." fallback in Yerror, now that the parser always emits more detailed syntax error messages. Change-Id: Iaf5f784223d0385fa3a5b09ef2b2ad447feab02f Reviewed-on: https://go-review.googlesource.com/19925 Reviewed-by: Robert Griesemer --- src/cmd/compile/internal/gc/go.go | 5 +++-- src/cmd/compile/internal/gc/lex.go | 19 +++++++------------ src/cmd/compile/internal/gc/parser.go | 22 ++++++++++++---------- src/cmd/compile/internal/gc/subr.go | 14 ++++---------- 4 files changed, 26 insertions(+), 34 deletions(-) diff --git a/src/cmd/compile/internal/gc/go.go b/src/cmd/compile/internal/gc/go.go index 1523c5efb3..d0e4824649 100644 --- a/src/cmd/compile/internal/gc/go.go +++ b/src/cmd/compile/internal/gc/go.go @@ -425,12 +425,13 @@ var sizeof_String int // runtime sizeof(String) var dotlist [10]Dlist // size is max depth of embeddeds +// lexlineno is the line number _after_ the most recently read rune. +// In particular, it's advanced (or rewound) as newlines are read (or unread). var lexlineno int32 +// lineno is the line number at the start of the most recently lexed token. var lineno int32 -var prevlineno int32 - var pragcgobuf string var infile string diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index 8809ac4016..a051214b9c 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -923,8 +923,6 @@ const ( ) func (l *lexer) next() { - prevlineno = lineno - nlsemi := l.nlsemi l.nlsemi = false @@ -933,12 +931,12 @@ l0: c := l.getr() for isSpace(c) { if c == '\n' && nlsemi { - // TODO(gri) we may be able avoid the ungetr and simply use lexlineno-1 below - l.ungetr(c) // for correct line number if Debug['x'] != 0 { fmt.Printf("lex: implicit semi\n") } - lineno = lexlineno + // Insert implicit semicolon on previous line, + // before the newline character. + lineno = lexlineno - 1 l.tok = ';' return } @@ -1231,9 +1229,9 @@ l0: lx: if Debug['x'] != 0 { if c > 0xff { - fmt.Printf("%v lex: TOKEN %s\n", Ctxt.Line(int(lexlineno)), lexname(c)) + fmt.Printf("%v lex: TOKEN %s\n", Ctxt.Line(int(lineno)), lexname(c)) } else { - fmt.Printf("%v lex: TOKEN '%c'\n", Ctxt.Line(int(lexlineno)), c) + fmt.Printf("%v lex: TOKEN '%c'\n", Ctxt.Line(int(lineno)), c) } } @@ -1850,8 +1848,7 @@ redo: c := obj.Bgetc(l.bin) if c < utf8.RuneSelf { if c == 0 { - // TODO(gri) do we need lineno = lexlineno here? Why not? - Yyerror("illegal NUL byte") + yyerrorl(int(lexlineno), "illegal NUL byte") return 0 } if c == '\n' && importpkg == nil { @@ -1872,15 +1869,13 @@ redo: r, w := utf8.DecodeRune(buf[:i]) if r == utf8.RuneError && w == 1 { - lineno = lexlineno // The string conversion here makes a copy for passing // to fmt.Printf, so that buf itself does not escape and // can be allocated on the stack. - Yyerror("illegal UTF-8 sequence % x", string(buf[:i])) + yyerrorl(int(lexlineno), "illegal UTF-8 sequence % x", string(buf[:i])) } if r == BOM { - // TODO(gri) can we use Yyerror here? Why not? yyerrorl(int(lexlineno), "Unicode (UTF-8) BOM in middle of file") goto redo } diff --git a/src/cmd/compile/internal/gc/parser.go b/src/cmd/compile/internal/gc/parser.go index 6165684574..25754e5663 100644 --- a/src/cmd/compile/internal/gc/parser.go +++ b/src/cmd/compile/internal/gc/parser.go @@ -110,11 +110,11 @@ func (p *parser) syntax_error(msg string) { } // Like syntax_error, but reports error at given line rather than current lexer line. -func (p *parser) syntax_error_at(lineno int32, msg string) { - defer func(lineno int32) { - lexlineno = lineno - }(lexlineno) - lexlineno = lineno +func (p *parser) syntax_error_at(lno int32, msg string) { + defer func(lno int32) { + lineno = lno + }(lineno) + lineno = lno p.syntax_error(msg) } @@ -687,7 +687,7 @@ func (p *parser) labeled_stmt(label *Node) *Node { ls = p.stmt() if ls == missing_stmt { // report error at line of ':' token - p.syntax_error_at(prevlineno, "missing statement after label") + p.syntax_error_at(label.Lineno, "missing statement after label") // we are already at the end of the labeled statement - no need to advance return missing_stmt } @@ -1609,13 +1609,15 @@ func (p *parser) new_name(sym *Sym) *Node { return nil } -func (p *parser) dcl_name(sym *Sym) *Node { +func (p *parser) dcl_name() *Node { if trace && Debug['x'] != 0 { defer p.trace("dcl_name")() } + symlineno := lineno + sym := p.sym() if sym == nil { - yyerrorl(int(prevlineno), "invalid declaration") + yyerrorl(int(symlineno), "invalid declaration") return nil } return dclname(sym) @@ -2637,9 +2639,9 @@ func (p *parser) dcl_name_list() *NodeList { defer p.trace("dcl_name_list")() } - l := list1(p.dcl_name(p.sym())) + l := list1(p.dcl_name()) for p.got(',') { - l = list(l, p.dcl_name(p.sym())) + l = list(l, p.dcl_name()) } return l } diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index b6a26489e6..0c8b4cd57f 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -109,7 +109,7 @@ func yyerrorl(line int, format string, args ...interface{}) { } } -var yyerror_lastsyntax int +var yyerror_lastsyntax int32 func Yyerror(format string, args ...interface{}) { msg := fmt.Sprintf(format, args...) @@ -117,18 +117,12 @@ func Yyerror(format string, args ...interface{}) { nsyntaxerrors++ // only one syntax error per line - if int32(yyerror_lastsyntax) == lexlineno { + if yyerror_lastsyntax == lineno { return } - yyerror_lastsyntax = int(lexlineno) + yyerror_lastsyntax = lineno - // plain "syntax error" gets "near foo" added - if msg == "syntax error" { - yyerrorl(int(lexlineno), "syntax error near %s", lexbuf.String()) - return - } - - yyerrorl(int(lexlineno), "%s", msg) + yyerrorl(int(lineno), "%s", msg) return } From a5b7a8d6dd143b5b0b9631b0281559938d542c78 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Thu, 25 Feb 2016 18:17:31 -0800 Subject: [PATCH 058/101] cmd/compile: simplify error sorting Errors have unique seq values (their index within the errors slice), so errcmp never needs to fallback to sorting by message text. Moreover, comparing by original index is exactly the purpose of using a stable sort algorithm (and sort.Stable was added in Go 1.2), so we really only need to compare by lineno. Change-Id: I7f534b72a05d899ae9788dc7ef0541dd92a8b578 Reviewed-on: https://go-review.googlesource.com/19929 Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/cmd/compile/internal/gc/subr.go | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index 0c8b4cd57f..5287626aae 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -19,7 +19,6 @@ import ( type Error struct { lineno int - seq int msg string } @@ -49,35 +48,24 @@ func adderrorname(n *Node) { func adderr(line int, format string, args ...interface{}) { errors = append(errors, Error{ - seq: len(errors), lineno: line, msg: fmt.Sprintf("%v: %s\n", Ctxt.Line(line), fmt.Sprintf(format, args...)), }) } -// errcmp sorts errors by line, then seq, then message. -type errcmp []Error +// byLineno sorts errors by lineno. +type byLineno []Error -func (x errcmp) Len() int { return len(x) } -func (x errcmp) Swap(i, j int) { x[i], x[j] = x[j], x[i] } -func (x errcmp) Less(i, j int) bool { - a := &x[i] - b := &x[j] - if a.lineno != b.lineno { - return a.lineno < b.lineno - } - if a.seq != b.seq { - return a.seq < b.seq - } - return a.msg < b.msg -} +func (x byLineno) Len() int { return len(x) } +func (x byLineno) Less(i, j int) bool { return x[i].lineno < x[j].lineno } +func (x byLineno) Swap(i, j int) { x[i], x[j] = x[j], x[i] } func Flusherrors() { bstdout.Flush() if len(errors) == 0 { return } - sort.Sort(errcmp(errors)) + sort.Stable(byLineno(errors)) for i := 0; i < len(errors); i++ { if i == 0 || errors[i].msg != errors[i-1].msg { fmt.Printf("%s", errors[i].msg) From 7b74921d561fa3e8df4242cef692987f1f5975b4 Mon Sep 17 00:00:00 2001 From: Andrew Gerrand Date: Fri, 26 Feb 2016 14:05:16 +1100 Subject: [PATCH 059/101] doc: add issue and pull request templates Fixes #14365 Change-Id: I082329fe7a1e06c774a32e0e24e5c8736bb5a037 Reviewed-on: https://go-review.googlesource.com/19877 Reviewed-by: Brad Fitzpatrick --- .github/ISSUE_TEMPLATE | 18 ++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE | 7 +++++++ 2 files changed, 25 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE create mode 100644 .github/PULL_REQUEST_TEMPLATE diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE new file mode 100644 index 0000000000..f44c6b9a36 --- /dev/null +++ b/.github/ISSUE_TEMPLATE @@ -0,0 +1,18 @@ +Please answer these questions before submitting your issue. Thanks! + +1. What version of Go are you using (`go version`)? + + +2. What operating system and processor architecture are you using (`go env`)? + + +3. What did you do? +(Use play.golang.org to provide a runnable example, if possible.) + + +4. What did you expect to see? + + +5. What did you see instead? + + diff --git a/.github/PULL_REQUEST_TEMPLATE b/.github/PULL_REQUEST_TEMPLATE new file mode 100644 index 0000000000..00014e9b86 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE @@ -0,0 +1,7 @@ +Please do not send pull requests to the golang/* repositories. + +We do, however, take contributions gladly. + +See https://golang.org/doc/contribute.html + +Thanks! From c8579e57cb1f1c32a99dd57314c5ced1a457dde3 Mon Sep 17 00:00:00 2001 From: Shenghou Ma Date: Thu, 25 Feb 2016 00:52:16 -0500 Subject: [PATCH 060/101] build: use go tool dist list Change-Id: I9b79bd301d0b75ca1f16d4a05e3cb687a8428c14 Reviewed-on: https://go-review.googlesource.com/19884 Run-TryBot: Minux Ma TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/buildall.bash | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/buildall.bash b/src/buildall.bash index f686dd8996..a322fe537a 100755 --- a/src/buildall.bash +++ b/src/buildall.bash @@ -32,13 +32,13 @@ if [ "$pattern" = "" ]; then pattern=. fi -# put linux, nacl first in the target list to get all the architectures up front. -targets="$((ls runtime | sed -n 's/^rt0_\(.*\)_\(.*\)\.s/\1-\2/p'; echo linux-386-387 linux-arm-arm5) | sort | sed -e 's|linux-mips64x|linux-mips64 linux-mips64le|' | egrep -v android-arm | egrep "$pattern" | egrep 'linux|nacl') -$(ls runtime | sed -n 's/^rt0_\(.*\)_\(.*\)\.s/\1-\2/p' | egrep -v 'android-arm|darwin-arm' | egrep "$pattern" | egrep -v 'linux|nacl')" - ./make.bash || exit 1 GOROOT="$(cd .. && pwd)" +# put linux, nacl first in the target list to get all the architectures up front. +targets="$((../bin/go tool dist list | sed -n 's/^\(.*\)\/\(.*\)/\1-\2/p'; echo linux-386-387 linux-arm-arm5) | sort | egrep -v android-arm | egrep "$pattern" | egrep 'linux|nacl') +$(../bin/go tool dist list | sed -n 's/^\(.*\)\/\(.*\)/\1-\2/p' | egrep -v 'android-arm|darwin-arm' | egrep "$pattern" | egrep -v 'linux|nacl')" + failed=false for target in $targets do From 49d1e307108c4a52e65112926ce5f1acb04fd8d7 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Thu, 25 Feb 2016 17:16:42 -0800 Subject: [PATCH 061/101] cmd/compile, go/parser: simpler binary expression parsing The existing nested loops are too tricky for me to grok and don't seem necessary. Change-Id: I75c65c8470b799d6f4cfb05bb1b4796c5d7d32e7 Reviewed-on: https://go-review.googlesource.com/19927 Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot Reviewed-by: Robert Griesemer --- src/cmd/compile/internal/gc/parser.go | 15 ++++++--------- src/go/parser/parser.go | 26 +++++++++++--------------- 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/src/cmd/compile/internal/gc/parser.go b/src/cmd/compile/internal/gc/parser.go index 25754e5663..ffa20711b7 100644 --- a/src/cmd/compile/internal/gc/parser.go +++ b/src/cmd/compile/internal/gc/parser.go @@ -1142,17 +1142,14 @@ func (p *parser) bexpr(prec int) *Node { // don't trace bexpr - only leads to overly nested trace output x := p.uexpr() - t := prectab[p.tok] - for tprec := t.prec; tprec >= prec; tprec-- { - for tprec == prec { - p.next() - y := p.bexpr(t.prec + 1) - x = Nod(t.op, x, y) - t = prectab[p.tok] - tprec = t.prec + for { + t := prectab[p.tok] + if t.prec < prec { + return x } + p.next() + x = Nod(t.op, x, p.bexpr(t.prec+1)) } - return x } func (p *parser) expr() *Node { diff --git a/src/go/parser/parser.go b/src/go/parser/parser.go index f3a26032ee..d3ef7db31e 100644 --- a/src/go/parser/parser.go +++ b/src/go/parser/parser.go @@ -1597,23 +1597,19 @@ func (p *parser) parseBinaryExpr(lhs bool, prec1 int) ast.Expr { } x := p.parseUnaryExpr(lhs) - for _, prec := p.tokPrec(); prec >= prec1; prec-- { - for { - op, oprec := p.tokPrec() - if oprec != prec { - break - } - pos := p.expect(op) - if lhs { - p.resolve(x) - lhs = false - } - y := p.parseBinaryExpr(false, prec+1) - x = &ast.BinaryExpr{X: p.checkExpr(x), OpPos: pos, Op: op, Y: p.checkExpr(y)} + for { + op, oprec := p.tokPrec() + if oprec < prec1 { + return x } + pos := p.expect(op) + if lhs { + p.resolve(x) + lhs = false + } + y := p.parseBinaryExpr(false, oprec+1) + x = &ast.BinaryExpr{X: p.checkExpr(x), OpPos: pos, Op: op, Y: p.checkExpr(y)} } - - return x } // If lhs is set and the result is an identifier, it is not resolved. From c8ae2e82c7262df1fa902b847e09f0aa776e7ccd Mon Sep 17 00:00:00 2001 From: Datong Sun Date: Sat, 20 Feb 2016 02:39:07 -0600 Subject: [PATCH 062/101] crypto/x509: better documentation for ParsePKIXPublicKey The existing documentation for ParsePKIXPublicKey is difficult to understand and the return type of the parsed public key are not mentioned explicitly. Descriptions about types of public key supported, as well as an example on how to use type assertions to determine return type of a parsed public key has been added. Fixes #14355 Change-Id: Ib9561efb34255292735742c0b3e835c4b97ac589 Reviewed-on: https://go-review.googlesource.com/19757 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/crypto/x509/example_test.go | 43 +++++++++++++++++++++++++++++++++ src/crypto/x509/x509.go | 6 +++++ 2 files changed, 49 insertions(+) diff --git a/src/crypto/x509/example_test.go b/src/crypto/x509/example_test.go index 29e7c21397..97c2ea2442 100644 --- a/src/crypto/x509/example_test.go +++ b/src/crypto/x509/example_test.go @@ -5,8 +5,12 @@ package x509_test import ( + "crypto/dsa" + "crypto/ecdsa" + "crypto/rsa" "crypto/x509" "encoding/pem" + "fmt" ) func ExampleCertificate_Verify() { @@ -89,3 +93,42 @@ yE+vPxsiUkvQHdO2fojCkY8jg70jxM+gu59tPDNbw3Uh/2Ij310FgTHsnGQMyA== panic("failed to verify certificate: " + err.Error()) } } + +func ExampleParsePKIXPublicKey() { + const pubPEM = ` +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlRuRnThUjU8/prwYxbty +WPT9pURI3lbsKMiB6Fn/VHOKE13p4D8xgOCADpdRagdT6n4etr9atzDKUSvpMtR3 +CP5noNc97WiNCggBjVWhs7szEe8ugyqF23XwpHQ6uV1LKH50m92MbOWfCtjU9p/x +qhNpQQ1AZhqNy5Gevap5k8XzRmjSldNAFZMY7Yv3Gi+nyCwGwpVtBUwhuLzgNFK/ +yDtw2WcWmUU7NuC8Q6MWvPebxVtCfVp/iQU6q60yyt6aGOBkhAX0LpKAEhKidixY +nP9PNVBvxgu3XZ4P36gZV6+ummKdBVnc3NqwBLu5+CcdRdusmHPHd5pHf4/38Z3/ +6qU2a/fPvWzceVTEgZ47QjFMTCTmCwNt29cvi7zZeQzjtwQgn4ipN9NibRH/Ax/q +TbIzHfrJ1xa2RteWSdFjwtxi9C20HUkjXSeI4YlzQMH0fPX6KCE7aVePTOnB69I/ +a9/q96DiXZajwlpq3wFctrs1oXqBp5DVrCIj8hU2wNgB7LtQ1mCtsYz//heai0K9 +PhE4X6hiE0YmeAZjR0uHl8M/5aW9xCoJ72+12kKpWAa0SFRWLy6FejNYCYpkupVJ +yecLk/4L1W0l6jQQZnWErXZYe0PNFcmwGXy1Rep83kfBRNKRy5tvocalLlwXLdUk +AIU+2GKjyT3iMuzZxxFxPFMCAwEAAQ== +-----END PUBLIC KEY-----` + + block, _ := pem.Decode([]byte(pubPEM)) + if block == nil { + panic("failed to parse PEM block containing the public key") + } + + pub, err := x509.ParsePKIXPublicKey(block.Bytes) + if err != nil { + panic("failed to parse DER encoded public key: " + err.Error()) + } + + switch pub := pub.(type) { + case *rsa.PublicKey: + fmt.Println("pub is of type RSA:", pub) + case *dsa.PublicKey: + fmt.Println("pub is of type DSA:", pub) + case *ecdsa.PublicKey: + fmt.Println("pub is of type ECDSA:", pub) + default: + panic("unknown type of public key") + } +} diff --git a/src/crypto/x509/x509.go b/src/crypto/x509/x509.go index d9288bb30e..dc793cadea 100644 --- a/src/crypto/x509/x509.go +++ b/src/crypto/x509/x509.go @@ -36,6 +36,12 @@ type pkixPublicKey struct { // ParsePKIXPublicKey parses a DER encoded public key. These values are // typically found in PEM blocks with "BEGIN PUBLIC KEY". +// +// Supported key types include RSA, DSA, and ECDSA. Unknown key +// types result in an error. +// +// On success, pub will be of type *rsa.PublicKey, *dsa.PublicKey, +// or *ecdsa.PublicKey. func ParsePKIXPublicKey(derBytes []byte) (pub interface{}, err error) { var pki publicKeyInfo if rest, err := asn1.Unmarshal(derBytes, &pki); err != nil { From 0231f5420f22c40ce9c15ef4d3f51ce0bafa7fef Mon Sep 17 00:00:00 2001 From: David Crawshaw Date: Wed, 17 Feb 2016 13:03:21 -0500 Subject: [PATCH 063/101] cmd/compile: remove uncommonType.name Reduces binary size of cmd/go by 0.5%. For #6853. Change-Id: I5a4b814049580ab5098ad252d979f80b70d8a5f9 Reviewed-on: https://go-review.googlesource.com/19694 Reviewed-by: Brad Fitzpatrick Run-TryBot: David Crawshaw TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/reflect.go | 10 ++----- src/reflect/all_test.go | 21 +++++++++++++++ src/reflect/type.go | 36 +++++++++++++++++++------- src/runtime/heapdump.go | 5 ++-- src/runtime/mfinal.go | 2 +- src/runtime/type.go | 31 +++++++++++++++++++++- 6 files changed, 84 insertions(+), 21 deletions(-) diff --git a/src/cmd/compile/internal/gc/reflect.go b/src/cmd/compile/internal/gc/reflect.go index 4fdbbd6967..b3f6b6ac55 100644 --- a/src/cmd/compile/internal/gc/reflect.go +++ b/src/cmd/compile/internal/gc/reflect.go @@ -492,16 +492,10 @@ func dextratype(sym *Sym, off int, t *Type, ptroff int) int { ot := off s := sym - if t.Sym != nil { - ot = dgostringptr(s, ot, t.Sym.Name) - if t != Types[t.Etype] && t != errortype { - ot = dgopkgpath(s, ot, t.Sym.Pkg) - } else { - ot = dgostringptr(s, ot, "") - } + if t.Sym != nil && t != Types[t.Etype] && t != errortype { + ot = dgopkgpath(s, ot, t.Sym.Pkg) } else { ot = dgostringptr(s, ot, "") - ot = dgostringptr(s, ot, "") } // slice header diff --git a/src/reflect/all_test.go b/src/reflect/all_test.go index 58090cde70..2eb4f343f9 100644 --- a/src/reflect/all_test.go +++ b/src/reflect/all_test.go @@ -5007,3 +5007,24 @@ func TestChanAlloc(t *testing.T) { // a limitation of escape analysis. If that is ever fixed the // allocs < 0.5 condition will trigger and this test should be fixed. } + +type nameTest struct { + v interface{} + want string +} + +var nameTests = []nameTest{ + {int32(0), "int32"}, + {D1{}, "D1"}, + {[]D1{}, ""}, + {(chan D1)(nil), ""}, + {(func() D1)(nil), ""}, +} + +func TestNames(t *testing.T) { + for _, test := range nameTests { + if got := TypeOf(test.v).Name(); got != test.want { + t.Errorf("%T Name()=%q, want %q", test.v, got, test.want) + } + } +} diff --git a/src/reflect/type.go b/src/reflect/type.go index 2c7c1fb30b..1367ba34e7 100644 --- a/src/reflect/type.go +++ b/src/reflect/type.go @@ -283,7 +283,6 @@ type method struct { // Using a pointer to this struct reduces the overall size required // to describe an unnamed type with no methods. type uncommonType struct { - name *string // name of type pkgPath *string // import path; nil for built-in types like int, string methods []method // methods associated with type } @@ -452,13 +451,6 @@ func (t *uncommonType) PkgPath() string { return *t.pkgPath } -func (t *uncommonType) Name() string { - if t == nil || t.name == nil { - return "" - } - return *t.name -} - func (t *rtype) String() string { return t.string } func (t *rtype) Size() uintptr { return t.size } @@ -557,8 +549,34 @@ func (t *rtype) PkgPath() string { return t.uncommonType.PkgPath() } +func hasPrefix(s, prefix string) bool { + return len(s) >= len(prefix) && s[:len(prefix)] == prefix +} + func (t *rtype) Name() string { - return t.uncommonType.Name() + if hasPrefix(t.string, "map[") { + return "" + } + if hasPrefix(t.string, "struct {") { + return "" + } + if hasPrefix(t.string, "chan ") { + return "" + } + if hasPrefix(t.string, "func(") { + return "" + } + if t.string[0] == '[' || t.string[0] == '*' { + return "" + } + i := len(t.string) - 1 + for i >= 0 { + if t.string[i] == '.' { + break + } + i-- + } + return t.string[i+1:] } func (t *rtype) ChanDir() ChanDir { diff --git a/src/runtime/heapdump.go b/src/runtime/heapdump.go index 1e1157d054..3bff36bd78 100644 --- a/src/runtime/heapdump.go +++ b/src/runtime/heapdump.go @@ -183,11 +183,12 @@ func dumptype(t *_type) { dumpint(tagType) dumpint(uint64(uintptr(unsafe.Pointer(t)))) dumpint(uint64(t.size)) - if t.x == nil || t.x.pkgpath == nil || t.x.name == nil { + if t.x == nil || t.x.pkgpath == nil { dumpstr(t._string) } else { pkgpath := stringStructOf(t.x.pkgpath) - name := stringStructOf(t.x.name) + namestr := t.name() + name := stringStructOf(&namestr) dumpint(uint64(uintptr(pkgpath.len) + 1 + uintptr(name.len))) dwrite(pkgpath.str, uintptr(pkgpath.len)) dwritebyte('.') diff --git a/src/runtime/mfinal.go b/src/runtime/mfinal.go index 778cbcb416..7d45862521 100644 --- a/src/runtime/mfinal.go +++ b/src/runtime/mfinal.go @@ -340,7 +340,7 @@ func SetFinalizer(obj interface{}, finalizer interface{}) { // ok - same type goto okarg case fint.kind&kindMask == kindPtr: - if (fint.x == nil || fint.x.name == nil || etyp.x == nil || etyp.x.name == nil) && (*ptrtype)(unsafe.Pointer(fint)).elem == ot.elem { + if (fint.x == nil || etyp.x == nil) && (*ptrtype)(unsafe.Pointer(fint)).elem == ot.elem { // ok - not same type, but both pointers, // one or the other is unnamed, and same element type, so assignable. goto okarg diff --git a/src/runtime/type.go b/src/runtime/type.go index 8304ad7b77..18c6a32ecb 100644 --- a/src/runtime/type.go +++ b/src/runtime/type.go @@ -28,6 +28,36 @@ type _type struct { x *uncommontype } +func hasPrefix(s, prefix string) bool { + return len(s) >= len(prefix) && s[:len(prefix)] == prefix +} + +func (t *_type) name() string { + if hasPrefix(t._string, "map[") { + return "" + } + if hasPrefix(t._string, "struct {") { + return "" + } + if hasPrefix(t._string, "chan ") { + return "" + } + if hasPrefix(t._string, "func(") { + return "" + } + if t._string[0] == '[' || t._string[0] == '*' { + return "" + } + i := len(t._string) - 1 + for i >= 0 { + if t._string[i] == '.' { + break + } + i-- + } + return t._string[i+1:] +} + type method struct { name *string pkgpath *string @@ -38,7 +68,6 @@ type method struct { } type uncommontype struct { - name *string pkgpath *string mhdr []method } From 3b3d58e1190f19e31bded9ab7166a736048bc24b Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Thu, 25 Feb 2016 21:01:16 -0500 Subject: [PATCH 064/101] runtime: remove workbuf logging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Early in Go 1.5 we had bugs with ownership of workbufs, so we added a system for tracing their ownership to help debug these issues. However, this system has both CPU and space overhead even when disabled, it clutters up the workbuf API, the higher level gcWork abstraction makes it very difficult to mess up the ownership of workbufs in practice, and the tracing hasn't been enabled or needed since 5b66e5d nine months ago. Hence, remove it. Benchmarks show the usual noise from changes at this level, but little overall movement. name old time/op new time/op delta XBenchGarbage-12 2.48ms ± 1% 2.47ms ± 0% -0.68% (p=0.000 n=21+21) name old time/op new time/op delta BinaryTree17-12 2.98s ± 7% 2.98s ± 6% ~ (p=0.799 n=20+20) Fannkuch11-12 2.61s ± 3% 2.55s ± 5% -2.55% (p=0.003 n=20+20) FmtFprintfEmpty-12 52.8ns ± 6% 53.6ns ± 6% ~ (p=0.228 n=20+20) FmtFprintfString-12 177ns ± 4% 177ns ± 4% ~ (p=0.280 n=20+20) FmtFprintfInt-12 162ns ± 5% 162ns ± 3% ~ (p=0.347 n=20+20) FmtFprintfIntInt-12 277ns ± 7% 273ns ± 4% -1.62% (p=0.005 n=20+20) FmtFprintfPrefixedInt-12 237ns ± 4% 242ns ± 4% +2.13% (p=0.005 n=20+20) FmtFprintfFloat-12 315ns ± 4% 312ns ± 4% -0.97% (p=0.001 n=20+20) FmtManyArgs-12 1.11µs ± 3% 1.15µs ± 4% +3.41% (p=0.004 n=20+20) GobDecode-12 8.50ms ± 7% 8.53ms ± 7% ~ (p=0.429 n=20+20) GobEncode-12 6.86ms ± 9% 6.93ms ± 7% +0.93% (p=0.030 n=20+20) Gzip-12 326ms ± 4% 329ms ± 4% +0.98% (p=0.020 n=20+20) Gunzip-12 43.3ms ± 3% 43.8ms ± 9% +1.25% (p=0.003 n=20+20) HTTPClientServer-12 72.0µs ± 3% 71.5µs ± 3% ~ (p=0.053 n=20+20) JSONEncode-12 17.0ms ± 6% 17.3ms ± 7% +1.32% (p=0.006 n=20+20) JSONDecode-12 64.2ms ± 4% 63.5ms ± 3% -1.05% (p=0.005 n=20+20) Mandelbrot200-12 4.00ms ± 3% 3.99ms ± 3% ~ (p=0.121 n=20+20) GoParse-12 3.74ms ± 5% 3.75ms ± 9% ~ (p=0.383 n=20+20) RegexpMatchEasy0_32-12 104ns ± 4% 104ns ± 6% ~ (p=0.392 n=20+20) RegexpMatchEasy0_1K-12 358ns ± 3% 361ns ± 4% +0.95% (p=0.003 n=20+20) RegexpMatchEasy1_32-12 86.3ns ± 5% 86.1ns ± 6% ~ (p=0.614 n=20+20) RegexpMatchEasy1_1K-12 523ns ± 4% 518ns ± 3% -1.14% (p=0.008 n=20+20) RegexpMatchMedium_32-12 137ns ± 3% 134ns ± 4% -1.90% (p=0.005 n=20+20) RegexpMatchMedium_1K-12 41.0µs ± 3% 40.6µs ± 4% -1.11% (p=0.004 n=20+20) RegexpMatchHard_32-12 2.13µs ± 4% 2.11µs ± 5% -1.31% (p=0.014 n=20+20) RegexpMatchHard_1K-12 64.1µs ± 3% 63.2µs ± 5% -1.38% (p=0.005 n=20+20) Revcomp-12 555ms ±10% 548ms ± 7% -1.17% (p=0.011 n=20+20) Template-12 84.2ms ± 5% 88.2ms ± 4% +4.73% (p=0.000 n=20+20) TimeParse-12 365ns ± 4% 371ns ± 5% +1.77% (p=0.002 n=20+20) TimeFormat-12 361ns ± 4% 365ns ± 3% +1.08% (p=0.002 n=20+20) [Geo mean] 64.7µs 64.8µs +0.19% Change-Id: Ib043a7a0d18b588b298873d60913d44cd19f3b44 Reviewed-on: https://go-review.googlesource.com/19887 Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick Reviewed-by: Rick Hudson --- src/runtime/mgcwork.go | 105 ++++++++++------------------------------- 1 file changed, 25 insertions(+), 80 deletions(-) diff --git a/src/runtime/mgcwork.go b/src/runtime/mgcwork.go index 35bc12db22..7bc4278195 100644 --- a/src/runtime/mgcwork.go +++ b/src/runtime/mgcwork.go @@ -11,8 +11,7 @@ import ( ) const ( - _Debugwbufs = false // if true check wbufs consistency - _WorkbufSize = 2048 // in bytes; larger values result in less contention + _WorkbufSize = 2048 // in bytes; larger values result in less contention ) // Garbage collector work pool abstraction. @@ -86,10 +85,10 @@ type gcWork struct { } func (w *gcWork) init() { - w.wbuf1 = wbufptrOf(getempty(101)) - wbuf2 := trygetfull(102) + w.wbuf1 = wbufptrOf(getempty()) + wbuf2 := trygetfull() if wbuf2 == nil { - wbuf2 = getempty(103) + wbuf2 = getempty() } w.wbuf2 = wbufptrOf(wbuf2) } @@ -107,8 +106,8 @@ func (w *gcWork) put(obj uintptr) { w.wbuf1, w.wbuf2 = w.wbuf2, w.wbuf1 wbuf = w.wbuf1.ptr() if wbuf.nobj == len(wbuf.obj) { - putfull(wbuf, 132) - wbuf = getempty(133) + putfull(wbuf) + wbuf = getempty() w.wbuf1 = wbufptrOf(wbuf) } } @@ -135,11 +134,11 @@ func (w *gcWork) tryGet() uintptr { wbuf = w.wbuf1.ptr() if wbuf.nobj == 0 { owbuf := wbuf - wbuf = trygetfull(167) + wbuf = trygetfull() if wbuf == nil { return 0 } - putempty(owbuf, 166) + putempty(owbuf) w.wbuf1 = wbufptrOf(wbuf) } } @@ -164,11 +163,11 @@ func (w *gcWork) get() uintptr { wbuf = w.wbuf1.ptr() if wbuf.nobj == 0 { owbuf := wbuf - wbuf = getfull(185) + wbuf = getfull() if wbuf == nil { return 0 } - putempty(owbuf, 184) + putempty(owbuf) w.wbuf1 = wbufptrOf(wbuf) } } @@ -189,17 +188,17 @@ func (w *gcWork) get() uintptr { func (w *gcWork) dispose() { if wbuf := w.wbuf1.ptr(); wbuf != nil { if wbuf.nobj == 0 { - putempty(wbuf, 212) + putempty(wbuf) } else { - putfull(wbuf, 214) + putfull(wbuf) } w.wbuf1 = 0 wbuf = w.wbuf2.ptr() if wbuf.nobj == 0 { - putempty(wbuf, 218) + putempty(wbuf) } else { - putfull(wbuf, 220) + putfull(wbuf) } w.wbuf2 = 0 } @@ -225,8 +224,8 @@ func (w *gcWork) balance() { return } if wbuf := w.wbuf2.ptr(); wbuf.nobj != 0 { - putfull(wbuf, 246) - w.wbuf2 = wbufptrOf(getempty(247)) + putfull(wbuf) + w.wbuf2 = wbufptrOf(getempty()) } else if wbuf := w.wbuf1.ptr(); wbuf.nobj > 4 { w.wbuf1 = wbufptrOf(handoff(wbuf)) } @@ -243,10 +242,8 @@ func (w *gcWork) empty() bool { // avoid contending on the global work buffer lists. type workbufhdr struct { - node lfnode // must be first - nobj int - inuse bool // This workbuf is in use by some goroutine and is not on the work.empty/full queues. - log [4]int // line numbers forming a history of ownership changes to workbuf + node lfnode // must be first + nobj int } type workbuf struct { @@ -259,69 +256,23 @@ type workbuf struct { // workbufs. // If the GC asks for some work these are the only routines that // make wbufs available to the GC. -// Each of the gets and puts also take an distinct integer that is used -// to record a brief history of changes to ownership of the workbuf. -// The convention is to use a unique line number but any encoding -// is permissible. For example if you want to pass in 2 bits of information -// you could simple add lineno1*100000+lineno2. - -// logget records the past few values of entry to aid in debugging. -// logget checks the buffer b is not currently in use. -func (b *workbuf) logget(entry int) { - if !_Debugwbufs { - return - } - if b.inuse { - println("runtime: logget fails log entry=", entry, - "b.log[0]=", b.log[0], "b.log[1]=", b.log[1], - "b.log[2]=", b.log[2], "b.log[3]=", b.log[3]) - throw("logget: get not legal") - } - b.inuse = true - copy(b.log[1:], b.log[:]) - b.log[0] = entry -} - -// logput records the past few values of entry to aid in debugging. -// logput checks the buffer b is currently in use. -func (b *workbuf) logput(entry int) { - if !_Debugwbufs { - return - } - if !b.inuse { - println("runtime: logput fails log entry=", entry, - "b.log[0]=", b.log[0], "b.log[1]=", b.log[1], - "b.log[2]=", b.log[2], "b.log[3]=", b.log[3]) - throw("logput: put not legal") - } - b.inuse = false - copy(b.log[1:], b.log[:]) - b.log[0] = entry -} func (b *workbuf) checknonempty() { if b.nobj == 0 { - println("runtime: nonempty check fails", - "b.log[0]=", b.log[0], "b.log[1]=", b.log[1], - "b.log[2]=", b.log[2], "b.log[3]=", b.log[3]) throw("workbuf is empty") } } func (b *workbuf) checkempty() { if b.nobj != 0 { - println("runtime: empty check fails", - "b.log[0]=", b.log[0], "b.log[1]=", b.log[1], - "b.log[2]=", b.log[2], "b.log[3]=", b.log[3]) throw("workbuf is not empty") } } // getempty pops an empty work buffer off the work.empty list, // allocating new buffers if none are available. -// entry is used to record a brief history of ownership. //go:nowritebarrier -func getempty(entry int) *workbuf { +func getempty() *workbuf { var b *workbuf if work.empty != 0 { b = (*workbuf)(lfstackpop(&work.empty)) @@ -332,16 +283,14 @@ func getempty(entry int) *workbuf { if b == nil { b = (*workbuf)(persistentalloc(unsafe.Sizeof(*b), sys.CacheLineSize, &memstats.gc_sys)) } - b.logget(entry) return b } // putempty puts a workbuf onto the work.empty list. // Upon entry this go routine owns b. The lfstackpush relinquishes ownership. //go:nowritebarrier -func putempty(b *workbuf, entry int) { +func putempty(b *workbuf) { b.checkempty() - b.logput(entry) lfstackpush(&work.empty, &b.node) } @@ -349,9 +298,8 @@ func putempty(b *workbuf, entry int) { // putfull accepts partially full buffers so the GC can avoid competing // with the mutators for ownership of partially full buffers. //go:nowritebarrier -func putfull(b *workbuf, entry int) { +func putfull(b *workbuf) { b.checknonempty() - b.logput(entry) lfstackpush(&work.full, &b.node) // We just made more work available. Let the GC controller @@ -364,10 +312,9 @@ func putfull(b *workbuf, entry int) { // trygetfull tries to get a full or partially empty workbuffer. // If one is not immediately available return nil //go:nowritebarrier -func trygetfull(entry int) *workbuf { +func trygetfull() *workbuf { b := (*workbuf)(lfstackpop(&work.full)) if b != nil { - b.logget(entry) b.checknonempty() return b } @@ -386,10 +333,9 @@ func trygetfull(entry int) *workbuf { // This is in fact the termination condition for the STW mark // phase. //go:nowritebarrier -func getfull(entry int) *workbuf { +func getfull() *workbuf { b := (*workbuf)(lfstackpop(&work.full)) if b != nil { - b.logget(entry) b.checknonempty() return b } @@ -408,7 +354,6 @@ func getfull(entry int) *workbuf { } b = (*workbuf)(lfstackpop(&work.full)) if b != nil { - b.logget(entry) b.checknonempty() return b } @@ -438,7 +383,7 @@ func getfull(entry int) *workbuf { //go:nowritebarrier func handoff(b *workbuf) *workbuf { // Make new buffer with half of b's pointers. - b1 := getempty(915) + b1 := getempty() n := b.nobj / 2 b.nobj -= n b1.nobj = n @@ -448,6 +393,6 @@ func handoff(b *workbuf) *workbuf { _g_.m.gcstats.nhandoffcnt += uint64(n) // Put b on full list - let first half of b get stolen. - putfull(b, 942) + putfull(b) return b1 } From bdc14698f8b79e9629a8321d4f904c3275f8ffed Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 26 Feb 2016 10:43:09 +0100 Subject: [PATCH 065/101] runtime: unwire g/m in dropg always Currently dropg does not unwire locked g/m. This is unnecessary distiction between locked and non-locked g/m. We always restart goroutines with execute which re-wires g/m. First, this produces false sense that this distinction is necessary. Second, it can confuse some sanity and cross checks. For example, if we check that g/m are unwired before we wire them in execute, the check will fail for locked g/m. I've hit this while doing some race detector changes, When we deschedule a goroutine and run scheduler code, m.curg is generally nil, but not for locked ms. Remove the distinction. Change-Id: I3b87a28ff343baa1d564aab1f821b582a84dee07 Reviewed-on: https://go-review.googlesource.com/19950 Reviewed-by: Austin Clements Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot --- src/runtime/proc.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/runtime/proc.go b/src/runtime/proc.go index d9c38f9cb0..16237e98ec 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -2081,10 +2081,8 @@ top: func dropg() { _g_ := getg() - if _g_.m.lockedg == nil { - _g_.m.curg.m = nil - _g_.m.curg = nil - } + _g_.m.curg.m = nil + _g_.m.curg = nil } func parkunlock_c(gp *g, lock unsafe.Pointer) bool { From 9f26170a02327c7e03dff148faf278866a79f8b4 Mon Sep 17 00:00:00 2001 From: Rick Arnold Date: Thu, 25 Feb 2016 22:24:07 -0500 Subject: [PATCH 066/101] net/url: support query string without values Previously, RawQuery was used to indicate the presence of a query string in url.URL. However, this approach was not able to differentiate between URLs that have no query string at all (http://foo.bar/) and those that have a query with no values (http://foo.bar/?). Add a ForceQuery field to indicate the latter form of URL and use it in URL.String to create a matching URL with a trailing '?'. Fixes #13488 Change-Id: Ifac663c73d35759bc6c33a00f84ab116b9b81684 Reviewed-on: https://go-review.googlesource.com/19931 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/net/url/url.go | 28 +++++++++++++++++----------- src/net/url/url_test.go | 22 ++++++++++++++++++++++ 2 files changed, 39 insertions(+), 11 deletions(-) diff --git a/src/net/url/url.go b/src/net/url/url.go index b3513a85a3..48119f4a5d 100644 --- a/src/net/url/url.go +++ b/src/net/url/url.go @@ -307,14 +307,15 @@ func escape(s string, mode encoding) string { // construct a URL struct directly and set the Opaque field instead of Path. // These still work as well. type URL struct { - Scheme string - Opaque string // encoded opaque data - User *Userinfo // username and password information - Host string // host or host:port - Path string - RawPath string // encoded path hint (Go 1.5 and later only; see EscapedPath method) - RawQuery string // encoded query values, without '?' - Fragment string // fragment for references, without '#' + Scheme string + Opaque string // encoded opaque data + User *Userinfo // username and password information + Host string // host or host:port + Path string + RawPath string // encoded path hint (Go 1.5 and later only; see EscapedPath method) + ForceQuery bool // append a query ('?') even if RawQuery is empty + RawQuery string // encoded query values, without '?' + Fragment string // fragment for references, without '#' } // User returns a Userinfo containing the provided username @@ -459,7 +460,12 @@ func parse(rawurl string, viaRequest bool) (url *URL, err error) { } url.Scheme = strings.ToLower(url.Scheme) - rest, url.RawQuery = split(rest, "?", true) + if strings.HasSuffix(rest, "?") { + url.ForceQuery = true + rest = rest[:len(rest)-1] + } else { + rest, url.RawQuery = split(rest, "?", true) + } if !strings.HasPrefix(rest, "/") { if url.Scheme != "" { @@ -684,7 +690,7 @@ func (u *URL) String() string { } buf.WriteString(path) } - if u.RawQuery != "" { + if u.ForceQuery || u.RawQuery != "" { buf.WriteByte('?') buf.WriteString(u.RawQuery) } @@ -913,7 +919,7 @@ func (u *URL) RequestURI() string { result = u.Scheme + ":" + result } } - if u.RawQuery != "" { + if u.ForceQuery || u.RawQuery != "" { result += "?" + u.RawQuery } return result diff --git a/src/net/url/url_test.go b/src/net/url/url_test.go index d3f8487bd7..a3088ec0a3 100644 --- a/src/net/url/url_test.go +++ b/src/net/url/url_test.go @@ -72,6 +72,17 @@ var urltests = []URLTest{ }, "ftp://john%20doe@www.google.com/", }, + // empty query + { + "http://www.google.com/?", + &URL{ + Scheme: "http", + Host: "www.google.com", + Path: "/", + ForceQuery: true, + }, + "", + }, // query { "http://www.google.com/?q=go+language", @@ -874,11 +885,13 @@ var resolveReferenceTests = []struct { // Absolute URL references {"http://foo.com?a=b", "https://bar.com/", "https://bar.com/"}, {"http://foo.com/", "https://bar.com/?a=b", "https://bar.com/?a=b"}, + {"http://foo.com/", "https://bar.com/?", "https://bar.com/?"}, {"http://foo.com/bar", "mailto:foo@example.com", "mailto:foo@example.com"}, // Path-absolute references {"http://foo.com/bar", "/baz", "http://foo.com/baz"}, {"http://foo.com/bar?a=b#f", "/baz", "http://foo.com/baz"}, + {"http://foo.com/bar?a=b", "/baz?", "http://foo.com/baz?"}, {"http://foo.com/bar?a=b", "/baz?c=d", "http://foo.com/baz?c=d"}, // Scheme-relative @@ -1217,6 +1230,15 @@ var requritests = []RequestURITest{ }, "//foo", }, + { + &URL{ + Scheme: "http", + Host: "example.com", + Path: "/foo", + ForceQuery: true, + }, + "/foo?", + }, } func TestRequestURI(t *testing.T) { From e1035c5e878c0aae938f4ee933055d4333c5cbe5 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 26 Feb 2016 16:14:31 +0100 Subject: [PATCH 067/101] sync/atomic: reduce test in short mode In normal mode the test runs for 9+ seconds on my machine (48 cores). But the real problem is race mode, in race mode it hits 10m test timeout. Reduce test size in short mode. Now it runs for 100ms without race. Change-Id: I9493a0e84f630b930af8f958e2920025df37c268 Reviewed-on: https://go-review.googlesource.com/19956 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/sync/atomic/value_test.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/sync/atomic/value_test.go b/src/sync/atomic/value_test.go index 382dc6854d..fd90451dd8 100644 --- a/src/sync/atomic/value_test.go +++ b/src/sync/atomic/value_test.go @@ -86,6 +86,11 @@ func TestValueConcurrent(t *testing.T) { {complex(0, 0), complex(1, 2), complex(3, 4), complex(5, 6)}, } p := 4 * runtime.GOMAXPROCS(0) + N := int(1e5) + if testing.Short() { + p /= 2 + N = 1e3 + } for _, test := range tests { var v Value done := make(chan bool) @@ -93,7 +98,7 @@ func TestValueConcurrent(t *testing.T) { go func() { r := rand.New(rand.NewSource(rand.Int63())) loop: - for j := 0; j < 1e5; j++ { + for j := 0; j < N; j++ { x := test[r.Intn(len(test))] v.Store(x) x = v.Load() From c2d3e1123c2f49aab02260f125a940ed723e42a0 Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Sat, 20 Feb 2016 18:36:03 -0200 Subject: [PATCH 068/101] cmd/go: better error for test functions with wrong signature Check the function types before compiling the tests. Extend the same approach taken by the type check used for TestMain function. To keep existing behavior, wrong arguments for TestMain are ignored instead of causing an error. Fixes #14226. Change-Id: I488a2555cddb273d35c1a8c4645bb5435c9eb91d Reviewed-on: https://go-review.googlesource.com/19763 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/cmd/go/test.go | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/cmd/go/test.go b/src/cmd/go/test.go index 995ba146f5..e23f939255 100644 --- a/src/cmd/go/test.go +++ b/src/cmd/go/test.go @@ -1206,11 +1206,11 @@ func (b *builder) notest(a *action) error { return nil } -// isTestMain tells whether fn is a TestMain(m *testing.M) function. -func isTestMain(fn *ast.FuncDecl) bool { - if fn.Name.String() != "TestMain" || - fn.Type.Results != nil && len(fn.Type.Results.List) > 0 || - fn.Type.Params == nil || +// isTestFunc tells whether fn has the type of a testing function. arg +// specifies the parameter type we look for: B, M or T. +func isTestFunc(fn *ast.FuncDecl, arg string) bool { + if fn.Type.Results != nil && len(fn.Type.Results.List) > 0 || + fn.Type.Params.List == nil || len(fn.Type.Params.List) != 1 || len(fn.Type.Params.List[0].Names) > 1 { return false @@ -1222,10 +1222,11 @@ func isTestMain(fn *ast.FuncDecl) bool { // We can't easily check that the type is *testing.M // because we don't know how testing has been imported, // but at least check that it's *M or *something.M. - if name, ok := ptr.X.(*ast.Ident); ok && name.Name == "M" { + // Same applies for B and T. + if name, ok := ptr.X.(*ast.Ident); ok && name.Name == arg { return true } - if sel, ok := ptr.X.(*ast.SelectorExpr); ok && sel.Sel.Name == "M" { + if sel, ok := ptr.X.(*ast.SelectorExpr); ok && sel.Sel.Name == arg { return true } return false @@ -1344,16 +1345,22 @@ func (t *testFuncs) load(filename, pkg string, doImport, seen *bool) error { } name := n.Name.String() switch { - case isTestMain(n): + case name == "TestMain" && isTestFunc(n, "M"): if t.TestMain != nil { return errors.New("multiple definitions of TestMain") } t.TestMain = &testFunc{pkg, name, ""} *doImport, *seen = true, true case isTest(name, "Test"): + if !isTestFunc(n, "T") { + return fmt.Errorf("wrong type for %s", name) + } t.Tests = append(t.Tests, testFunc{pkg, name, ""}) *doImport, *seen = true, true case isTest(name, "Benchmark"): + if !isTestFunc(n, "B") { + return fmt.Errorf("wrong type for %s", name) + } t.Benchmarks = append(t.Benchmarks, testFunc{pkg, name, ""}) *doImport, *seen = true, true } From 90fea9d09ac9876147c7223884a09357c3418ed2 Mon Sep 17 00:00:00 2001 From: Derek Shockey Date: Tue, 23 Feb 2016 21:17:25 -0800 Subject: [PATCH 069/101] misc/git: Fix non-literal period in pre-commit grep Looks like this was intended to match a literal period to restrict this to `.go` files, but in POSIX grep, the unescaped period matches any character. Change-Id: I20e00323baa9e9631792eff5035966297665bbee Reviewed-on: https://go-review.googlesource.com/19880 Reviewed-by: Brad Fitzpatrick --- misc/git/pre-commit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/git/pre-commit b/misc/git/pre-commit index 18b7f832f3..242159f04a 100755 --- a/misc/git/pre-commit +++ b/misc/git/pre-commit @@ -10,7 +10,7 @@ # # This script does not handle file names that contain spaces. -gofiles=$(git diff --cached --name-only --diff-filter=ACM | grep '.go$') +gofiles=$(git diff --cached --name-only --diff-filter=ACM | grep '\.go$') [ -z "$gofiles" ] && exit 0 unformatted=$(gofmt -l $gofiles) From 8d94b9b820b093a32b7eb83d6481bc3da7ca276e Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 25 Feb 2016 21:16:45 -0800 Subject: [PATCH 070/101] runtime: more deflaking of TestCgoCheckBytes Fixes #14519. Change-Id: I8f78f67a463e6467e09df90446f7ebd28789d6c9 Reviewed-on: https://go-review.googlesource.com/19933 Reviewed-by: Brad Fitzpatrick Run-TryBot: Ian Lance Taylor --- src/runtime/crash_cgo_test.go | 36 +++++++++++++++++-------- src/runtime/testdata/testprogcgo/cgo.go | 14 ++++++++-- 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/src/runtime/crash_cgo_test.go b/src/runtime/crash_cgo_test.go index 635e271d5d..00686ee755 100644 --- a/src/runtime/crash_cgo_test.go +++ b/src/runtime/crash_cgo_test.go @@ -7,6 +7,7 @@ package runtime_test import ( + "fmt" "internal/testenv" "os/exec" "runtime" @@ -161,22 +162,35 @@ func TestCgoCheckBytes(t *testing.T) { t.Fatal(err) } - cmd := testEnv(exec.Command(exe, "CgoCheckBytes")) - cmd.Env = append(cmd.Env, "GODEBUG=cgocheck=0") + // Try it 10 times to avoid flakiness. + const tries = 10 + var tot1, tot2 time.Duration + for i := 0; i < tries; i++ { + cmd := testEnv(exec.Command(exe, "CgoCheckBytes")) + cmd.Env = append(cmd.Env, "GODEBUG=cgocheck=0", fmt.Sprintf("GO_CGOCHECKBYTES_TRY=%d", i)) - start := time.Now() - cmd.Run() - d1 := time.Since(start) + start := time.Now() + cmd.Run() + d1 := time.Since(start) - cmd = testEnv(exec.Command(exe, "CgoCheckBytes")) + cmd = testEnv(exec.Command(exe, "CgoCheckBytes")) + cmd.Env = append(cmd.Env, fmt.Sprintf("GO_CGOCHECKBYTES_TRY=%d", i)) - start = time.Now() - cmd.Run() - d2 := time.Since(start) + start = time.Now() + cmd.Run() + d2 := time.Since(start) - if d1*20 < d2 { - t.Errorf("cgo check too slow: got %v, expected at most %v", d1, d2*10) + if d1*20 > d2 { + // The slow version (d2) was less than 20 times + // slower than the fast version (d1), so OK. + return + } + + tot1 += d1 + tot2 += d2 } + + t.Errorf("cgo check too slow: got %v, expected at most %v", tot2/tries, (tot1/tries)*20) } func TestCgoPanicDeadlock(t *testing.T) { diff --git a/src/runtime/testdata/testprogcgo/cgo.go b/src/runtime/testdata/testprogcgo/cgo.go index 5d2550dbb0..7a2e013d43 100644 --- a/src/runtime/testdata/testprogcgo/cgo.go +++ b/src/runtime/testdata/testprogcgo/cgo.go @@ -11,7 +11,9 @@ void foo2(void* p) {} import "C" import ( "fmt" + "os" "runtime" + "strconv" "time" "unsafe" ) @@ -83,8 +85,16 @@ func CgoTraceback() { } func CgoCheckBytes() { - b := make([]byte, 1e6) - for i := 0; i < 1e3; i++ { + try, _ := strconv.Atoi(os.Getenv("GO_CGOCHECKBYTES_TRY")) + if try <= 0 { + try = 1 + } + b := make([]byte, 1e6*try) + start := time.Now() + for i := 0; i < 1e3*try; i++ { C.foo2(unsafe.Pointer(&b[0])) + if time.Since(start) > time.Second { + break + } } } From c747fce242ec46316db17df14e65b0fe23e2c1f1 Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Thu, 25 Feb 2016 19:17:55 -0800 Subject: [PATCH 071/101] cmd/internal/obj: Fix generation of assembly with -S We can't drop Prog entries when we want to print disassembly. Added a test for -S. Fixes #14515 Change-Id: I44c72f70f7a3919acc01c559d30335d26669e76f Reviewed-on: https://go-review.googlesource.com/19930 Reviewed-by: Matthew Dempsky Reviewed-by: Brad Fitzpatrick Run-TryBot: Keith Randall TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/global_test.go | 51 ++++++++++++++++++++++ src/cmd/internal/obj/objfile.go | 8 ++-- 2 files changed, 56 insertions(+), 3 deletions(-) diff --git a/src/cmd/compile/internal/gc/global_test.go b/src/cmd/compile/internal/gc/global_test.go index 6c388aff7c..80781e61a8 100644 --- a/src/cmd/compile/internal/gc/global_test.go +++ b/src/cmd/compile/internal/gc/global_test.go @@ -12,6 +12,7 @@ import ( "os" "os/exec" "path" + "strings" "testing" ) @@ -62,3 +63,53 @@ func main() { log.Fatalf("scanf code not removed from helloworld") } } + +// Make sure -S prints assembly code. See issue 14515. +func TestDashS(t *testing.T) { + testenv.MustHaveGoBuild(t) + + // Make a directory to work in. + dir, err := ioutil.TempDir("", "issue14515-") + if err != nil { + log.Fatalf("could not create directory: %v", err) + } + defer os.RemoveAll(dir) + + // Create source. + src := path.Join(dir, "test.go") + f, err := os.Create(src) + if err != nil { + log.Fatalf("could not create source file: %v", err) + } + f.Write([]byte(` +package main +import "fmt" +func main() { + fmt.Println("hello world") +} +`)) + f.Close() + + // Compile source. + cmd := exec.Command("go", "build", "-gcflags", "-S", src) + out, err := cmd.CombinedOutput() + if err != nil { + log.Fatalf("could not build target: %v", err) + } + + patterns := []string{ + // It is hard to look for actual instructions in an + // arch-independent way. So we'll just look for + // pseudo-ops that are arch-independent. + "\tTEXT\t", + "\tFUNCDATA\t", + "\tPCDATA\t", + } + outstr := string(out) + for _, p := range patterns { + if !strings.Contains(outstr, p) { + println(outstr) + panic("can't find pattern " + p) + } + } +} diff --git a/src/cmd/internal/obj/objfile.go b/src/cmd/internal/obj/objfile.go index 6757067dd6..33330b472e 100644 --- a/src/cmd/internal/obj/objfile.go +++ b/src/cmd/internal/obj/objfile.go @@ -116,7 +116,7 @@ func Writeobjdirect(ctxt *Link, b *Biobuf) { } func Flushplist(ctxt *Link) { - flushplist(ctxt, true) + flushplist(ctxt, ctxt.Debugasm == 0) } func FlushplistNoFree(ctxt *Link) { flushplist(ctxt, false) @@ -308,8 +308,10 @@ func flushplist(ctxt *Link, freeProgs bool) { ctxt.Arch.Assemble(ctxt, s) fieldtrack(ctxt, s) linkpcln(ctxt, s) - s.Text = nil - s.Etext = nil + if freeProgs { + s.Text = nil + s.Etext = nil + } } // Add to running list in ctxt. From ee177279a00398d7a986fbaa1db527845c6a888b Mon Sep 17 00:00:00 2001 From: "Jeff R. Allen" Date: Sun, 16 Aug 2015 14:59:23 +0200 Subject: [PATCH 072/101] misc/cgo: fix wrong quote character Single quotes to not expand variables inside of them. Change-Id: I4a0622c0aebfc1c3f9d299f93f7a8253893b5858 Reviewed-on: https://go-review.googlesource.com/13661 Reviewed-by: Ian Lance Taylor --- misc/cgo/testcshared/test.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/cgo/testcshared/test.bash b/misc/cgo/testcshared/test.bash index 23c97675bb..c5c49a10e1 100755 --- a/misc/cgo/testcshared/test.bash +++ b/misc/cgo/testcshared/test.bash @@ -10,7 +10,7 @@ set -e if [ ! -f src/libgo/libgo.go ]; then cwd=$(pwd) - echo 'misc/cgo/testcshared/test.bash is running in $cwd' 1>&2 + echo "misc/cgo/testcshared/test.bash is running in $cwd" 1>&2 exit 1 fi From ddfe7b3dc00291862f33224b68ffdad0ef4001ab Mon Sep 17 00:00:00 2001 From: Michael McConville Date: Sat, 2 Jan 2016 20:50:57 -0500 Subject: [PATCH 073/101] crypto/rand: use the getentropy syscall on OpenBSD Go already supports Linux's getrandom, which is a slightly modified version of getentropy. getentropy was added in OpenBSD 5.6. All supported versions of OpenBSD include it so, unlike with Linux and getrandom, we don't need to test for its presence. Fixes #13785. Change-Id: Ib536b96675f257cd8c5de1e3a36165e15c9abac9 Reviewed-on: https://go-review.googlesource.com/18219 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/crypto/rand/rand.go | 3 +- src/crypto/rand/rand_openbsd.go | 28 +++++++++++++++++++ .../syscall/unix/getentropy_openbsd.go | 25 +++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 src/crypto/rand/rand_openbsd.go create mode 100644 src/internal/syscall/unix/getentropy_openbsd.go diff --git a/src/crypto/rand/rand.go b/src/crypto/rand/rand.go index ee32fa0bd6..5e48fc9cd9 100644 --- a/src/crypto/rand/rand.go +++ b/src/crypto/rand/rand.go @@ -11,8 +11,9 @@ import "io" // Reader is a global, shared instance of a cryptographically // strong pseudo-random generator. // -// On Unix-like systems, Reader reads from /dev/urandom. // On Linux, Reader uses getrandom(2) if available, /dev/urandom otherwise. +// On OpenBSD, Reader uses getentropy(2). +// On other Unix-like systems, Reader reads from /dev/urandom. // On Windows systems, Reader uses the CryptGenRandom API. var Reader io.Reader diff --git a/src/crypto/rand/rand_openbsd.go b/src/crypto/rand/rand_openbsd.go new file mode 100644 index 0000000000..405c091060 --- /dev/null +++ b/src/crypto/rand/rand_openbsd.go @@ -0,0 +1,28 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package rand + +import ( + "internal/syscall/unix" +) + +func init() { + altGetRandom = getRandomOpenBSD +} + +func getRandomOpenBSD(p []byte) (ok bool) { + // getentropy(2) returns a maximum of 256 bytes per call + for i := 0; i < len(p); i += 256 { + end := i + 256 + if len(p) < end { + end = len(p) + } + err := unix.GetEntropy(p[i:end]) + if err != nil { + return false + } + } + return true +} diff --git a/src/internal/syscall/unix/getentropy_openbsd.go b/src/internal/syscall/unix/getentropy_openbsd.go new file mode 100644 index 0000000000..fd3dabc3f2 --- /dev/null +++ b/src/internal/syscall/unix/getentropy_openbsd.go @@ -0,0 +1,25 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +import ( + "syscall" + "unsafe" +) + +// getentropy(2)'s syscall number, from /usr/src/sys/kern/syscalls.master +const entropyTrap uintptr = 7 + +// GetEntropy calls the OpenBSD getentropy system call. +func GetEntropy(p []byte) error { + _, _, errno := syscall.Syscall(entropyTrap, + uintptr(unsafe.Pointer(&p[0])), + uintptr(len(p)), + 0) + if errno != 0 { + return errno + } + return nil +} From 763e8fcc8931b44db77f7bcbc7b6943a2a8fb747 Mon Sep 17 00:00:00 2001 From: Richard Miller Date: Wed, 27 Jan 2016 16:36:31 +0000 Subject: [PATCH 074/101] syscall: new files for plan_arm support Implementation closely follows plan9_386 version. Change-Id: Ifb76e001fb5664e6a23541cf4768d7f11b2be68b Reviewed-on: https://go-review.googlesource.com/18967 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/syscall/asm_plan9_arm.s | 97 ++++++++++ src/syscall/zsyscall_plan9_arm.go | 294 ++++++++++++++++++++++++++++++ 2 files changed, 391 insertions(+) create mode 100644 src/syscall/asm_plan9_arm.s create mode 100644 src/syscall/zsyscall_plan9_arm.go diff --git a/src/syscall/asm_plan9_arm.s b/src/syscall/asm_plan9_arm.s new file mode 100644 index 0000000000..dd0584446d --- /dev/null +++ b/src/syscall/asm_plan9_arm.s @@ -0,0 +1,97 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "textflag.h" + +#define SYS_SEEK 39 /* from zsysnum_plan9.go */ + +// System call support for plan9 on arm + +TEXT sysresult<>(SB),NOSPLIT,$12 + MOVW $runtime·emptystring+0(SB), R2 + CMP $-1, R0 + B.NE ok + MOVW R1, save-4(SP) + BL runtime·errstr(SB) + MOVW save-4(SP), R1 + MOVW $err-12(SP), R2 +ok: + MOVM.IA (R2), [R3-R4] + MOVM.IA [R3-R4], (R1) + RET + +//func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err ErrorString) +TEXT ·Syscall(SB),NOSPLIT,$0 + BL runtime·entersyscall(SB) + MOVW trap+0(FP), R0 // syscall num + MOVM.IA.W (R13),[R1-R2] // pop LR and caller's LR + SWI 0 + MOVM.DB.W [R1-R2],(R13) // push LR and caller's LR + MOVW $0, R2 + MOVW $r1+16(FP), R1 + MOVM.IA.W [R0,R2], (R1) + BL sysresult<>(SB) + BL runtime·exitsyscall(SB) + RET + +//func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err ErrorString) +// Actually Syscall5 but the rest of the code expects it to be named Syscall6. +TEXT ·Syscall6(SB),NOSPLIT,$0 + BL runtime·entersyscall(SB) + MOVW trap+0(FP), R0 // syscall num + MOVM.IA.W (R13),[R1-R2] // pop LR and caller's LR + SWI 0 + MOVM.DB.W [R1-R2],(R13) // push LR and caller's LR + MOVW $0, R1 + MOVW $r1+28(FP), R1 + MOVM.IA.W [R0,R2], (R1) + BL sysresult<>(SB) + BL runtime·exitsyscall(SB) + RET + +//func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) +TEXT ·RawSyscall(SB),NOSPLIT,$0 + MOVW trap+0(FP), R0 // syscall num + MOVM.IA.W (R13),[R1] // pop caller's LR + SWI 0 + MOVM.DB.W [R1],(R13) // push caller's LR + MOVW R0, r1+16(FP) + MOVW R0, r2+20(FP) + MOVW R0, err+24(FP) + RET + +//func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) +// Actually RawSyscall5 but the rest of the code expects it to be named RawSyscall6. +TEXT ·RawSyscall6(SB),NOSPLIT,$0 + MOVW trap+0(FP), R0 // syscall num + MOVM.IA.W (R13),[R1] // pop caller's LR + SWI 0 + MOVM.DB.W [R1],(R13) // push caller's LR + MOVW R0, r1+28(FP) + MOVW R0, r2+32(FP) + MOVW R0, err+36(FP) + RET + +//func seek(placeholder uintptr, fd int, offset int64, whence int) (newoffset int64, err string) +TEXT ·seek(SB),NOSPLIT,$0 + MOVW $newoffset_lo+20(FP), R5 + MOVW R5, placeholder+0(FP) //placeholder = dest for return value + MOVW $SYS_SEEK, R0 // syscall num + MOVM.IA.W (R13),[R1] // pop LR + SWI 0 + MOVM.DB.W [R1],(R13) // push LR + CMP $-1, R0 + MOVW.EQ R0, 0(R5) + MOVW.EQ R0, 4(R5) + MOVW $err+28(FP), R1 + BL sysresult<>(SB) + RET + +//func exit(code int) +// Import runtime·exit for cleanly exiting. +TEXT ·exit(SB),NOSPLIT,$4 + MOVW code+0(FP), R0 + MOVW R0, e-4(SP) + BL runtime·exit(SB) + RET diff --git a/src/syscall/zsyscall_plan9_arm.go b/src/syscall/zsyscall_plan9_arm.go new file mode 100644 index 0000000000..d54aeff3a6 --- /dev/null +++ b/src/syscall/zsyscall_plan9_arm.go @@ -0,0 +1,294 @@ +// mksyscall.pl -l32 -plan9 syscall_plan9.go +// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT + +// +build arm,plan9 + +package syscall + +import "unsafe" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fd2path(fd int, buf []byte) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + r0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func await(s []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(s) > 0 { + _p0 = unsafe.Pointer(&s[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func open(path string, mode int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + use(unsafe.Pointer(_p0)) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func create(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + use(unsafe.Pointer(_p0)) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func remove(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, edir []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + use(unsafe.Pointer(_p0)) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(name string, old string, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(old) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(fd int, afd int, old string, flag int, aname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(old) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(aname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wstat(path string, edir []byte) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + use(unsafe.Pointer(_p0)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int, newfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + r0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, edir []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fwstat(fd int, edir []byte) (err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + if int32(r0) == -1 { + err = e1 + } + return +} From 0ccabe2e0b42a2602e0f37ce28d5368aa811f530 Mon Sep 17 00:00:00 2001 From: "Matt T. Proud" Date: Thu, 29 Oct 2015 11:14:05 +0100 Subject: [PATCH 075/101] testing/quick: generate more map and slice states This change adds support in testing/quick to generate maps and slices in additional states: (1.) nil maps (2.) nil slices (3.) empty slice occupancy: `len(s) == 0 && s != nil` (4.) partial slice occupancy: `len(s) < cap(s) && s != nil` (5.) full slice occupancy: `len(s) == cap(s) && s != nil` Prior to this, only #5 was ever generated, thereby not sufficiently exercising all of the fuzzable code path outcomes. This change depends on https://go-review.googlesource.com/#/c/17499/. Change-Id: I9343c475cefbd72ffc5237281826465c25872206 Reviewed-on: https://go-review.googlesource.com/16470 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/testing/quick/quick.go | 47 ++++++++++++++++++++------------- src/testing/quick/quick_test.go | 17 ------------ 2 files changed, 29 insertions(+), 35 deletions(-) diff --git a/src/testing/quick/quick.go b/src/testing/quick/quick.go index 187195c759..0c2bf2d72b 100644 --- a/src/testing/quick/quick.go +++ b/src/testing/quick/quick.go @@ -14,7 +14,7 @@ import ( "strings" ) -var defaultMaxCount *int = flag.Int("quickchecks", 100, "The default number of iterations for each check") +var defaultMaxCount = flag.Int("quickchecks", 100, "The default number of iterations for each check") // A Generator can generate random values of its own type. type Generator interface { @@ -98,18 +98,22 @@ func sizedValue(t reflect.Type, rand *rand.Rand, size int) (value reflect.Value, case reflect.Uintptr: v.SetUint(uint64(randInt64(rand))) case reflect.Map: - numElems := rand.Intn(size) - v.Set(reflect.MakeMap(concrete)) - for i := 0; i < numElems; i++ { - key, ok1 := sizedValue(concrete.Key(), rand, size) - value, ok2 := sizedValue(concrete.Elem(), rand, size) - if !ok1 || !ok2 { - return reflect.Value{}, false + if generateNilValue(rand) { + v.Set(reflect.Zero(concrete)) // Generate nil map. + } else { + numElems := rand.Intn(size) + v.Set(reflect.MakeMap(concrete)) + for i := 0; i < numElems; i++ { + key, ok1 := sizedValue(concrete.Key(), rand, size) + value, ok2 := sizedValue(concrete.Elem(), rand, size) + if !ok1 || !ok2 { + return reflect.Value{}, false + } + v.SetMapIndex(key, value) } - v.SetMapIndex(key, value) } case reflect.Ptr: - if rand.Intn(size) == 0 { + if generateNilValue(rand) { v.Set(reflect.Zero(concrete)) // Generate nil pointer. } else { elem, ok := sizedValue(concrete.Elem(), rand, size) @@ -120,15 +124,20 @@ func sizedValue(t reflect.Type, rand *rand.Rand, size int) (value reflect.Value, v.Elem().Set(elem) } case reflect.Slice: - numElems := rand.Intn(size) - sizeLeft := size - numElems - v.Set(reflect.MakeSlice(concrete, numElems, numElems)) - for i := 0; i < numElems; i++ { - elem, ok := sizedValue(concrete.Elem(), rand, sizeLeft) - if !ok { - return reflect.Value{}, false + if generateNilValue(rand) { + v.Set(reflect.Zero(concrete)) // Generate nil slice. + } else { + slCap := rand.Intn(size) + slLen := rand.Intn(slCap + 1) + sizeLeft := size - slCap + v.Set(reflect.MakeSlice(concrete, slLen, slCap)) + for i := 0; i < slLen; i++ { + elem, ok := sizedValue(concrete.Elem(), rand, sizeLeft) + if !ok { + return reflect.Value{}, false + } + v.Index(i).Set(elem) } - v.Index(i).Set(elem) } case reflect.Array: for i := 0; i < v.Len(); i++ { @@ -384,3 +393,5 @@ func toString(interfaces []interface{}) string { } return strings.Join(s, ", ") } + +func generateNilValue(r *rand.Rand) bool { return r.Intn(20) == 0 } diff --git a/src/testing/quick/quick_test.go b/src/testing/quick/quick_test.go index fe443592f8..018ece2a52 100644 --- a/src/testing/quick/quick_test.go +++ b/src/testing/quick/quick_test.go @@ -290,20 +290,3 @@ func TestMutuallyRecursive(t *testing.T) { f := func(a A) bool { return true } Check(f, nil) } - -// Some serialization formats (e.g. encoding/pem) cannot distinguish -// between a nil and an empty map or slice, so avoid generating the -// zero value for these. -func TestNonZeroSliceAndMap(t *testing.T) { - type Q struct { - M map[int]int - S []int - } - f := func(q Q) bool { - return q.M != nil && q.S != nil - } - err := Check(f, nil) - if err != nil { - t.Fatal(err) - } -} From 5c72c6f889ad854ba16e4ed560e6ad10ebb6dcc4 Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Fri, 26 Feb 2016 16:09:54 -0300 Subject: [PATCH 076/101] cmd/go: show position in error for wrong signature in test functions Change-Id: Ie915dc2fc32a31d31f566ac931ccecb506559645 Reviewed-on: https://go-review.googlesource.com/19888 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/cmd/go/test.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/cmd/go/test.go b/src/cmd/go/test.go index e23f939255..1d39a72197 100644 --- a/src/cmd/go/test.go +++ b/src/cmd/go/test.go @@ -1352,14 +1352,16 @@ func (t *testFuncs) load(filename, pkg string, doImport, seen *bool) error { t.TestMain = &testFunc{pkg, name, ""} *doImport, *seen = true, true case isTest(name, "Test"): - if !isTestFunc(n, "T") { - return fmt.Errorf("wrong type for %s", name) + err := checkTestFunc(n, "T") + if err != nil { + return err } t.Tests = append(t.Tests, testFunc{pkg, name, ""}) *doImport, *seen = true, true case isTest(name, "Benchmark"): - if !isTestFunc(n, "B") { - return fmt.Errorf("wrong type for %s", name) + err := checkTestFunc(n, "B") + if err != nil { + return err } t.Benchmarks = append(t.Benchmarks, testFunc{pkg, name, ""}) *doImport, *seen = true, true @@ -1379,6 +1381,15 @@ func (t *testFuncs) load(filename, pkg string, doImport, seen *bool) error { return nil } +func checkTestFunc(fn *ast.FuncDecl, arg string) error { + if !isTestFunc(fn, arg) { + name := fn.Name.String() + pos := testFileSet.Position(fn.Pos()) + return fmt.Errorf("%s: wrong signature for %s, must be: func %s(%s *testing.%s)", pos, name, name, strings.ToLower(arg), arg) + } + return nil +} + type byOrder []*doc.Example func (x byOrder) Len() int { return len(x) } From 5c613e9162aad2ea171d401754d97ea2be1442ce Mon Sep 17 00:00:00 2001 From: Richard Miller Date: Wed, 27 Jan 2016 16:18:34 +0000 Subject: [PATCH 077/101] sync/atomic: new file for plan9_arm support Atomic load/store/add/swap routines, as for other ARM platforms, but with DMB inserted for load/store (assuming that "atomic" also implies acquire/release memory ordering). Change-Id: I70a283d8f0ae61a66432998ce59eac76fd940c67 Reviewed-on: https://go-review.googlesource.com/18965 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/sync/atomic/asm_plan9_arm.s | 108 ++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 src/sync/atomic/asm_plan9_arm.s diff --git a/src/sync/atomic/asm_plan9_arm.s b/src/sync/atomic/asm_plan9_arm.s new file mode 100644 index 0000000000..5108fc6b91 --- /dev/null +++ b/src/sync/atomic/asm_plan9_arm.s @@ -0,0 +1,108 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "textflag.h" + +#define DMB_ISH_7 \ + MOVB runtime·goarm(SB), R11; \ + CMP $7, R11; \ + BLT 2(PC); \ + WORD $0xf57ff05b // dmb ish + +// Plan9/ARM atomic operations. +// TODO(minux): this only supports ARMv6K or higher. + +TEXT ·CompareAndSwapInt32(SB),NOSPLIT,$0 + B ·CompareAndSwapUint32(SB) + +TEXT ·CompareAndSwapUint32(SB),NOSPLIT,$0 + B ·armCompareAndSwapUint32(SB) + +TEXT ·CompareAndSwapUintptr(SB),NOSPLIT,$0 + B ·CompareAndSwapUint32(SB) + +TEXT ·AddInt32(SB),NOSPLIT,$0 + B ·AddUint32(SB) + +TEXT ·AddUint32(SB),NOSPLIT,$0 + B ·armAddUint32(SB) + +TEXT ·AddUintptr(SB),NOSPLIT,$0 + B ·AddUint32(SB) + +TEXT ·SwapInt32(SB),NOSPLIT,$0 + B ·SwapUint32(SB) + +TEXT ·SwapUint32(SB),NOSPLIT,$0 + B ·armSwapUint32(SB) + +TEXT ·SwapUintptr(SB),NOSPLIT,$0 + B ·SwapUint32(SB) + +TEXT ·CompareAndSwapInt64(SB),NOSPLIT,$0 + B ·CompareAndSwapUint64(SB) + +TEXT ·CompareAndSwapUint64(SB),NOSPLIT,$-4 + B ·armCompareAndSwapUint64(SB) + +TEXT ·AddInt64(SB),NOSPLIT,$0 + B ·addUint64(SB) + +TEXT ·AddUint64(SB),NOSPLIT,$0 + B ·addUint64(SB) + +TEXT ·SwapInt64(SB),NOSPLIT,$0 + B ·swapUint64(SB) + +TEXT ·SwapUint64(SB),NOSPLIT,$0 + B ·swapUint64(SB) + +TEXT ·LoadInt32(SB),NOSPLIT,$0 + B ·LoadUint32(SB) + +TEXT ·LoadUint32(SB),NOSPLIT,$0-8 + MOVW addr+0(FP), R1 +load32loop: + LDREX (R1), R2 // loads R2 + STREX R2, (R1), R0 // stores R2 + CMP $0, R0 + BNE load32loop + MOVW R2, val+4(FP) + DMB_ISH_7 + RET + +TEXT ·LoadInt64(SB),NOSPLIT,$0 + B ·loadUint64(SB) + +TEXT ·LoadUint64(SB),NOSPLIT,$0 + B ·loadUint64(SB) + +TEXT ·LoadUintptr(SB),NOSPLIT,$0 + B ·LoadUint32(SB) + +TEXT ·LoadPointer(SB),NOSPLIT,$0 + B ·LoadUint32(SB) + +TEXT ·StoreInt32(SB),NOSPLIT,$0 + B ·StoreUint32(SB) + +TEXT ·StoreUint32(SB),NOSPLIT,$0-8 + MOVW addr+0(FP), R1 + MOVW val+4(FP), R2 + DMB_ISH_7 +storeloop: + LDREX (R1), R4 // loads R4 + STREX R2, (R1), R0 // stores R2 + CMP $0, R0 + BNE storeloop + RET + +TEXT ·StoreInt64(SB),NOSPLIT,$0 + B ·storeUint64(SB) + +TEXT ·StoreUint64(SB),NOSPLIT,$0 + B ·storeUint64(SB) + +TEXT ·StoreUintptr(SB),NOSPLIT,$0 + B ·StoreUint32(SB) From 67dbde0d7197b2fe6c9e08bda9fa4656c1f75ce4 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Thu, 25 Feb 2016 14:58:03 -0800 Subject: [PATCH 078/101] cmd: stop looking for __.(GO)?SYMDEF entries in archives The Go toolchain stopped creating them before Go 1.3, so no point in worrying about them today. History: - Git commit 250a091 added cmd/ar, which wrote Plan 9 __.SYMDEF entries into archive files. - golang.org/cl/6500117 renamed __.SYMDEF to __.GOSYMDEF. (Notably, the commit message suggests users need to use Go nm to read symbols, but even back then the toolchain did nothing with __.(GO)?SYMDEF files except skip over them.) - golang.org/cl/42880043 added the -pack flag to cmd/gc to directly produce archives by the Go compiler, and did not write __.GOSYMDEF entries. - golang.org/cl/52310044 rewrote cmd/pack in Go, and removed support for producing __.GOSYMDEF entries. Change-Id: I255edf40d0d3690e3447e488039fcdef73c6d6b1 Reviewed-on: https://go-review.googlesource.com/19924 Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/cmd/compile/internal/gc/lex.go | 19 +++-------------- src/cmd/internal/goobj/read.go | 2 +- src/cmd/link/internal/ld/lib.go | 18 +++------------- src/go/internal/gcimporter/exportdata.go | 26 ++---------------------- 4 files changed, 9 insertions(+), 56 deletions(-) diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index a051214b9c..0142300063 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -549,22 +549,9 @@ func skiptopkgdef(b *obj.Biobuf) bool { return false } - // symbol table may be first; skip it - sz := arsize(b, "__.GOSYMDEF") - - if sz >= 0 { - obj.Bseek(b, int64(sz), 1) - } else { - obj.Bseek(b, 8, 0) - } - - // package export block is next - sz = arsize(b, "__.PKGDEF") - - if sz <= 0 { - return false - } - return true + // package export block should be first + sz := arsize(b, "__.PKGDEF") + return sz > 0 } var idirs []string diff --git a/src/cmd/internal/goobj/read.go b/src/cmd/internal/goobj/read.go index 7fdaf557c8..dff6224d85 100644 --- a/src/cmd/internal/goobj/read.go +++ b/src/cmd/internal/goobj/read.go @@ -530,7 +530,7 @@ func (r *objReader) parseArchive() error { return errCorruptArchive } switch name { - case "__.SYMDEF", "__.GOSYMDEF", "__.PKGDEF": + case "__.PKGDEF": r.skip(size) default: oldLimit := r.limit diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index bdfa0563c3..461ebf8db1 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -255,10 +255,7 @@ var coutbuf struct { f *os.File } -const ( - symname = "__.GOSYMDEF" - pkgname = "__.PKGDEF" -) +const pkgname = "__.PKGDEF" var ( // Set if we see an object compiled by the host compiler that is not @@ -781,7 +778,7 @@ func objfile(lib *Library) { return } - /* skip over optional __.GOSYMDEF and process __.PKGDEF */ + /* process __.PKGDEF */ off := obj.Boffset(f) var arhdr ArHdr @@ -792,15 +789,6 @@ func objfile(lib *Library) { goto out } - if strings.HasPrefix(arhdr.name, symname) { - off += l - l = nextar(f, off, &arhdr) - if l <= 0 { - Diag("%s: short read on archive file symbol header", lib.File) - goto out - } - } - if !strings.HasPrefix(arhdr.name, pkgname) { Diag("%s: cannot find package header", lib.File) goto out @@ -829,7 +817,7 @@ func objfile(lib *Library) { * the individual symbols that are unused. * * loading every object will also make it possible to - * load foreign objects not referenced by __.GOSYMDEF. + * load foreign objects not referenced by __.PKGDEF. */ for { l = nextar(f, off, &arhdr) diff --git a/src/go/internal/gcimporter/exportdata.go b/src/go/internal/gcimporter/exportdata.go index 18bea415ae..4c0d2fe761 100644 --- a/src/go/internal/gcimporter/exportdata.go +++ b/src/go/internal/gcimporter/exportdata.go @@ -52,33 +52,11 @@ func FindExportData(r *bufio.Reader) (hdr string, err error) { if string(line) == "!\n" { // Archive file. Scan to __.PKGDEF. var name string - var size int - if name, size, err = readGopackHeader(r); err != nil { + if name, _, err = readGopackHeader(r); err != nil { return } - // Optional leading __.GOSYMDEF or __.SYMDEF. - // Read and discard. - if name == "__.SYMDEF" || name == "__.GOSYMDEF" { - const block = 4096 - tmp := make([]byte, block) - for size > 0 { - n := size - if n > block { - n = block - } - if _, err = io.ReadFull(r, tmp[:n]); err != nil { - return - } - size -= n - } - - if name, _, err = readGopackHeader(r); err != nil { - return - } - } - - // First real entry should be __.PKGDEF. + // First entry should be __.PKGDEF. if name != "__.PKGDEF" { err = errors.New("go archive is missing __.PKGDEF") return From b66a892358d2ca5ee7008ceeeda050d9f64ce5a2 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 25 Feb 2016 10:35:19 -0800 Subject: [PATCH 079/101] cmd/compile: change Func.{Dcl,Inldcl} from NodeList to slice A slice uses less memory than a NodeList, and has better memory locality when walking the list. This uncovered a tricky case involving closures: the escape analysis pass when run on a closure was appending to the Dcl list of the OCLOSURE rather than the ODCLFUNC. This happened to work because they shared the same NodeList. Fixed with a change to addrescapes, and a check to Tempname to catch any recurrences. This removes the last use of the listsort function outside of tests. I'll send a separate CL to remove it. Unfortunately, while this passes all tests, it does not pass toolstash -cmp. The problem is that cmpstackvarlt does not fully determine the sort order, and the change from listsort to sort.Sort, while generally desirable, produces a different ordering. I could stage this by first making cmpstackvarlt fully determined, but no matter what toolstash -cmp is going to break at some point. In my casual testing the compiler is 2.2% faster. Update #14473. Change-Id: I367d66daa4ec73ed95c14c66ccda3a2133ad95d5 Reviewed-on: https://go-review.googlesource.com/19919 Reviewed-by: Brad Fitzpatrick --- src/cmd/compile/internal/amd64/ggen.go | 5 +-- src/cmd/compile/internal/arm/ggen.go | 5 +-- src/cmd/compile/internal/arm64/ggen.go | 5 +-- src/cmd/compile/internal/gc/cgen.go | 6 +-- src/cmd/compile/internal/gc/closure.go | 23 +++++------ src/cmd/compile/internal/gc/dcl.go | 2 +- src/cmd/compile/internal/gc/esc.go | 41 +++++++++++--------- src/cmd/compile/internal/gc/gen.go | 9 ++++- src/cmd/compile/internal/gc/gsubr.go | 4 +- src/cmd/compile/internal/gc/inl.go | 36 +++++++++++------ src/cmd/compile/internal/gc/parser.go | 10 ++--- src/cmd/compile/internal/gc/pgen.go | 49 +++++++++++++----------- src/cmd/compile/internal/gc/plive.go | 44 ++++++++++----------- src/cmd/compile/internal/gc/popt.go | 19 +++------ src/cmd/compile/internal/gc/subr.go | 4 +- src/cmd/compile/internal/gc/syntax.go | 4 +- src/cmd/compile/internal/gc/typecheck.go | 6 +-- src/cmd/compile/internal/gc/walk.go | 37 +++++++++--------- src/cmd/compile/internal/mips64/ggen.go | 5 +-- src/cmd/compile/internal/ppc64/ggen.go | 5 +-- src/cmd/compile/internal/x86/ggen.go | 5 +-- 21 files changed, 161 insertions(+), 163 deletions(-) diff --git a/src/cmd/compile/internal/amd64/ggen.go b/src/cmd/compile/internal/amd64/ggen.go index b9e5bfb15f..55fb9e0a43 100644 --- a/src/cmd/compile/internal/amd64/ggen.go +++ b/src/cmd/compile/internal/amd64/ggen.go @@ -14,8 +14,6 @@ import ( var isPlan9 = obj.Getgoos() == "plan9" func defframe(ptxt *obj.Prog) { - var n *gc.Node - // fill in argument size, stack size ptxt.To.Type = obj.TYPE_TEXTSIZE @@ -34,8 +32,7 @@ func defframe(ptxt *obj.Prog) { x0 := uint32(0) // iterate through declarations - they are sorted in decreasing xoffset order. - for l := gc.Curfn.Func.Dcl; l != nil; l = l.Next { - n = l.N + for _, n := range gc.Curfn.Func.Dcl { if !n.Name.Needzero { continue } diff --git a/src/cmd/compile/internal/arm/ggen.go b/src/cmd/compile/internal/arm/ggen.go index 517b4f4c8e..5e282c8cd5 100644 --- a/src/cmd/compile/internal/arm/ggen.go +++ b/src/cmd/compile/internal/arm/ggen.go @@ -11,8 +11,6 @@ import ( ) func defframe(ptxt *obj.Prog) { - var n *gc.Node - // fill in argument size, stack size ptxt.To.Type = obj.TYPE_TEXTSIZE @@ -28,8 +26,7 @@ func defframe(ptxt *obj.Prog) { hi := int64(0) lo := hi r0 := uint32(0) - for l := gc.Curfn.Func.Dcl; l != nil; l = l.Next { - n = l.N + for _, n := range gc.Curfn.Func.Dcl { if !n.Name.Needzero { continue } diff --git a/src/cmd/compile/internal/arm64/ggen.go b/src/cmd/compile/internal/arm64/ggen.go index 99ffd5acd5..a33b2b42bf 100644 --- a/src/cmd/compile/internal/arm64/ggen.go +++ b/src/cmd/compile/internal/arm64/ggen.go @@ -12,8 +12,6 @@ import ( ) func defframe(ptxt *obj.Prog) { - var n *gc.Node - // fill in argument size, stack size ptxt.To.Type = obj.TYPE_TEXTSIZE @@ -37,8 +35,7 @@ func defframe(ptxt *obj.Prog) { lo := hi // iterate through declarations - they are sorted in decreasing xoffset order. - for l := gc.Curfn.Func.Dcl; l != nil; l = l.Next { - n = l.N + for _, n := range gc.Curfn.Func.Dcl { if !n.Name.Needzero { continue } diff --git a/src/cmd/compile/internal/gc/cgen.go b/src/cmd/compile/internal/gc/cgen.go index 6456240a12..fdeb6e65f7 100644 --- a/src/cmd/compile/internal/gc/cgen.go +++ b/src/cmd/compile/internal/gc/cgen.go @@ -2263,9 +2263,9 @@ func sgen_wb(n *Node, ns *Node, w int64, wb bool) { // If copying .args, that's all the results, so record definition sites // for them for the liveness analysis. if ns.Op == ONAME && ns.Sym.Name == ".args" { - for l := Curfn.Func.Dcl; l != nil; l = l.Next { - if l.N.Class == PPARAMOUT { - Gvardef(l.N) + for _, ln := range Curfn.Func.Dcl { + if ln.Class == PPARAMOUT { + Gvardef(ln) } } } diff --git a/src/cmd/compile/internal/gc/closure.go b/src/cmd/compile/internal/gc/closure.go index df3e31a7ec..df36db118d 100644 --- a/src/cmd/compile/internal/gc/closure.go +++ b/src/cmd/compile/internal/gc/closure.go @@ -96,9 +96,9 @@ func typecheckclosure(func_ *Node, top int) { } } - for l := func_.Func.Dcl; l != nil; l = l.Next { - if l.N.Op == ONAME && (l.N.Class == PPARAM || l.N.Class == PPARAMOUT) { - l.N.Name.Decldepth = 1 + for _, ln := range func_.Func.Dcl { + if ln.Op == ONAME && (ln.Class == PPARAM || ln.Class == PPARAMOUT) { + ln.Name.Decldepth = 1 } } @@ -198,7 +198,8 @@ func makeclosure(func_ *Node) *Node { makefuncsym(xfunc.Func.Nname.Sym) xfunc.Nbody = func_.Nbody - xfunc.Func.Dcl = concat(func_.Func.Dcl, xfunc.Func.Dcl) + xfunc.Func.Dcl = append(func_.Func.Dcl, xfunc.Func.Dcl...) + func_.Func.Dcl = nil if xfunc.Nbody == nil { Fatalf("empty body - won't generate any code") } @@ -341,13 +342,13 @@ func transformclosure(xfunc *Node) { fld.Sym = fld.Nname.Sym // Declare the new param and add it the first part of the input arguments. - xfunc.Func.Dcl = list(xfunc.Func.Dcl, fld.Nname) + xfunc.Func.Dcl = append(xfunc.Func.Dcl, fld.Nname) *param = fld param = &fld.Down } *param = original_args - xfunc.Func.Dcl = concat(xfunc.Func.Dcl, original_dcl) + xfunc.Func.Dcl = append(xfunc.Func.Dcl, original_dcl...) // Recalculate param offsets. if f.Type.Width > 0 { @@ -386,7 +387,7 @@ func transformclosure(xfunc *Node) { // If it is a small variable captured by value, downgrade it to PAUTO. v.Class = PAUTO v.Ullman = 1 - xfunc.Func.Dcl = list(xfunc.Func.Dcl, v) + xfunc.Func.Dcl = append(xfunc.Func.Dcl, v) body = list(body, Nod(OAS, v, cv)) } else { // Declare variable holding addresses taken from closure @@ -396,7 +397,7 @@ func transformclosure(xfunc *Node) { addr.Class = PAUTO addr.Used = true addr.Name.Curfn = xfunc - xfunc.Func.Dcl = list(xfunc.Func.Dcl, addr) + xfunc.Func.Dcl = append(xfunc.Func.Dcl, addr) v.Name.Heapaddr = addr if v.Name.Byval { cv = Nod(OADDR, cv, nil) @@ -551,7 +552,7 @@ func makepartialcall(fn *Node, t0 *Type, meth *Node) *Node { n = newname(Lookupf("a%d", i)) i++ n.Class = PPARAM - xfunc.Func.Dcl = list(xfunc.Func.Dcl, n) + xfunc.Func.Dcl = append(xfunc.Func.Dcl, n) callargs = list(callargs, n) fld = Nod(ODCLFIELD, n, typenod(t.Type)) if t.Isddd { @@ -570,7 +571,7 @@ func makepartialcall(fn *Node, t0 *Type, meth *Node) *Node { n = newname(Lookupf("r%d", i)) i++ n.Class = PPARAMOUT - xfunc.Func.Dcl = list(xfunc.Func.Dcl, n) + xfunc.Func.Dcl = append(xfunc.Func.Dcl, n) retargs = list(retargs, n) l = list(l, Nod(ODCLFIELD, n, typenod(t.Type))) } @@ -600,7 +601,7 @@ func makepartialcall(fn *Node, t0 *Type, meth *Node) *Node { ptr.Ullman = 1 ptr.Used = true ptr.Name.Curfn = xfunc - xfunc.Func.Dcl = list(xfunc.Func.Dcl, ptr) + xfunc.Func.Dcl = append(xfunc.Func.Dcl, ptr) var body *NodeList if Isptr[rcvrtype.Etype] || Isinter(rcvrtype) { ptr.Name.Param.Ntype = typenod(rcvrtype) diff --git a/src/cmd/compile/internal/gc/dcl.go b/src/cmd/compile/internal/gc/dcl.go index 7e44a4756d..ccbb2d9d70 100644 --- a/src/cmd/compile/internal/gc/dcl.go +++ b/src/cmd/compile/internal/gc/dcl.go @@ -187,7 +187,7 @@ func declare(n *Node, ctxt Class) { Fatalf("automatic outside function") } if Curfn != nil { - Curfn.Func.Dcl = list(Curfn.Func.Dcl, n) + Curfn.Func.Dcl = append(Curfn.Func.Dcl, n) } if n.Op == OTYPE { declare_typegen++ diff --git a/src/cmd/compile/internal/gc/esc.go b/src/cmd/compile/internal/gc/esc.go index 1a5a433eeb..4cafc839cf 100644 --- a/src/cmd/compile/internal/gc/esc.go +++ b/src/cmd/compile/internal/gc/esc.go @@ -476,35 +476,35 @@ func escfunc(e *EscState, func_ *Node) { savefn := Curfn Curfn = func_ - for ll := Curfn.Func.Dcl; ll != nil; ll = ll.Next { - if ll.N.Op != ONAME { + for _, ln := range Curfn.Func.Dcl { + if ln.Op != ONAME { continue } - llNE := e.nodeEscState(ll.N) - switch ll.N.Class { + llNE := e.nodeEscState(ln) + switch ln.Class { // out params are in a loopdepth between the sink and all local variables case PPARAMOUT: llNE.Escloopdepth = 0 case PPARAM: llNE.Escloopdepth = 1 - if ll.N.Type != nil && !haspointers(ll.N.Type) { + if ln.Type != nil && !haspointers(ln.Type) { break } if Curfn.Nbody == nil && !Curfn.Noescape { - ll.N.Esc = EscHeap + ln.Esc = EscHeap } else { - ll.N.Esc = EscNone // prime for escflood later + ln.Esc = EscNone // prime for escflood later } - e.noesc = list(e.noesc, ll.N) + e.noesc = list(e.noesc, ln) } } // in a mutually recursive group we lose track of the return values if e.recursive { - for ll := Curfn.Func.Dcl; ll != nil; ll = ll.Next { - if ll.N.Op == ONAME && ll.N.Class == PPARAMOUT { - escflows(e, &e.theSink, ll.N) + for _, ln := range Curfn.Func.Dcl { + if ln.Op == ONAME && ln.Class == PPARAMOUT { + escflows(e, &e.theSink, ln) } } } @@ -779,11 +779,14 @@ func esc(e *EscState, n *Node, up *Node) { ll = e.nodeEscState(n.List.N).Escretval } - for lr := Curfn.Func.Dcl; lr != nil && ll != nil; lr = lr.Next { - if lr.N.Op != ONAME || lr.N.Class != PPARAMOUT { + for _, lrn := range Curfn.Func.Dcl { + if ll == nil { + break + } + if lrn.Op != ONAME || lrn.Class != PPARAMOUT { continue } - escassign(e, lr.N, ll.N) + escassign(e, lrn, ll.N) ll = ll.Next } @@ -1870,16 +1873,16 @@ func esctag(e *EscState, func_ *Node) { savefn := Curfn Curfn = func_ - for ll := Curfn.Func.Dcl; ll != nil; ll = ll.Next { - if ll.N.Op != ONAME { + for _, ln := range Curfn.Func.Dcl { + if ln.Op != ONAME { continue } - switch ll.N.Esc & EscMask { + switch ln.Esc & EscMask { case EscNone, // not touched by escflood EscReturn: - if haspointers(ll.N.Type) { // don't bother tagging for scalars - ll.N.Name.Param.Field.Note = mktag(int(ll.N.Esc)) + if haspointers(ln.Type) { // don't bother tagging for scalars + ln.Name.Param.Field.Note = mktag(int(ln.Esc)) } case EscHeap, // touched by escflood, moved to heap diff --git a/src/cmd/compile/internal/gc/gen.go b/src/cmd/compile/internal/gc/gen.go index b756055668..adebfb81d0 100644 --- a/src/cmd/compile/internal/gc/gen.go +++ b/src/cmd/compile/internal/gc/gen.go @@ -76,6 +76,9 @@ func addrescapes(n *Node) { oldfn := Curfn Curfn = n.Name.Curfn + if Curfn.Func.Closure != nil && Curfn.Op == OCLOSURE { + Curfn = Curfn.Func.Closure + } n.Name.Heapaddr = temp(Ptrto(n.Type)) buf := fmt.Sprintf("&%v", n.Sym) n.Name.Heapaddr.Sym = Lookup(buf) @@ -585,6 +588,10 @@ func Tempname(nn *Node, t *Type) { if Curfn == nil { Fatalf("no curfn for tempname") } + if Curfn.Func.Closure != nil && Curfn.Op == OCLOSURE { + Dump("Tempname", Curfn) + Fatalf("adding tempname to wrong closure function") + } if t == nil { Yyerror("tempname called with nil type") @@ -604,7 +611,7 @@ func Tempname(nn *Node, t *Type) { n.Ullman = 1 n.Esc = EscNever n.Name.Curfn = Curfn - Curfn.Func.Dcl = list(Curfn.Func.Dcl, n) + Curfn.Func.Dcl = append(Curfn.Func.Dcl, n) dowidth(t) n.Xoffset = 0 diff --git a/src/cmd/compile/internal/gc/gsubr.go b/src/cmd/compile/internal/gc/gsubr.go index 04e986562d..f5d7a8d2de 100644 --- a/src/cmd/compile/internal/gc/gsubr.go +++ b/src/cmd/compile/internal/gc/gsubr.go @@ -556,9 +556,7 @@ func nodarg(t *Type, fp int) *Node { } if fp == 1 { - var n *Node - for l := Curfn.Func.Dcl; l != nil; l = l.Next { - n = l.N + for _, n := range Curfn.Func.Dcl { if (n.Class == PPARAM || n.Class == PPARAMOUT) && !isblanksym(t.Sym) && n.Sym == t.Sym { return n } diff --git a/src/cmd/compile/internal/gc/inl.go b/src/cmd/compile/internal/gc/inl.go index a445f712e2..cae15f91de 100644 --- a/src/cmd/compile/internal/gc/inl.go +++ b/src/cmd/compile/internal/gc/inl.go @@ -150,7 +150,7 @@ func caninl(fn *Node) { fn.Func.Nname.Func.Inl = fn.Nbody fn.Nbody = inlcopylist(fn.Func.Nname.Func.Inl) - fn.Func.Nname.Func.Inldcl = inlcopylist(fn.Func.Nname.Name.Defn.Func.Dcl) + fn.Func.Nname.Func.Inldcl = inlcopyslice(fn.Func.Nname.Name.Defn.Func.Dcl) fn.Func.Nname.Func.InlCost = int32(maxBudget - budget) // hack, TODO, check for better way to link method nodes back to the thing with the ->inl @@ -275,6 +275,18 @@ func inlcopy(n *Node) *Node { return m } +// Inlcopyslice is like inlcopylist, but for a slice. +func inlcopyslice(ll []*Node) []*Node { + r := make([]*Node, 0, len(ll)) + for _, ln := range ll { + c := inlcopy(ln) + if c != nil { + r = append(r, c) + } + } + return r +} + // Inlcalls/nodelist/node walks fn's statements and expressions and substitutes any // calls made to inlineable functions. This is the external entry point. func inlcalls(fn *Node) { @@ -556,7 +568,7 @@ func mkinlcall1(np **Node, fn *Node, isddd bool) { //dumplist("ninit pre", ninit); - var dcl *NodeList + var dcl []*Node if fn.Name.Defn != nil { // local function dcl = fn.Func.Inldcl // imported function } else { @@ -567,18 +579,18 @@ func mkinlcall1(np **Node, fn *Node, isddd bool) { i := 0 // Make temp names to use instead of the originals - for ll := dcl; ll != nil; ll = ll.Next { - if ll.N.Class == PPARAMOUT { // return values handled below. + for _, ln := range dcl { + if ln.Class == PPARAMOUT { // return values handled below. continue } - if ll.N.Op == ONAME { - ll.N.Name.Inlvar = inlvar(ll.N) + if ln.Op == ONAME { + ln.Name.Inlvar = inlvar(ln) // Typecheck because inlvar is not necessarily a function parameter. - typecheck(&ll.N.Name.Inlvar, Erv) + typecheck(&ln.Name.Inlvar, Erv) - if ll.N.Class&^PHEAP != PAUTO { - ninit = list(ninit, Nod(ODCL, ll.N.Name.Inlvar, nil)) // otherwise gen won't emit the allocations for heapallocs + if ln.Class&^PHEAP != PAUTO { + ninit = list(ninit, Nod(ODCL, ln.Name.Inlvar, nil)) // otherwise gen won't emit the allocations for heapallocs } } } @@ -852,7 +864,7 @@ func inlvar(var_ *Node) *Node { addrescapes(n) } - Curfn.Func.Dcl = list(Curfn.Func.Dcl, n) + Curfn.Func.Dcl = append(Curfn.Func.Dcl, n) return n } @@ -863,7 +875,7 @@ func retvar(t *Type, i int) *Node { n.Class = PAUTO n.Used = true n.Name.Curfn = Curfn // the calling function, not the called one - Curfn.Func.Dcl = list(Curfn.Func.Dcl, n) + Curfn.Func.Dcl = append(Curfn.Func.Dcl, n) return n } @@ -875,7 +887,7 @@ func argvar(t *Type, i int) *Node { n.Class = PAUTO n.Used = true n.Name.Curfn = Curfn // the calling function, not the called one - Curfn.Func.Dcl = list(Curfn.Func.Dcl, n) + Curfn.Func.Dcl = append(Curfn.Func.Dcl, n) return n } diff --git a/src/cmd/compile/internal/gc/parser.go b/src/cmd/compile/internal/gc/parser.go index ffa20711b7..88d45118da 100644 --- a/src/cmd/compile/internal/gc/parser.go +++ b/src/cmd/compile/internal/gc/parser.go @@ -2564,15 +2564,15 @@ func (p *parser) stmt() *Node { stmt := Nod(ORETURN, nil, nil) stmt.List = results if stmt.List == nil && Curfn != nil { - for l := Curfn.Func.Dcl; l != nil; l = l.Next { - if l.N.Class == PPARAM { + for _, ln := range Curfn.Func.Dcl { + if ln.Class == PPARAM { continue } - if l.N.Class != PPARAMOUT { + if ln.Class != PPARAMOUT { break } - if l.N.Sym.Def != l.N { - Yyerror("%s is shadowed during return", l.N.Sym.Name) + if ln.Sym.Def != ln { + Yyerror("%s is shadowed during return", ln.Sym.Name) } } } diff --git a/src/cmd/compile/internal/gc/pgen.go b/src/cmd/compile/internal/gc/pgen.go index 3471b977ed..a44cc734f6 100644 --- a/src/cmd/compile/internal/gc/pgen.go +++ b/src/cmd/compile/internal/gc/pgen.go @@ -8,6 +8,7 @@ import ( "cmd/internal/obj" "crypto/md5" "fmt" + "sort" "strings" ) @@ -217,6 +218,13 @@ func cmpstackvarlt(a, b *Node) bool { return a.Sym.Name < b.Sym.Name } +// byStackvar implements sort.Interface for []*Node using cmpstackvarlt. +type byStackVar []*Node + +func (s byStackVar) Len() int { return len(s) } +func (s byStackVar) Less(i, j int) bool { return cmpstackvarlt(s[i], s[j]) } +func (s byStackVar) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + // stkdelta records the stack offset delta for a node // during the compaction of the stack frame to remove // unused stack slots. @@ -227,25 +235,23 @@ func allocauto(ptxt *obj.Prog) { Stksize = 0 stkptrsize = 0 - if Curfn.Func.Dcl == nil { + if len(Curfn.Func.Dcl) == 0 { return } // Mark the PAUTO's unused. - for ll := Curfn.Func.Dcl; ll != nil; ll = ll.Next { - if ll.N.Class == PAUTO { - ll.N.Used = false + for _, ln := range Curfn.Func.Dcl { + if ln.Class == PAUTO { + ln.Used = false } } markautoused(ptxt) - listsort(&Curfn.Func.Dcl, cmpstackvarlt) + sort.Sort(byStackVar(Curfn.Func.Dcl)) // Unused autos are at the end, chop 'em off. - ll := Curfn.Func.Dcl - - n := ll.N + n := Curfn.Func.Dcl[0] if n.Class == PAUTO && n.Op == ONAME && !n.Used { // No locals used at all Curfn.Func.Dcl = nil @@ -254,19 +260,17 @@ func allocauto(ptxt *obj.Prog) { return } - for ll := Curfn.Func.Dcl; ll.Next != nil; ll = ll.Next { - n = ll.Next.N + for i := 1; i < len(Curfn.Func.Dcl); i++ { + n = Curfn.Func.Dcl[i] if n.Class == PAUTO && n.Op == ONAME && !n.Used { - ll.Next = nil - Curfn.Func.Dcl.End = ll + Curfn.Func.Dcl = Curfn.Func.Dcl[:i] break } } // Reassign stack offsets of the locals that are still there. var w int64 - for ll := Curfn.Func.Dcl; ll != nil; ll = ll.Next { - n = ll.N + for _, n := range Curfn.Func.Dcl { if n.Class != PAUTO || n.Op != ONAME { continue } @@ -298,12 +302,12 @@ func allocauto(ptxt *obj.Prog) { fixautoused(ptxt) // The debug information needs accurate offsets on the symbols. - for ll := Curfn.Func.Dcl; ll != nil; ll = ll.Next { - if ll.N.Class != PAUTO || ll.N.Op != ONAME { + for _, ln := range Curfn.Func.Dcl { + if ln.Class != PAUTO || ln.Op != ONAME { continue } - ll.N.Xoffset += stkdelta[ll.N] - delete(stkdelta, ll.N) + ln.Xoffset += stkdelta[ln] + delete(stkdelta, ln) } } @@ -455,16 +459,15 @@ func compile(fn *Node) { gtrack(tracksym(t)) } - for l := fn.Func.Dcl; l != nil; l = l.Next { - n = l.N + for _, n := range fn.Func.Dcl { if n.Op != ONAME { // might be OTYPE or OLITERAL continue } switch n.Class { case PAUTO, PPARAM, PPARAMOUT: - Nodconst(&nod1, Types[TUINTPTR], l.N.Type.Width) - p = Thearch.Gins(obj.ATYPE, l.N, &nod1) - p.From.Gotype = Linksym(ngotype(l.N)) + Nodconst(&nod1, Types[TUINTPTR], n.Type.Width) + p = Thearch.Gins(obj.ATYPE, n, &nod1) + p.From.Gotype = Linksym(ngotype(n)) } } diff --git a/src/cmd/compile/internal/gc/plive.go b/src/cmd/compile/internal/gc/plive.go index 8719029c91..84a24a827a 100644 --- a/src/cmd/compile/internal/gc/plive.go +++ b/src/cmd/compile/internal/gc/plive.go @@ -197,8 +197,8 @@ func blockany(bb *BasicBlock, f func(*obj.Prog) bool) bool { // variables. func getvariables(fn *Node) []*Node { result := make([]*Node, 0, 0) - for ll := fn.Func.Dcl; ll != nil; ll = ll.Next { - if ll.N.Op == ONAME { + for _, ln := range fn.Func.Dcl { + if ln.Op == ONAME { // In order for GODEBUG=gcdead=1 to work, each bitmap needs // to contain information about all variables covered by the bitmap. // For local variables, the bitmap only covers the stkptrsize @@ -218,24 +218,24 @@ func getvariables(fn *Node) []*Node { // Later, when we want to find the index of a node in the variables list, // we will check that n->curfn == curfn and n->opt > 0. Then n->opt - 1 // is the index in the variables list. - ll.N.SetOpt(nil) + ln.SetOpt(nil) // The compiler doesn't emit initializations for zero-width parameters or results. - if ll.N.Type.Width == 0 { + if ln.Type.Width == 0 { continue } - ll.N.Name.Curfn = Curfn - switch ll.N.Class { + ln.Name.Curfn = Curfn + switch ln.Class { case PAUTO: - if haspointers(ll.N.Type) { - ll.N.SetOpt(int32(len(result))) - result = append(result, ll.N) + if haspointers(ln.Type) { + ln.SetOpt(int32(len(result))) + result = append(result, ln) } case PPARAM, PPARAMOUT: - ll.N.SetOpt(int32(len(result))) - result = append(result, ll.N) + ln.SetOpt(int32(len(result))) + result = append(result, ln) } } } @@ -795,8 +795,8 @@ func livenessprintcfg(lv *Liveness) { } func checkauto(fn *Node, p *obj.Prog, n *Node) { - for l := fn.Func.Dcl; l != nil; l = l.Next { - if l.N.Op == ONAME && l.N.Class == PAUTO && l.N == n { + for _, ln := range fn.Func.Dcl { + if ln.Op == ONAME && ln.Class == PAUTO && ln == n { return } } @@ -807,8 +807,8 @@ func checkauto(fn *Node, p *obj.Prog, n *Node) { } fmt.Printf("checkauto %v: %v (%p; class=%d) not found in %p %v\n", funcSym(Curfn), n, n, n.Class, p, p) - for l := fn.Func.Dcl; l != nil; l = l.Next { - fmt.Printf("\t%v (%p; class=%d)\n", l.N, l.N, l.N.Class) + for _, ln := range fn.Func.Dcl { + fmt.Printf("\t%v (%p; class=%d)\n", ln, ln, ln.Class) } Yyerror("checkauto: invariant lost") } @@ -817,10 +817,8 @@ func checkparam(fn *Node, p *obj.Prog, n *Node) { if isfunny(n) { return } - var a *Node var class Class - for l := fn.Func.Dcl; l != nil; l = l.Next { - a = l.N + for _, a := range fn.Func.Dcl { class = a.Class &^ PHEAP if a.Op == ONAME && (class == PPARAM || class == PPARAMOUT) && a == n { return @@ -828,8 +826,8 @@ func checkparam(fn *Node, p *obj.Prog, n *Node) { } fmt.Printf("checkparam %v: %v (%p; class=%d) not found in %v\n", Curfn, n, n, n.Class, p) - for l := fn.Func.Dcl; l != nil; l = l.Next { - fmt.Printf("\t%v (%p; class=%d)\n", l.N, l.N, l.N.Class) + for _, ln := range fn.Func.Dcl { + fmt.Printf("\t%v (%p; class=%d)\n", ln, ln, ln.Class) } Yyerror("checkparam: invariant lost") } @@ -1807,9 +1805,9 @@ func liveness(fn *Node, firstp *obj.Prog, argssym *Sym, livesym *Sym) { onebitwritesymbol(lv.argslivepointers, argssym) // Free everything. - for l := fn.Func.Dcl; l != nil; l = l.Next { - if l.N != nil { - l.N.SetOpt(nil) + for _, ln := range fn.Func.Dcl { + if ln != nil { + ln.SetOpt(nil) } } freeliveness(lv) diff --git a/src/cmd/compile/internal/gc/popt.go b/src/cmd/compile/internal/gc/popt.go index 6eb5c7b60c..0a2d8c45d4 100644 --- a/src/cmd/compile/internal/gc/popt.go +++ b/src/cmd/compile/internal/gc/popt.go @@ -589,8 +589,8 @@ func mergetemp(firstp *obj.Prog) { // Build list of all mergeable variables. var vars []*TempVar - for l := Curfn.Func.Dcl; l != nil; l = l.Next { - if n := l.N; canmerge(n) { + for _, n := range Curfn.Func.Dcl { + if canmerge(n) { v := &TempVar{} vars = append(vars, v) n.SetOpt(v) @@ -819,22 +819,15 @@ func mergetemp(firstp *obj.Prog) { } // Delete merged nodes from declaration list. - for lp := &Curfn.Func.Dcl; ; { - l := *lp - if l == nil { - break - } - - Curfn.Func.Dcl.End = l - n := l.N + dcl := make([]*Node, 0, len(Curfn.Func.Dcl)-nkill) + for _, n := range Curfn.Func.Dcl { v, _ := n.Opt().(*TempVar) if v != nil && (v.merge != nil || v.removed) { - *lp = l.Next continue } - - lp = &l.Next + dcl = append(dcl, n) } + Curfn.Func.Dcl = dcl // Clear aux structures. for _, v := range vars { diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index 5287626aae..a48097122a 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -1543,8 +1543,8 @@ func frame(context int) { if Curfn != nil { fmt.Printf("--- %v frame ---\n", Curfn.Func.Nname.Sym) - for l := Curfn.Func.Dcl; l != nil; l = l.Next { - printframenode(l.N) + for _, ln := range Curfn.Func.Dcl { + printframenode(ln) } } } diff --git a/src/cmd/compile/internal/gc/syntax.go b/src/cmd/compile/internal/gc/syntax.go index a11b37e2ad..adf447de01 100644 --- a/src/cmd/compile/internal/gc/syntax.go +++ b/src/cmd/compile/internal/gc/syntax.go @@ -152,8 +152,8 @@ type Func struct { Enter *NodeList Exit *NodeList Cvars *NodeList // closure params - Dcl *NodeList // autodcl for this func/closure - Inldcl *NodeList // copy of dcl for use in inlining + Dcl []*Node // autodcl for this func/closure + Inldcl []*Node // copy of dcl for use in inlining Closgen int Outerfunc *Node Fieldtrack []*Type diff --git a/src/cmd/compile/internal/gc/typecheck.go b/src/cmd/compile/internal/gc/typecheck.go index 8fd6f85575..395f04c21b 100644 --- a/src/cmd/compile/internal/gc/typecheck.go +++ b/src/cmd/compile/internal/gc/typecheck.go @@ -3433,9 +3433,9 @@ func typecheckfunc(n *Node) { addmethod(n.Func.Shortname.Sym, t, true, n.Func.Nname.Nointerface) } - for l := n.Func.Dcl; l != nil; l = l.Next { - if l.N.Op == ONAME && (l.N.Class == PPARAM || l.N.Class == PPARAMOUT) { - l.N.Name.Decldepth = 1 + for _, ln := range n.Func.Dcl { + if ln.Op == ONAME && (ln.Class == PPARAM || ln.Class == PPARAMOUT) { + ln.Name.Decldepth = 1 } } } diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go index f324d5e00f..acc923a866 100644 --- a/src/cmd/compile/internal/gc/walk.go +++ b/src/cmd/compile/internal/gc/walk.go @@ -29,33 +29,34 @@ func walk(fn *Node) { // Final typecheck for any unused variables. // It's hard to be on the heap when not-used, but best to be consistent about &~PHEAP here and below. - for l := fn.Func.Dcl; l != nil; l = l.Next { - if l.N.Op == ONAME && l.N.Class&^PHEAP == PAUTO { - typecheck(&l.N, Erv|Easgn) + for i, ln := range fn.Func.Dcl { + if ln.Op == ONAME && ln.Class&^PHEAP == PAUTO { + typecheck(&ln, Erv|Easgn) + fn.Func.Dcl[i] = ln } } // Propagate the used flag for typeswitch variables up to the NONAME in it's definition. - for l := fn.Func.Dcl; l != nil; l = l.Next { - if l.N.Op == ONAME && l.N.Class&^PHEAP == PAUTO && l.N.Name.Defn != nil && l.N.Name.Defn.Op == OTYPESW && l.N.Used { - l.N.Name.Defn.Left.Used = true + for _, ln := range fn.Func.Dcl { + if ln.Op == ONAME && ln.Class&^PHEAP == PAUTO && ln.Name.Defn != nil && ln.Name.Defn.Op == OTYPESW && ln.Used { + ln.Name.Defn.Left.Used = true } } - for l := fn.Func.Dcl; l != nil; l = l.Next { - if l.N.Op != ONAME || l.N.Class&^PHEAP != PAUTO || l.N.Sym.Name[0] == '&' || l.N.Used { + for _, ln := range fn.Func.Dcl { + if ln.Op != ONAME || ln.Class&^PHEAP != PAUTO || ln.Sym.Name[0] == '&' || ln.Used { continue } - if defn := l.N.Name.Defn; defn != nil && defn.Op == OTYPESW { + if defn := ln.Name.Defn; defn != nil && defn.Op == OTYPESW { if defn.Left.Used { continue } lineno = defn.Left.Lineno - Yyerror("%v declared and not used", l.N.Sym) + Yyerror("%v declared and not used", ln.Sym) defn.Left.Used = true // suppress repeats } else { - lineno = l.N.Lineno - Yyerror("%v declared and not used", l.N.Sym) + lineno = ln.Lineno + Yyerror("%v declared and not used", ln.Sym) } } @@ -92,11 +93,11 @@ func samelist(a *NodeList, b *NodeList) bool { } func paramoutheap(fn *Node) bool { - for l := fn.Func.Dcl; l != nil; l = l.Next { - switch l.N.Class { + for _, ln := range fn.Func.Dcl { + switch ln.Class { case PPARAMOUT, PPARAMOUT | PHEAP: - return l.N.Addrtaken + return ln.Addrtaken // stop early - parameters are over case PAUTO, @@ -290,13 +291,13 @@ func walkstmt(np **Node) { var rl *NodeList var cl Class - for ll := Curfn.Func.Dcl; ll != nil; ll = ll.Next { - cl = ll.N.Class &^ PHEAP + for _, ln := range Curfn.Func.Dcl { + cl = ln.Class &^ PHEAP if cl == PAUTO { break } if cl == PPARAMOUT { - rl = list(rl, ll.N) + rl = list(rl, ln) } } diff --git a/src/cmd/compile/internal/mips64/ggen.go b/src/cmd/compile/internal/mips64/ggen.go index 8c285a2952..429eb351a2 100644 --- a/src/cmd/compile/internal/mips64/ggen.go +++ b/src/cmd/compile/internal/mips64/ggen.go @@ -12,8 +12,6 @@ import ( ) func defframe(ptxt *obj.Prog) { - var n *gc.Node - // fill in argument size, stack size ptxt.To.Type = obj.TYPE_TEXTSIZE @@ -30,8 +28,7 @@ func defframe(ptxt *obj.Prog) { lo := hi // iterate through declarations - they are sorted in decreasing xoffset order. - for l := gc.Curfn.Func.Dcl; l != nil; l = l.Next { - n = l.N + for _, n := range gc.Curfn.Func.Dcl { if !n.Name.Needzero { continue } diff --git a/src/cmd/compile/internal/ppc64/ggen.go b/src/cmd/compile/internal/ppc64/ggen.go index 00fcdb8443..5e50f9e0e8 100644 --- a/src/cmd/compile/internal/ppc64/ggen.go +++ b/src/cmd/compile/internal/ppc64/ggen.go @@ -12,8 +12,6 @@ import ( ) func defframe(ptxt *obj.Prog) { - var n *gc.Node - // fill in argument size, stack size ptxt.To.Type = obj.TYPE_TEXTSIZE @@ -30,8 +28,7 @@ func defframe(ptxt *obj.Prog) { lo := hi // iterate through declarations - they are sorted in decreasing xoffset order. - for l := gc.Curfn.Func.Dcl; l != nil; l = l.Next { - n = l.N + for _, n := range gc.Curfn.Func.Dcl { if !n.Name.Needzero { continue } diff --git a/src/cmd/compile/internal/x86/ggen.go b/src/cmd/compile/internal/x86/ggen.go index 139b199b57..480ae1c585 100644 --- a/src/cmd/compile/internal/x86/ggen.go +++ b/src/cmd/compile/internal/x86/ggen.go @@ -11,8 +11,6 @@ import ( ) func defframe(ptxt *obj.Prog) { - var n *gc.Node - // fill in argument size, stack size ptxt.To.Type = obj.TYPE_TEXTSIZE @@ -28,8 +26,7 @@ func defframe(ptxt *obj.Prog) { hi := int64(0) lo := hi ax := uint32(0) - for l := gc.Curfn.Func.Dcl; l != nil; l = l.Next { - n = l.N + for _, n := range gc.Curfn.Func.Dcl { if !n.Name.Needzero { continue } From a131a66e63d805db05bb320146815ee053a1c258 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 26 Feb 2016 13:05:35 -0800 Subject: [PATCH 080/101] cmd/compile: create test binary in temp directory The new TestDashS was leaving a dreg "test" file in cmd/compile/internal/gc. Create it in the temporary directory instead. Also change path.Join to filepath.Join throughout global_test.go. Change-Id: Ib7707fada2b3ab5e8abc2ba74e4c402821c1408b Reviewed-on: https://go-review.googlesource.com/19965 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot Reviewed-by: Keith Randall --- src/cmd/compile/internal/gc/global_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cmd/compile/internal/gc/global_test.go b/src/cmd/compile/internal/gc/global_test.go index 80781e61a8..bd1391d9ad 100644 --- a/src/cmd/compile/internal/gc/global_test.go +++ b/src/cmd/compile/internal/gc/global_test.go @@ -11,7 +11,7 @@ import ( "log" "os" "os/exec" - "path" + "path/filepath" "strings" "testing" ) @@ -29,7 +29,7 @@ func TestScanfRemoval(t *testing.T) { defer os.RemoveAll(dir) // Create source. - src := path.Join(dir, "test.go") + src := filepath.Join(dir, "test.go") f, err := os.Create(src) if err != nil { log.Fatalf("could not create source file: %v", err) @@ -44,7 +44,7 @@ func main() { f.Close() // Name of destination. - dst := path.Join(dir, "test") + dst := filepath.Join(dir, "test") // Compile source. cmd := exec.Command("go", "build", "-o", dst, src) @@ -76,7 +76,7 @@ func TestDashS(t *testing.T) { defer os.RemoveAll(dir) // Create source. - src := path.Join(dir, "test.go") + src := filepath.Join(dir, "test.go") f, err := os.Create(src) if err != nil { log.Fatalf("could not create source file: %v", err) @@ -91,7 +91,7 @@ func main() { f.Close() // Compile source. - cmd := exec.Command("go", "build", "-gcflags", "-S", src) + cmd := exec.Command("go", "build", "-gcflags", "-S", "-o", filepath.Join(dir, "test"), src) out, err := cmd.CombinedOutput() if err != nil { log.Fatalf("could not build target: %v", err) From af558acc470dc1590788bbd695b0727e382cb74c Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Thu, 25 Feb 2016 22:10:48 -0800 Subject: [PATCH 081/101] cmd/compile: fix contrived line number errors If a general comment contains multiple newline characters, we can't simply unread one and then re-lex it via the general whitespace lexing phase, because then we'll reset lineno to the line before the "*/" marker, rather than keeping it where we found the "/*" marker. Also, for processing imports, call importfile before advancing the lexer with p.next(), so that lineno reflects the line where we found the import path, and not the token afterwards. Fixes #14520. Change-Id: I785a2d83d632280113d4b757de0d57c88ba2caf4 Reviewed-on: https://go-review.googlesource.com/19934 Reviewed-by: Robert Griesemer Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/lex.go | 30 +++++++++++++-------------- src/cmd/compile/internal/gc/parser.go | 16 +++++++------- test/fixedbugs/issue14520.go | 14 +++++++++++++ 3 files changed, 38 insertions(+), 22 deletions(-) create mode 100644 test/fixedbugs/issue14520.go diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index 0142300063..502859c8fc 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -1000,31 +1000,31 @@ l0: case '/': c1 = l.getr() if c1 == '*' { - nl := false + c = l.getr() for { - c = l.getr() - if c == '\n' { - nl = true - } - for c == '*' { + if c == '*' { c = l.getr() if c == '/' { - if nl { - l.ungetr('\n') - } - goto l0 - } - - if c == '\n' { - nl = true + break } + continue } - if c == EOF { Yyerror("eof in comment") errorexit() } + c = l.getr() } + + // A comment containing newlines acts like a newline. + if lexlineno > lineno && nlsemi { + if Debug['x'] != 0 { + fmt.Printf("lex: implicit semi\n") + } + l.tok = ';' + return + } + goto l0 } if c1 == '/' { diff --git a/src/cmd/compile/internal/gc/parser.go b/src/cmd/compile/internal/gc/parser.go index 88d45118da..5a67a3fa3a 100644 --- a/src/cmd/compile/internal/gc/parser.go +++ b/src/cmd/compile/internal/gc/parser.go @@ -333,20 +333,22 @@ func (p *parser) importdcl() { } line := int32(parserline()) - path := p.val - p.next() - importfile(&path, p.indent) - if importpkg == nil { + // We need to clear importpkg before calling p.next(), + // otherwise it will affect lexlineno. + // TODO(mdempsky): Fix this clumsy API. + importfile(&p.val, p.indent) + ipkg := importpkg + importpkg = nil + + p.next() + if ipkg == nil { if nerrors == 0 { Fatalf("phase error in import") } return } - ipkg := importpkg - importpkg = nil - ipkg.Direct = true if my == nil { diff --git a/test/fixedbugs/issue14520.go b/test/fixedbugs/issue14520.go new file mode 100644 index 0000000000..43c48b5c27 --- /dev/null +++ b/test/fixedbugs/issue14520.go @@ -0,0 +1,14 @@ +// errorcheck + +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package f + +import /* // ERROR "import path" */ ` +bogus` + +func f(x int /* // ERROR "unexpected semicolon" + +*/) From 071e43a95809030d3a74b3d526da1497d02d17e4 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Fri, 26 Feb 2016 01:37:28 -0800 Subject: [PATCH 082/101] cmd/compile: stop representing keywords as Syms Instead add a dedicated keywords map for use in lexer.ident and drop Sym's Lexical field. Change-Id: Ia668e65499035ff7167fabbbd0cd027102b21231 Reviewed-on: https://go-review.googlesource.com/19935 Reviewed-by: Robert Griesemer Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/go.go | 3 +- src/cmd/compile/internal/gc/lex.go | 206 ++++++++++++++-------------- src/cmd/compile/internal/gc/subr.go | 5 +- 3 files changed, 104 insertions(+), 110 deletions(-) diff --git a/src/cmd/compile/internal/gc/go.go b/src/cmd/compile/internal/gc/go.go index d0e4824649..a6fe8947c3 100644 --- a/src/cmd/compile/internal/gc/go.go +++ b/src/cmd/compile/internal/gc/go.go @@ -122,10 +122,9 @@ type Pkg struct { } type Sym struct { - Lexical uint16 Flags uint8 - Link *Sym Uniqgen uint32 + Link *Sym Importdef *Pkg // where imported definition was found Linkname string // link name diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index 502859c8fc..d6a18c7286 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -1265,16 +1265,64 @@ func (l *lexer) ident(c rune) { cp = nil l.ungetr(c) - s := LookupBytes(lexbuf.Bytes()) + name := lexbuf.Bytes() + + if len(name) >= 2 { + if tok, ok := keywords[string(name)]; ok { + if Debug['x'] != 0 { + fmt.Printf("lex: %s\n", lexname(tok)) + } + switch tok { + case LBREAK, LCONTINUE, LFALL, LRETURN: + l.nlsemi = true + } + l.tok = tok + return + } + } + + s := LookupBytes(name) if Debug['x'] != 0 { - fmt.Printf("lex: %s %s\n", s, lexname(rune(s.Lexical))) + fmt.Printf("lex: ident %s\n", s) } l.sym_ = s - switch s.Lexical { - case LNAME, LRETURN, LBREAK, LCONTINUE, LFALL: - l.nlsemi = true - } - l.tok = int32(s.Lexical) + l.nlsemi = true + l.tok = LNAME +} + +var keywords = map[string]int32{ + "break": LBREAK, + "case": LCASE, + "chan": LCHAN, + "const": LCONST, + "continue": LCONTINUE, + "default": LDEFAULT, + "defer": LDEFER, + "else": LELSE, + "fallthrough": LFALL, + "for": LFOR, + "func": LFUNC, + "go": LGO, + "goto": LGOTO, + "if": LIF, + "import": LIMPORT, + "interface": LINTERFACE, + "map": LMAP, + "package": LPACKAGE, + "range": LRANGE, + "return": LRETURN, + "select": LSELECT, + "struct": LSTRUCT, + "switch": LSWITCH, + "type": LTYPE, + "var": LVAR, + + // 💩 + "notwithstanding": LIGNORE, + "thetruthofthematter": LIGNORE, + "despiteallobjections": LIGNORE, + "whereas": LIGNORE, + "insofaras": LIGNORE, } func (l *lexer) number(c rune) { @@ -1992,81 +2040,48 @@ func (l *lexer) hexchar(n int) uint32 { } var syms = []struct { - name string - lexical int - etype EType - op Op + name string + etype EType + op Op }{ // basic types - {"int8", LNAME, TINT8, OXXX}, - {"int16", LNAME, TINT16, OXXX}, - {"int32", LNAME, TINT32, OXXX}, - {"int64", LNAME, TINT64, OXXX}, - {"uint8", LNAME, TUINT8, OXXX}, - {"uint16", LNAME, TUINT16, OXXX}, - {"uint32", LNAME, TUINT32, OXXX}, - {"uint64", LNAME, TUINT64, OXXX}, - {"float32", LNAME, TFLOAT32, OXXX}, - {"float64", LNAME, TFLOAT64, OXXX}, - {"complex64", LNAME, TCOMPLEX64, OXXX}, - {"complex128", LNAME, TCOMPLEX128, OXXX}, - {"bool", LNAME, TBOOL, OXXX}, - {"string", LNAME, TSTRING, OXXX}, - {"any", LNAME, TANY, OXXX}, - {"break", LBREAK, Txxx, OXXX}, - {"case", LCASE, Txxx, OXXX}, - {"chan", LCHAN, Txxx, OXXX}, - {"const", LCONST, Txxx, OXXX}, - {"continue", LCONTINUE, Txxx, OXXX}, - {"default", LDEFAULT, Txxx, OXXX}, - {"else", LELSE, Txxx, OXXX}, - {"defer", LDEFER, Txxx, OXXX}, - {"fallthrough", LFALL, Txxx, OXXX}, - {"for", LFOR, Txxx, OXXX}, - {"func", LFUNC, Txxx, OXXX}, - {"go", LGO, Txxx, OXXX}, - {"goto", LGOTO, Txxx, OXXX}, - {"if", LIF, Txxx, OXXX}, - {"import", LIMPORT, Txxx, OXXX}, - {"interface", LINTERFACE, Txxx, OXXX}, - {"map", LMAP, Txxx, OXXX}, - {"package", LPACKAGE, Txxx, OXXX}, - {"range", LRANGE, Txxx, OXXX}, - {"return", LRETURN, Txxx, OXXX}, - {"select", LSELECT, Txxx, OXXX}, - {"struct", LSTRUCT, Txxx, OXXX}, - {"switch", LSWITCH, Txxx, OXXX}, - {"type", LTYPE, Txxx, OXXX}, - {"var", LVAR, Txxx, OXXX}, - {"append", LNAME, Txxx, OAPPEND}, - {"cap", LNAME, Txxx, OCAP}, - {"close", LNAME, Txxx, OCLOSE}, - {"complex", LNAME, Txxx, OCOMPLEX}, - {"copy", LNAME, Txxx, OCOPY}, - {"delete", LNAME, Txxx, ODELETE}, - {"imag", LNAME, Txxx, OIMAG}, - {"len", LNAME, Txxx, OLEN}, - {"make", LNAME, Txxx, OMAKE}, - {"new", LNAME, Txxx, ONEW}, - {"panic", LNAME, Txxx, OPANIC}, - {"print", LNAME, Txxx, OPRINT}, - {"println", LNAME, Txxx, OPRINTN}, - {"real", LNAME, Txxx, OREAL}, - {"recover", LNAME, Txxx, ORECOVER}, - {"notwithstanding", LIGNORE, Txxx, OXXX}, - {"thetruthofthematter", LIGNORE, Txxx, OXXX}, - {"despiteallobjections", LIGNORE, Txxx, OXXX}, - {"whereas", LIGNORE, Txxx, OXXX}, - {"insofaras", LIGNORE, Txxx, OXXX}, + {"int8", TINT8, OXXX}, + {"int16", TINT16, OXXX}, + {"int32", TINT32, OXXX}, + {"int64", TINT64, OXXX}, + {"uint8", TUINT8, OXXX}, + {"uint16", TUINT16, OXXX}, + {"uint32", TUINT32, OXXX}, + {"uint64", TUINT64, OXXX}, + {"float32", TFLOAT32, OXXX}, + {"float64", TFLOAT64, OXXX}, + {"complex64", TCOMPLEX64, OXXX}, + {"complex128", TCOMPLEX128, OXXX}, + {"bool", TBOOL, OXXX}, + {"string", TSTRING, OXXX}, + {"any", TANY, OXXX}, + + // builtin funcs + {"append", Txxx, OAPPEND}, + {"cap", Txxx, OCAP}, + {"close", Txxx, OCLOSE}, + {"complex", Txxx, OCOMPLEX}, + {"copy", Txxx, OCOPY}, + {"delete", Txxx, ODELETE}, + {"imag", Txxx, OIMAG}, + {"len", Txxx, OLEN}, + {"make", Txxx, OMAKE}, + {"new", Txxx, ONEW}, + {"panic", Txxx, OPANIC}, + {"print", Txxx, OPRINT}, + {"println", Txxx, OPRINTN}, + {"real", Txxx, OREAL}, + {"recover", Txxx, ORECOVER}, } // lexinit initializes known symbols and the basic types. func lexinit() { for _, s := range syms { - lex := s.lexical - s1 := Lookup(s.name) - s1.Lexical = uint16(lex) - if etype := s.etype; etype != Txxx { if int(etype) >= len(Types) { Fatalf("lexinit: %s bad etype", s.name) @@ -2083,7 +2098,6 @@ func lexinit() { Types[etype] = t } - s2.Lexical = LNAME s2.Def = typenod(t) s2.Def.Name = new(Name) continue @@ -2092,7 +2106,6 @@ func lexinit() { // TODO(marvin): Fix Node.EType type union. if etype := s.op; etype != OXXX { s2 := Pkglookup(s.name, builtinpkg) - s2.Lexical = LNAME s2.Def = Nod(ONAME, nil, nil) s2.Def.Sym = s2 s2.Def.Etype = EType(etype) @@ -2171,46 +2184,29 @@ func lexinit1() { t.Type.Type = f // error type - s := Lookup("error") - - s.Lexical = LNAME - s1 := Pkglookup("error", builtinpkg) + s := Pkglookup("error", builtinpkg) errortype = t - errortype.Sym = s1 - s1.Lexical = LNAME - s1.Def = typenod(errortype) + errortype.Sym = s + s.Def = typenod(errortype) // byte alias - s = Lookup("byte") - - s.Lexical = LNAME - s1 = Pkglookup("byte", builtinpkg) + s = Pkglookup("byte", builtinpkg) bytetype = typ(TUINT8) - bytetype.Sym = s1 - s1.Lexical = LNAME - s1.Def = typenod(bytetype) - s1.Def.Name = new(Name) + bytetype.Sym = s + s.Def = typenod(bytetype) + s.Def.Name = new(Name) // rune alias - s = Lookup("rune") - - s.Lexical = LNAME - s1 = Pkglookup("rune", builtinpkg) + s = Pkglookup("rune", builtinpkg) runetype = typ(TINT32) - runetype.Sym = s1 - s1.Lexical = LNAME - s1.Def = typenod(runetype) - s1.Def.Name = new(Name) + runetype.Sym = s + s.Def = typenod(runetype) + s.Def.Name = new(Name) } func lexfini() { for i := range syms { - lex := syms[i].lexical - if lex != LNAME { - continue - } s := Lookup(syms[i].name) - s.Lexical = uint16(lex) etype := syms[i].etype if etype != Txxx && (etype != TANY || Debug['A'] != 0) && s.Def == nil { diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index a48097122a..896fa868fe 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -238,9 +238,8 @@ func (pkg *Pkg) Lookup(name string) *Sym { } s := &Sym{ - Name: name, - Pkg: pkg, - Lexical: LNAME, + Name: name, + Pkg: pkg, } if name == "init" { initSyms = append(initSyms, s) From 3c0fae53062d80678d8f79877143b46ee787569c Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Fri, 26 Feb 2016 13:32:28 -0800 Subject: [PATCH 083/101] cmd/compile: track pragmas in lexer rather than global variables By using a Pragma bit set (8 bits) rather than 8 booleans, also reduce Func type size by 8 bytes (208B -> 200B on 64bit platforms, 116B -> 108B on 32bit platforms). Change-Id: Ibb7e1f8c418a0b5bc6ff813cbdde7bc6f0013b5a Reviewed-on: https://go-review.googlesource.com/19966 Reviewed-by: Dave Cheney --- src/cmd/compile/internal/gc/bimport.go | 3 +- src/cmd/compile/internal/gc/cgen.go | 4 +-- src/cmd/compile/internal/gc/dcl.go | 2 +- src/cmd/compile/internal/gc/go.go | 13 --------- src/cmd/compile/internal/gc/inl.go | 2 +- src/cmd/compile/internal/gc/lex.go | 34 +++++++++++++++++------ src/cmd/compile/internal/gc/parser.go | 37 ++++++++----------------- src/cmd/compile/internal/gc/pgen.go | 4 +-- src/cmd/compile/internal/gc/racewalk.go | 2 +- src/cmd/compile/internal/gc/syntax.go | 16 ++++------- 10 files changed, 50 insertions(+), 67 deletions(-) diff --git a/src/cmd/compile/internal/gc/bimport.go b/src/cmd/compile/internal/gc/bimport.go index 731f31ba52..f330f1b9e6 100644 --- a/src/cmd/compile/internal/gc/bimport.go +++ b/src/cmd/compile/internal/gc/bimport.go @@ -240,10 +240,9 @@ func (p *importer) typ() *Type { { saved := structpkg structpkg = tsym.Pkg - addmethod(sym, n.Type, false, nointerface) + addmethod(sym, n.Type, false, false) structpkg = saved } - nointerface = false funchdr(n) // (comment from go.y) diff --git a/src/cmd/compile/internal/gc/cgen.go b/src/cmd/compile/internal/gc/cgen.go index fdeb6e65f7..7be050dd56 100644 --- a/src/cmd/compile/internal/gc/cgen.go +++ b/src/cmd/compile/internal/gc/cgen.go @@ -781,7 +781,7 @@ var sys_wbptr *Node func cgen_wbptr(n, res *Node) { if Curfn != nil { - if Curfn.Func.Nowritebarrier { + if Curfn.Func.Pragma&Nowritebarrier != 0 { Yyerror("write barrier prohibited") } if Curfn.Func.WBLineno == 0 { @@ -831,7 +831,7 @@ func cgen_wbptr(n, res *Node) { func cgen_wbfat(n, res *Node) { if Curfn != nil { - if Curfn.Func.Nowritebarrier { + if Curfn.Func.Pragma&Nowritebarrier != 0 { Yyerror("write barrier prohibited") } if Curfn.Func.WBLineno == 0 { diff --git a/src/cmd/compile/internal/gc/dcl.go b/src/cmd/compile/internal/gc/dcl.go index ccbb2d9d70..e485f9d79f 100644 --- a/src/cmd/compile/internal/gc/dcl.go +++ b/src/cmd/compile/internal/gc/dcl.go @@ -1530,7 +1530,7 @@ func checknowritebarrierrec() { // Check nowritebarrierrec functions. for _, n := range list { - if !n.Func.Nowritebarrierrec { + if n.Func.Pragma&Nowritebarrierrec == 0 { continue } call, hasWB := c.best[n] diff --git a/src/cmd/compile/internal/gc/go.go b/src/cmd/compile/internal/gc/go.go index a6fe8947c3..dbf3a97e7c 100644 --- a/src/cmd/compile/internal/gc/go.go +++ b/src/cmd/compile/internal/gc/go.go @@ -616,23 +616,10 @@ var flag_largemodel int // when the race detector is enabled. var instrumenting bool -// Pending annotations for next func declaration. -var ( - noescape bool - noinline bool - norace bool - nosplit bool - nowritebarrier bool - nowritebarrierrec bool - systemstack bool -) - var debuglive int var Ctxt *obj.Link -var nointerface bool - var writearchive int var bstdout obj.Biobuf diff --git a/src/cmd/compile/internal/gc/inl.go b/src/cmd/compile/internal/gc/inl.go index cae15f91de..17cc61a823 100644 --- a/src/cmd/compile/internal/gc/inl.go +++ b/src/cmd/compile/internal/gc/inl.go @@ -107,7 +107,7 @@ func caninl(fn *Node) { } // If marked "go:noinline", don't inline - if fn.Func.Noinline { + if fn.Func.Pragma&Noinline != 0 { return } diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index d6a18c7286..c15fefb71d 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -844,6 +844,19 @@ func plan9quote(s string) string { return s } +type Pragma uint8 + +const ( + Nointerface Pragma = 1 << iota + Noescape // func parameters don't escape + Norace // func must not have race detector annotations + Nosplit // func should not execute on separate stack + Noinline // func should not be inlined + Systemstack // func must run on system stack + Nowritebarrier // emit compiler error instead of write barrier + Nowritebarrierrec // error on write barrier in this or recursive callees +) + type lexer struct { // source bin *obj.Biobuf @@ -852,6 +865,10 @@ type lexer struct { nlsemi bool // if set, '\n' and EOF translate to ';' + // pragma flags + // accumulated by lexer; reset by parser + pragma Pragma + // current token tok int32 sym_ *Sym // valid if tok == LNAME @@ -1650,32 +1667,31 @@ func (l *lexer) getlinepragma() rune { Lookup(f[1]).Linkname = f[2] case "go:nointerface": if obj.Fieldtrack_enabled != 0 { - nointerface = true + l.pragma |= Nointerface } case "go:noescape": - noescape = true + l.pragma |= Noescape case "go:norace": - norace = true + l.pragma |= Norace case "go:nosplit": - nosplit = true + l.pragma |= Nosplit case "go:noinline": - noinline = true + l.pragma |= Noinline case "go:systemstack": if compiling_runtime == 0 { Yyerror("//go:systemstack only allowed in runtime") } - systemstack = true + l.pragma |= Systemstack case "go:nowritebarrier": if compiling_runtime == 0 { Yyerror("//go:nowritebarrier only allowed in runtime") } - nowritebarrier = true + l.pragma |= Nowritebarrier case "go:nowritebarrierrec": if compiling_runtime == 0 { Yyerror("//go:nowritebarrierrec only allowed in runtime") } - nowritebarrierrec = true - nowritebarrier = true // Implies nowritebarrier + l.pragma |= Nowritebarrierrec | Nowritebarrier // implies Nowritebarrier } return c } diff --git a/src/cmd/compile/internal/gc/parser.go b/src/cmd/compile/internal/gc/parser.go index 5a67a3fa3a..d42572391d 100644 --- a/src/cmd/compile/internal/gc/parser.go +++ b/src/cmd/compile/internal/gc/parser.go @@ -1893,25 +1893,21 @@ func (p *parser) xfndcl() *Node { } p.want(LFUNC) - f := p.fndcl() + f := p.fndcl(p.pragma&Nointerface != 0) body := p.fnbody() if f == nil { return nil } - if noescape && body != nil { - Yyerror("can only use //go:noescape with external func implementations") - } f.Nbody = body + f.Noescape = p.pragma&Noescape != 0 + if f.Noescape && body != nil { + Yyerror("can only use //go:noescape with external func implementations") + } + f.Func.Pragma = p.pragma f.Func.Endlineno = lineno - f.Noescape = noescape - f.Func.Norace = norace - f.Func.Nosplit = nosplit - f.Func.Noinline = noinline - f.Func.Nowritebarrier = nowritebarrier - f.Func.Nowritebarrierrec = nowritebarrierrec - f.Func.Systemstack = systemstack + funcbody(f) return f @@ -1922,7 +1918,7 @@ func (p *parser) xfndcl() *Node { // Function = Signature FunctionBody . // MethodDecl = "func" Receiver MethodName ( Function | Signature ) . // Receiver = Parameters . -func (p *parser) fndcl() *Node { +func (p *parser) fndcl(nointerface bool) *Node { if trace && Debug['x'] != 0 { defer p.trace("fndcl")() } @@ -2058,8 +2054,7 @@ func (p *parser) hidden_fndcl() *Node { ss.Type = functype(s2.N, s6, s8) checkwidth(ss.Type) - addmethod(s4, ss.Type, false, nointerface) - nointerface = false + addmethod(s4, ss.Type, false, false) funchdr(ss) // inl.C's inlnode in on a dotmeth node expects to find the inlineable body as @@ -2140,18 +2135,10 @@ loop: testdclstack() } - noescape = false - noinline = false - nointerface = false - norace = false - nosplit = false - nowritebarrier = false - nowritebarrierrec = false - systemstack = false + // Reset p.pragma BEFORE advancing to the next token (consuming ';') + // since comments before may set pragmas for the next function decl. + p.pragma = 0 - // Consume ';' AFTER resetting the above flags since - // it may read the subsequent comment line which may - // set the flags for the next function declaration. if p.tok != EOF && !p.got(';') { p.syntax_error("after top level declaration") p.advance(LVAR, LCONST, LTYPE, LFUNC) diff --git a/src/cmd/compile/internal/gc/pgen.go b/src/cmd/compile/internal/gc/pgen.go index a44cc734f6..475d8e7b83 100644 --- a/src/cmd/compile/internal/gc/pgen.go +++ b/src/cmd/compile/internal/gc/pgen.go @@ -434,10 +434,10 @@ func compile(fn *Node) { if fn.Func.Needctxt { ptxt.From3.Offset |= obj.NEEDCTXT } - if fn.Func.Nosplit { + if fn.Func.Pragma&Nosplit != 0 { ptxt.From3.Offset |= obj.NOSPLIT } - if fn.Func.Systemstack { + if fn.Func.Pragma&Systemstack != 0 { ptxt.From.Sym.Cfunc = 1 } diff --git a/src/cmd/compile/internal/gc/racewalk.go b/src/cmd/compile/internal/gc/racewalk.go index 8a6eba3964..d1ae6be0ad 100644 --- a/src/cmd/compile/internal/gc/racewalk.go +++ b/src/cmd/compile/internal/gc/racewalk.go @@ -50,7 +50,7 @@ func ispkgin(pkgs []string) bool { } func instrument(fn *Node) { - if ispkgin(omit_pkgs) || fn.Func.Norace { + if ispkgin(omit_pkgs) || fn.Func.Pragma&Norace != 0 { return } diff --git a/src/cmd/compile/internal/gc/syntax.go b/src/cmd/compile/internal/gc/syntax.go index adf447de01..83ee4aedeb 100644 --- a/src/cmd/compile/internal/gc/syntax.go +++ b/src/cmd/compile/internal/gc/syntax.go @@ -169,18 +169,12 @@ type Func struct { Depth int32 Endlineno int32 + WBLineno int32 // line number of first write barrier - Norace bool // func must not have race detector annotations - Nosplit bool // func should not execute on separate stack - Noinline bool // func should not be inlined - Nowritebarrier bool // emit compiler error instead of write barrier - Nowritebarrierrec bool // error on write barrier in this or recursive callees - Dupok bool // duplicate definitions ok - Wrapper bool // is method wrapper - Needctxt bool // function uses context register (has closure variables) - Systemstack bool // must run on system stack - - WBLineno int32 // line number of first write barrier + Pragma Pragma // go:xxx function annotations + Dupok bool // duplicate definitions ok + Wrapper bool // is method wrapper + Needctxt bool // function uses context register (has closure variables) } type Op uint8 From 0f5d78f6784a728c3544282faebdcf5689d478ef Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Sun, 21 Feb 2016 15:49:52 -0800 Subject: [PATCH 084/101] cmd/compile: factor shared code from geneq and genhash Passes toolstash -cmp. Change-Id: Ifae69e5ba673f01da3dfc1fd30cdc51873481623 Reviewed-on: https://go-review.googlesource.com/19840 Reviewed-by: David Crawshaw --- src/cmd/compile/internal/gc/subr.go | 77 ++++++++++++++--------------- 1 file changed, 36 insertions(+), 41 deletions(-) diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index 896fa868fe..5428066f4f 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -2507,35 +2507,20 @@ func genhash(sym *Sym, t *Type) { fn.Nbody = list(fn.Nbody, n) - // Walk the struct using memhash for runs of AMEM + // Walk the struct using memhash for runs of AMEM // and calling specific hash functions for the others. case TSTRUCT: - var first *Type - - offend := int64(0) - var size int64 var call *Node var nx *Node var na *Node var hashel *Node - for t1 := t.Type; ; t1 = t1.Down { - if t1 != nil && algtype1(t1.Type, nil) == AMEM && !isblanksym(t1.Sym) { - offend = t1.Width + t1.Type.Width - if first == nil { - first = t1 - } - // If it's a memory field but it's padded, stop here. - if ispaddedfield(t1, t.Width) { - t1 = t1.Down - } else { - continue - } - } + for t1 := t.Type; ; t1 = t1.Down { + first, size, next := memrun(t, t1) + t1 = next // Run memhash for fields up to this one. if first != nil { - size = offend - first.Width // first->width is offset hashel = hashmem(first.Type) // h = hashel(&p.first, size, h) @@ -2548,8 +2533,6 @@ func genhash(sym *Sym, t *Type) { call.List = list(call.List, nh) call.List = list(call.List, Nodintconst(size)) fn.Nbody = list(fn.Nbody, Nod(OAS, nh, call)) - - first = nil } if t1 == nil { @@ -2745,25 +2728,11 @@ func geneq(sym *Sym, t *Type) { // and calling specific equality tests for the others. // Skip blank-named fields. case TSTRUCT: - var first *Type - var conjuncts []*Node - offend := int64(0) - var size int64 - for t1 := t.Type; ; t1 = t1.Down { - if t1 != nil && algtype1(t1.Type, nil) == AMEM && !isblanksym(t1.Sym) { - offend = t1.Width + t1.Type.Width - if first == nil { - first = t1 - } - // If it's a memory field but it's padded, stop here. - if ispaddedfield(t1, t.Width) { - t1 = t1.Down - } else { - continue - } - } + for t1 := t.Type; ; t1 = t1.Down { + first, size, next := memrun(t, t1) + t1 = next // Run memequal for fields up to this one. // TODO(rsc): All the calls to newname are wrong for @@ -2779,11 +2748,8 @@ func geneq(sym *Sym, t *Type) { } } else { // More than two fields: use memequal. - size = offend - first.Width // first->width is offset conjuncts = append(conjuncts, eqmem(np, nq, newname(first.Sym), size)) } - - first = nil } if t1 == nil { @@ -2846,6 +2812,35 @@ func geneq(sym *Sym, t *Type) { Disable_checknil-- } +// memrun finds runs of struct fields for which memory-only algs are appropriate. +// t is the parent struct type, and field is the field at which to start. +// first is the first field in the memory run. +// size is the length in bytes of the memory included in the run. +// next is the next field after the memory run. +func memrun(t *Type, field *Type) (first *Type, size int64, next *Type) { + var offend int64 + for { + if field == nil || algtype1(field.Type, nil) != AMEM || isblanksym(field.Sym) { + break + } + offend = field.Width + field.Type.Width + if first == nil { + first = field + } + + // If it's a memory field but it's padded, stop here. + if ispaddedfield(field, t.Width) { + field = field.Down + break + } + field = field.Down + } + if first != nil { + size = offend - first.Width // first.Width is offset + } + return first, size, field +} + func ifacelookdot(s *Sym, t *Type, followptr *bool, ignorecase int) *Type { *followptr = false From 92bf58c2381acac3929d495cee596df61491af48 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Sun, 21 Feb 2016 21:12:36 -0800 Subject: [PATCH 085/101] cmd/compile: recognize more memory runs in generated algs The old implementation assumed that all memory runs were terminated by non-memory fields. This isn't necessarily so. They might be terminated by padding or blank fields. For example, given type T struct { a int64 b byte c, d, e int64 } the old implementation did a memory comparison on a+b, on c, and on d+e. Instead, check for memory runs at the beginning of every round. This now generates a memory comparison on a+b and on c+d+e. Also, delete some now-dead code. Change-Id: I66bffb111420adf6919bd708e4fb3a1e1f07fadd Reviewed-on: https://go-review.googlesource.com/19841 Reviewed-by: David Crawshaw --- src/cmd/compile/internal/gc/subr.go | 54 ++++++++++++++--------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index 5428066f4f..7d568a24d4 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -2515,7 +2515,8 @@ func genhash(sym *Sym, t *Type) { var na *Node var hashel *Node - for t1 := t.Type; ; t1 = t1.Down { + t1 := t.Type + for { first, size, next := memrun(t, t1) t1 = next @@ -2539,36 +2540,25 @@ func genhash(sym *Sym, t *Type) { break } if isblanksym(t1.Sym) { + t1 = t1.Down + continue + } + if algtype1(t1.Type, nil) == AMEM { + // Our memory run might have been stopped by padding or a blank field. + // If the next field is memory-ish, it could be the start of a new run. continue } - // Run hash for this field. - if algtype1(t1.Type, nil) == AMEM { - hashel = hashmem(t1.Type) + hashel = hashfor(t1.Type) + call = Nod(OCALL, hashel, nil) + nx = Nod(OXDOT, np, newname(t1.Sym)) // TODO: fields from other packages? + na = Nod(OADDR, nx, nil) + na.Etype = 1 // no escape to heap + call.List = list(call.List, na) + call.List = list(call.List, nh) + fn.Nbody = list(fn.Nbody, Nod(OAS, nh, call)) - // h = memhash(&p.t1, h, size) - call = Nod(OCALL, hashel, nil) - - nx = Nod(OXDOT, np, newname(t1.Sym)) // TODO: fields from other packages? - na = Nod(OADDR, nx, nil) - na.Etype = 1 // no escape to heap - call.List = list(call.List, na) - call.List = list(call.List, nh) - call.List = list(call.List, Nodintconst(t1.Type.Width)) - fn.Nbody = list(fn.Nbody, Nod(OAS, nh, call)) - } else { - hashel = hashfor(t1.Type) - - // h = hashel(&p.t1, h) - call = Nod(OCALL, hashel, nil) - - nx = Nod(OXDOT, np, newname(t1.Sym)) // TODO: fields from other packages? - na = Nod(OADDR, nx, nil) - na.Etype = 1 // no escape to heap - call.List = list(call.List, na) - call.List = list(call.List, nh) - fn.Nbody = list(fn.Nbody, Nod(OAS, nh, call)) - } + t1 = t1.Down } } @@ -2730,7 +2720,8 @@ func geneq(sym *Sym, t *Type) { case TSTRUCT: var conjuncts []*Node - for t1 := t.Type; ; t1 = t1.Down { + t1 := t.Type + for { first, size, next := memrun(t, t1) t1 = next @@ -2756,11 +2747,18 @@ func geneq(sym *Sym, t *Type) { break } if isblanksym(t1.Sym) { + t1 = t1.Down + continue + } + if algtype1(t1.Type, nil) == AMEM { + // Our memory run might have been stopped by padding or a blank field. + // If the next field is memory-ish, it could be the start of a new run. continue } // Check this field, which is not just memory. conjuncts = append(conjuncts, eqfield(np, nq, newname(t1.Sym))) + t1 = t1.Down } var and *Node From 52d9479e3be6cc94256f3ad07a0bd71df2aa4f60 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 26 Feb 2016 13:33:48 -0800 Subject: [PATCH 086/101] cmd/compile: convert Func.Cvars from *NodeList to *[]*Node Passes toolstash -cmp. Update #14473. Change-Id: I7285175b1992a29033fdc9e81d6f30545e5cc30d Reviewed-on: https://go-review.googlesource.com/19967 Reviewed-by: Brad Fitzpatrick --- src/cmd/compile/internal/gc/closure.go | 28 ++++++++------------------ src/cmd/compile/internal/gc/dcl.go | 2 +- src/cmd/compile/internal/gc/esc.go | 4 +--- src/cmd/compile/internal/gc/order.go | 2 +- src/cmd/compile/internal/gc/sinit.go | 2 +- src/cmd/compile/internal/gc/syntax.go | 27 ++++++++++++++++++++++--- 6 files changed, 36 insertions(+), 29 deletions(-) diff --git a/src/cmd/compile/internal/gc/closure.go b/src/cmd/compile/internal/gc/closure.go index df36db118d..c8c59ef201 100644 --- a/src/cmd/compile/internal/gc/closure.go +++ b/src/cmd/compile/internal/gc/closure.go @@ -67,9 +67,7 @@ func closurebody(body *NodeList) *Node { // ordinary ones in the symbol table; see oldname. // unhook them. // make the list of pointers for the closure call. - var v *Node - for l := func_.Func.Cvars; l != nil; l = l.Next { - v = l.N + for _, v := range func_.Func.Cvars() { v.Name.Param.Closure.Name.Param.Closure = v.Name.Param.Outer v.Name.Param.Outerexpr = oldname(v.Sym) } @@ -78,10 +76,8 @@ func closurebody(body *NodeList) *Node { } func typecheckclosure(func_ *Node, top int) { - var n *Node - - for l := func_.Func.Cvars; l != nil; l = l.Next { - n = l.N.Name.Param.Closure + for _, ln := range func_.Func.Cvars() { + n := ln.Name.Param.Closure if !n.Name.Captured { n.Name.Captured = true if n.Name.Decldepth == 0 { @@ -221,7 +217,6 @@ func makeclosure(func_ *Node) *Node { // We use value capturing for values <= 128 bytes that are never reassigned // after capturing (effectively constant). func capturevars(xfunc *Node) { - var v *Node var outer *Node lno := int(lineno) @@ -229,8 +224,7 @@ func capturevars(xfunc *Node) { func_ := xfunc.Func.Closure func_.Func.Enter = nil - for l := func_.Func.Cvars; l != nil; l = l.Next { - v = l.N + for _, v := range func_.Func.Cvars() { if v.Type == nil { // if v->type is nil, it means v looked like it was // going to be used in the closure but wasn't. @@ -310,11 +304,9 @@ func transformclosure(xfunc *Node) { original_dcl := xfunc.Func.Dcl xfunc.Func.Dcl = nil - var v *Node var addr *Node var fld *Type - for l := func_.Func.Cvars; l != nil; l = l.Next { - v = l.N + for _, v := range func_.Func.Cvars() { if v.Op == OXXX { continue } @@ -363,10 +355,8 @@ func transformclosure(xfunc *Node) { var body *NodeList offset := int64(Widthptr) var addr *Node - var v *Node var cv *Node - for l := func_.Func.Cvars; l != nil; l = l.Next { - v = l.N + for _, v := range func_.Func.Cvars() { if v.Op == OXXX { continue } @@ -417,7 +407,7 @@ func transformclosure(xfunc *Node) { func walkclosure(func_ *Node, init **NodeList) *Node { // If no closure vars, don't bother wrapping. - if func_.Func.Cvars == nil { + if len(func_.Func.Cvars()) == 0 { return func_.Func.Closure.Func.Nname } @@ -439,9 +429,7 @@ func walkclosure(func_ *Node, init **NodeList) *Node { typ.List = list1(Nod(ODCLFIELD, newname(Lookup(".F")), typenod(Types[TUINTPTR]))) var typ1 *Node - var v *Node - for l := func_.Func.Cvars; l != nil; l = l.Next { - v = l.N + for _, v := range func_.Func.Cvars() { if v.Op == OXXX { continue } diff --git a/src/cmd/compile/internal/gc/dcl.go b/src/cmd/compile/internal/gc/dcl.go index e485f9d79f..ab7af0ecc3 100644 --- a/src/cmd/compile/internal/gc/dcl.go +++ b/src/cmd/compile/internal/gc/dcl.go @@ -426,7 +426,7 @@ func oldname(s *Sym) *Node { n.Name.Param.Closure = c c.Name.Param.Closure = n c.Xoffset = 0 - Curfn.Func.Cvars = list(Curfn.Func.Cvars, c) + Curfn.Func.CvarAppend(c) } // return ref to closure var, not original diff --git a/src/cmd/compile/internal/gc/esc.go b/src/cmd/compile/internal/gc/esc.go index 4cafc839cf..fe20057703 100644 --- a/src/cmd/compile/internal/gc/esc.go +++ b/src/cmd/compile/internal/gc/esc.go @@ -864,9 +864,7 @@ func esc(e *EscState, n *Node, up *Node) { // Link addresses of captured variables to closure. case OCLOSURE: var a *Node - var v *Node - for ll := n.Func.Cvars; ll != nil; ll = ll.Next { - v = ll.N + for _, v := range n.Func.Cvars() { if v.Op == OXXX { // unnamed out argument; see dcl.go:/^funcargs continue } diff --git a/src/cmd/compile/internal/gc/order.go b/src/cmd/compile/internal/gc/order.go index a3a8441f50..b74b025505 100644 --- a/src/cmd/compile/internal/gc/order.go +++ b/src/cmd/compile/internal/gc/order.go @@ -1137,7 +1137,7 @@ func orderexpr(np **Node, order *Order, lhs *Node) { } case OCLOSURE: - if n.Noescape && n.Func.Cvars != nil { + if n.Noescape && len(n.Func.Cvars()) > 0 { prealloc[n] = ordertemp(Types[TUINT8], order, false) // walk will fill in correct type } diff --git a/src/cmd/compile/internal/gc/sinit.go b/src/cmd/compile/internal/gc/sinit.go index b7f7ea0bea..88ccb7e2b0 100644 --- a/src/cmd/compile/internal/gc/sinit.go +++ b/src/cmd/compile/internal/gc/sinit.go @@ -475,7 +475,7 @@ func staticassign(l *Node, r *Node, out **NodeList) bool { break case OCLOSURE: - if r.Func.Cvars == nil { + if len(r.Func.Cvars()) == 0 { // Closures with no captured variables are globals, // so the assignment can be done at link time. n := *l diff --git a/src/cmd/compile/internal/gc/syntax.go b/src/cmd/compile/internal/gc/syntax.go index 83ee4aedeb..8b4fe8708a 100644 --- a/src/cmd/compile/internal/gc/syntax.go +++ b/src/cmd/compile/internal/gc/syntax.go @@ -151,9 +151,9 @@ type Func struct { Shortname *Node Enter *NodeList Exit *NodeList - Cvars *NodeList // closure params - Dcl []*Node // autodcl for this func/closure - Inldcl []*Node // copy of dcl for use in inlining + cvars *[]*Node // closure params + Dcl []*Node // autodcl for this func/closure + Inldcl []*Node // copy of dcl for use in inlining Closgen int Outerfunc *Node Fieldtrack []*Type @@ -177,6 +177,27 @@ type Func struct { Needctxt bool // function uses context register (has closure variables) } +// Cvars returns the closure variables for this Func. +// These are referenced variables that are defined in enclosing +// functions. +// The cvars field is a pointer to save space, since most Func values +// have no cvars. +func (f *Func) Cvars() []*Node { + if f.cvars == nil { + return nil + } + return *f.cvars +} + +// AppendCvar appends a new closure variable. +func (f *Func) CvarAppend(n *Node) { + if f.cvars == nil { + f.cvars = &[]*Node{n} + } else { + *f.cvars = append(*f.cvars, n) + } +} + type Op uint8 // Node ops. From 6abc8c9a88d01d933d7388933f10120fc48aacca Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 26 Feb 2016 13:48:24 -0800 Subject: [PATCH 087/101] cmd/compile: change Func.Inldcl from []*Node to *[]*Node Save a few bytes in Func. Passes toolstash -cmp. Update #14473. Change-Id: I824fa7d5cb2d93f6f59938ccd86114abcbea0043 Reviewed-on: https://go-review.googlesource.com/19968 Reviewed-by: Brad Fitzpatrick --- src/cmd/compile/internal/gc/inl.go | 13 ++++++++++--- src/cmd/compile/internal/gc/syntax.go | 2 +- src/cmd/compile/internal/gc/test | Bin 0 -> 2243120 bytes 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100755 src/cmd/compile/internal/gc/test diff --git a/src/cmd/compile/internal/gc/inl.go b/src/cmd/compile/internal/gc/inl.go index 17cc61a823..f5c3265a82 100644 --- a/src/cmd/compile/internal/gc/inl.go +++ b/src/cmd/compile/internal/gc/inl.go @@ -150,7 +150,10 @@ func caninl(fn *Node) { fn.Func.Nname.Func.Inl = fn.Nbody fn.Nbody = inlcopylist(fn.Func.Nname.Func.Inl) - fn.Func.Nname.Func.Inldcl = inlcopyslice(fn.Func.Nname.Name.Defn.Func.Dcl) + inldcl := inlcopyslice(fn.Func.Nname.Name.Defn.Func.Dcl) + if len(inldcl) > 0 { + fn.Func.Nname.Func.Inldcl = &inldcl + } fn.Func.Nname.Func.InlCost = int32(maxBudget - budget) // hack, TODO, check for better way to link method nodes back to the thing with the ->inl @@ -569,9 +572,13 @@ func mkinlcall1(np **Node, fn *Node, isddd bool) { //dumplist("ninit pre", ninit); var dcl []*Node - if fn.Name.Defn != nil { // local function - dcl = fn.Func.Inldcl // imported function + if fn.Name.Defn != nil { + // local function + if fn.Func.Inldcl != nil { + dcl = *fn.Func.Inldcl + } } else { + // imported function dcl = fn.Func.Dcl } diff --git a/src/cmd/compile/internal/gc/syntax.go b/src/cmd/compile/internal/gc/syntax.go index 8b4fe8708a..edc3f3ca10 100644 --- a/src/cmd/compile/internal/gc/syntax.go +++ b/src/cmd/compile/internal/gc/syntax.go @@ -153,7 +153,7 @@ type Func struct { Exit *NodeList cvars *[]*Node // closure params Dcl []*Node // autodcl for this func/closure - Inldcl []*Node // copy of dcl for use in inlining + Inldcl *[]*Node // copy of dcl for use in inlining Closgen int Outerfunc *Node Fieldtrack []*Type diff --git a/src/cmd/compile/internal/gc/test b/src/cmd/compile/internal/gc/test new file mode 100755 index 0000000000000000000000000000000000000000..5c696bc509c3bbfff223d6a238eff87cfc76ca53 GIT binary patch literal 2243120 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


@jzIoX?Gb}|ad0q_` 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

1S%t4m?)Z0T~f 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 V%e8m zr_Mo}ItLf>GL{`ScNv&dVowoMhm>C_!5lJ@@9##h?%g@~()Oqy$l>T73>#dN>>NmY zyY3vwuoKQf#W3I|MGl8To8(3d0(v+G`{k2to*T{AdZN$06hZI=i8i;18~s9Iz>Str zY~9;5_tB&P?2TJ#H5aRyjKN)?8{GtXqV1Ft+-24Nli^(4Sx@Jack13UcXn>To%McHy+U&V#~Dt%T+GRp8n~_&PC`lu@8i0`TuVJ%&*U{ib#nnV{}E2Phi5tD zDmm_rM_4vM&c)yVE<625w&o$4b?EXBm9p`K3Qh9lAM7AS+wVG{UraqG; zqEak@(re|iRxUZ6X~5lM4RLAI(0a8PH;jf=Q!PML2Inzsz}JFPf=!r^z9Q5(i;7L- zEGjB@;w(0-K!|@9HuOVR%^B^9R0>Dp?^x+g@Klc_RK)|#A`$eTN* z2pjMzlGMci4MqOb3W^NiS-J7-!K3=1$grt>Qbh64ABseBd!fj^OTRxwa5nG<;xZdK zi)=r{s;j_$DAH)2p%Kdfjd)2K)hB2)-q2{Gp^?0~QyQ@WpGHYd{NK>%67Iq02W~;5 zTh8f&Mp2xk*oV|89{NM0kB;hvM(-}!RT@P)vnJmG+W`vQOTouAjy>XFlC8+gLz3d6 z5Vpj$3#(yb;!Te5X1T!31C`pL(K$tR*5P{}ZV`??K@Xt)`^Z)d24>$P4}w~h zc1<)8saNgJEAjZFk5#)LPfzK)`loE|Bl9+Ibo^ zk@TccYcyjRV{p29C&&mmEos0!_CMx;1FgExCD10(48EQMoe(i(oM+q%8FbuR2*E6k z2mq3KCIq#BB_{6+Xy&mEl##PV^4oA!lU#7&>K$Q2UOy%YNM4EyP{L*doJ#O;WA>2LrCJOlCl7 zZ`T=6hMn+~FE}d5fC)B}YcdS&(JEG^lV*oyhi{}dql8fh_H6l}%)mhM?R`>7%i%PGA66?dnMP)OHcBR^p>kGMz`hdS<1-)~6{qa5*K&~K@g zWBhxB4<(+#w6L#UK!oB&u&ncZzL^0(2!TKx>H^AzUvCBLy~lXf175ua8m}75piys# zt^tyAlrWA#^yUPjv-*W-w&5c>*ou22Lu&Et;=(=(xEI7c z`g}5C*h23d_*1E^K9u_%!e`E~<4mk<6(co~PJ9Dp79#TQD2xh>x$PCyIpmA)y4>gR zEBQQyGk=_EO_zMB$i{KBClje`s(~oXerBQ&zlL*v{-bjwv5TTNthi)P#j_`#WN-#m zH{On}wDBwg$0p5g{&bL?{-GVO;`-4(atim45Wc?%OQYsEzbxm525yuWHwuQ=Y_4Q? zBhnfa0Lz$2whntxO)!wfH<5c?BUOQZ*u@YSAoc;@&AAf$u2~ai1W6padWzg@n~5C- zOcE^RAEfTf=^A04je>Q0Igep?tNu^y2V2{5%B21pfCHhTCkC?%-&yUsZ$(X&vQkRG z4c^jyVAXVbp&wSEmT;#0STjfDBOQm(d-SmEV?MHUTuaARLQzrMF(2h1t9A+_6+9=R z_D=n^yH$G=esw&6yL(Q)5`Xt#nq?BCVc920N0auk5j}U=MNL*+8Gm3kI|#Rn^LW`q zM#YP4vEn)Rhk9dh#nZU4SH%d?fINpRc8p%Qnjjz`s{B`tPq6K~i>ZC3nu z=0{`^f5eCGZY?~ldi%AAh4DJd2qc|%G?FRrU}F);jNv;+j{^+o6$^OS&_Kq^lhf<5 z>lO!>R~%y(eN&lZN8hl!@a^KwTzOOO05}9CT|tR{!>tQwz6|}L!?F6*0E(9YWaBj) zu3x9;fSiMm7SvUL4s@-BK?$6B(hXl(7zOYJpeukXKwidK!#KNWi8bRrLQu5YifrT$ z4;R;1bxpj6M3wm8A(#M$f17pdALXEoZ5QJdG|=cUx^F+t?UhdaZJi+m*u>e zbw^;>I6oS`4^AVraQ^CeVipQdy-NgU=>r0yGE#0LK$nj_+*UdqXpm1V=DHxyIQ?Bs$R2;-nC}DKrpC% z@GZ02d{*ZiF1mvWnWe$D>UZPAqHQ?O;&AOn{J{LTeL7}_O@?A9>KF&ln9EElu@r() zk#JV+pV3CQqhQ2$M_g>8AOh(nQX+i_>5lRfhvyJj%_$tmTY)@@&wk+9&*ySWrFsPu z=_KeOTVJ^CyX#iKuKZxG%-oyo_ZZZtgC^UF~j> zj1?;;QtEnxlJLb0ww^RcCke>}GH4iVlF(%JDG3+nE?|E;)#*;cBRzADpbqhnGOKUI zElNVgt7)%)Bn)Qt$*>bsou~E-k}wR6L7KD+Y@!yBm2|JjY_gq?XOo$GknYTVgmlxS zo{)~Or@*C0pQ2_fzNdscum~fgUPT2qQ4VV({!k&p)GE7q1Du);J9Yxkjw&Ni+{cOE zc^)b`K$MFJ+((R!h-laPr?p9a@VTlY@H^ka^+cc93Jvv3^iDjnO$^_< zV~dI7-V5Yq%wbUKaAiJ(=IB$JC<~bg4vAf?l`{mm zIeL;x6mxQz(^M03tNurVXfJyT-mpI(N@@cm60VJEL`Qkl#4nXW5!iu=%$h{%;zth3 zG-uRrh?StugP%mT_oi@8a1<}_j%va0id73vkxIo|cp1y?G-xKYwW}j%#bB#E=OsFUv zAbRUFcA_kIfqZ++JA}lGNJ;mPunx)l%v<1YfyOQ+hkKm5qcOSutnm4rokgaEs#~;B+RCOQ2EoToM!9aHk=?itfS;oKH1L#F8 z13Xh`G~RVTVNO*%`;>G&&kjGIu1$O*<668yU6|<%tRNuJ1M-QCa=Zlq4n^S<9V8CC z5625nu_n09{Rt+5&OP!NmCr`DkoyH)bokL-OMEZ*Ul=-Au1p2|O|xf{W4L3-c55=fA$3;3ey*(_a+hw zd7LTg0D~9z!(3#MvvR0+^PIDJrUd-j*?b0dP)4lETbQ}QzcnAgE96Y71fPz$&@S3+ z#WVLq?V?UA@)Q1u4^5ZZ!tqw!mVI#zoz5`ASh}^IhoY)^o`C?S7;8>GZ0IG+Iq(ZY zav5JTsu$w}l=J3cxYoiua`Q?W=85x*5dty{6WbbjLp)gd0FA2X!wOYJH;JMxK7g08 z>;ui+)xK`&G=?aR^}u56NGX`lVeGP_+QxQLtLQ05dqUTTqx#Ehl2x>{x9ciehAj*r z+fR1vLA*X^<{C-(P3UU{9S-X^R{b%VM8|t1kzgcxA%wad90Z2}B&#mIe<0Y=s$0ho z9BF`_udBXJ!f9-_qI7%O)FbSe5YpbV&XCmS=Xoyz?{x9jkZqKyJFNIu#HL~4#H zavl4PQ%(>^ImxOM*t?c6B(gha?Bg+G_fAd1_Ne~L15TxKe(>e@k%!CpB__(lOZ*X# zhckKo{p4XcZj(h%az`S~j3QW78 zytsvzvFxShuHzHeF#@w$O5G5u0u$zTv0WCJ_3SUTz?`4c4}rO%ELmWryvng~pq)Ds7XudBcWaXNejn7Hzq|AKud@*oOd ze|mb7Y@`~T3LOeoqC=lsjcp{PI8D#XFPZ0$Fm&In+;FOL!)fMj8dQKn-fp;Iz2Syx zj$InNk#}~P8#;UEhN8p!!3~#Pk<1O!-mY_l3_HOMuM8kYcM_^m&^h0qe4`1|2sV1m z^)LDk2GdVr7GR*M(F_3s~h$k`XYfCQO8n;A94}@?pN^k;Fp|(g8Eskc+uxp z{R~8Is5HfrcMrJP=vHH=(C9?E^mE{|B$`GS{Q#%sO$2Zs zUZ}erIz~s6CC@SUky704^<)knm%h2H6UY+wms;7rf2fDpKD?8EUy>|d z(%!C%mjIs-uj{+M1KBi|LK00BtURN;7tI86r0}RrAO#75(1bc9TepE=R^9GWPxLE+ zQ(jC$BRcRR1u&Xng5gXZ8Bm$sb>YlmO01b|I#wLzWi0!Cb9XN8YA>@5vE~|LsTpS2 z`upj^+3YVhv4$Pe4`SIDClgEB+jU~euoJ}k%MKE2C%RBUPtt{gjUKx2+^s=f$k%$} z(*2>NCwsc^$cKFaR7C|{xGp1wF7&nMm$NaW{2Vhj=WkxUX34L`fhodjoGl^3-uM8o zxT+yGaEhUDhSVv(OX+^Mxtry4ml#k)c~%>`&-^ciG?V?Mru(S}_k-@GI8K{-U&Ux~ zuC%x7beCZ#=>FpN)IzGzg48Rm`hbuM5_$;fWm~!nDPLETC!sNwkhT~1A*6eqphB9X z#2UoQSoUt_Zh_y+JR_tF46#=G#QJ_hn%6tA8V>9Sv7Q){Oe|?{*NG*=P7rJFZT%2Z z1wBbf1sgqt^f&(w3MpSxiUo1$#y<@@EL9Kn6w<=o`V!I$@P-O$rdLme)I<+p!~=^P z%dCh@E4{^yGwoP8oC*rEh8-s2^E{R3SqmTLr|V&X^)vTRCw<8N=_PoEDla8f;gvrx zeY%-f45=WnKb{I1^J#bm&*e^(3w${S9#K{zp!`ienKa;nxD}s3@q93lV|Pv+#3JF> zT|SFw3e3mdPqBH-*+;6ur+b!>8R=bm6>p~kagx1prjWHTj7W^{=WCo~fs9DwBswod z1SdG-`z<%8C1!>GK|S6c z0h41ofK|T6{%=gc196?&4Y<}>z570XIx_|kjS?WM8?=c7S_W}Orj*dv{S3Y{9-dIS zf8qhD>aNrW!-5YOcyRxs4+^ZhztQjZn``33hj7a|OuED{kHZz5yZuR-8h;N_SVU$JMLp!VxF0Kr+C0A0;JIB!53p zI>+An;b#8Enj>>zkn=r`ok4F)6*$;f>f`I)9T-Rj7pcthqHd=%=HA?yixPL@rmnP7 zB(3=0hgKC;E30%y4Vjn8`)0wAYc)JmBIWm?XG{IY+_|P)FQqORw)1yv_FNQ+uO4Js zvzn?G>sOd6_ZpE_IRyvLk4~$+D;dYd#JWy`&dX8I8l-82V5P()h)FOh796blDa4+C z2*(|{=lQdsq&9#}Au2h~$1FTpUMN~qE^}QQ0k^_w%S11dLxd>qXa=`Sxs(EyX5!DAU04)x}?bL0csYDAQFw zxqz~1hUzZN)9{vi8)kHvq`d%f#x@VG8+@>LAFyzX*c&Xj2rRG``@6?* zaxUtE;9QpsP6j9N13MN1oW-)Pz-*-0Zu9WEE^`d#_$RtQ;KO)!sl$a0FhD$e*@VOz z$Inomq{(!SxQ3(U8b>QWR@DSocX*R~CSGLz^W?8TlDkz3uz2$RF zIup5EnM!!fw3+)D&%U5Yp>Q6nWpCs`^JKvb3KVkpmS(m%7o+)(`GL0ivs=E{nUwL! z#xiSR_I{i86MLP7-@D820U&2&X&LgT0JXK(^4-4JxL;bj^RtJze)~K8Ir~%mc@;-3 zJIkKLpVFt0Mj6lEvvrW735&fMBgv}xk;xy(CuO~jZ8jEzNg0TC z_A`=b1PoLcXQE+HhIShd9^r#{_J}5aRtz#hV&@WP$3Kqe=Iv>Tx8MAn`r$Ubd6&L< z$-RL$kvWy-Y-UN=b55}9$i(9_yTE5$jxH&+$(~b}8ItQ>sPXzWs zJ?CflW7~N^uLC`%h>n2~#L{?;D4iS+`KpKvhz8x0A{kWsdQOUD`*oO3F{uh;60&1gLso9HnV&tYX+&BD#)fTm z3O9tzj$ovvGE@P4Cfbp=VMG;f@Ofcc$Nvs*>S%Uu_&b2SR)F+~fs%O4h@F5aWo8R+ z%eCZW>7A6<5a~?F_5qu%KksGDf_%%X(yFPC3Y7k=&9)>2@9KcHIFC zO3V7kozU(1g~`u%*1tR_{L$vkR`bC0HZVW{d~f`OA2n=LvD4egC8kn$`2F_k2TG+t z|Mdd{?|DN=dJdcf-VfrR{nrna=b-WZ&^4Pg1Olp4z0Q&AZu0a$;*(~yzXim-Zgsoo2W4Le5tjK2Ewa_ zwM~9Kv81{ytpcsIw&DV!jH7*PU&c>6_6ME%|3PN+lF425!pQ1vX_e_Me5n#vn3bbF zE2G2XrNdkJ%Xqm-;Vu7uoc}AvgUtor~liI3i{kE zFugPUf9Yj7$7^x46fMqSdU=2pZ2t%!fMFmcUPS9a2Yz(98EnV>M%wvAi?v$3B?Uf3 zJCQ!$0CxoaLL%n7;P`DKH#N^JZUN0IgLBjgy&owl-cDB z)Ny_LH3!R=j`s0VVAW1wZ{BQLq`}2*?yS0n5-S47GtFM}sok~GKJpto`XLNRW+>Vj%5M*2HWa%c10Oc^YM0*< zTC+aX)fPSyPX=SATvA@jclYFrh;eWrv_kpZT#(dHc`oarHF;@&c?mPf51H9#!(0}$ z3}4&f;{SI1|IBC@pNH@rWbUlNFofzg+qr*o+Hj5n%_N3Uey9OIc6%npBl;1CpYHCD zm(kcKi3S#e+otZNXmI}*7x;<(^Sm11vT5V&*xsjP!DTVsA`;wq26b3#Gwr4Nqbuo> z=Ga?g_L$*>CAr2!zQ0VDW2b-7z5V;j)`JtBp+WX1YcIk6Bzd16@+X-9 z!6&odQ=aHpYfTcpZ11apJdkP#+9mW(CG=HI zR{+C4I|3#OrDkapenOL|fD`=>>`zfE`pSw7S9#8%r4qt)yuj_k!#ieo^R!^3gx$ju)7Rv>~;u|MDDyAvS%2ZH0A-2 zaFk9qwmRUqBoKs=LAOXAaLniLhT8_yRI-@9a&Aj3u|!0_G>qHmxWlS1K!0I4QZ^V8 zn$+*?5a3rRqSnf)m-ts}EAJ)Xc+CSN0f9-k2BhoX*h}f@?|{-K0d5&yuJD>kv7Z;Kqj@zI-4gpoz#Y zQO1ix#kN`XoB1Mk7v?vGqF?!(mmZ3CjEOD@N1^=hSAC?;cFhi=)T;jrU!$x%E$^>_ z+2;cl8NZo5xmu(gfP7cf4CC+?6_Qypd~z`{6pji8$)d#ITq%LUunDz>$(6uVxM&?& z6#Oca>RwoM@P|YXYb01yov#Im`oY0{T8neEctnd?QuNLwR}hoEGl{U8$0SGp|A0vb zts@px+4o=#)k3~rk3CKBl`-<+6s?1SntZig)IRxgqnLz4JS~`>&^~=?!I7Y2H|^K% zzRtkwagGooM~g$WIBGtuSuqmQgYIjx|2pYZ+6|cZ%W^Zh%JB}i$RgLXXmk02;PO30 z|2N@Y)kexpPK$HhzoetqKOqwPH)%IvAF;oA(nP|C_I&Sm+F5q2L5PWM#Wh>`t9+Cl zKQY5vcrD!3g37~TLG(Fh7Wymk_I*f8_nWHR3(Jj^9{y`_*8EdI839n-$#4$LD3jo^ zrXNJsk$6>=2LJOI{>+eNuYuOS=Vs6i<)cVf+N8@vFRU`n;83j4mXDc5+}trR1bN|P z5NZ1P@5}pk}S;CHfZFemXM_c_yC;!oI6-R(j%f@PCg<$J2 z7EK}%TY%qkB9{{s^(s3Yi*DtfgtLsaclw0Y`}sf%{U6te)XU(xFF>q7FS zfy1b=E(8R7FicZY*nz++p5_LgLbUv+)-TXNi}Q<5L?~iX(3%%*uKF$8hH{yt&wi>! z`_q8rL2{H5V4Zg=bx#m0ekHc2@vUIjXL{V=?TopyE0(qhsiu!QIdAvu6Y<^XuFElMW z{SCX>MRzL$-BE3OJx;A+ZxweN0LrPElX`iT4Nv~P9hO>ZWav1Tig zX&QIPq_QpbJeN~5f&R|4X;{7H!${|dX|RIuW4L}c0&hF7%B)_@htzOJ_*L(FTdLyC z4Ce_{lapT3ratXeSUR;^Ti0=Oo|+yR`?3NvtblC8l$tQ+lbLv_n6(HSBD63hNAP7*p0iU!uPiL%x1dfl@Nr-4e5ax4ctP>qrF9iaB5pgJvGVks0y~jcPvdO)H zxV%Q{M$R?%hQJ&w-4k4 zFzT4eYn1*L=Rm2C^sh-k9qi2$K--b{*?_bpERp0>X| zVFi4!;Nwkp?B@yzaqYE1hCDl zi3o!T3^WlYqh7%1%M&WPoQ(cMpQDo)UAhzgPcZs?=XdW5nSLV$82wR-aYc~PeK5i3 zRY0wCx73Xe0Hfb(UXvXh&Q;phlE*-^F#%Rj<OY znB(N4p1-uBStTjMD#>cN$FfRdC#{l{1y)IbR79)K;k#TV!9)OoFl*uUnN+t&p__25 zBqN;O8~_VDQ(1eBR27v5w|FD|f064VPr$g|4cE%#f}e0m&=@} z1aoTS?qbU-lwldh4kiBpKU^c2-}0W!7l_Y8ggl6TgCMvqIF?mIjJ#+~ z|G0d#VYt?k477&^3$X19-JvJU_*h;1+3^|tfxUs_GfNuoV04f{H3U0L8{inXAe#St zh^rs@A0k{H%d+19@nP4-GV%t1!3g+WYAr0wL_$PaD0va<8WINJ;pDCF(kqVB7MedD zU|s`69COD2wgC{NjS{SEc^ygPT1z|fD|NgF`aTB2U}FO5gOIFmzOdde$``9%F{I~U z7OTpaXaMLf2oJzxfGd!@)-hRH{eWCD0pOr&i7JO@k)iH~lvo4?G# z>21*u8HKmzuL)s$iZ%cBFpPvX|04=>^CqmCb6St-0=n`(&M#2rUVXsO^+mXG?guO9>8W-*Wma|sc&D+lga*FMA{v3!2DIZvkW7!j0AbGB|;$!4; zja}2B@4aU?Zv{d>-h=N&KHWob2^nF=Ph|W4R$SIET9;u(3~|bJSW7wT!%Qfo9S2yE zZ4@9`Kf=uO8*6$UuYv9OuoS@aqv+|s{xm~E6HZvy zsE`>AW=v@R@=LkkhoA<`j=75}ut~7lx)KOOgMbNUdsy%+YMBa`Z;hSKpVJ0I{f`I! zaKs&d>DhVE8q4wj(*lgxIm{0`>Y+fXf}MZ7DTaNS6oTLjWWHe#00a*vO@I*6HKY8D zejs;|X#rR=T1Ai zcEnGeg7?WzW=3}PZm?JO1NK%q_Q$M(qmjvM z1T2#S++10HVn14_V+%66Ggr&#PSN5~d?Urp1HpB4!Tb@dCwJ<4@($gPA?`7j7&tHF z3NP1h?ARfIA+0hGN-zu8SS%~aVQDSA4Mui+9u9__hs$)kW+~r?fMS~ye#l#wL2a!Z zvKNSnb2>R`7(bGa;@PKtVAhop3?Ij*U_l@f57V4q59=+DwnP>dIAwP>Fm!>g1Xe1V zL854Mg)WQ-3cMjxVHnOth%U$~m}5T@`yIXDH64h=M%N;#DwY-d(toyAo^60b3!V=} zKk&xoWh_xqj~@P?km?vrf=mKgr1OBO`@}xtF3d;_ZGy`RQ9N7N3?VJn_Iq#w&JHXzkOtM%gFqX7@;rmR}T=; zUY-M-Azn0T#LHYeh_!Cn5M6^cgJ?T~SbFDQ4L}q@TBT7C>p|R=Wh;0&xKowCC+g4-{EwehdLpLCZfR3 zUm_8X8O-Ax3E-@{rRjhpvLhX-()guMSKw(l`Y(Gz*WfV|-bB=H4ZJzJ6iN@Dj5T}% zdcUY+5VbhVu^W40ARN6ZcS^Wuy%mvI z43z&TsEs8N~B@QwAr0CVDO`9Xg}^et8zWbDG}$ zffS>McezVxQo$%dy<3Lg0O@cRaJspGIq4TrlOIEec8`BtPFBYGzq)R!L3XC2fOE^p zuO*-}cW23@_efS=^J%zfWjQt9U5*YGx)V`-GuRRDCI$(N>YmaZq(gVHo^zNOW=yzH!9+Ub>teW4w>NeqG zik~(8Gyaa9<1-}Y7|iEgF1K-fFQ+)j;$y1l9|dxAxO7qF0eFDdAX6-aou@)ebf!%` zhiz2An@5h*Ir=_sPs)+_*Eu|P16|&pBLTD9a}rLSbKnYc4}vRDeOSgqBd6K1{bZej zst%IDv{*>S3H;4$Ell*5VTHBhMd!UX;k-AcKoiTIR`XN#JtQ16Fc}VnAg^(m6UD_W z*1GLv(Sb9;a?CvSEOSc#;~1uTMK(_4sb*@QpVJfz@ZJ>W15{&(A^6EO(#P7ZBaM+B znS=Xj2({e~D}5WSG&Kb&HL(SA;0)Hc>ReKiI<{87XLAIm^Q2Xs1bJfDL+jlRcN{nV zj+%^IXp4oo^DN)Rx`ixKPLu?xBkb5oQu{$Z!|QhJPJO-FylySLGZX7$R^3loBgvM* z16Y1AU<}0&q=h{zO)Q-By%=5s5U?07EA2fO!(ZcKIBnd5P-`=h6UzT8)P<;J7#Z1E z)?_sHE!?(aMgE7kd8W7QIYtfwr44b@^krfAOXz9`y80FBkBJY;VaXEw z2--Q6gY8OKenPGt`0_3=EV6F)wPPcJ4SdwQXgOvm@u3JFQs-74h?~mVD9n5JwRyiV zt8X2dgWf+IFHdrYJnewG1(8%u~&EQJy>f% z_>QPwb>~LHipR1>#@uk!JpHpg^&PtR!we$*Ae8?_I0o&GQ(Hr^yiop^qla%wcIK>+ zvG>HAq?7>k{83k)2Nc2MOZoD&~b`0d3hgn9HjI()a`34b=p=Wwd8XB?Yzdtgc{wtvIhqRFO#IFdauL&1@ zQ+^lIU>W7V)AOx1!MDO?j*JlO!^qg3c{0zU?Fqw;gIj^Mr*IUg5mc2QCo^bn!-w6< z1Gs4pd!n0B&|o}k>JiL}kr2^JbTobi%@#(t7?SBaWxpC;4m6 zx1#V^qIq!XO4ozvDIZY?~7niO-P^NsO4KL?}ap3TDa7Uu-%Qpe-WXaJI2VBR;n z-RAqUdndB7RP(8IcIhSCnu#qC2U*2rA3x086~9D=GrzVnk>~iewJ(C^WQ8dRBNGw%-#2B-* z5m@h$k4j1%aJW^+BrOb7ydPOGif8A3%l+PS^Z@qOCRi^B{1#-9gfaCUFKDQhbe;1)qhlq@7n-W=GuI-tL(NnO z_?p-zYL$@DW}6ErAXRj%Rf<~k_#i$%mR)-->Sa?-Qw41tL{`8Kh!(Ru2*@+&8yP}@|#D|*G5)j zZEt*c_Emkn6E=RDZuYK0mfR1Kat}BOqB1rY+f))%$>D{PkIaM%Wp!#QTqwVbiw=5m zRG?RhwNP0fje(gGLnx&rmN~yRQa6rLH=a^Aac5E|h^%{$ItTP*ukJr^f!jA*wTv*~ z*DaODP{9dEJUo=p&`58(2A>ec|hjna$CUonVVv8Ne-&m$GNJc#$*n7~BmA;VI*Jn)B5Gy@l)k2fHG$ zF(qdjoV9E4nLy83Lz(2S&4e4T{#rR@xMt&Kng+~kp(CkoP?ng|W*Jw$0PES2*3Hg8 zfIn;B^E)}dYCy#Li`Y<<-szm&9C;ToJGZ=!j&LXO^qJfOK8+!v4APRv-&_)eVRnA@ z4l6&GD@ScXr1+8oMVE-3w3%|XDceoC9wm6#;Uy=#FnagF=-mgSH;?=q#q2)_7cZo1 z(fPO#m_+9ff|lSqjzDaH(V#r_DOO=}&g^Ea4+KT8Nk9f)(IAipQE48c2#|i<7Dk9_@jj|WHpfrDP&;xDQxjh0ajS4zuvbei zkRL<2BtndX(U_}P;dxKd#kuRHyQ>D)0Q9C?YAH)M_5bq z5V4p~L3JKX@t)-4a>OyW6z@7y0f;*uV(5uzLO$hti8mAG$i^vfEEbDy#*gQ6x!Z%j z`&=oX6c>riO8-S%5b9ql*=i}x22O-(zP!Cs>ps=!xOsjaVe z+i1EqA1H||ozfzG*Nq`JBG`*P5Qq@ARe^t&;E*-CXlWJD@k`JuDy-rJEwbZVt5F78 z^tKh3f5z&}k9uE?CoRRz-0i>gh(g8Wa@-iKXUWY>H z3C8#6E&;bm5@Vbw(sDBrzHSw9Jw^iHCdDP;)bt7q*7@+UE$ryhojf?DV*6weY`Gm- zKETE&7nTn^#;nH0hvtuJIFqvlZR|Niqgi@P9%+Q|(#0`qeGyh)tjV20p7P8tH!@si=s2K-_86eNszp==h4 zQQoHp$-7QD?v@R*&5Y1*6q-`DSWti)t68BjFf7sx-9=fRbu& zMb5_WkjV%~CL(66Y%1jE>L;4oM{A~QQ}2}&er?r#fw~NeShed201&}^G~IfGHL_Vt zN(x`IYI&TS)T(<@YSCa8uC#v6MI(JDl-PqYrx^zvRUFB$y$lW0glVHvc8P!+tQ1W5_smL&)PcZ*g9A!e%6@z(STv}P^LXJ+vzdUOIFyHtop zoqPM^eGtAAvB9QYepL!Da=8#}F4i3&STi=uQ2f?tz~%}BYiKIx$iD8a0jA!)+vq9*G`hD<&@+jEo zc5X!oOEGwJqAa_3BbO5wJXjNe0{m(;uB%$<4#&{I>wM-HrA@mW6RtBVbXLVSrx-Ve z8W=tb>=mO|WnX;@B_VFF_Q2IE*enwtl@4$Ld#Up}X$f+THednqWSlsFT+qpMRz9j5 z=LHO)elEd*CLAweQJnQYgr=JzMYeGdC!7}#3)j2L`jAj~Z|3T9!OBR0TGl>;=3xs35>EB++jCCd+E zjy+hpEYT~R4v%MBJT4>q8ZOI~Uf%=HBLBhgY-H_YTJ8A$F6C&wC`B+wwaR|YXWG}--xIyydV@Lhe3 ze%P0Njs7>FR%p>)?>;fHc<{SVB*vVM6#E^!_ZT*y?=fs{bZPDs6mdUz>#|iK3Ko)^ zO8&E<;S;zIO&tSqcQ7ev&BuQBWl0DDlk{k^C)QJ7a&&(%Igs2{6u>0$mWsueVRe{( zwQ${NB9|5l$bI&weIR%Bre2T>-MXzKhS%@x>-7iab=i^)_6+;%2_XsbSfg$3!!VAN z(G%S3@eA!8?zfk4<3%l!(?@#XP(>-HLu#R6pp)Eora#Art-I43Pl^W8&;Z|sW)pc~ zx~0ksEDZeMt?qeDhP&!XG4z*6fi|OkwfW3OA4ff#yOjQVe3;!=0~7jcU@4+}&TUT+ z9<-CzS35_0?WDraR>b<82XBWzQiWgMT%ToVHOop_|(;;Xau+58Iwarr!m=RtQ+f2)=hFKQG(FT?*Ezc?gGK6K+ zDxdl*T4k7cF}Fm8V)+h&hUH3pCH^OzvH)A)Re*wRh-&IMMjHp(aPP4RsNh@_f2=EM zKR8?(0fYB-G$+0ZqQG=(>%QlBXFcB%r%ZOE^|$r2f~}u48b%m?1KSGWM5Xv&@dF}$ zJ|s}& zbCm*>puZ?HLumIy#ovF4kE;4v-9tMi={S@dj?t{P{ z0S*5aZO7b7xE=?6Fjh5;LOCuR9R$TerGh{3)7UuvWRi`m(GUF*&?V+i5PoCvW0(k7ww|q;7JV_oF_Q#rr?9J7%EA}I&RUJ=2 z#)$FAV;s_0{HmXoHM-K`XzQ*Q*<&BU*SJ>_{^ zm_Khscoxh-4wFgs*xV`nO&bGiz(1L^NLe%-pbW!JLA0hh_X};q6kbWtkd+XcFyhcz zd;?BpxIbahllw10|2f)q0oyKQFL}~Ch?qelIu{Uwpcwd+V1V&ZmErRU4sv(Kvi(1# zYCk?Icag>~j^YfmW@8&#LzvZkpdEzUj2kqQ4oYvwG?sWoa^}caSXAzU;S3vcm&qED z&H+~A1bQNo&Rpw(AM+O?bmt>N=RAirHbm#X!s6;kv@MxB1G&E`(mB|wdj{e}mBnrm zXT}U@FtX{oUJE8vWA^hg*}vHtXvaC1i+nfIicFv&N)9#SoP!fV&xko)jO*Zo%l~T5 z5z`kt@!|>kBK%^+|D~?LbO_@@iCW)rT-YcBg#j;VE5Ji6?FJp}NUQ#0{%T#u5#bEO zFz|c6NLa0`eMff4nVn?wFX`_zp&IA0G?yCA=awl|czT^wZ84 zBRmcH*xA3kkqwh6bx(~^VG@@JlPegPXj)G>T5N2y91Uec5_1Iz6Os@Cht6vk2uyqN z6AxEED3Rp?=7)B4j*n}ABIz~gGKCht(8|eBO6}C5s!F{0SFQQPQKK?U&C)h>*y8+p zHf`!id=#aP0lJu6f-^==z9$8CE5>2L#=~sjq)(!i+73V(P`CrhLpJ74@d#@|MMwkPvdK>5jhSbJ`{n~GbJ}~ zy6h2-E`gUD>UuR)^v2z#W=EUhSyB1mS!PBYi7en9x#d5@9@L7<2B(G69n4fEML#O3 zrik4{x=P9~*A(Lr_G2M$bwM|7F2~_3LkD^Sgw=!G@`KRe(P(f?dYfs`9ZIeD`mba( zZBif|`uEPudS{^&*rpRIS|PFr*8%HYTfPbiTMgO62%9zE9pkMqfai0|$DzkRUm6?& zHq@fA9&GzZOHZ*i8yhqH4OPLo^UNq(czB`2uNn&ErN! z;wGI!6u6%b@yRz^VTowsyMNoI;ZK65eQ^?$yO^7-0{;^F8uGqc_30T0qVJlGWID_WRcxFsb430^aNhggV~XE;h%xbgddi zF+4fc{jdvFG(qs5#ZuA6z_;Th0uj>74`53l>a+MzivcGV!TZRL#(5Qhs}!m(t!76x{#N0Of2K0^kJl7&>s)jSo1*if(NI97hKg85 zjZ#WqDZ0hp$O=peYha7fOWk<K0@V>I2n>=eC$A5``DaM;dJzszK#nw zU=B=*#EW}}w4EsD*n~;etsYtb1xjd$6}jssBI)&*=#Cpt(H&N%KzGyMZ*dR(t*uMd z-@DYEn5%&RAR5E(hK=O#lO#6sIu&xNUE?OIdIy-H`zL&a=%lBnLHUIBlZPJ9ko_L0 z;T(jt2jRccUMF8q#_h(lM%SnEas_7o$#TZz1XR3;A!r3bG1jeSDTS1t>`i0ILR^3r z){&rrxKl6>PW}6oH912@{6|Sn0C30%cvsIf+VCJ%1lk$eS376--i~zvFZ9H##KOS)ZGh26;vhAW6iTca*{8 z>w6o*WZ-049+IqtlzUt`+CDz)!>hgVrJzE(H$LOV2dK~;dmWEQw(e;?(3-)q>|xb? z0*H4-p6ehl@Ix4-vL z*Pqp6sC$3Up+3tkQ8VK@)Eq1RV=*fIw}=m2*^i+vz;`0PCj%eTbErqvq^7D>|0pfZ z&Me|xYNCP`@k+H&Mfat$P`z5j^^o zi({qL8Z38YVojeJ&v10YbjFgjW&_ozal>Zvcd{FnBOs~Ptmb32rO9sCnQx|KI%yiV zxsbM5+J@?tMiOq=%rkq)*Rx1b=9E_6NVs7L@X6MF)tm~8_)(%cI|X z#$qN@GdCS+ZHU~Vr7&hrIl7g94P0&)u9JPEah)E(dmzEwsw76iQloe+Ta4F&^C;Ba z#yQG3EKMz42xpYZ(%U!qiZC4xGf8Efksb@(%pB(+Ac+yuaXq{aG!C!B;}7W)1M8UM z42+VX&D)P~8UJ=Jlgkp9dsBw>G_p|)XPnDfUv9qN!>r|N=>`Z3g% z|M=cRU4Lp1suut3`wey7R~Twjtqyf>tL`|_xBd5Lmi?$7LtVe}dk^)%o?oR~fDsjMMr2--&^WC`P{b_Yz}93kHsbv87!~gvv^B`8&zGj}VADI$ z^nSdA>xM`gMPJ*-?lgAAg*Unui0(*CLSofoSkU`i)<|z>tXe&VM67yi*rTO6DMOdr zl4I2e;Mj8-c4-GaVd=)is-*`{A0_NQqD0l~GZ3g&3}7-!d!OmlOj3d--a(XF+UJV> zN?$QaGd(9-hkgmV?x+#Ej!tv`NiXUPy&ULH#g*FtCKpvDn@kvVn+1r}7d?IXz_B_V z7C&Uyyvg5wfrjJ%kGVI2ud=xQxWf_*7QF$txLg}G)}WxFE=`o!pr|(*E$*PGQL7C? zE5!s*g9eiTx0h?N#a8{>miDjKwN?>-MRCYmrWu~NM^^adsnd87N zI^?5fPIxJ^r*w>YEkXu$?U7$szFFePuMSw|>`tn^=?Lts*S+WLtU3Ft_T#V>t}1u? zVKvf}*i$pEU}ke10kPT4EZ&trgS9(5q#!tjn#7?PO4$U_qM4%FOK(*$#gR1Dc}>os z`+sP!k8AI}%%<9V^6*WycOLz#$m?HveA%!>lK!1-Gcf%N9@_?+7U{)Z4b|%T9+95c z_YMj7cN`)}TJriEn`P#`)>VE(-9}1Ql(<2Su}&ipkb)Z9d9?ARL)dJq0+N}6WXQre z>P8ZBLD9w-gNa0+wIV=$xOH^|#@qKe17T?Qv9^jw1i^TzR30a&$!yE2 zEY{#~qe>u|&DI8g+Y}A{MrqW_nv#TbaRmru&1oF%bmwzu2sMVQuZXi$R!jCXrs1nf601ySY_V zhsoUDBvTMh=(usN>vPHA>Ww&PHQm5St)ww_>4`E-f`ZZcgjQl%##+}7Y|KlmZ~U-z z?WM8y35+{JX8rVHbxMUeZlb;Z$%oLrz4(}8&nNl3wHEWmbPR(BgEhILb$vzi)~#!+ zE{!D@bIlBcMDg{v?z6ac?U~KnwXQw)(joeAX6xe3qu)m9+u`opsJw5Ba}9QpCmnJv zApRhJ1?IOIMu`dC32Z&?T`IiadjqhH7sz7;GP|m5K24z-&Mtt&(Up%hZ9S@G?H;kV z8WQ=nYpm@6ezknwGUfC{au7CK_RWIlw}&uNDH!fZehqix^Bf?;)X2j(Buoip9IF<& zMNTe7Yz&+53jqVOm5l$3gzA>h$2Xp&BQC9L`%F39&K*Hv4Bh=KV$*wqb?P3#NhMY% za!p6-Kw=Md9(SSfl3%iAT}7;Y1(Z}B;$C;IDj+6)A%?+*VH@o!gMQ`>SNO)Mws@rS0 z1^0`-Qx0=T*kFW-AYta`jIn}C)NVth-5=()D`v=SC*5Z2>7ovq4~k^|US8&4-ZbR_ z2_s@{J5$K8+qN~o?5YA@_nWpofA@{GDUPDvV{M;GQ&fx@UiXi+NsZ*!0kO7!xL@Ck zwLPmWH@MexW3yj%3*FUYrlYBBc2_NM!6fMNjQ)M)&NEHal~Uxv1N&>7Y)f5 zFUlc#n*W_eGW{**s;^i&t)a$5S)ZKAJW* zG4ur;)d`1dF|lolh)AEOHw~nlV>1)j*m8zTqwQSZl*Z4Tyk?c#272ZI?S<_-)rQ}b zO`e8LO@sUzDs#U>{q$J7u9_ef<9k8odY3vr*8VNZOFoTPGXBIO;F(QZD2X#x1sOI= zlysI$5=kEAvbDVTwy)@2w!y;`7GZQ@#pf zWEEs4xa6i-+bY1KnyIeLxAd{jeViU^dzz1#<9H1Yv>pe~HF^d=<)IvdoaBEyLIr=e zJVD7w=9S%?<3moq=lmTmqSxNvL7q%Dhq7VS0R*9(550+;m$LJUSjKl*dzb6k`gz|O zm0T(Qq@r7-3ZLT9LoQa65+z#2uGBN!zttQ)YZYg}Vhi`S3t4s3VS@A9t;=;nEWOj- z2#?CeinO}Ld9Hcbx7h`*Ua0ci<<{Owuw8^#Z?bj7gzK6CSBA*FYKOQ>x~bJ zXhh2m^;$AW_>8qbt_d-V8ww%-Ohg?r2Zbki&OV2Z>Rk(``Kqc8X<5H(6W+J}PGdSN zZtWeVE$jDaIxvycNmyD7jv1VT%xNQ9VplC|+IHsW&ei23xw>dtZx8ro&OwTXa~S_0 z&i`zmKZPr!{DK}n$m`k28OanzK~H``2i+rOo1^69kl~q-J9VI);y0D(17vSxMxrF zo$tpl0Y%h5(eY&MI*1=y{*Kn5i?!{p*QJj@ zudEF$yJA&uyom>u3>|#F^VeafDFy>2!JmduiutINx-fn{t4TDi^RZ_9l0ELfZT$LA zRk&K(gz;-Tqv3zm_|=AkbI2ANE4J39=ggB)BUo(qLqcTob@~0a@Y8XR6jDW}hn1%L zVX;RO0kDb4F1fYceKx2|c=SZ{-h?*n=iGg=ew&OLv(c8GvsH0unWw3Pd3P{Oz%_6@z^h{aoX} z*_XysVdLHUcZ#)dvMsN5G}zu+FQxTlYRCMhm*<-92=1F`{oYkg&&%}}edk8!-+8BG z_RLk9Qt@wF$)j3pi%XAY+1|WO>)J~$)lCKgNxD`<*%nv-p1;jIxqRDH-^N?)N|z_h z;)_TqS`jUL=gvh0RofnJ+OC2~ZPR&$#@ZIEc+{n~SZ$BOUs+=HukEq_ReEISVmE5! z53H%H&Tjzt)vgOZAQo+qpQV$(w!3U54mXd%$WU35phka+&xKBV>Q70q8nx0G9(p#G z?I|8WAizJis<@p7b)2>Joi9uoGhgWRPUkz~6A-{Q(v{(hS`Elf^&>V z$+B2l-?F55D%Se0-qSn%Nh2XP`{D4b=)hNd55Hb^9bZSum7s4yb2rW=Jos=isBk_# zVU)@pmx5S1U+ZG8wL8xF3-U~EZ7pg#q};x)7AUuCNI9mbm1OCObj1x{Lb?xrWFt9n zk7M^iP7VWC5pj|)FJrTeQrO@nzNA+FUNs$iZUB|H;Wiq%bw2u*J`^-+h}3=?8|w?Htb+ z9!YYa;3hnp(JzP0)NU_blYWU_R1i$I096dML^57>hqzw4b#)1)3YvaM;&w_*$4fRU zz^*SznS$VeNXgG{&zAh>Nh-M&C0CR9XyN0$_cf51WnWRg?oe4pdqHD$9MS2H!PsiC`-BEg_ zfspLKJD?YIE)UA7z4Hc#g&9A?QivM#oN1L<;L3?)f1}_hzx_dm$^6UF5@Uny` z2nsg^?{qcr_2IRO>$<}`w0C%?=J((5JFW|UwKfS(oF@D-Lv$g=Zi&|Z((%m5Bs*<$ z+z|pE3lSC);`#8$Z-Za$1-%vDrwhFWPa-Sn#_F~&E?eMM+>^Mvf`M6Etcx}isT$%& zEz-iwqHF92kJ&DuiBnmfv>?a=RTBKV&JnQ`BG$tk3EihxU(or9d#nxy^a2m30CZO! z$0yOWV73w=L(3!;YQor)T?Izw!4k;+Qu`#s2cXH)Db-~Y>mqW@l9Koea|FPLxnUT z*NqqxiuAH$Y~d+{kmQ!M%Fd=OO*LH8d>;rX=_72E6gZ=QK0kNs|HP(3g0#mzE8qyi{AP+UX%(d@kPPZ?@*v*RI+1K z>za+DcUhc#Wac}ndSEBg${nOeL1(Sheugv+S!8q6T3{u zOKVy-_GSFC>S=xJ+qAdntpOrn>pSYw>Ik^tK=)z@C4FPF6cSDjy}I@ynE?kavCEc` z#;=EBvlXC$iu*M|M^&t|LyO)T6sdU8I|BxG+M(HQ4Kd4x4fUIfTv*)C8hKxhOgTmk zOoL-oEgL&jJ0!2#L3!2sW-zmMYesgT#d#Dryak_}CW7?v;nm(gJZv9=``zO%_lWNf z-_1c9hbotNjg{Gq$Q|L~H7xIek?{xkJetja~3GpldeH|mlv5}!qPe=VP}i^860i*8S4@mq9^Ey9lLKCk7? z+{K9LjI(X=q91h?bsw@4;O^Rcyugxx!cc=$;7S{U+SH9qh1C`OhRNx3|Qbda(4;7#{< z)jdY<0{(ygHSrJfA%VxgA%A!m3Jldc^;|S^PKD|5x!p z{=ba>_e-m7o_nr%~ z|NXmc>CIi~ZCvSh^dTKT?w66$lHWmDr1YFz=_e1jwjb0mO2((T(#t-Kls0?9zmV!7 zv~b1ORW1*h_6IHgs5eSg!OKS9%LqdPi5fE@}ng$a{geFFLFp zoGU%VmA;!SKt9}+exG}*vTa-GVUf1i{5FfV=MNKS{*aPyDKQ=2@A*i{xZ3^5)&Q>E zb8{uHv68Z(j3e>U!il_RZ77E;Uoy0zw7lbOD3|6XPf+q)bkpg1$;XkLsg!Ks+*;n3 zN_|-=0;Y$T<$c*%UpNV`FMs__wC(=-QsKTV&-?P;+kDX#qLg_w@5^$1Y2iz7!;TCg zqNqmK``F*Fa`tzNcsg@c0G4w81z#~N4dz5C0ST_CPNYsNku2akPorWwe(4Kdteo^} zC|0mvy8L^&J;6Cl?Jd>Yj5fCYAuoyKVT7KJm+c(goh>FE#jCi0AHhw8NtBL;EhM{_ z6{!{|+)if9Y6~~ZjzU6sFNY-86=6+Y4%{u(*Bok1Kh3C0B)5`%)xozTLZw7PrCyQR z)~b)_sh1KsyyJ&@!Gm9k&=>i!5xkpMkEUhV}9lt@ifL|(nqn^<|ARuAi zG#ZcHtHxbfa0tD(m762!~qSB$5e3 z)MTwrrz_Q<2zQEY>-P`|1>y-lE=lAMB!a=KC@%jT6}p$F+kYF_o0SLaR}##-nhIYb$xV6W(>949TAn%AF~XqY>~uGCUT(U(or%zFLzmYMeMZLt z8~Y!f-g=0xInm%zgz`Fwu)=<`kkekwN_&y1iA^wuXc(QySY0emiUqV{@~;Teh1km7 zz_6Vz+2R-o33Wzcurx%*M2E;&eX;VXhSEeIG(H~T2pjrz=3#_f@W&sR29=ZzP+rAL z(P}cg@P!La-eaGnE`69syiBGy>1&c?ZE#Q4w(zuV5trI;=%zp1MDNfaDg|>*C@lR> z+GL?vQ9Jkpn3y_^O_~VIy+zYi5GYkRl}EQ+GVj1eI{4%KQsD@P0~DR06Dzv-3}(am zMD5bwM&VJ;(R7dYbR3fM^)ee#(oq9&ka1jW`8bL z4A^hjpVznEM1Ppie7x56B9e>O>bTyGeRtkM{5Q|2C~ud?^ec4~D4kgD5NET!dH9Sg z-N-dHVGu#H2_VxGVW1QzQ;%lcAykhpGNGD|KQLPoE^5q5q)+4iI*VxWEz7H!2mzdq zZ#&23t<>CBgG{HSNl@FQ40kZ`^9~NMKqtml{va9*0=a#cd=O5!y8>bd_ihE6-a=RC zuK(U=J$L6(Y=6=3Em9raCyW?wQb$RrM&z06ko2EA#$?K2q#Gt+$H{(*+0uH*1--6^ z`{iLH>>%Uif+Ho{UY# zh%H1I{QQ8b8b#Ysm9~+J*@38Fn3XIJenDlO9bLwQP6Sg&jm8-rw$X*h3BeH%Pi{Et z2*Fq~Evdn^LIzhZp9Wtu*R8lYc~7kUUjjPGWyo3-^-rWuh0?=M8py05#puU2Z@u8J zH8cM!)0J$J{9hGK&43v(J*MNM-tbcif;1s%3RZO@hd(fs?^;Rl`7N3^ppW`jDnl@r zi0f)PbCXjdZ1x!Kq_#6IrN$}7X>umE) z`!-`cwOKK?pz}_N$rB;M%yrLCytcDxRJYzP+st~~G((ZS-34y8acW-2ThK#r)>LU% zQc+ju`!m-Kdh4DIvGyV=?N-_SMXoZ8Y0JHhg6lD2ZLdlfMk8ya!s&oLxy0hz5nS$r z5gj8Q>wJZayI<{`t-qQ16qr8Rhyr*TXf{MJY&DP<3&tQU zk>eNSjrU)9%cfcLUvctA>WCP4jS(~wNx1C}WlbFg0wz{!bn(ZHE>hg+5->Ci2R1_u zBR#^S!LG!WGT5LR();)SeDi`}LlsVFHfoPjDpJH8ruCy9qbV)9&3>n9e_MH|+7q4D zVWZ*qpWvLaf;V3lA4P$6J`EE=t_rm-E>&rua|JI83*OYN;2+g?dLoSM3fANmtPKlJ zwt~vST*mpq#r26K3wd5@TB`e2O7j9%ET#R+sF2=dVdob@#HeI)5HbZH*>QUt`u;)< za+PPv;JttnNht*~G2HnQ%eMbTv>XT9@fe~9tgUM$dHs_fn`N$WZwVej{g!ahde&1R zGw{sugZT@*E*x`TwB*NF=?7Uk20P556HbQUQnJNa^K1$|TMq~}-MWYZ)xr;{w#v=G z9fOo{3IW(LPW9@Bk!7;dN`jMi5qeBDsFP~oH|P@*P}4O^nyQt^DH8&Fe^-iplR)^v z&kckzdVC28wn?gSCs!+k({+zJ;S^l_lv7(J=GG@Qp_Q{V(WQAtu(5t*#oDA*G8e)> z_=2GNVtv&4l;5qQ{f>8g!=dn zuAIlTaM+?Y4Tsoo`ZtH8zbS7 zVB8?spg#;DHt0hCbF?zE7`Ga;OpMHCo}^4BXo!v@Y?1{|Q%qO~iPrk34w%;1*|ZPz z`M%s>QiU~oM03F=mK<8r(KaHl22xAm{q4}-!K1?>~GZBX6m_{B>+ zqa61{j!~X9y&#WK>U(6Anr@8pEgz49`vx7O)Hvzk8D&gM^|F2Q7^OzkB~#({`{gkT z>EWS%7uM3DF&)3DPnJ>sc3F;5UZGmYC|51$g;CCUF3KnprZ$N21Pyr-RyL3E>1YSj z_A^ItV%ydZ?WomM#_DQNpDe@Zgd>;J5%XI62y7^1N+g9IKSYb0;JJZt;U)RPs5?J? z^ws6jvngY?=k)jzVeqB$=-*h}ygag{ik!FrPF>J#c6ah9j|T4G2J;7cTBh2 zZ+l_7_m)SQF7uRlWZ`Bo$A@B$F7oMs|EhfYUD8-)fgWE?J`Mb)^67`3qq@nbZUSd> z?!GhHzwu~}_V?vxrjYjaUs2#(W5F2Ur9~iGOjFZU;GDcq9_?#Ffpa725!#d9v%sm` zkfr_6m*i+af#Qz#dtBQK?ce`VH+gY=XdCt}Y=F!O4KTS)nKvpW(XH_6mcZx&=<}lR1U^VB(B~ePe zwDGGVQn8L*w>o9c0HVDsChVDD9Rm7!S#!S zwSD2V|8<euMp{>86{&p7jt;(S1HzQ2zU{_e{q&%JVm|#--3S)Tb*68uOpw_p$GBEttL zuaI_XN))zK2hQBG1!`E}1pn>>2D#%BG*&F98!*dK*?CPMTyH?DM0c=I+o>71UA7+YJn%icE(Pg8t zj-}(Dd?ucRfa&o?M_%n97otIzSzL|g^;jX%<->_yt&NLw?-&UIQrJB*@oPByQam_ zw;uZb%Kv7eZ5Fq1ya^}Pw2e19D2|-j$BjWU31g&Hid2{FG9^y&$G1yVVh$GubaFa%5OLg))d8A@^TBgERNRN=p(i;SDz3VLg z9iL=L)!vjN)$b|jdVIz&dm+_#P}RDQL5F9nJNVasAk~>7RTuh9&yGK4@vh@9u<`f# zCAsnUZ~xnkznnZ2A`*hJC|K_$<0c2t4R?F0%y=M2l@Y(nQiZY0C^S{E2dZ?Jj0X^d zB#~r5o@P304+H39LT~jX8AtD)M-^kE`~mdJM_H z8%Jb1fePLJv79Yw^~n#j)EY&U9^*-p&!Lc`){gT+YIWH^e)D1X0hg&nk`=lcIiCs> zGiPNdw=4myr@_y-BqBo~E@#ygp^6-3A}+Zh4Y2%1ViWZsFO3?Z{ZqoBRA`>DrKmC) z6iL6qqKW*Ld^`d%SO$r-A9U ze%iL3Ids6_`5~Ws@yXZ8u2&3TRaF$6jK0+Q8+_5y$X|BFLu!2A>roZvEf5s11@j7y zVl$8XlQ({*PC?hL0E`2cI-EF}LW|a|gmHv)S1=(n@CP=MS&L-1f_7I4w7T`BP1qlX zvbzBV*7s?|buN7A+o)4)9FDtU@_#mVeiB^t8BjIBEe23NJf{N>*oUmq;pEswy65E= zx`E6%i2uz0W#v?uq)zc=7Y6+uT=d2bg>wXQ-? zxWOtgLM1)2z>Ky1PGSLlS5~39itp(FHk6GCf%*QYS$X2M;CcbW?4TL=7J-_M|MkzF zAFo&#%7OIo3#Vpfy;GJ#fu$|folGRjB@s~+nStHD$&nU!0#y98!*PC%*cnOXW?(pY zvu_&*+kK9H=~m;IFjaU0-<A0(&GIGFHEJ(k<%dT){=YxgPp4%+v~wt(W~3aBN;0RzLHUaI zC^Q(mMxNc3*Wh}|gvxCll27zjV%j(|Qt@xYiv0o&NL8woLIuH@a~=L*pd82*c_0V3 zeF8J%OP?KLdHfukb*waK&b&EXKm^&}ZCTZz--csbTXi-Kjpl*B|1j0@dIP_I>wilS zB!s9(3O55gOz7k93Yo_6nZm8ixnw~PU`1LaTKQ8MeEeBg#T}YUMj0>mbFG`Jfj(nyWgo4%CuGQHA znjirItRZLFTA`C1a?pTlvraPLdhp2zeul5EFXt55U2>o+9rm&P62^TV^qkK$BrTBKbw;U9mba648HdfT=xs(x-R@S!10^cMjVg1R;P<`TdX7T+5J5C z?0jd0d%&Fb}*sz8$swN+Zuit!>~JdygoNgAO(C{@xq%(axAi29%3EN zeP_u#-OZlqctw!qlEWtCxa3Ugaa{84*&(X`gjkL2(EZD+3gw-bIe9BNr%m3c!Vh-N zTZjQ=4vV1E&!coxJb30n$0+0wm!%5VZlCRdO2T-O2tbTwQ@^KYN#>QB4-U-oO4}XGUJ&(QVkTJKADt-1aQ ztZSX)C{Lp}Pv>3A9^M9q%J!q0}yu*s6`MMoEG-8g1#0$?BKllvT&h!!XA#D&0 z7~XFU_JZ49c7u{S{6&UL>mdXBz)~T-o!6e>(SfUW?^U(<&%WM|+93?mU5h7P;OXFR zKX#5mCE0#aS*c#Eb79S{hwiduO@me`aCTTl{+>7#eSe)cRWmX|=hfxn^aO4(vGf3q z5x#l_;9q)872|eWq*-%}$}F%dZ*?xNS;qvADtMwu_%USif`3K){xgNkaN=@UoL|;r z)tDF5t=`WoFZ36EuCi+=V&Y`nS<8Hr+Ce^Ps+lS$>ldgIC!$i7N~L1-*@_23 ziBa{ZD0t}=QHgYOfs!u{hxpY^(#9lOJBkyWeG0KK_jAq7GncFcM0S<2k;i2-4XHtY3C#fM;Wxb|UKwVZ41_T?Qf683P#O&5YD0Ak`DJSZJ2Y#6giHew zjbG@Kz|Q=LTDcq(pE+~?cwG*pQ;GeT`6<8h_0Oq4MOUbF+Zytw2x(B0$j$4JB%u#5 zg17m=K;B)YBuEENMnkL663n305=mR5^rc>F3~H8=)`|rz=z*{zd_WWagvjod;U6a|K5T zMlCR-_A}(y8YjQ5)i|2D%FNwFC|O|45?=M^0=9%(MIHJErIzW5iwdAsSK>qaBNs=HF$yXC%2x`WeU3xWLdWpF^S7fq<;zL%jy%jahts?@-^A+k=so7+mQdd%MT4-vyuF?J{14&tt)7Nie6x&AKpJ{D&Ot z7fKmG@p}8cQ&~&(ImHszoLrBORGKaD)59zD+XS;zgX3;TbALP7i?%wi&f+j9zmN~! zU;A+>#m-+lJD!tL(!6`Ks28+qR$|mRDPsQc(lpG~=rUDc!!J3?Mh9C-564Vjt+P*q zUA{`aq$V^Zk`s`A_qnR>xC$DIa?R2#8a0D{E|EuwgSj0hxxOfP{F;Me>ArM;=b z%0uYqg9V>mF-?c*5`8u#Ka#dN7Fsa2Y}RFJ<88X6PK)vwm=jeS8Ea_2l+TIeu{6d; zbxZZu4q7{VoE%l*@^3@_)PylJ-_ib1azaUJ)R^51)+m5k4JOCgzog>of?^19R%$}Y z%%^zmt6by8uxrFhP&ThY{!5LOw=bwy(Jw8zFJLG7rC4831m;lj;_8A@8rsrVSK6OX zomUzlO_ztQwcz@>M1Zd{H6k#GhsRV9BVs?pP6IreL*x|k@8hpdWY<) zd-F4_qmRDDNl5m|ybU|lrAJjbJ5H*b>^bPQrvHF8}prb&KUd*5H?zxbWtTYD27 zZ%yrI8J){tw0?)gq76jS>rC`{Ju%@`(Ks>mpGNmI=O$2r9<{WMPiF@3N^Of!))Pr- zRt)%HO0>Oe`9zLsJc6pX8C~2-U^8}4{Jx*qu-EemsDCwF>K+^1FE*HiYAD1N1^h#m zTyVWpCF_;gphKiiXFyxDMWI{Qz}=eW;VaIc-KCM-tcje#f}ARqXlguO%V#X*i*Wj5 z3i?oiImM%;7wqrPJ3RN+E}i0q1qp$}X`|8$wn8=?G>3zd>pA7GHYz$V3trn%G6zTN zr8<$+M0_}(J=S^zm8uB0yGP2E|*bb<+s+nUE6@5?4Js~Kz&g3!d?EOB2j9;d@v|(Q z_M=2v!&t)jWLhs(>)~R60gjF&^Rbfv=5(3UL`s5zH#zZ&wDC&?$cG^4a+m|J^Xr1w ztleO$d%XSzoOQG3EGJSaTBJ?lf)>aXyAq=38|bs&f3ELDLhJFn2^fU@;;((aTC7); zI<+JMLkA&2v#r>7yxo~UZ1ce7pIGAF^3QW)p~eQPFR6*;JkU!gR_MJ{=epmt4kMXi zWsGL9@wO~oD#hqJFuL!#Gsy^=~EE=c}Ty4;J`^6HU|4ILW4-h|5O|~WsD>)2>ayCN?Y`>Vq;+^)Zu)zKBVJYcPstuLpjJ_%$2^#m7eTMKcWvvAI+qy=CvaSP$_~Z9sk9? z`YF+qj=xVKBZdYOBnp?m6yp5uR0(Qh`FPql#DqQAHMCk{BN=ZF8QMjLn95f zZ>pi1NJIPO8oF^a!{&Leq22T$9q)g61e-ev%!mJ$!^Z$$8cLq$O1q1^;-A(F&GDZ= zUXO;0&C^h508Pa@+#0NS+tozrVXpLF)v09sv(v5gyf_bs#Izms4@+aYEC{a2m41H! zkjuyxf5eqMCRg&%?j`GUCGWD5D2?%pDH#kP3iYFfZ6xZbJ7^4@8&KX> zkUTyw`4T11Cb>E<`9~yY_GMz`%Ufqe>p5Cq?5Iw9_e9o1p7&*YeZlEQ zwVjyvW#jdHnSuP{%Z_kz2(x7lFsD`0Bdect(uVx~f5SO-`hk!xX(V#gRf1rYBNN&)T9)9m?!u zb|ASyRxOIP>*lmXa=*}MVv`brGx!gl6}DSQ?Bp88Ug`|$RFzeO6 zOERxoKwDd8V4>Fu1Xhefpn{|gSGd+ZZMJhlr{5#&js(wHuU!akV%l?{?!%dgqgeN1Ei)0+8 zjEs{oqm5##`q|x`*y5vPS}TD+LlQm_{O%?6ks0lgnupKWtl67{zYENNsOt{%KN@;~`MHy# zFl$RExQn=;A2GVMEiE3%WU{Cv*zjqz`rPzaN@e9D0PP&g%kjk1T*e_vhrlnL{$?@V8`N{Y z!t}=!*fydgv$K%A;W?0eBf3v06uXSS*L&fY`}6r_>LWe!ORUYwn|$4*w&%=_xuQH% z+Dk@bu8IhAy=z>!X>BLVTtBAYA*0Fg6Rdj{9Q5~$)}{Y9epCKxFm1mF{paH-1H{@C z1=Q31>+qLj-|qbNn=aKy*%#D0_BBQm`;y|=*CxrYz`h6PRi9&D=EDmrL-yt6c&5a! z!M;nM`ey747wfV&9=hl&sCWiK9u#5buJeiFnC8cK-pu$|OaI>DJ1=^tzcvpwb)!w7 z387pBvmO?|O9e&EC{=J}^c~gFExz-$%Yi8p-?vw>&DQov z!UKX1?$z%G?QMps1QI|8CrI{jqG=*j*o>wKAlsJo3R{ipEeWP@UN5V#aUqb}avf3Y z&6o8U$M-4jA+sQ3y~v9XoxDJTMb+V0n~cRuW7KLLbNHf&yny+<+8k@U+RA%*VME-l zYb}CZ#}1oNwoP!j62VIYu+5kPmQV!A5S`IN)RGh-&6}BYQ-?sKIus29P3xznK;>-B zrf@fF0uj|7_<+l2vz3MPi?#jQ5PUiec^w-k`!$j*M z5Vagb79{ajzH#QgfGcF#QX zH~#-C|IZBOKLv_j&mWuOp&Y*0pIPqqZ|{)pXXdKgtxFG-Ew|@g7WPR7_hr0GZTF!g zcm~SBbB#SePM~k93M`OKr=fcX`^o3l`|PpFD~f+lS<~_1L!2XgA{}~lhRZv?7X+7| z4aZ?pD(UJU5$w0KZGN#6GxN=r5IMGR+;%>8b7J6gEN&fy+Uv<$S^?okdk;^9Jy5p5 z-reQw4!6x-UkJ{6lcMl1ZA-?4J3EXYcjzn|>?QfZW-i#vX=1i?e9Mcwsl=g^$VY1K8&>+ zWh`9ht&Td2Hf(OrT4{Wy!Kmv!iz(GE=aerhoQ58};}6kLVR-u;GJxM5h7b`!7T2F7 z(nKI**#}d8D;ms50fUGpCz!?>zp`X256-7S8EmyLhIHnO3l^4WT?uC{!&ouDY^62e zyqbhm;~9UC8J673@#l*8fo$+6NG4}W80aRbv^cCw7yk06n=wFHWClr?gah(-J`RTu z&oh?i@we&U52|%re`6?dYtOMl4)AVqUpba6cJL3xz;`{rxn$%9B_$uxJtOg~sJHbg zeUroQBtPVWC4C(~_Ad)A#KT10hjLm2hx-KS__c?*WrQ2NT1I52v=U*mMt@3!ahJRO z0w^v&5?Byv8IJAXiO1;XcR+@l0rc6C*X;wSO+0;_A0ECoCAI`^+$E7Jx9tn&DO|#h z9em^)AMnN@1B$}&ku3$0)3|}nArYZ6K?nQ3bmT5Wip^|IilV2lmpE*zPmDodI&_b&0RJu zg6rl+h?d9_O+&hNi{ATj+v&aaIGt?Y8f~(LArQk4N3#! zW9zudk?~Pq%kc(%ewtEDZ6Rokf#rAR{35ONc z$qHfGG`j!vL{dvdXATz=!{N7je_fEIK=UQRS=@}#4IR*Pa;RiB9<2bJ8ld&Y6hXc1 za=;QAYzx$Q@}I${475c0F8A)S8LTAHqfuAt8Lqq!sNra?F3%1>$oYPMvCx|JVxdvV zzL_Wa92~nCvUfc{YZG0*wA~s`NKHUui~fn!D6_%_O-0UmK}j{mouBwgBf=kTW#;gC z(5T|rtaYN<%vCPD(fqQ6UXeC6deW&eJVO@w9nNfB(^8~$0V>vhrV8V)MR|?(u>2V+ zFV2{Iu(bl@Rqw^pBP_SX5re%ZfjAl?PMK$DMk0kf{4Z#62SL2MAz@ToKTw|VULpyn zUIa`|4DA?-Arm0^Vo2z6lk;Se-IULu=|F#wF}yw4$(5{v1p}Bw^SBCLXRJV9;S*mD zyh(6t8ru~a8l`5LK zszVQM>RoP6e>1LMpNPmSNe_v95ngFs)6ONW3zIa#wOU|>PM5*(?Pvr2cXA@#$QZrq zJ-60EwYM0Uu909S$yoj>#4~HOXS;7wKg{U zF8k3DYrl>kxyv0z1@AvAd1;!y^&>cNC8YEhG@EF2JDEH50OHIg>H|*g0<~K8rw#{H zn>vrFNTjR(ezG+3W(4%ojv{rJZd9n@7QG<&=N1@v1W8`gS1G``k{{}xhN`m=MBr3q z4&T8qUjJrrUa0y#oao60=d;y<)5$GBEfjQsS}#x+grHU#gn&9U1aFuN)MfIr^{CbW(}(R_J~36zw{gGPXu38zAkxZ| zYl5>aQ}0Y39AX)QgY1zUkWqA1EVBx48O(BpJ2Fr3#y7=z;+w^nJ1_jUx%;LI1o(C= zkKmZ_+o8Ns?g2CozNO_v@!jy-rM&U&Q$^Aqem|1xM)Rz26MRm-u>PCc%-XwBDgzE# zIeSg(`XP;41=d{cG}Usg0xNbA?$hya;o9od;c$0MUyJ!z5S)K(Z<^{hgKRnO)sO`G zHAgGv{T1LQf)=lP=<(Iy+sfc8T^NP0%)vKtqx{gMu6Kv;=`p>**YqvH$Mt|UHFG8* zISsxw_iYM3^k;v*;snX0@O*`{Wl6X4qQHx$*uqh)0at!Iwva{H+97WI@oR9by;YE> zMsbKl3PrvCgz-(XTEzn8@l`RWNp73s0N)p`cr&6nm@9%J;&-B1#b^8@t2lggMow|K zff8z_IH>!96bI=HOAM?oz%bUcDo*?>0drLEz^r*S3(PqYV7AW!^UyIlVAAntCX2j& z0}nIh9Qqs=8q)Du8$u%c&p;WmM!c(fpnpj>Gi7?9@nP%QZL(@5P#o8}L^5ht@Lb?2+;j3Zhh~9x&^>P-NGb6xklLhAfx-4db z^A|Dze}*{A35cA0$gN*r6_MQfRg03f#v>2d`qk;1D}w*1`Yk3oXqQgi_;Hn^K<4ZYm5G?3hCD6JhT1B!>*_P zYdc_^UDcDn9Z+sKjPLw;h=On}o`;1?kLnEzyAOzBK~@5XKu}WRU$7`$>+TN$wI#u! zTrVX2l!og;;pb-Q7>1v#JWb=%rp{ zRjJMd7u#o6K67|umT>49`WMin^BVc{EBKk?_~$)`9~(FDk4mZ8oNZ@i@F<>Qz2RqE z&|OaN*&vN)_QBwXW`hIP1_<5&a6hFq%DjIAsE_uMMTR=&%`Hl)D8l&LD7Bn9C zU?Nx_t-?$Be7Of z8`3**+i^dqIYb5Z4%sQp!S9!UasyQjQX78%N{>^<6M%pC^I0i<|H-*2<9te}GsVF+ zN6-hSHU#4`QkR2=ZwIZnd9-E)c1~Uyem@a4j<)RIPG--fK2VK2elVCd`v*?$?CfW zg7F*a{U8`&?eyf z-RR!%cUTBt6n`DJ{oml5cWD&9Qb*ta`KWjNZ9KF$_^x-m4Jn-O-)!ZTEA9oQ7*&S4=pS znsrJvT|h$Zg#Y0D$fhc`u>76yMK^6+}@-e_(2}n-ejSwF*d1zO~9r$1H|WUZ?e+wP1e}nhJTZ@6>fR9Yj&b_O1-nG%C>a7qaES)gghqPis$keuGB>y>{Ps}7oN;A z+>v8)4EM#eA;VqweQh!dUpDJL6uk9@jTOyR!4Wrs`Cr)NBBB(54^W})o(TTaZDnI2 zj#K#-$s{>*m9%N?amiAyjmsM0740d(Go;DWxVW)bbrnh7zWs%7xh+4{ws=Gbn|RiG zrSui7i$N^CubLAdxh=ngcxB74rZ#nCg51#V*0L5=&q!drKccJ^V!r9JRJInXv?pK~ zSBv9-1&NgQ_Ks$6@3C0>LrQR4Kib=?gTnj)6}OgYm&MTGHujQ_xsAQNPJ>l!U@Skh z0pB*oYS#%HkRiH;$aomfHn%yYBV^W7ZBE^0FY3@CJ$1+NcXeQN$+-gHgJW#ud8abZ0YMdsp7h$LH2SI+ z47kFxmq(b{hMw(KT@EuBJ)ULe8As=sc?2b#^n7Wgq^AX7al2L9zHZFy+%1h|=01gm zGi*~kpfT7xc>kZurybA-We)wp4ev)vrwiv^i5qiJ~@#x?_LIxlf3BC zej%kOJ9QuoZ=<-e+@oT-^iBgTY(yy=+JIKItof}3P7gAk|4!eD9gXySp5-?hZjXyUHK0@8@+A5FZpF$C{A8O395 z&l$hF=s!=y(o6KJQcLwC3~+H^to;_t_ef&nBZ;b~Vy(Y-pZByr?;2~j?E-bSnGdze zXA((nV#|fZh|MBT-~m}yEc|uVl0|Co>NR9+2Q#KzBdaS5SZqP9C5mCM|l zI(p1iD)F*hpVILY?{@ld@Z_0JaV!!~G#;So$=Q`2wgI!0bL~PClZAKH?CPS~N+eJ` zlOC0&^LA_3$6GVGoa}FN9~i!R0Us5tOs-I{BQjf>LF@W$@c~W_f^AP3<32M-8t*HQ zK7dC`T+`vp8x!lCsmnFrnOH!rO-1f{K};-b$e#HtgRApyO}yoJWYs+Grie@{P6&Xv{J!P(s^g_uN5|52p7ST z3t;U1!$}}#Z^+rV{wijgxoRyCieF1XamdH-Kbqs?X!?s`ddde?Gr@Wu6-lyRTed)T z@w}0z>4CBKcc?b23%c)Kp$hj8cuKKKpl}u0bFPo-78*qz7Bz8){1Voo+Jca$~gGczAzN%95&-yM0LSXTG#p$s4a-JcJe`|?jaTK{qw4rX_J8>hED2K5@ z5_}^C_*Ft5Xgfss)<69o6aI$pMHlgDTUmvg;c-Hv$gn{C}+vsWWb!r1ZRjE#q z!+ujz_GYnn2PIpoFMGsX>MKrHrIM3zj*5r(WS0+aQHq79>J@0!K%812ld$Cg~aw9ZnN*?6P(Jo zLeD7Nz7?%@93O{u;mJdt5+3y4Y7bo?8L4^)3ga!!qfc7(EGpZ|R_dqWc5?z;z?nC7gT+rBI|qC8Mm;-4$5k-N%Fxx^QCrEj#{zTa9F*gGiq&wJHSIv#u5qn%zF zM%|zT^}z|H;@k0MC9#Ej)wB?o=U^e#0A!3UFhDtDqd1qjzRcZ^1!>CzjxS?vr@E0Q zCdOYYJO|;9vvB(A(msGN_pP2lNQY-$Y?O~LyHtaTcr=g?2TFfHgEna z4NfE^pFp%G0LAKKIfw`Vrzo+us-By+PnH7d zooq0+Sj~I+>7kE?tqp{Y9hnzdE)ce5MY}LW576J3V;Sz!5lb}2N`r$eSfMF=!UXCj z7_i2&lny~~pmoj)W2v(HLsu+p7cV_+w$LV{o+GI&TC)lL;>0Q3JrA0gyCv1EJuOF+zNY zW%i`6hF>^I?&fsmrz7#(&EV_xg?8SH8`P$On zz<^T(#{2&adD-{jOThX2C#p9q8vYy>r?Xu|Lu2+ps22^F6N}46V~3iC)`6b+SUDq7 zUk=l~W9R#TGXj8eLtnhEako-Kf%HJn>;Q8<4v8e=`T^(d%d^t5e4!)_pim0b_31E= zO?@4@Haq(Nb6JQnd@!seqhAik@HigE;`Y+umT(bJo z!vMvNes#w5)H=*4{@7D-@Kkm?Eu)zpEqV_H&)uvl2)z z*K;?}KgR9Ua=enrALo7=vTsa7{wY3IRSLxt<*_yPJ#6g(pWhjbHRriQc$M^sQyCJsXdcq_7YF&)@+7HmodI%qf`68F(_1_-^Ya z1k%l0X_KNCf#ezu;c;+UbZ2V)u%&yg#sU&^Cs?h`68JJRKzvBOJh71ouGOtf(3?ax>wJpY(l=K_Q=ys>ilK$EdmH;JkF@KZqEy+q03%Y}OM%k0b} z*zyXN7B_tyF`(wHFDfNCZGCZ)_+sX&1Q2PTV2lAc-_8L^OgHczit+!sC%fKQPBLOC z|NF(c@3Z-g0;^L%SMp1zg>+8EpXxwSw27!HGvgvn+*gss_JZ0vsJAvX4s-h`%S0L_QCCREZQ()(;O8%6ZI~TOb2x z-t#^^{Qc+EC=UO(mW@^21W!*SkLLi2 zZ{OxHEvd4ZOI&l|ai;rKN2-Zd{AnUPPvE8@JfCCjqimkrkETs23}Mnh(tI7v!$YGR z^(1+yIA`2k&+KF!Ko-qWlh%>vJJk`d+!@d)ci%F2wU=Nip3uQ3T=-)1wYs5=1M7zd zMKurxLzjwGM{$(0lBR;6T@DYn`{iv{`~7VKAbUSdyI zHYMjUl&xHU{2pBo9v3j@ZnfS(3DsU4 zY*`kr)|W7(EKJY+X}Y7kQrw zGfZ2Jk5<)8=%x;&C?-#0gd8^(KqG}tNx%UIB`sNQt?}p@S+C!Xl*1wl3-tM zQc9p3SjSALGe=NOoj5Aod<##VdR-J5bt7PC;qQkuIW-y+RUgLE7Mm``TK<%pMAiDH zpJ-!Zth3HCoX0?kjn8>Xq~fcJg%e?q(LpX7sTwEzDhdAe9^~Nss%3)JUi56SDa5sQ zUFvd-Aq0KL$pBKs@uO!wLT zmC3yj#p;lFR#yr5j%|t%r)7)~-?2EDz>iK5DJ`t_ILbM{1TJ#tYM&?|)rC<|UG&hYUh1T_3n`he8_o5B%FOEpZM{T0P>tzY)vB9IV4SIRoKao0>Q8#?ZEr=IH zK@`KO>wLIcpc6k? zN+ENg$LCAST=$5RFuJUAxa;0oPv-DhVHDTbVm=lGj}qOl=k85%J1fb>ZVC!JxBtzq zb0?@_*j~<&;z_!iaNP7u4#9;sCx-)ah#=V37FC@SiPhp0FN znuCgovp~hag$n!k!$fM(?x@!2rDt+3`4NW?hH8|*mOdUO_udX4$32n5M_2w@xKnTV z82^&-S66)Oev`w;F!ir1v5Wo$kw}*qA#M;s!Ml_Ehr_~to&u}U&sJ0*i$Ul58U9tr z7?9zX<5ryHXAqoLl&!j0SS&8+T-y~t>Ct7kJADI#pY#nkGv&_Zt^_Z!g{MSTCtEib zqXq}0OZ!y*#kEOn;_Tqct0DX-mCioqTUxf}%qS$TO+Gf_F?j)@%FDWX3TfJBpYD8r zG$T0QpX0o%47$1|h^l8|ttav^^z=!-u045TrAp5~Hmm1LZ;={fN`2Nbcg(Y=WUoKJ?M@;; zP}af+)lnRsR7!%qua|}m)N&n|u2mw9oFEv~Lr7T>>e<@*J*6m-`Uwqkw;?Y~^gmIY zsivKncAaNYrnwu+5xXH~=ib1m=t?hX*&`Sp<}$-Gxc`1JaB!DBxybh>(gth-B`GO=4h}M#O#fv0PFNCY7$H^#erNx-1yi%U7#~ z+EojQ zbNxZS`S=5W(B@Ydf57{lkR%-vbRfm%!ny8hNHYZKjDYwi9GJZ&ONwAg# z7hde6Nuo9r_O4dtoD`*<=BKkDNm=2OB)doxoN1qI`q8JV#j*L`C&gpNW22z+eL~t@ zZ@q3eOQpEvmy5%STi5rCwf{!7MjQUilJNVN;$n_v?Ex1}M~We(raL^KO>F`XKfTD~ zK^O3KCuOwjFFu?FPBz^r-1pljj}=@M7suLv-?eWqW&8f6eY@4N_SCo0u5VwB##dgL zix?^n4VgDbqU^7?!(U+@2)9+NeRLm9-H$UiYGMn|tEs6ZW};bbx%CJQV2tL2cJtUv z)i#jOVBS|>(3YFm6$C{7yhr0##OyV8L`PlKiWx`Nr3N|!pJ{5TixP>{6xBC2QMD%4 zdXqp+@3fTlVqMh}S)ydYC(@$)F{r6|p_*x&TAP}}^l@YZO-x3~kTcPTbydrC&D#hy z)JWy0)Yp-NMkW*Whd8Y1oe)SnCaON(L<7s4|K{{b}$^Jc~ zZEJ~LIlK3OO%$Q45XcsEM|u<9PZ13&Pk{7LdfV9S_n`$;;f(Sq{gUXo>+vi{db3<8 zI&7dvnKx-!z4_CL4lQ^wfVOuE-&7}#b^^kS4iiRb^`_4(uw1ej9y~27I$~|zIDNIh z^28*X$)8@qdf2k|02W52uL066Q@=W=6B^-gNCYZ5VO=O^8KJT&3iGC=@RpYK|2#TB zYx**n0dc!n+i4D1wk*eL=N0K)uL%;C)(Mf+Q4AhaekLXud_6F;vT6T}@2o7#{rvtx zEd7b*BGjV_SCg4$&e5tMbv!a(_38ixewZ5)RZquS57np8PX4lM)XMB;WiFu1@xIKh zUJ?ITD)NoSI2)w8-L9WiFU49jYC5cIMK;K4tnGT`NNw*HGHriQwydA#e1jJ~I+61C z=3ZmpF@EFkujMDrmpkQsx_vp3FNdM%!Q>}f;YRs{$rjGOx>^F66ttTq&HSU_ozznj zTy(Ye-wZd_Aa#cdU99a}R{6LhmR(fd8EZ3%h5G8jenR6jj9wROd%%XPRWkwWgD(7C zWH|(07I3PvPrtQK>XV0jh7~s$nbv?95DjeWjO|Ib`Q8Zfj;l5Sxy8%MMX&9NTgH{x zYEs>D#2DusTVri(Yp7e{tI2L4fgC982K(cdBaa>|OzqPj?Nfvx3cah{)UQa8%&&Xx zmb{9%Xd=~63Nd=<(ne+y(`i45%^k#e?<&%}id(IcbP1lGy6LW`@24Qj_5FKJGne?z z&QD55QMK=<^9+vulT8`@%ylC8e)u+DR<_?aq0)|IUoNWBM)cXXvdJ3%w%=A-s76-F zO6@jm%Z)X{z20kWuQ%A|f%UebVkwk7$$y)~Z>2d|U;%puvlyN$>-_lTO$e(Z-C)h|{G3a}kc>Z`-|N^UGFR`(BJv zZD8;0_WGyfhK%4#HGb3XawglKsYwiFgZMQr3*@4}*AmIj#53zPBpCg7IR&~8-^~K^ zK-mJ-R<%CX%ANvR#eV-xr1o|k`2Y!Z>BGuvQ;2{;WwogUPYo2+0)H;r|&%#5?$V7_;LPcR##z#Iy*#;s+t zjX*W`Jh5BVvP;GbG~*R@s$DS@&DTjlTd>{O>}w6Ti`=D``e;2F`jp_d`%vj`I2E|P zSeZ|(P9`NdV=)VT{jizL-TGIb&qs6FH3aqH4(_$i!-4mZdn?3@ymuH}ZU~^mYK$xn z_Pa#`uPfNss|b{ttt*g4P7ikN&}Fq4PX+lP`0fJ%D`wQOy_KpS_Hw|7UeIm6S@g}& zwdPjG$9*!1p^LP=amn!*l?RRWRz{}7Wd>-Yn|F$}GFf3M$ZoM;X|VCb^~P*A9xxV_ z3nLKSFTxnjD6jGR=3{G2%9QGH0oNK%`fR98LQ!8WApvG%c%;9bEI##v<1j;4)Do}U z!;1 z>lNwA{n($xtj=K7k=oD-1K(WhoTPcTd|=eXZ90C~eIABXe25j*Is|w$m?bERgMA-$ zJIE*%2&J~$%)$8}oSWfRZU#vmh4RA9FtB!mm6`ATBIkOa&o<{yiM*@lyU_kYV*`+; zKK774Y>;|qUR;zWs~VVmx;=eyAXjnm!Ww(tnstG4u1|BF%M+L|AM2S*#9}(pyIa`K zDQYJj-zt2+=%}xRq22DyVrb1r0=XN82HSNo+7vSkwQ+A#BGn^?<{9YBzxKo(+n(N= z6%5VcJ%^zQ)*J?)+YM6G17%0(SaC39#hC+cv~-rER$Yi80tnkX0d@NdbG={)%&zq1 zOem-0$G%rccG|sh7#xTM4y=A#q56|H9a7mR3)J@;_m3?+U3(XHVt4+-EqD>N57|uP zndC??ZTDp@C+Ug(Y@*KEGn~Du)YJtD*oj4!Vy)a79s~gHN`o&{m+ta@b{`5AEgFM5 z`8(eaMw9i}Iv5&rENOA#vsZ~Hw@qT>Q%u3D6T5KFF*=P2#~Uq&te<`rQY19F$w8hS zdl)J8jixMFLE?RJZ`g!mts%3JJRF5-?j+6Y;8)FXLE5CUNgAn+Dgq0nZRTr(uZ>FN z&SB+mQa)1`)Pt1OcI#{2Gd_mZM5(Wm0lar?yKIk;GYR)n04kKs?VnZHiRJ zoJ-3;cZ_;F({EhA0C?9rtKk@Rm14yfIBrmqSHtChAik9O}GqhA+b%kMKqGdR$9Dk#Y zt78#=qwW9VB_Zv=0z!axJpGRn{Rr;YTns*B%6RRG(xzo&6sxoE6q67*P3 zQ4pI%X<<#CY{20({={N0g?7#6Ob?%W8?7pvR|6TA>RC(mKjsd*2^TBimyDz-P3ZrvZdlL``3Hj>$Co~!@WM?UzfSpCH{4} zy@u94^fCYLqyY-0e|NGP<=VeXc8CY9I=XGMn^30j>3I7c+1cs1RXxp4n#`>&=B<+8 zTutVjAF`}S_>&HEbD)rzom)Xj*s8f9`?(Y!7gSa4!9um5c^`SQYDwNNvw%nb^(3eB zRS52&-pu*Z{?fzm>=b;%D9=n1j8u7ITSr`HP=JHom3$e=RC|&h12TQx<3U;CawBfl zX3-IcoX#6FjWywTK|6^$kkR??SmeWSw1LKg;CFkv@xtI@p_X}qrji3XAE3vjuEzrH zXM5+QQsxEey}@s!hs72)Y?l>2GoNaq!kRe^+hy*Q!rU)&5PC5WoC~rtja|NpeNuZO zzuwx6G1;_tXsE+n4(k%AKXnnxK{u_sPnsv-tU)szpm=33+l*D41v8^R;Bi=V?InM$NO4Zjp3KF?5ZrO&0F8tEVgh` z*~G+i?<59pz?Cbt=f+2pduC3+za!{poechSt!eyyb?b5b=Ra~>=N2t2l8d!i0c7dD zcfO;=RCwByX+rz8NRvsjdN#9?68NX9dt{%kKGL;B@*su*Ms)DfiDQ{<)FQseOICp%>5tX zJ7~8D=gfZx+Dp#$gB@feCe3_mj`2eKL2nD~G7*8~a*u9#$7_8(CXswk=&mtz)0?C& z?PxAbF#n|t*NNoxqRgI#>+qf-8VRo4OH5BjZ9~^s{dOfG5ZxM#Jqwin1$5`_Z>L9x z`@z4EqLAAUUID#qk(X5p37C=H3eIi*wyxhMHv23zNTfIWw<9!nwyqy6$IEAQdT<@OMM1?17?-+KtF)rxS`ZWzvAE+N_cI193JQwI?|I&H?wxz@+&h!e ze*d38AI;3YbC!31-?P1EL?SIsJ7!4J(L*RrWgpS|JhtbEWXJw(|eI1&P8t8oK*l%i@j%68i+`M}L9obQ81C1Z) zh#8b<>!EO+_=YJB-bav+C?A<2$}OS9{~wF;kzt~I@r}ZQzsQFX<(_}c!h-S-Gz&E7 z`LZA}CC!3NQJyFltouZn9R-Qbu)#}SIdV{wURTl z@VWXu?fL+5CX-LeYOn5WO*5HSW~RefdcT|GSc!+ppiAl}tz>tp&u0jv9rA%AU0kAq zeQi7=3$QcZ)j~N-^eGeG?DlnCJPq$V&~7ihpYIxA7uZqiK?c#`&Li!jUDZ5!4Q?34Ule?oMJMJVi4 ze42$JJ@pogpjtufQt#@vy*z` z45#fFoz%mVr!J)9JNA0=1_x^<0f_CQt@{D6R4M+b+fGB+QiBTa^*@3e;YFD;>*>zd zC-I@gn%qC1WDwPM0gNdEg80Tr({ZecnWfV`lU=;mbU*%5Yo@@25?k>NLMg=Lq?c?z zmp2Gd%ww|Tl}p^4riYN^$&!+}Mx>G>5!^{UV-LR7r2leI$N5JNb^2j_;#fq7jFfl( zyU6FfIv~6!h~h%n7yoX}QF?rJ11DZv*d=J$tY<;QfnfwHV?;pP$nNFtHsXTsICx>c zRT4jJ!vrln^MS2$`~W#2b>v4{$oYc_8@QrE+<^>|3=68io|8tk&WGxa%q0?t>LF&K zLQVy-BN@|E{BUih&_kLRBPG9i%Zhy9T2UK1#=F@5rfW`A)p**%J4?u zP`mK`9K4^#EShPG#W1C8cZ==r==Ad|j4>D!Nu4Lg%WjA5zm0wSDW=pwQ!CR|hqP2Z zXxBR;B72m*{ol@d+v$3*su)J$DP)&)%MQiJCqIYN)kwZFOxS~uL84P9n^&98bB*HP zxY<352R4v(4kWogj6+`*K2E@TM9Ds8eofDi4L~{7xt(5KsU&%IkR_))?71$aq>^zP zW*k(sjn+XHZMn57J&SNkX8)MCYe~Z~K;XcQ$Qq8{tts;-Hh2*)eaDXjZ7WDq3IP6869=elfqHGW zo^S(%5b)i8%RV5@oTgNghxX%gP2x)GST#upyHkPT680A#B*kGVSO=C=aH$K+3@jOaz+6rEmzP1)Pe2f)F`*bswz~o+9>KHv62b71$@*(Ey2dhf=)eOHnV(( zz#VDT1Q{U!+&v;U_+o6^QnhI!C4E;5qhtI6NM(v}+3~uv)|-R>Mq@|3w0^zKvn0T) zxDywd5}$id0zTX_7$CoL;32*m14ITs7&1pEw-ApedUS(Fy@LnWuZ~@5AiwfgF32sy z*I+|l-%@piKn}wIk*O|1leFeh58#vT^a8%K0o>|*k>lF<$MrNp(boG3&?itutBppU zHY+X36W42j!#l82Oexq2@sf4P;e?6DY?CGXUF~)+T*FlD+c>Hu+uB5rXqA&Cf4eDd zjA6*gN5}8+i3HglbOApJ)RK$-Oa@!Kxa|DmZF^e-J0O8>z( zhSNX6WF&#kaNpatL@jpt!RTa>pF1%t86-c4bQS(1KG*gH@(f?Q9p$HfU?}{5x*;6? z=RXUB|IfFj%Z-}&(?FeN3}%M|5_kN0f|~~>#Cm*Y z8dTUGkErh$3hI(}0TsPeTM1a;ndVRi?wU56l;nV52XuHD?jjxmt@wjzRi z8?)pniO1fK-y66U5fuOiqYBDL;BX7nIT$bTbt$ubP2~)0d`Zz__3z_1ZSH)^X^USx z?M0_3O)qoj5{!e1>zdgbC}%psEsq7No9P7l4+P^g*=5>iNc=>bE2nUr?1d6dZ;Z&P z&xI$t$vv1|!+y>PC-;M&gh|H9x7y@Jyo|VPClgGA&toFA`>-Hm;2$`%97no##6It- zdB=gmOsC+Y$SMSo|rg$E_cS(c{RuKZ73aHJS7v zLd7mU;c3ZI`!F%+X8&H#KyT7UsuS1DcJ4FB;Hd>G< zk!D^&t!Bv}&b(HCFl5%!h|(gZ5mOIwI)vyCOSIK3W+SB%kD*{Q#kt&SL;f#zgog?~ z=z$C(D77z<&=cA8?@9YBKr7!$#sOTfUe=zS)9 z0QYn~>>HB$7>4i@Y;TYr7>cHM0Ggnvlx;2AxP{1zdY%nANSFQ6f7pRrDbB- zsi5QeTeB2K1>LT}yb>%t?y(0IK|MAW!C@^VEKZg@bXg{%CUZb@GAp8Qy&s0?6|y>U z9I}+NhnKI*>|tL`%0bzCm=M}SiQU8H?BT(iGJB}dJTjJKTW(pkb zjR+pLS3wYmK3@ZoS%q&%f==mKN$F&Ek!so^4mesr;>~neyh>n(Ok}qK{J|z({T)sX zD^c?ON%On?8z#y49vjFy*cd*`KxyemC6sk8zw0y%lZp8kQLiG zQ5M3l^NicFXmT4N{Cv#-t_Wgl98klpv(fnF7zS8l-YK@aVLLiT^^D*-td~IMco3I6 zo31(?g`gM3)Z}{zDjrJtAX_M0szm;>Z7NVi9cp3#glIB&z28*EBDgSMn%;dRodGB= zzjHW-UhNESJZ5sg*=aqheDkXr`iEP2!Ks~v|Fg{wIM_6RQ7&-aQh*O8DHE-R@X1?x zNkBhc9%h@4bu}xnTC=>J$Z9xT&xhobWlE%JqZQu_DZNQv9?);EEpY$eh1l>eV^djy zVA4SpZFc2g{{vK;2GvRiTJ$wy-QJgbjtMb$K z?w_{t{8Zrn>1D`2_Bb$`K%#f*EPSv*kxd@hTo#>{!jM(l_{rli|3h3Ik1%j5%Lmx{ zXzS4^TLYr<WF&w{RN#CUsb@IxnL_Hq3fZ<9% ze4CgLY2Uji7qZp#OR+Fw#V^qu^+D?OUpg;E7gHoxa6qP7R3ksOqni0gQN7jVd*Wz9`tqp zVEi}61b_Pp3U~8I=>3En2b`HD9**T*Mw$ULE5*rw>K?cEGV8#Rb!=OltfwroD zU$WGoiYa9$7O&xrqc=s+wz;<|i9O+_8v5nrcyjN31t=_h41#3X){BrevQ5YMTL|=N zgkX0#=tj~F2FF{So*5jMQ!tR9a8gz|-|$M9oX<__;Mmpq80lQ16`7_>|3nx&j3h?X zL(6S5527l*2C$_RqdLM4FQJc&@wKcsM<K_SW=VRjYG0rGWyM-1{6R zu;uMF1Efl;@8qQcMD~2gVq6<-B&o53saZa;R3xM~3H%|p5fS8RvQ5{W-b6OxY{OFy zh^vZONkaagdeXZb9YOpvT8!A+e33x-g!ND`8GX&v!p3!33L-$V#hXIK#DBJ|nF9&% zLMsI-xuawm8{xuyfxI)f3iDQ=)^pJp&vhs4@dl1cn2)=Ds4vhdkHTero zdbj<+U9K}tmh7F0Mc95jkk#ssNhqtEvNkU}2LHv^Y_8dPp~0?&9iem092B*WaM*d5 zwc*kfGHzHyPLPr%Yo_WEj-F-0C=Fb+4zC#?<5i*7_Z-7%JEz<`6tS4Yb za?u>HkTU7T-DvAohPx}Jc|fEMiJjURv6WIiXcR^Qeptm8meczn@ND=B(hIBNi!eS~ z$YM7Crxi$KI9sbwLSwu^`m!+=6od&FIPw>4aY($Q?KQMbzV4tFWAdk^>cl@nTw^`e zk&WMP*3&k1MkMOZX9GV0tkKCC(xA-)-M#KaHbX?zeaP)i!!Jw%K5GOv4AYYR7hXZL zGtC?@GXYhjp?HzH2vx{l8-nSEk~So>%(FlQ(zo*&$#C(3C1N*7v?;(hqIMKuI7Oc< zxxGBYZS4Dq4hSHsrduFd$_MEa4-g8>JQ)&5qxFn7xi&~;JdW|aTOA-mdiHTRdS8>U zO`fd|)q<>!11m+APAlag5v4^SYH%iL^KwVUY(6D-$d_wdDUqevf3O(y29i$xEmOk(-GgNzb$dMOeQ z{%u^d%eU#iz!TfIopeiY2m^fE!3DN9u#0f;DdYxxA}A$!gi9!7$c{}zXF@;JpbPbk z8@5dE#c;j=5VcfYaR!7P*~=0|smmCGB*+NtCQuW8!Yu;l;}y16t+c3A9J(QqO$iWG6>AQ{E9@HE$ca$S>u=3Ok(g*W0$?~BuF=sITdL;SwJK9Homvx7>mJsc zq-y~k=$=963LJOR=p3+u=#E#~g3SI3fsYOf3A<5_u1wP0>rJtp6Q z@HSs+QmC6Q#uxbKW_yM)+S-i*yZL!?N{4m$6&G*F#NdXrG9!~c$oOQ*CPZYyfMno^ z{EQdEB9p?&8IeghK$S87BJ-bTVTw{F5HD=Vgv3mOj>`_oYtM&4a!D&8Nj;7P->FRy zMr) zM@o!@Q$xs7yElJLmi&2w%?v=^x4ciO_kdlLm%^lE;?R=1Mt$A=^L-O@1RW?!l0%v=L&=i8a=gY@CovqCz) zm!`H}eBYUne*A4Hq^c<#(wb06znP>V-BvHDA|NFBb^aghX-tkPwW`{ubSoGK(jjLC zjPFV*z(YJH-k7w6GPYPPZD3Q#8qm2+Jt5zz*X=BB+id8oJR>hy+p)-n$!NT_n0#dj z3SSxT%Lfq(2>vk$5y!yo$|f7^AeHrWY#-%T7v69BCfgqKrA|<}DqJFtdo3%ScbuCc z5tptDrE^OxoX(%{aClP2yka)fn=`M*W@nmGwErXE&eS1zE*vz%NVD52LW81NroinOXYwo-ELJ)}HbB`iWj@1UD$L_!WU z+4m&NJffYF6q~>#D=YY3u6C9!EHzxzWnvCnHygBHMtG>Mc#3|7p)7P3!$gu_v=`q% zWYK6DI&v%kZ?1MM@DCJQh!e!B8KcB%>JdkYd(a5#VYF=tpVU*Wz&`8xc#7+@I(GBnfUz+asrgjlG|P+ zX%YMwLS6SGaKmL&c!Ab=3XnnaMuZ=!cSSc+i|~KCxV(Tjo1;?Y&L(H zRy|h)#fmLe7uvNd^_G7Um}m0TIjnWGuC>w~K~nK z()uR*&0i<>@zv!VGCQ(ujhGU#dl2m~LUWLOE7UHf)6( zt?;WvsibI;+Dq=L5kaAFRs@Pt{*9rTJ33?g5MkxVKV>&GFzr{tVy_ zjhE50F%=wktMRXEY%2wf$~W{=IiFY>NE-=90Z6zyaHTE*S^?};Cj#vFlG4R$?htH{ zn&ucgeDU-jo$`>Te=$i9`eT&OYjtqZkfwgLX_vLpqAl_NF@ZZ3DGp2S<`iDRVd=*(y3w#(kuq~}}EHNi#> zy7STbGAr=|E;;VJ1%oijw3T>?fF)pe>=j_O50p{}Ledn`Iu)mmlrj3@5|gN=-pFA& zP~KD*Nxo5lJg5nM#fynxK3;vkBaPa(+4t zsvwzMLyx*AL8QP~?5FY41IAfx7I3UaKVxbs%Zb;K>UmrvLP~uFI+Adngsa5Thm|R) zxNSo z!JoM76UK9^bUgMQm3q?ZdxUuDeA^50%*O3mbbHRvWD<-2(5>mu^yWHXq2B!rq-)**GLnVCg18$W3Y!CI`AjMS8cwlUz_ z7BAI2Nof6~?$nMKF#r{S>^VzJe6M7~0A-bQpa%-nDXcEb8=gqVkb^#%hx{Nv)eO^; zkC7LkEr^X%*fk7e#=?QpE?sl5{6>R<08C?zjSkX+30#rMYN|Zj;*6ZNS4k}cA-ui1 z4CigMzJUrwIwr(>t?%hO-@|aESjvgIeWYO%K5&Oxk-D<4-f_hhUfC|%ZHAU}eM;&# zgbn%a8q#uJ=acis$HL@%P)uu581q5wg@QYs=VP240(x+Q6UlSt#lt+M78`RJpdS@{2F`k6zyum1 zqWxD8ca!=Du>-&BIexMZ4>CjribZOx3s4lJAQ74*@-e81*e%Mdv5WD(2gTTtxLTglgfhAXJe$ z3END~9efUz+;uldJBH#m$%IPFq>YJ`%|I%xkUi@eRMG%XGu&&{08d&%j0}~$B@ER} z33cvHpwdS|rL??BynX}Wk^3A1Q3Qu34zz>A0Zq|#aHwB;BSLjcPa&h)Np5k| z@pg~PGQ1`PLn6Wj+v@VPLJ_q`qqvZVb_C4FLuYKx>Q5j1Q+0e;O*Mt{i_vzPL0~<3 z?ep|6^F9d}R9vcXD=}~TGjek13Bi*#5kAJ^F0XusopB=R1nKy-2vrNzGxNi&Rl}dP zwK@S{4M9$iXRU6}xd+qqy|2Rec2Jqb_YzczxMJzBkv{eNZK9L!6+kaU`e+U47e597 z`mmkSApp>ALjnD_UN&eup}M9G7dIb>Ny=lQ4`Mm;t4wei;9}V&H^{{{ZPOq>+S48J z>_UW+CEc@te9l8*wC!g=##YE@t)&YAP5~$kkW+e;Q;$F-V)bvqdl0p4;OIHb-V_k8 zq(zp2-T^loksZq|oF*V`yd*RHg1ufpcf4ac7Vv9?hQzN^7(RIL;H<}l zOAwrQZ^AW_LyYIwqp=3cMyX`M?!!mD^G}QWU!181k2IZn-C_a0j8`c3DR>Zp$NABRnS&jVmIwt9b!Cvqant(+!ctzfEw1shaf?y%Wt+Nt)$)ry`RTV)QSFrJ? zNR2{JNxIaNZN=m`PSYYFj$xKx#IhL!6I3vZEpeovN_6Y|*a{dccc&RdE6@T?7)W~# zKTt0_Ag%uqZnH7l~?&8Bp&$~UqgM+!cajlDhWopl`tV3 zPBIjz-zr)z_+@X3;-86`Rq)^ z;kF@t{1DS_hw3x?TsM|(c^6Y9G2@L+EA@{WSHR><6;S&yKG9a{SFtA`*IPFsS;TgF zIV=5ZdOnW!Y8meOBhG5`8)>QEwaJlsdsGchNqjJCOSjl>p%-L$y-BNcJ4fpwus`U2 zo7kkz>(qon;Ker*?`S^LQs{$W=2@TQ#wjolf1*=%)%puknfc3V5)D#o&!8c(*BqfK zW->8OzMz&o!HB>&f615!qFkiLK1sQu>=NOZeye2=Khoq#t+XvK1#RxX-q7Y_ZoV`Y z;i@`^HnuH?2nuZ`7P)Ej6%JNL`+^Pw?TJ(ekdL2m1JZPJCLo|5QKCAzP=Y%@jkNW= zR|5xv!aTy@qu=Qiph>GKDirhCW~gcp&&==~;k6zK8@cBcp*m6SN->uTphP=fl4u-) z+#}yjKt0bqP?YwbLCTQ4Fl41T2!$suj;v%|7y(||OLt-fP2>2* z;xE!TdX&%f;&rsOfs)|@rGXDqr9%zlbop*z)aY@THRf>=PYj2vJb;W4ng#-2q>j3g z?2w#zhybZQUp4Kbhd+9(Kdo$`G(SzRpG;cPf=A5yOeC&HTik9ZU1AnOAn$`q#XhQ! zKGKZIxzBgP4CrR7&zqd}GGxv+;V;Q^-o%>|Z50mjOdVY8s?X&DjcaH`Qfj z)AEP$vsv$paP@AItoLalTqU&g%`1U@E9Jdg2vL;SQOxmOvX#HPcvmXLlf#38bE7nbc6eJFFGN~Ih(ZNNj#-Rp)TPO_yI24SiGE)dY z85dR$@qfCznN49C7A#W7PIv9`YG)g$P)gAjCBj3wE$2hObB*_S|JdSi0Uy zz*ZeDJ@P&HT&qnHLZLcJXQ~OaYev+DeKnz+yP()t4H&D5J>N`*+^;7?%rcl-aSRQV znTXW8gphJ5+WH;=P2k$MnwMP?2;-{pZxA97HV7pZ<^}|hnzvd7v58t*Fop#MQP=1j z9#G$uz(Y01F`m-4LBMPqF(IM2pKG|iM=6xmBGqD)}ZixnmegoHHmMkD+J9Wv%fKm-5V359{iN_<;0?74A!Isoy& zxEq>pV+NXc5lE&mVX;|tmwwflC^Y5`XT~Y5FEajLO{*sNE6dOsOLZDhh=4tG*8FDZ zUNlYn8g=x4h@>9ZADbQ|F??}Fs~`5!#r3fMqp^AH~DPiFuVrmZ) zeL!|DoLqS$s8|cTOHk`ZQj>%?oSpezjwjpr*oRIeD*kFa9TjW8up1jlmRx*NdP=ff zx8p>`@7)PZlk_kC998i%H9l*s!R>4(z6@8^P(BxZyafbIP;|!jFOXV*k&6&|pwHEj zIInTW{{C;Z57R*HqJjG4#BiXjP@uj#Lx5^K%(eRS2!s$z14XHSP#Q<}hd8WH8&ID- z{9RDdW42;)Udf z>Fz~aZ@L)#vcUXOte!Qqx20r$IsJVFJ-xRZbKjFeLVdjjm@^ha=P(Cf()@w_8ISvw z{P{s-8vCe6D6^t=V;}^K#bt~?7fp6P8QNZSicD|I{EBC&6OB&31-M|^5<3#2r#^p9 zbe|U{Ou%FReyKhMczSsPE}T51py^mCQf(L6gGExx6zMy3;Z!DS*7 z#-W`MX65G|!c;qi`M3TdO_--IieFYe*S zwevK=H5LJ`JGm``mKqpg3mmz+^VW%dHwP@3!onH+7vh!8o-y?P(^n2nybW(74P#6x&PwKE=qa5pFf(!ykxWm! zaBAWAR~lMQm5YCL_}1@IhnDt6ol;{%b}n$!a>gl!mPonE$zEWx4X3KHQav`^GZL0k zxH?A%0NXUKi zumk5e;;Uss*Ei-s9MR6Mk|ho2F&M`XYNsU>T9dyKk$xR~$H(1d7L$9>OIMTj4Euqh zWdgrWobM5YAP3dHX!L}?qCLFNj7Gm5A>6?(5O*}4Sf!(RjD-wM>WOPP|J3TAKuXz6 zO7oW_BS8>|uO8#v+F(W%Q%u;09I2L^ea=>%U&c-mLWPo69^Gns(#!P z6IRj5GS8Se3~>x5ttPE#kvjMarZoz(_|mMAZL`Nl9OmtFFBvYACw57+8{rc5RI~w} zNgEZcTC588)Hb4${4K>^EPn1hRgZk(-1|dau;VYm87_2=Ibtk-PbVzgSA`|(c?&no~0r2wdBKu1rcVr z1^bkLxCOiT0sUmzq^UKeu?3qgfRiE!MqMD?W_Vc+v9BmlGKnhkd>%oH17$Eu{j9YrE3DH-$;*2`6ePwP$yrB6|tuwkqj> zbe4#R347bk13l!KwHg%Hfkt2rkjGS0WL>j;O@NaWftI@m{&e zX6-3T(j3Jhof^0nH*gd}@}Wqz-sO^1U6_)}s&!I=GJ6k-LuQNBXS=5_bk<=8QchY) zn+(pZS6ydZ{eAO~n^Q;HhSX<|HWL6@ZxT5GK~FaXZ4uD$;)VOPG%@eBS$S#dNztt* zaE%(TK=lK~S3FJ&KtTiZOR*RuR27WMMe0@Go%znRR>`uBbdl9;TxcwSxM+*3No@HS z3c(hEUi6m>8QXF(1-_*qwkuyYE~_stkTD!jA=NmziN|xa@eXh9cTBlZ2%u1W{lEauDK61MK7E!-JAlBKbw%!Dy|JRnvG?6^?k50*?&l7*w;^?E#hq+OuTgXE*c+p@s~qH&7|ioF{L zV?}so{G~=Yi%`*~LEm8a_S)!{*qZZ)Mfg0d5NtAAxBFtR_Llhnm`LXr+-Tw&VjSOW zLcqyS0C^F>>LW%66=%Kr!(O1EAX4uz;e4dxUmCLi_RJN+Ow%wVnt#PTx^B$ zUDI?xkir2_%r}1z6bIWV`tZA1;|C)n;WFfH&%0fUCpJ;+)sj242EzFvHpO}x4z;Dm zGiv?&0d7TOB4)fi;J4w5cJsAiigxJlM9~sf1jIv1*?(^U=$PDcxRVio-<|>g7;(G? zn>74|KKSdfe`@&^Ser&R_hHK?BHptY;K>ARag`gReKbaASA}D=^qMe?E|B#N_1$_P z!h4MT{^FAEq8|;6FIw0Um5Yu@mOxLqgG5jNq6P>Sb|?aFZITjl2+6gYh$<4siUYud z9Y8T=YMbVcnPd(D?glYa#tP|S_>pn}`A)B#!0My}D2op|fHI$HzaDL!3};H{ZBQUO zI;)Z8r+S_yS*J0z6Fy#!%IBh<--2&w6z%UZh^S7=&k7&ZZ@BN`NTpc1^Z+ zo1plSp_bEyF3G_{vgFdX40@n_#*o0y6GIM#HFW49ZKI&jLmJ0}&_f!x!Aa92b~a(O z!KlxP{1LNrAkP-+iBhqe&}@?-X@}BI$XMSw)56=Sg1_^&PHr<)XCNb&&mBtySm zWHpaJ>MIf#V*mO~7!T{y+hhMC#{OYKM;oipe5UaEi;O8Oco=9HCv@lejw!U~A#5jf z^MBo@uy(>-c;#I5y{8af+Vetd~x-O4&;U_G-257qP$g3t9vCK+JRT8z?6!%?M+8651gv8ngN2>hbgviA;{hKg8Zz zIsawFpU3>lrh?e+ATwa9<<>S$Yu~;Kvjv2Q)L*j__ONIUqKnSkTdG>6Ck&b@VGiWi zi3s4X;IFM9_+7?_Yc3d%chQ02TzLJeFfLqrxY5ULnvf@cB5~h`h7^RnyeKseBLrw9 zHWBS2Qb4xI8Uxw#1jz+%}X?CJUZcCm! z))3-#?#?u(a@*q_Q)%y%D>w1_gV8XF-KX={ zHjw$z1KqUWS5x82Ux(BFvv?Tor~THg?w~xcEd>WEk7=`tQkPKO)2j{?;djn6BD~c< z(jt6HdPAc<@UcbszR%qvTq516yH-Pl4`bZoliwlaaeOtTwpB9;1Z>uVsv{sf9DT+J zXhBmcfV%4$PHUMc2`PUm)KQW}VoTVorrl(h@eUSu8JpcdvIEi_+haLwH0~hZ;j!SY zIYQQ3zP=|+fTNh=Q%W;bZ*vTKb~D`}^E$CS3KY36!#VX#J=>;daZnCG%4(A&m7o_w zV}$>wak`+M@$8L)YQ{V#&qq-7PJq>!ogm}mo=F=YJ@Z?Sx%EaJufW#AkN)u{{RE8! zJwOQSl|IgC?_2%vaiS7`vss5T#p$)5xj?j+VhDVNXbG` zFAreL%u^^}YymvVGN0Z}EmoT)JAGw(p{R&}G0JpBSU!68WqgJE#k5F@$G2@JBvx#x zeK6u*=NLsv-J4dFagC1n`P?uo!ELt&GAiL!EJb z9qOoS($txaCNy;pzuczILuyK?fR!`^_aq6rlla<6f^Omi3})N!p(n=_0f1s!Q|OC8 z4~Z4%aY{`?uM-5x3USY!z0gCI!l8e73kUi=T+qK?WJBM2SsMCfJ89@kt|$*+)bI8R zXVe31C6G}gD%qxb?=z^(DrYyMZ#)#8@(Jl-_8)*9vR1j$m~L!ANXpL`aAus5iZu0) zJ_1`U;k2Ge?8Ea+kGkJ^CqoZA+bCS~UBq2aC?0a4SK(l&AQCbey5)y%jf)>7MB+HK zpYOa@-%RlOHC-vL#0F2j_9+Ol*<*^uiumlua!rp)if6T+N8wJ)DQ6kbpZZ%G^uxwE zpck`R+E$#};fDPA0|j!lm~p|>OZ#YsYrkRwh12#(GrZiVnNM9B#_+S9ULeFY&@#jK z9*Tl-c&+k@|G#om> zrdYeOT(V@+kThP^KD<7?Bn+>%12o@%D7cKXp|kIEw~Xx5Y5Az zpq5wINj;%tewc@bw*2P)0`ssJE+@#_nllrc7&~Z?V_6zr#aXvNt-f40oGdxH-3a7f zcTgZr01cDmW!C9VUVDjrBxt8C7RinknpC-wUNBZnmCKvoBy?)CC$!M8I*r?35j*f8 zmE&FPb0ac&gI(%Yf-XWruOpzq7)iHO{kg9R#ATwE z-x4V%82F)%8hjrEaS=Jk?I6`55>D)A!Mb5Pj^vbw>*s_OGXoXJPuV>_a6O ziGei!NGJsz`k|o7q-VivIhROWIa&&*N1fy1B;FWkmN)#ji(-t5= zbn+x2YtM`12T6-zgsEI7xl$BVDV+=vkI-H zI^vK>3i>}dt^buQufuK-r$Bu=K1}4>hT7H>GR8P}mMuF#!b6hx*=9MBLx3xroArSQ zIdpRoRioA`_eDKK?vXMTze($=s-3b9*F>o_XDG|9{w=~m|88>EGA#t~@F}(cR${uC zClGj`NHoGZYR;uyb<78#^qq#%KKc&q8h!8D#Z6xb8Li;XW#ROl+!RLNJu8I1iN&Oi za%{r7Zkje@(zMz6R?^0pnhIL>a=iv<4+ltLI0&0RQWE2oduurWaWoyehMLqCNRCiO z@6Gp8b6u-V%`YGtQ0HI0530SCMLv^GzMFsQNmiLYguz-!@*sYmhfk{bY_ql7&Oc%A zNB8Uz9KqFuWvrQ?(7AVQgQrD&vp{}jlngXV)i+V1Nz_1x3U(s}@Bm>q6Sk%%-8ofR?9#qT&Bw2);ceZ*NFx3u>`y!sx6bec1Prld7HBli7zm%Yh` zVkIzRiQaXOwCeFw*&}koqn6!cv~?8a59K=WR);^BWW;8(!E+qmn{Dz=W12iRF(RzJ z5Vfg{G6F47)-&uXRt7sKBTySn&jEz!0hd>#7UyA`f@np)WMdPE}Y2^l=c!v-^hlU#(VHH_M6#vVbiU=1XtJj5S9|I zW%p@T*`3E=vrPBe+#6C6*yX#S;Pn`2T45O;g)htaDW(%WuQU%_W_zudwg`ITP?7u+W8fB}u9;X3 zI#+?R5n05iTyi`p+q<r(iOlk0mU)0`V**HR(~mqA=aOEW6&06)wu-l#rshd) ztrrxsOq=NLFruc4(xq2_q&~!0*M+qa(;S`rHQEBAk}>stY4<|#mZR6U3jvL6uVn(x zY*SwEnp@a3p9V`SV!zE~Og(8(3L@Q+&;o_P3=Xw~1tBC5s2bWcGy4bXRI4F#wVYV2 z+CVx<^wfw(t|_r4#DoYg@%ZM#F!7i*M8u<4YI`aSmjYZY5d+gM;BbK%;DAXIRN?a( zPW0KcTr|c2)whlV&_#*t+`~`239-A;2@^+Kc0O!5ucvqwhs=3VH_#vsrB-A5xC0rl z7s60sjQkEWA~;l zL9LcY^k|R)CbQ9O>=8@hZ(;0X+F*yU5q0+|dTva-1ZxiP)&vVI@9YqAlYMV^4K~3k z562oUTLd{tMlPpKe$$iyj;C|ivB~OZwWUz4lP6L5jFEPI;)^8w;_=YnSl1MMU5oajg$Gg;b`iK4#2IJ>`(bnh9 zb9C~%{FW@)*9%#E;{XvLtOh=z3k>oVfULHjfuB;hNK-t^f?KA!f(ZDJ`=E`OYtprg>g`4=%!HJzd|X58wQD7&)6#b?Ijcf*}vrJK;+H!*V{q} z6oI`Uncl{=LjZnF7>^XjqElk~`U-uUw|MZ_e5J0EY6e+PGI^i&&J3t@b z!8aW48;f7OSVg6o%l*w1p_xNrceqwdN!y2#O!gh+I~8| zd2s@wccBZ3o+pUGbelsDDBAK4t!XGGmIq`2sxcYjd7Wzi9+=#MKWg4e zxWbJaJToRfe>k5gVZNC0mYKv5w~uk3jB^KxZ|Z^ z$8jiiQ}+o+;cvI51Ey{nedG+s`N)A9G+1h<5a0=KZeW1hH~q$C@_AGDrlsd3w(P{R zR)$k*N5-i|yy;ww=jxrmealBMELRS}d2^~NpvuAoPiyNmm z6$v^;K*@@9KCbqA2{`SO!5|-gR29fyy^i;%^T{5Z;Ip02h!tD-nINw2dCcp+qEQiq z(u>71&4!>^gGUvGu-1vhst(x=%IsPQWe~TRX^RRgp({X%O$BgECIw`1+5|Ms5=pB| z-(s(bldYxCa{a;DS#dSC!RmugGf^OT-~kQVV-IK6vwpEEUIEespO@T3OdWdYVT--m zXm&$7G|=?WG~*1wq%ZTN$4c3n_{->#W)Fr_YR8vy6DM7adn>bnJ3#B|9?iGcMu7M)8}d}KW6H?fg;<;Kg}L{A$A0o+Jw$U>P9&+ zhdFNjF8*=7MRj8&&Nt8>4l3{s@1YLr5x5ts9+Zev{ZI!ek$n=B)tX`CupxaP0(+X< z2>AH1Oka3`v2jTvSE*fosX(> zp94ZXv6~T}O#6BGJc2_fLHZC*`?9V>zp}}-B{^A%Wf6!)<-^4_es=)?)*h=izqQOLL z!0c6sIGUa5H_kYyAC>?EUP2)b&G%}8iMU@kb2 z(OB#?ULQn+NJ`Xe6ax>X>hN^|v@qL#k;zr#;OzOT!};H5K#?DvNG>p*lSxdRpV#zg zH}sHb5OkTxXAKVNk%k5&Nsk1I)b4UUkTVEy2x7{qRT zlL;H@u~t=YW|rd1wkFAdwb>(#fwZ`kIJTwKB#$zQS1_lcp2cC1&e`mv!MkVX-4A+k zuNZPKIsMy~uZUA~#p>!mU={ofFu+QX%VTAC*5I@4?Ht>mEZaGTKM6LS=`m$N@ymXi zUq9RbjlvWT*LdWToRbJMuqVH4zJq0|_#LfRMJ^o|>}cRAW`3__jCdU9L)awvtwo@L zOtv{gd7gW{Zn>B(!}^;Uq-yGf<8>iRw!1L^X86(rxgr9oD0lc;nF*EKmwx&<$U6_@ z_4tSJSb112l4V)RKLAi{%)`BF!xrI~7VrRA0W-m`aq}el6h-2Ca}P&&0!nX-NvM0I07#Iu% zP7<8M9C$V5U%1U?pgtvVgQ7uD$l(gf#UiB7pq+jE!@eeY_2MsLV8tS?>FTmYL#!e9dd$?)0P zbR;P8?os|d5!l~x7~c_35T#f)N+e5ms?sk@`LZ0#;{|H!PwPQ$X;8ALAxZDUvSWgh z1QJ1r!o?&P8y!rUMvU`X%`f&j}ypp-5yBuUqagWCfIdLhh? zc1^@WOyfPtsoOTL9H(@k_o5mn;o%6JzFyRH2Awh}vA-C0sD7Ar-_lV}HWq*zkK=MTf**j9hW#cx8J@e|& zJ^KXc(0)d-w2h-;sXM=S>CpDv97Cp7YkM}~Az*zL@OR@Q@U;>1uEJLr0AC~sz8S+Z zbiB|F-=5-6fIRpObyVk`0fQx$cg4Q|X`Mj&%jtPfHNo)Gv(A`T?K6x``aJH2cL3=* zVuOpG0>SH#zE`4P_=`Oc-faWdQJ2p#u(J6EC(U;iKBKp1yq0<6}xo3?LqMVC`W^Q_UM_c@O$Df za1Zv?W1vnIIK2vWlg9uUgwEgHEwEysdUOS$ugC_BBOplW@WsE`05Qy64**Q)e>MXhaikcL7*o9ZAAtO5hdqAye;I!smDtM5 zpY6G7yqUU_&v}? z{C2xP1i!rGFA{)`wWk&}?Vk+0{=L6j{=`1a|5~F1{p9>h4D%g(!a8bOo}S~1-oO;~ zTJ~^k;B7VbzO3>mw_tWP9 z=}=aD;QyK)qYuiY$DQQ?^cW`tKw`sjHwUw-=)bng!IAttdW`BiJ+8l}3-pj=F!9xO z9{H$u%ZI%hVlRZ)ySBhAec*_*5yu~xNtJ7i&+};RVVP3$!a$X%!I2UX*iy<1 zq?W@}*X$q!CB1S~sY(pJswqFv0-3lAJ+X>Kt&w+wYHy~c$R|H}#XFS;WKyNsxK0mM zj@Us9kd_shtto-U%Fo;u(`45i;uKP* zL3!L+ZkG0=KUt`3lz+BAx$Lqo``5#72PJa(SD9Co^H(nZTVDRxlLKPS8_9pm#s7*- zVjR7*#@j=T8&7o;gK5{*L!aBkfSJ$2e{k3Y8xnSus=r>LNdPzE-ns)QU5A~qZ|Csa zfPeqABm~aK{6hJc!LZlh9$gxM|DXwO{F#|cJ@lE4f7j&SV4YL`+q265?Rnbg!D4p3 z82)Le01TJy=*Cbq{N+z=470ezLt5;eXRyh3q_3vj3M>vI?|l0E%lLJw4353n+++av z$m@2Q*z|C)=@P%nfENSdT>P3nH!HvLieH*#DCtFSf$=OJ^d9<^n^_XSlzq|#W^JBC zq`dPr@5})Lq47&z4C%yLr{0rfxXKKqcDyje0X z_Ht!q^*d8mE;#qsQL8Q*$&(7H_kPA8d3BrQX-*1P6C8>gQg&n5-qF3lJHZqWYmJOjndcTrv@#AcV46mo$2wea7 z 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≠~SmP7u9a6P2-!Yqt3W@ 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


@jzIoX?Gb}|ad0q_` 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

%3reOoB@ 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 y0LFFC};H>>sOaDXZ3&*jkjtj39%_q}0L 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 Date: Sat, 20 Feb 2016 01:51:32 +0100 Subject: [PATCH 096/101] fmt: change padding functions to avoid package init MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move the decision if zero padding is allowed to doPrintf where the other formatting decisions are made. Removes some dead code for negative f.wid that was never used due to f.wid always being positive and f.minus deciding if left or right padding should be used. New padding code writes directly into the buffer and is as fast as the old version but avoids the cost of needing package init. name old time/op new time/op delta SprintfPadding-2 246ns ± 5% 245ns ± 4% ~ (p=0.345 n=50+47) Change-Id: I7dfddbac8e328f4ef0cdee8fafc0d06c784b2711 Reviewed-on: https://go-review.googlesource.com/19957 Run-TryBot: Rob Pike TryBot-Result: Gobot Gobot Reviewed-by: Rob Pike --- src/fmt/fmt_test.go | 12 ++++++ src/fmt/format.go | 99 +++++++++++++++++++-------------------------- src/fmt/print.go | 6 +++ 3 files changed, 60 insertions(+), 57 deletions(-) diff --git a/src/fmt/fmt_test.go b/src/fmt/fmt_test.go index 1d9d015f4a..14d3aaf544 100644 --- a/src/fmt/fmt_test.go +++ b/src/fmt/fmt_test.go @@ -674,6 +674,10 @@ var fmtTests = []struct { // Make sure we can handle very large widths. {"%0100f", -1.0, zeroFill("-", 99, "1.000000")}, + // Use spaces instead of zero if padding to the right. + {"%0-5s", "abc", "abc "}, + {"%-05.1f", 1.0, "1.0 "}, + // Complex fmt used to leave the plus flag set for future entries in the array // causing +2+0i and +3+0i instead of 2+0i and 3+0i. {"%v", []complex64{1, 2, 3}, "[(1+0i) (2+0i) (3+0i)]"}, @@ -884,6 +888,14 @@ func TestReorder(t *testing.T) { } } +func BenchmarkSprintfPadding(b *testing.B) { + b.RunParallel(func(pb *testing.PB) { + for pb.Next() { + Sprintf("%16f", 1.0) + } + }) +} + func BenchmarkSprintfEmpty(b *testing.B) { b.RunParallel(func(pb *testing.PB) { for pb.Next() { diff --git a/src/fmt/format.go b/src/fmt/format.go index c811cc6a3d..a4aa897229 100644 --- a/src/fmt/format.go +++ b/src/fmt/format.go @@ -23,16 +23,6 @@ const ( unsigned = false ) -var padZeroBytes = make([]byte, nByte) -var padSpaceBytes = make([]byte, nByte) - -func init() { - for i := 0; i < nByte; i++ { - padZeroBytes[i] = '0' - padSpaceBytes[i] = ' ' - } -} - // flags placed in a separate struct for easy clearing. type fmtFlags struct { widPresent bool @@ -72,70 +62,65 @@ func (f *fmt) init(buf *buffer) { f.clearflags() } -// computePadding computes left and right padding widths (only one will be non-zero). -func (f *fmt) computePadding(width int) (padding []byte, leftWidth, rightWidth int) { - left := !f.minus - w := f.wid - if w < 0 { - left = false - w = -w - } - w -= width - if w > 0 { - if left && f.zero { - return padZeroBytes, w, 0 - } - if left { - return padSpaceBytes, w, 0 - } else { - // can't be zero padding on the right - return padSpaceBytes, 0, w - } - } - return -} - // writePadding generates n bytes of padding. -func (f *fmt) writePadding(n int, padding []byte) { - for n > 0 { - m := n - if m > nByte { - m = nByte - } - f.buf.Write(padding[0:m]) - n -= m +func (f *fmt) writePadding(n int) { + if n <= 0 { // No padding bytes needed. + return } + buf := *f.buf + oldLen := len(buf) + newLen := oldLen + n + // Make enough room for padding. + if newLen > cap(buf) { + buf = make(buffer, cap(buf)*2+n) + copy(buf, *f.buf) + } + // Decide which byte the padding should be filled with. + padByte := byte(' ') + if f.zero { + padByte = byte('0') + } + // Fill padding with padByte. + padding := buf[oldLen:newLen] + for i := range padding { + padding[i] = padByte + } + *f.buf = buf[:newLen] } -// pad appends b to f.buf, padded on left (w > 0) or right (w < 0 or f.minus). +// pad appends b to f.buf, padded on left (!f.minus) or right (f.minus). func (f *fmt) pad(b []byte) { if !f.widPresent || f.wid == 0 { f.buf.Write(b) return } - padding, left, right := f.computePadding(utf8.RuneCount(b)) - if left > 0 { - f.writePadding(left, padding) - } - f.buf.Write(b) - if right > 0 { - f.writePadding(right, padding) + width := f.wid - utf8.RuneCount(b) + if !f.minus { + // left padding + f.writePadding(width) + f.buf.Write(b) + } else { + // right padding + f.buf.Write(b) + f.writePadding(width) } } -// padString appends s to buf, padded on left (w > 0) or right (w < 0 or f.minus). +// padString appends s to f.buf, padded on left (!f.minus) or right (f.minus). func (f *fmt) padString(s string) { if !f.widPresent || f.wid == 0 { f.buf.WriteString(s) return } - padding, left, right := f.computePadding(utf8.RuneCountInString(s)) - if left > 0 { - f.writePadding(left, padding) - } - f.buf.WriteString(s) - if right > 0 { - f.writePadding(right, padding) + width := f.wid - utf8.RuneCountInString(s) + if !f.minus { + // left padding + f.writePadding(width) + f.buf.WriteString(s) + } else { + // right padding + f.buf.WriteString(s) + f.writePadding(width) } } diff --git a/src/fmt/print.go b/src/fmt/print.go index ebfa13e4d3..0354d6e616 100644 --- a/src/fmt/print.go +++ b/src/fmt/print.go @@ -1235,6 +1235,12 @@ func (p *pp) doPrintf(format string, a []interface{}) { p.fmt.plusV = true } } + + // Use space padding instead of zero padding to the right. + if p.fmt.minus { + p.fmt.zero = false + } + p.printArg(arg, c, 0) } From f3f920ff8d69a639de05ce5af52ba1916878055a Mon Sep 17 00:00:00 2001 From: Mikio Hara Date: Fri, 19 Feb 2016 16:25:52 +0900 Subject: [PATCH 097/101] crypto/tls: don't send IPv6 literals and absolute FQDNs as SNI values This is a followup change to #13111 for filtering out IPv6 literals and absolute FQDNs from being as the SNI values. Updates #13111. Fixes #14404. Change-Id: I09ab8d2a9153d9a92147e57ca141f2e97ddcef6e Reviewed-on: https://go-review.googlesource.com/19704 Reviewed-by: Brad Fitzpatrick --- src/crypto/tls/handshake_client.go | 30 +++++++++++----- src/crypto/tls/handshake_client_test.go | 47 ++++++++++++++++++++----- 2 files changed, 61 insertions(+), 16 deletions(-) diff --git a/src/crypto/tls/handshake_client.go b/src/crypto/tls/handshake_client.go index 3c996acf87..b129922926 100644 --- a/src/crypto/tls/handshake_client.go +++ b/src/crypto/tls/handshake_client.go @@ -16,6 +16,7 @@ import ( "io" "net" "strconv" + "strings" ) type clientHandshakeState struct { @@ -49,20 +50,13 @@ func (c *Conn) clientHandshake() error { return errors.New("tls: NextProtos values too large") } - sni := c.config.ServerName - // IP address literals are not permitted as SNI values. See - // https://tools.ietf.org/html/rfc6066#section-3. - if net.ParseIP(sni) != nil { - sni = "" - } - hello := &clientHelloMsg{ vers: c.config.maxVersion(), compressionMethods: []uint8{compressionNone}, random: make([]byte, 32), ocspStapling: true, scts: true, - serverName: sni, + serverName: hostnameInSNI(c.config.ServerName), supportedCurves: c.config.curvePreferences(), supportedPoints: []uint8{pointFormatUncompressed}, nextProtoNeg: len(c.config.NextProtos) > 0, @@ -665,3 +659,23 @@ func mutualProtocol(protos, preferenceProtos []string) (string, bool) { return protos[0], true } + +// hostnameInSNI converts name into an approriate hostname for SNI. +// Literal IP addresses and absolute FQDNs are not permitted as SNI values. +// See https://tools.ietf.org/html/rfc6066#section-3. +func hostnameInSNI(name string) string { + host := name + if len(host) > 0 && host[0] == '[' && host[len(host)-1] == ']' { + host = host[1 : len(host)-1] + } + if i := strings.LastIndex(host, "%"); i > 0 { + host = host[:i] + } + if net.ParseIP(host) != nil { + return "" + } + if len(name) > 0 && name[len(name)-1] == '.' { + name = name[:len(name)-1] + } + return name +} diff --git a/src/crypto/tls/handshake_client_test.go b/src/crypto/tls/handshake_client_test.go index 9598d2feae..9b6c4328a5 100644 --- a/src/crypto/tls/handshake_client_test.go +++ b/src/crypto/tls/handshake_client_test.go @@ -618,14 +618,35 @@ func TestHandshakClientSCTs(t *testing.T) { runClientTestTLS12(t, test) } -func TestNoIPAddressesInSNI(t *testing.T) { - for _, ipLiteral := range []string{"1.2.3.4", "::1"} { +var hostnameInSNITests = []struct { + in, out string +}{ + // Opaque string + {"", ""}, + {"localhost", "localhost"}, + {"foo, bar, baz and qux", "foo, bar, baz and qux"}, + + // DNS hostname + {"golang.org", "golang.org"}, + {"golang.org.", "golang.org"}, + + // Literal IPv4 address + {"1.2.3.4", ""}, + + // Literal IPv6 address + {"::1", ""}, + {"::1%lo0", ""}, // with zone identifier + {"[::1]", ""}, // as per RFC 5952 we allow the [] style as IPv6 literal + {"[::1%lo0]", ""}, +} + +func TestHostnameInSNI(t *testing.T) { + for _, tt := range hostnameInSNITests { c, s := net.Pipe() - go func() { - client := Client(c, &Config{ServerName: ipLiteral}) - client.Handshake() - }() + go func(host string) { + Client(c, &Config{ServerName: host, InsecureSkipVerify: true}).Handshake() + }(tt.in) var header [5]byte if _, err := io.ReadFull(s, header[:]); err != nil { @@ -637,10 +658,20 @@ func TestNoIPAddressesInSNI(t *testing.T) { if _, err := io.ReadFull(s, record[:]); err != nil { t.Fatal(err) } + + c.Close() s.Close() - if bytes.Index(record, []byte(ipLiteral)) != -1 { - t.Errorf("IP literal %q found in ClientHello: %x", ipLiteral, record) + var m clientHelloMsg + if !m.unmarshal(record) { + t.Errorf("unmarshaling ClientHello for %q failed", tt.in) + continue + } + if tt.in != tt.out && m.serverName == tt.in { + t.Errorf("prohibited %q found in ClientHello: %x", tt.in, record) + } + if m.serverName != tt.out { + t.Errorf("expected %q not found in ClientHello: %x", tt.out, record) } } } From 9d73a6dcad11238dfd31a39a4d5a9e63bbc1d207 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Justin=20Nu=C3=9F?= Date: Tue, 26 Jan 2016 21:14:35 +0100 Subject: [PATCH 098/101] strconv: Avoid allocation in AppendQuote* The current implementations of the AppendQuote functions use quoteWith (through Quote) for quoting the given value and appends the returned string to the dst byte slice. quoteWith internally creates a byte slice on each call which gets converted to a string in Quote. This means the AppendQuote functions always allocates a new byte slice and a string only to append them to an existing byte slice. In the case of (Append)QuoteRune the string passed to quoteWith will also needs to be allocated from a rune first. Split quoteWith into two functions (quoteWith and appendQuotedWith) and replace the call to Quote inside AppendQuote with appendQuotedWith, which appends directly to the byte slice passed to AppendQuote and also avoids the []byte->string conversion. Also introduce the 2 functions quoteRuneWith and appendQuotedRuneWith that work the same way as quoteWith and appendQuotedWith, but take a single rune instead of a string, to avoid allocating a new string when appending a single rune, and use them in (Append)QuoteRune. Also update the ToASCII and ToGraphic variants to use the new functions. Benchmark results: benchmark old ns/op new ns/op delta BenchmarkQuote-8 428 503 +17.52% BenchmarkQuoteRune-8 148 105 -29.05% BenchmarkAppendQuote-8 435 307 -29.43% BenchmarkAppendQuoteRune-8 158 23.5 -85.13% benchmark old allocs new allocs delta BenchmarkQuote-8 3 3 +0.00% BenchmarkQuoteRune-8 3 2 -33.33% BenchmarkAppendQuote-8 3 0 -100.00% BenchmarkAppendQuoteRune-8 3 0 -100.00% benchmark old bytes new bytes delta BenchmarkQuote-8 144 144 +0.00% BenchmarkQuoteRune-8 16 16 +0.00% BenchmarkAppendQuote-8 144 0 -100.00% BenchmarkAppendQuoteRune-8 16 0 -100.00% Change-Id: I77c148d5c7242f1b0edbbeeea184878abb51a522 Reviewed-on: https://go-review.googlesource.com/18962 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/strconv/quote.go | 146 +++++++++++++++++++++----------------- src/strconv/quote_test.go | 28 ++++++++ 2 files changed, 109 insertions(+), 65 deletions(-) diff --git a/src/strconv/quote.go b/src/strconv/quote.go index 40d0667551..a37a309f26 100644 --- a/src/strconv/quote.go +++ b/src/strconv/quote.go @@ -6,15 +6,19 @@ package strconv -import ( - "unicode/utf8" -) +import "unicode/utf8" const lowerhex = "0123456789abcdef" func quoteWith(s string, quote byte, ASCIIonly, graphicOnly bool) string { - var runeTmp [utf8.UTFMax]byte - buf := make([]byte, 0, 3*len(s)/2) // Try to avoid more allocations. + return string(appendQuotedWith(make([]byte, 0, 3*len(s)/2), s, quote, ASCIIonly, graphicOnly)) +} + +func quoteRuneWith(r rune, quote byte, ASCIIonly, graphicOnly bool) string { + return string(appendQuotedRuneWith(nil, r, quote, ASCIIonly, graphicOnly)) +} + +func appendQuotedWith(buf []byte, s string, quote byte, ASCIIonly, graphicOnly bool) []byte { buf = append(buf, quote) for width := 0; len(s) > 0; s = s[width:] { r := rune(s[0]) @@ -28,61 +32,76 @@ func quoteWith(s string, quote byte, ASCIIonly, graphicOnly bool) string { buf = append(buf, lowerhex[s[0]&0xF]) continue } - if r == rune(quote) || r == '\\' { // always backslashed - buf = append(buf, '\\') + buf = appendEscapedRune(buf, r, width, quote, ASCIIonly, graphicOnly) + } + buf = append(buf, quote) + return buf +} + +func appendQuotedRuneWith(buf []byte, r rune, quote byte, ASCIIonly, graphicOnly bool) []byte { + buf = append(buf, quote) + if !utf8.ValidRune(r) { + r = utf8.RuneError + } + buf = appendEscapedRune(buf, r, utf8.RuneLen(r), quote, ASCIIonly, graphicOnly) + buf = append(buf, quote) + return buf +} + +func appendEscapedRune(buf []byte, r rune, width int, quote byte, ASCIIonly, graphicOnly bool) []byte { + var runeTmp [utf8.UTFMax]byte + if r == rune(quote) || r == '\\' { // always backslashed + buf = append(buf, '\\') + buf = append(buf, byte(r)) + return buf + } + if ASCIIonly { + if r < utf8.RuneSelf && IsPrint(r) { buf = append(buf, byte(r)) - continue + return buf } - if ASCIIonly { - if r < utf8.RuneSelf && IsPrint(r) { - buf = append(buf, byte(r)) - continue + } else if IsPrint(r) || graphicOnly && isInGraphicList(r) { + n := utf8.EncodeRune(runeTmp[:], r) + buf = append(buf, runeTmp[:n]...) + return buf + } + switch r { + case '\a': + buf = append(buf, `\a`...) + case '\b': + buf = append(buf, `\b`...) + case '\f': + buf = append(buf, `\f`...) + case '\n': + buf = append(buf, `\n`...) + case '\r': + buf = append(buf, `\r`...) + case '\t': + buf = append(buf, `\t`...) + case '\v': + buf = append(buf, `\v`...) + default: + switch { + case r < ' ': + buf = append(buf, `\x`...) + buf = append(buf, lowerhex[byte(r)>>4]) + buf = append(buf, lowerhex[byte(r)&0xF]) + case r > utf8.MaxRune: + r = 0xFFFD + fallthrough + case r < 0x10000: + buf = append(buf, `\u`...) + for s := 12; s >= 0; s -= 4 { + buf = append(buf, lowerhex[r>>uint(s)&0xF]) } - } else if IsPrint(r) || graphicOnly && isInGraphicList(r) { - n := utf8.EncodeRune(runeTmp[:], r) - buf = append(buf, runeTmp[:n]...) - continue - } - switch r { - case '\a': - buf = append(buf, `\a`...) - case '\b': - buf = append(buf, `\b`...) - case '\f': - buf = append(buf, `\f`...) - case '\n': - buf = append(buf, `\n`...) - case '\r': - buf = append(buf, `\r`...) - case '\t': - buf = append(buf, `\t`...) - case '\v': - buf = append(buf, `\v`...) default: - switch { - case r < ' ': - buf = append(buf, `\x`...) - buf = append(buf, lowerhex[s[0]>>4]) - buf = append(buf, lowerhex[s[0]&0xF]) - case r > utf8.MaxRune: - r = 0xFFFD - fallthrough - case r < 0x10000: - buf = append(buf, `\u`...) - for s := 12; s >= 0; s -= 4 { - buf = append(buf, lowerhex[r>>uint(s)&0xF]) - } - default: - buf = append(buf, `\U`...) - for s := 28; s >= 0; s -= 4 { - buf = append(buf, lowerhex[r>>uint(s)&0xF]) - } + buf = append(buf, `\U`...) + for s := 28; s >= 0; s -= 4 { + buf = append(buf, lowerhex[r>>uint(s)&0xF]) } } } - buf = append(buf, quote) - return string(buf) - + return buf } // Quote returns a double-quoted Go string literal representing s. The @@ -96,7 +115,7 @@ func Quote(s string) string { // AppendQuote appends a double-quoted Go string literal representing s, // as generated by Quote, to dst and returns the extended buffer. func AppendQuote(dst []byte, s string) []byte { - return append(dst, Quote(s)...) + return appendQuotedWith(dst, s, '"', false, false) } // QuoteToASCII returns a double-quoted Go string literal representing s. @@ -109,7 +128,7 @@ func QuoteToASCII(s string) string { // AppendQuoteToASCII appends a double-quoted Go string literal representing s, // as generated by QuoteToASCII, to dst and returns the extended buffer. func AppendQuoteToASCII(dst []byte, s string) []byte { - return append(dst, QuoteToASCII(s)...) + return appendQuotedWith(dst, s, '"', true, false) } // QuoteToGraphic returns a double-quoted Go string literal representing s. @@ -122,21 +141,20 @@ func QuoteToGraphic(s string) string { // AppendQuoteToGraphic appends a double-quoted Go string literal representing s, // as generated by QuoteToGraphic, to dst and returns the extended buffer. func AppendQuoteToGraphic(dst []byte, s string) []byte { - return append(dst, QuoteToGraphic(s)...) + return appendQuotedWith(dst, s, '"', false, true) } // QuoteRune returns a single-quoted Go character literal representing the // rune. The returned string uses Go escape sequences (\t, \n, \xFF, \u0100) // for control characters and non-printable characters as defined by IsPrint. func QuoteRune(r rune) string { - // TODO: avoid the allocation here. - return quoteWith(string(r), '\'', false, false) + return quoteRuneWith(r, '\'', false, false) } // AppendQuoteRune appends a single-quoted Go character literal representing the rune, // as generated by QuoteRune, to dst and returns the extended buffer. func AppendQuoteRune(dst []byte, r rune) []byte { - return append(dst, QuoteRune(r)...) + return appendQuotedRuneWith(dst, r, '\'', false, false) } // QuoteRuneToASCII returns a single-quoted Go character literal representing @@ -144,14 +162,13 @@ func AppendQuoteRune(dst []byte, r rune) []byte { // \u0100) for non-ASCII characters and non-printable characters as defined // by IsPrint. func QuoteRuneToASCII(r rune) string { - // TODO: avoid the allocation here. - return quoteWith(string(r), '\'', true, false) + return quoteRuneWith(r, '\'', true, false) } // AppendQuoteRuneToASCII appends a single-quoted Go character literal representing the rune, // as generated by QuoteRuneToASCII, to dst and returns the extended buffer. func AppendQuoteRuneToASCII(dst []byte, r rune) []byte { - return append(dst, QuoteRuneToASCII(r)...) + return appendQuotedRuneWith(dst, r, '\'', true, false) } // QuoteRuneToGraphic returns a single-quoted Go character literal representing @@ -159,14 +176,13 @@ func AppendQuoteRuneToASCII(dst []byte, r rune) []byte { // \u0100) for non-ASCII characters and non-printable characters as defined // by IsGraphic. func QuoteRuneToGraphic(r rune) string { - // TODO: avoid the allocation here. - return quoteWith(string(r), '\'', false, true) + return quoteRuneWith(r, '\'', false, true) } // AppendQuoteRuneToGraphic appends a single-quoted Go character literal representing the rune, // as generated by QuoteRuneToGraphic, to dst and returns the extended buffer. func AppendQuoteRuneToGraphic(dst []byte, r rune) []byte { - return append(dst, QuoteRuneToGraphic(r)...) + return appendQuotedRuneWith(dst, r, '\'', false, true) } // CanBackquote reports whether the string s can be represented diff --git a/src/strconv/quote_test.go b/src/strconv/quote_test.go index 3e8ec2c98f..10735e316c 100644 --- a/src/strconv/quote_test.go +++ b/src/strconv/quote_test.go @@ -89,6 +89,34 @@ func TestQuoteToGraphic(t *testing.T) { } } +func BenchmarkQuote(b *testing.B) { + for i := 0; i < b.N; i++ { + Quote("\a\b\f\r\n\t\v\a\b\f\r\n\t\v\a\b\f\r\n\t\v") + } +} + +func BenchmarkQuoteRune(b *testing.B) { + for i := 0; i < b.N; i++ { + QuoteRune('\a') + } +} + +var benchQuoteBuf []byte + +func BenchmarkAppendQuote(b *testing.B) { + for i := 0; i < b.N; i++ { + benchQuoteBuf = AppendQuote(benchQuoteBuf[:0], "\a\b\f\r\n\t\v\a\b\f\r\n\t\v\a\b\f\r\n\t\v") + } +} + +var benchQuoteRuneBuf []byte + +func BenchmarkAppendQuoteRune(b *testing.B) { + for i := 0; i < b.N; i++ { + benchQuoteRuneBuf = AppendQuoteRune(benchQuoteRuneBuf[:0], '\a') + } +} + type quoteRuneTest struct { in rune out string From 7da4ceddd020a0f1de0b9a0af56a931f70a8bb08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Mo=CC=88hrmann?= Date: Sun, 21 Feb 2016 16:05:44 +0100 Subject: [PATCH 099/101] fmt: simplify buffer write methods and adjust calls to them MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Once upon a time fmt did use bytes.Buffer for its buffer. The buffer write methods still mimic the bytes.Buffer signatures. The current code depends on manipulating the buffer []bytes array directly which makes going back to bytes.Buffer by only changing the type of buffer impossible. Since type buffer is not exported the methods can be simplified to the needs of fmt. This saves space and avoids unnecessary overhead. Use WriteString instead of Write for known inputs since WriteString is faster than Write to append the same data. This also saves space in the binary. Remove the add method from Printer and depending on the data to be written use WriteRune or WriteByte directly instead. In total makes the go binary around 4 kilobyte smaller. name old time/op new time/op delta SprintfEmpty-2 24.1ns ± 3% 23.8ns ± 1% -1.14% (p=0.000 n=20+20) SprintfString-2 114ns ± 2% 114ns ± 4% ~ (p=0.558 n=20+19) SprintfInt-2 116ns ± 9% 118ns ± 7% ~ (p=0.086 n=20+20) SprintfIntInt-2 195ns ± 6% 193ns ± 5% ~ (p=0.345 n=20+19) SprintfPrefixedInt-2 251ns ±16% 241ns ± 9% -3.69% (p=0.024 n=20+19) SprintfFloat-2 203ns ± 4% 205ns ± 5% ~ (p=0.153 n=20+20) SprintfBoolean-2 101ns ± 7% 96ns ±11% -5.23% (p=0.005 n=19+20) ManyArgs-2 651ns ± 7% 628ns ± 7% -3.44% (p=0.002 n=20+20) FprintInt-2 164ns ± 2% 158ns ± 2% -3.62% (p=0.000 n=20+18) FprintfBytes-2 215ns ± 1% 216ns ± 1% +0.58% (p=0.000 n=20+20) FprintIntNoAlloc-2 115ns ± 0% 112ns ± 0% -2.61% (p=0.000 n=20+20) ScanInts-2 700µs ± 0% 702µs ± 1% +0.38% (p=0.000 n=18+20) ScanRecursiveInt-2 82.7ms ± 0% 82.7ms ± 0% ~ (p=0.820 n=20+20) Change-Id: I0409eb170b8a26d9f4eb271f6292e5d39faf2d8b Reviewed-on: https://go-review.googlesource.com/19955 Reviewed-by: Rob Pike --- src/fmt/fmt_test.go | 7 +++ src/fmt/format.go | 11 +--- src/fmt/print.go | 143 +++++++++++++++++++++----------------------- src/fmt/scan.go | 2 +- 4 files changed, 78 insertions(+), 85 deletions(-) diff --git a/src/fmt/fmt_test.go b/src/fmt/fmt_test.go index 14d3aaf544..05187af29e 100644 --- a/src/fmt/fmt_test.go +++ b/src/fmt/fmt_test.go @@ -943,6 +943,13 @@ func BenchmarkSprintfFloat(b *testing.B) { } }) } +func BenchmarkSprintfBoolean(b *testing.B) { + b.RunParallel(func(pb *testing.PB) { + for pb.Next() { + Sprintf("%t", true) + } + }) +} func BenchmarkManyArgs(b *testing.B) { b.RunParallel(func(pb *testing.PB) { diff --git a/src/fmt/format.go b/src/fmt/format.go index a4aa897229..f7ac047229 100644 --- a/src/fmt/format.go +++ b/src/fmt/format.go @@ -124,17 +124,12 @@ func (f *fmt) padString(s string) { } } -var ( - trueBytes = []byte("true") - falseBytes = []byte("false") -) - // fmt_boolean formats a boolean. func (f *fmt) fmt_boolean(v bool) { if v { - f.pad(trueBytes) + f.padString("true") } else { - f.pad(falseBytes) + f.padString("false") } } @@ -511,5 +506,5 @@ func (f *fmt) fmt_complex(r, j float64, size int, verb rune) { f.space = oldSpace f.plus = oldPlus f.wid = oldWid - f.buf.Write(irparenBytes) + f.buf.WriteString("i)") } diff --git a/src/fmt/print.go b/src/fmt/print.go index 0354d6e616..b59599da65 100644 --- a/src/fmt/print.go +++ b/src/fmt/print.go @@ -13,24 +13,24 @@ import ( "unicode/utf8" ) -// Some constants in the form of bytes, to avoid string overhead. -// Needlessly fastidious, I suppose. -var ( - commaSpaceBytes = []byte(", ") - nilAngleBytes = []byte("") - nilParenBytes = []byte("(nil)") - nilBytes = []byte("nil") - mapBytes = []byte("map[") - percentBangBytes = []byte("%!") - missingBytes = []byte("(MISSING)") - badIndexBytes = []byte("(BADINDEX)") - panicBytes = []byte("(PANIC=") - extraBytes = []byte("%!(EXTRA ") - irparenBytes = []byte("i)") - bytesBytes = []byte("[]byte{") - badWidthBytes = []byte("%!(BADWIDTH)") - badPrecBytes = []byte("%!(BADPREC)") - noVerbBytes = []byte("%!(NOVERB)") +// Strings for use with buffer.WriteString. +// This is less overhead than using buffer.Write with byte arrays. +const ( + commaSpaceString = ", " + nilAngleString = "" + nilParenString = "(nil)" + nilString = "nil" + mapString = "map[" + percentBangString = "%!" + missingString = "(MISSING)" + badIndexString = "(BADINDEX)" + panicString = "(PANIC=" + extraString = "%!(EXTRA " + bytesString = "[]byte{" + badWidthString = "%!(BADWIDTH)" + badPrecString = "%!(BADPREC)" + noVerbString = "%!(NOVERB)" + invReflectString = "" ) // State represents the printer state passed to custom formatters. @@ -75,25 +75,22 @@ type GoStringer interface { // Use simple []byte instead of bytes.Buffer to avoid large dependency. type buffer []byte -func (b *buffer) Write(p []byte) (n int, err error) { +func (b *buffer) Write(p []byte) { *b = append(*b, p...) - return len(p), nil } -func (b *buffer) WriteString(s string) (n int, err error) { +func (b *buffer) WriteString(s string) { *b = append(*b, s...) - return len(s), nil } -func (b *buffer) WriteByte(c byte) error { +func (b *buffer) WriteByte(c byte) { *b = append(*b, c) - return nil } -func (bp *buffer) WriteRune(r rune) error { +func (bp *buffer) WriteRune(r rune) { if r < utf8.RuneSelf { *bp = append(*bp, byte(r)) - return nil + return } b := *bp @@ -103,7 +100,6 @@ func (bp *buffer) WriteRune(r rune) error { } w := utf8.EncodeRune(b[n:n+utf8.UTFMax], r) *bp = b[:n+w] - return nil } type pp struct { @@ -169,14 +165,11 @@ func (p *pp) Flag(b int) bool { return false } -func (p *pp) add(c rune) { - p.buf.WriteRune(c) -} - // Implement Write so we can call Fprintf on a pp (through State), for // recursive use in custom verbs. func (p *pp) Write(b []byte) (ret int, err error) { - return p.buf.Write(b) + p.buf.Write(b) + return len(b), nil } // These routines end in 'f' and take a format string. @@ -309,7 +302,7 @@ func parsenum(s string, start, end int) (num int, isnum bool, newi int) { func (p *pp) unknownType(v reflect.Value) { if !v.IsValid() { - p.buf.Write(nilAngleBytes) + p.buf.WriteString(nilAngleString) return } p.buf.WriteByte('?') @@ -319,23 +312,22 @@ func (p *pp) unknownType(v reflect.Value) { func (p *pp) badVerb(verb rune) { p.erroring = true - p.add('%') - p.add('!') - p.add(verb) - p.add('(') + p.buf.WriteString(percentBangString) + p.buf.WriteRune(verb) + p.buf.WriteByte('(') switch { case p.arg != nil: p.buf.WriteString(reflect.TypeOf(p.arg).String()) - p.add('=') + p.buf.WriteByte('=') p.printArg(p.arg, 'v', 0) case p.value.IsValid(): p.buf.WriteString(p.value.Type().String()) - p.add('=') + p.buf.WriteByte('=') p.printValue(p.value, 'v', 0) default: - p.buf.Write(nilAngleBytes) + p.buf.WriteString(nilAngleString) } - p.add(')') + p.buf.WriteByte(')') p.erroring = false } @@ -538,12 +530,12 @@ func (p *pp) fmtBytes(v []byte, verb rune, typ reflect.Type, depth int) { p.buf.WriteString("[]byte(nil)") } else { p.buf.WriteString(typ.String()) - p.buf.Write(nilParenBytes) + p.buf.WriteString(nilParenString) } return } if typ == nil { - p.buf.Write(bytesBytes) + p.buf.WriteString(bytesString) } else { p.buf.WriteString(typ.String()) p.buf.WriteByte('{') @@ -554,7 +546,7 @@ func (p *pp) fmtBytes(v []byte, verb rune, typ reflect.Type, depth int) { for i, c := range v { if i > 0 { if p.fmt.sharpV { - p.buf.Write(commaSpaceBytes) + p.buf.WriteString(commaSpaceString) } else { p.buf.WriteByte(' ') } @@ -605,18 +597,17 @@ func (p *pp) fmtPointer(value reflect.Value, verb rune) { } if p.fmt.sharpV { - p.add('(') + p.buf.WriteByte('(') p.buf.WriteString(value.Type().String()) - p.add(')') - p.add('(') + p.buf.WriteString(")(") if u == 0 { - p.buf.Write(nilBytes) + p.buf.WriteString(nilString) } else { p.fmt0x64(uint64(u), true) } - p.add(')') + p.buf.WriteByte(')') } else if verb == 'v' && u == 0 { - p.buf.Write(nilAngleBytes) + p.buf.WriteString(nilAngleString) } else { if use0x64 { p.fmt0x64(uint64(u), !p.fmt.sharp) @@ -637,7 +628,7 @@ func (p *pp) catchPanic(arg interface{}, verb rune) { // Stringer that fails to guard against nil or a nil pointer for a // value receiver, and in either case, "" is a nice result. if v := reflect.ValueOf(arg); v.Kind() == reflect.Ptr && v.IsNil() { - p.buf.Write(nilAngleBytes) + p.buf.WriteString(nilAngleString) return } // Otherwise print a concise panic message. Most of the time the panic @@ -647,9 +638,9 @@ func (p *pp) catchPanic(arg interface{}, verb rune) { panic(err) } p.fmt.clearflags() // We are done, and for this output we want default behavior. - p.buf.Write(percentBangBytes) - p.add(verb) - p.buf.Write(panicBytes) + p.buf.WriteString(percentBangString) + p.buf.WriteRune(verb) + p.buf.WriteString(panicString) p.panicking = true p.printArg(err, 'v', 0) p.panicking = false @@ -741,7 +732,7 @@ func (p *pp) printArg(arg interface{}, verb rune, depth int) (wasString bool) { if arg == nil { if verb == 'T' || verb == 'v' { - p.fmt.pad(nilAngleBytes) + p.fmt.padString(nilAngleString) } else { p.badVerb(verb) } @@ -817,7 +808,7 @@ func (p *pp) printArg(arg interface{}, verb rune, depth int) (wasString bool) { func (p *pp) printValue(value reflect.Value, verb rune, depth int) (wasString bool) { if !value.IsValid() { if verb == 'T' || verb == 'v' { - p.buf.Write(nilAngleBytes) + p.buf.WriteString(nilAngleString) } else { p.badVerb(verb) } @@ -858,7 +849,7 @@ func (p *pp) printReflectValue(value reflect.Value, verb rune, depth int) (wasSt BigSwitch: switch f := value; f.Kind() { case reflect.Invalid: - p.buf.WriteString("") + p.buf.WriteString(invReflectString) case reflect.Bool: p.fmtBool(f.Bool(), verb) case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: @@ -883,18 +874,18 @@ BigSwitch: if p.fmt.sharpV { p.buf.WriteString(f.Type().String()) if f.IsNil() { - p.buf.WriteString("(nil)") + p.buf.WriteString(nilParenString) break } p.buf.WriteByte('{') } else { - p.buf.Write(mapBytes) + p.buf.WriteString(mapString) } keys := f.MapKeys() for i, key := range keys { if i > 0 { if p.fmt.sharpV { - p.buf.Write(commaSpaceBytes) + p.buf.WriteString(commaSpaceString) } else { p.buf.WriteByte(' ') } @@ -912,13 +903,13 @@ BigSwitch: if p.fmt.sharpV { p.buf.WriteString(value.Type().String()) } - p.add('{') + p.buf.WriteByte('{') v := f t := v.Type() for i := 0; i < v.NumField(); i++ { if i > 0 { if p.fmt.sharpV { - p.buf.Write(commaSpaceBytes) + p.buf.WriteString(commaSpaceString) } else { p.buf.WriteByte(' ') } @@ -937,9 +928,9 @@ BigSwitch: if !value.IsValid() { if p.fmt.sharpV { p.buf.WriteString(f.Type().String()) - p.buf.Write(nilParenBytes) + p.buf.WriteString(nilParenString) } else { - p.buf.Write(nilAngleBytes) + p.buf.WriteString(nilAngleString) } } else { wasString = p.printValue(value, verb, depth+1) @@ -982,7 +973,7 @@ BigSwitch: for i := 0; i < f.Len(); i++ { if i > 0 { if p.fmt.sharpV { - p.buf.Write(commaSpaceBytes) + p.buf.WriteString(commaSpaceString) } else { p.buf.WriteByte(' ') } @@ -1149,7 +1140,7 @@ func (p *pp) doPrintf(format string, a []interface{}) { p.fmt.wid, p.fmt.widPresent, argNum = intFromArg(a, argNum) if !p.fmt.widPresent { - p.buf.Write(badWidthBytes) + p.buf.WriteString(badWidthString) } // We have a negative width, so take its value and ensure @@ -1182,7 +1173,7 @@ func (p *pp) doPrintf(format string, a []interface{}) { p.fmt.precPresent = false } if !p.fmt.precPresent { - p.buf.Write(badPrecBytes) + p.buf.WriteString(badPrecString) } afterIndex = false } else { @@ -1199,7 +1190,7 @@ func (p *pp) doPrintf(format string, a []interface{}) { } if i >= end { - p.buf.Write(noVerbBytes) + p.buf.WriteString(noVerbString) continue } c, w := utf8.DecodeRuneInString(format[i:]) @@ -1210,14 +1201,14 @@ func (p *pp) doPrintf(format string, a []interface{}) { continue } if !p.goodArgNum { - p.buf.Write(percentBangBytes) - p.add(c) - p.buf.Write(badIndexBytes) + p.buf.WriteString(percentBangString) + p.buf.WriteRune(c) + p.buf.WriteString(badIndexString) continue } else if argNum >= len(a) { // out of operands - p.buf.Write(percentBangBytes) - p.add(c) - p.buf.Write(missingBytes) + p.buf.WriteString(percentBangString) + p.buf.WriteRune(c) + p.buf.WriteString(missingString) continue } arg := a[argNum] @@ -1248,7 +1239,7 @@ func (p *pp) doPrintf(format string, a []interface{}) { // out of order, in which case it's too expensive to detect if they've all // been used and arguably OK if they're not. if !p.reordered && argNum < len(a) { - p.buf.Write(extraBytes) + p.buf.WriteString(extraString) for ; argNum < len(a); argNum++ { arg := a[argNum] if arg != nil { @@ -1257,7 +1248,7 @@ func (p *pp) doPrintf(format string, a []interface{}) { } p.printArg(arg, 'v', 0) if argNum+1 < len(a) { - p.buf.Write(commaSpaceBytes) + p.buf.WriteString(commaSpaceString) } } p.buf.WriteByte(')') diff --git a/src/fmt/scan.go b/src/fmt/scan.go index 99cb1af93b..fa63e4983a 100644 --- a/src/fmt/scan.go +++ b/src/fmt/scan.go @@ -839,7 +839,7 @@ func (s *ss) quotedString() string { return string(s.buf) case '"': // Double-quoted: Include the quotes and let strconv.Unquote do the backslash escapes. - s.buf.WriteRune(quote) + s.buf.WriteByte('"') for { r := s.mustReadRune() s.buf.WriteRune(r) From 922ce58de0181c114c09e6fbd6ab28f1d477898d Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 26 Feb 2016 17:03:58 -0800 Subject: [PATCH 100/101] cmd/compile: change Func.Cvars to the new Nodes type Update #14473. Change-Id: Iba1ecf42d9ab5a93144941439d5cc6b0b4f4a3ac Reviewed-on: https://go-review.googlesource.com/19992 Reviewed-by: Brad Fitzpatrick --- src/cmd/compile/internal/gc/closure.go | 14 +++++++------- src/cmd/compile/internal/gc/dcl.go | 2 +- src/cmd/compile/internal/gc/esc.go | 2 +- src/cmd/compile/internal/gc/order.go | 2 +- src/cmd/compile/internal/gc/sinit.go | 2 +- src/cmd/compile/internal/gc/syntax.go | 23 +---------------------- 6 files changed, 12 insertions(+), 33 deletions(-) diff --git a/src/cmd/compile/internal/gc/closure.go b/src/cmd/compile/internal/gc/closure.go index 401cd797dc..9a7a5c0c27 100644 --- a/src/cmd/compile/internal/gc/closure.go +++ b/src/cmd/compile/internal/gc/closure.go @@ -67,7 +67,7 @@ func closurebody(body *NodeList) *Node { // ordinary ones in the symbol table; see oldname. // unhook them. // make the list of pointers for the closure call. - for _, v := range func_.Func.Cvars() { + for _, v := range func_.Func.Cvars.Slice() { v.Name.Param.Closure.Name.Param.Closure = v.Name.Param.Outer v.Name.Param.Outerexpr = oldname(v.Sym) } @@ -76,7 +76,7 @@ func closurebody(body *NodeList) *Node { } func typecheckclosure(func_ *Node, top int) { - for _, ln := range func_.Func.Cvars() { + for _, ln := range func_.Func.Cvars.Slice() { n := ln.Name.Param.Closure if !n.Name.Captured { n.Name.Captured = true @@ -224,7 +224,7 @@ func capturevars(xfunc *Node) { func_ := xfunc.Func.Closure func_.Func.Enter.Set(nil) - for _, v := range func_.Func.Cvars() { + for _, v := range func_.Func.Cvars.Slice() { if v.Type == nil { // if v->type is nil, it means v looked like it was // going to be used in the closure but wasn't. @@ -306,7 +306,7 @@ func transformclosure(xfunc *Node) { var addr *Node var fld *Type - for _, v := range func_.Func.Cvars() { + for _, v := range func_.Func.Cvars.Slice() { if v.Op == OXXX { continue } @@ -354,7 +354,7 @@ func transformclosure(xfunc *Node) { offset := int64(Widthptr) var addr *Node var cv *Node - for _, v := range func_.Func.Cvars() { + for _, v := range func_.Func.Cvars.Slice() { if v.Op == OXXX { continue } @@ -406,7 +406,7 @@ func transformclosure(xfunc *Node) { func walkclosure(func_ *Node, init **NodeList) *Node { // If no closure vars, don't bother wrapping. - if len(func_.Func.Cvars()) == 0 { + if len(func_.Func.Cvars.Slice()) == 0 { return func_.Func.Closure.Func.Nname } @@ -428,7 +428,7 @@ func walkclosure(func_ *Node, init **NodeList) *Node { typ.List = list1(Nod(ODCLFIELD, newname(Lookup(".F")), typenod(Types[TUINTPTR]))) var typ1 *Node - for _, v := range func_.Func.Cvars() { + for _, v := range func_.Func.Cvars.Slice() { if v.Op == OXXX { continue } diff --git a/src/cmd/compile/internal/gc/dcl.go b/src/cmd/compile/internal/gc/dcl.go index ab7af0ecc3..33c04c501d 100644 --- a/src/cmd/compile/internal/gc/dcl.go +++ b/src/cmd/compile/internal/gc/dcl.go @@ -426,7 +426,7 @@ func oldname(s *Sym) *Node { n.Name.Param.Closure = c c.Name.Param.Closure = n c.Xoffset = 0 - Curfn.Func.CvarAppend(c) + Curfn.Func.Cvars.Append(c) } // return ref to closure var, not original diff --git a/src/cmd/compile/internal/gc/esc.go b/src/cmd/compile/internal/gc/esc.go index fe20057703..5745994785 100644 --- a/src/cmd/compile/internal/gc/esc.go +++ b/src/cmd/compile/internal/gc/esc.go @@ -864,7 +864,7 @@ func esc(e *EscState, n *Node, up *Node) { // Link addresses of captured variables to closure. case OCLOSURE: var a *Node - for _, v := range n.Func.Cvars() { + for _, v := range n.Func.Cvars.Slice() { if v.Op == OXXX { // unnamed out argument; see dcl.go:/^funcargs continue } diff --git a/src/cmd/compile/internal/gc/order.go b/src/cmd/compile/internal/gc/order.go index b74b025505..cc74ea553b 100644 --- a/src/cmd/compile/internal/gc/order.go +++ b/src/cmd/compile/internal/gc/order.go @@ -1137,7 +1137,7 @@ func orderexpr(np **Node, order *Order, lhs *Node) { } case OCLOSURE: - if n.Noescape && len(n.Func.Cvars()) > 0 { + if n.Noescape && len(n.Func.Cvars.Slice()) > 0 { prealloc[n] = ordertemp(Types[TUINT8], order, false) // walk will fill in correct type } diff --git a/src/cmd/compile/internal/gc/sinit.go b/src/cmd/compile/internal/gc/sinit.go index 88ccb7e2b0..f149c2cd74 100644 --- a/src/cmd/compile/internal/gc/sinit.go +++ b/src/cmd/compile/internal/gc/sinit.go @@ -475,7 +475,7 @@ func staticassign(l *Node, r *Node, out **NodeList) bool { break case OCLOSURE: - if len(r.Func.Cvars()) == 0 { + if len(r.Func.Cvars.Slice()) == 0 { // Closures with no captured variables are globals, // so the assignment can be done at link time. n := *l diff --git a/src/cmd/compile/internal/gc/syntax.go b/src/cmd/compile/internal/gc/syntax.go index 4e988360f1..7c34862a63 100644 --- a/src/cmd/compile/internal/gc/syntax.go +++ b/src/cmd/compile/internal/gc/syntax.go @@ -151,7 +151,7 @@ type Func struct { Shortname *Node Enter Nodes Exit Nodes - cvars *[]*Node // closure params + Cvars Nodes // closure params Dcl []*Node // autodcl for this func/closure Inldcl *[]*Node // copy of dcl for use in inlining Closgen int @@ -177,27 +177,6 @@ type Func struct { Needctxt bool // function uses context register (has closure variables) } -// Cvars returns the closure variables for this Func. -// These are referenced variables that are defined in enclosing -// functions. -// The cvars field is a pointer to save space, since most Func values -// have no cvars. -func (f *Func) Cvars() []*Node { - if f.cvars == nil { - return nil - } - return *f.cvars -} - -// AppendCvar appends a new closure variable. -func (f *Func) CvarAppend(n *Node) { - if f.cvars == nil { - f.cvars = &[]*Node{n} - } else { - *f.cvars = append(*f.cvars, n) - } -} - type Op uint8 // Node ops. From 71cc445cf92dd3014e8b382809ed1b9c077e7973 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 23 Feb 2016 16:11:46 -0800 Subject: [PATCH 101/101] cmd/cgo: recognize known C typedefs as types Fixes #14483. Change-Id: I0cddfe27fd8d00ba85659d0b618410e39ebf45cb Reviewed-on: https://go-review.googlesource.com/19860 Reviewed-by: Brad Fitzpatrick --- misc/cgo/errors/ptr.go | 10 ++++++++++ src/cmd/cgo/gcc.go | 11 +++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/misc/cgo/errors/ptr.go b/misc/cgo/errors/ptr.go index 834cde9199..bbcaaabecb 100644 --- a/misc/cgo/errors/ptr.go +++ b/misc/cgo/errors/ptr.go @@ -122,6 +122,16 @@ var ptrTests = []ptrTest{ body: `i := 0; p := &S{p:&i}; s := p.a[:]; C.f(unsafe.Pointer(&s[0]))`, fail: false, }, + { + // Passing the address of a slice of an array that is + // an element in a struct, with a type conversion. + name: "slice-ok-4", + c: `typedef void* PV; void f(PV p) {}`, + imports: []string{"unsafe"}, + support: `type S struct { p *int; a [4]byte }`, + body: `i := 0; p := &S{p:&i}; C.f(C.PV(unsafe.Pointer(&p.a[0])))`, + fail: false, + }, { // Passing the address of a static variable with no // pointers doesn't matter. diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index 5bfdef785c..fe9af1769d 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -819,14 +819,17 @@ func (p *Package) hasSideEffects(f *File, x ast.Expr) bool { func (p *Package) isType(t ast.Expr) bool { switch t := t.(type) { case *ast.SelectorExpr: - if t.Sel.Name != "Pointer" { - return false - } id, ok := t.X.(*ast.Ident) if !ok { return false } - return id.Name == "unsafe" + if id.Name == "unsafe" && t.Sel.Name == "Pointer" { + return true + } + if id.Name == "C" && typedef["_Ctype_"+t.Sel.Name] != nil { + return true + } + return false case *ast.Ident: // TODO: This ignores shadowing. switch t.Name {

%3reOoB@ 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 y0LFFC};H>>sOaDXZ3&*jkjtj39%_q}0L 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 Date: Thu, 25 Feb 2016 17:27:10 -0800 Subject: [PATCH 088/101] cmd/compile: eliminate prectab While here, merge LINC and LDEC into LINCOP. Fixes #13244. Change-Id: I8ea426f986d60d35c3b1a80c056a7aa49d22d802 Reviewed-on: https://go-review.googlesource.com/19928 Reviewed-by: Robert Griesemer --- src/cmd/compile/internal/gc/lex.go | 181 ++++++++++++++------------ src/cmd/compile/internal/gc/parser.go | 72 +++------- 2 files changed, 111 insertions(+), 142 deletions(-) diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index c15fefb71d..51cee2d851 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -871,11 +871,24 @@ type lexer struct { // current token tok int32 - sym_ *Sym // valid if tok == LNAME - val Val // valid if tok == LLITERAL - op Op // valid if tok == LASOP + sym_ *Sym // valid if tok == LNAME + val Val // valid if tok == LLITERAL + op Op // valid if tok == LASOP or LINCOP, or prec > 0 + prec OpPrec // operator precedence; 0 if not a binary operator } +type OpPrec int + +const ( + // Precedences of binary operators (must be > 0). + PCOMM OpPrec = 1 + iota + POROR + PANDAND + PCMP + PADD + PMUL +) + const ( // The value of single-char tokens is just their character's Unicode value. // They are all below utf8.RuneSelf. Shift other tokens up to avoid conflicts. @@ -912,12 +925,11 @@ const ( LANDAND LANDNOT LCOMM - LDEC LEQ LGE LGT LIGNORE - LINC + LINCOP LLE LLSH LLT @@ -929,6 +941,7 @@ const ( func (l *lexer) next() { nlsemi := l.nlsemi l.nlsemi = false + l.prec = 0 l0: // skip white space @@ -963,6 +976,7 @@ l0: var c1 rune var op Op + var prec OpPrec switch c { case EOF: @@ -1056,10 +1070,9 @@ l0: } } - if c1 == '=' { - op = ODIV - goto asop - } + op = ODIV + prec = PMUL + goto binop1 case ':': c1 = l.getr() @@ -1069,94 +1082,75 @@ l0: } case '*': - c1 = l.getr() - if c1 == '=' { - op = OMUL - goto asop - } + op = OMUL + prec = PMUL + goto binop case '%': - c1 = l.getr() - if c1 == '=' { - op = OMOD - goto asop - } + op = OMOD + prec = PMUL + goto binop case '+': - c1 = l.getr() - if c1 == '+' { - l.nlsemi = true - c = LINC - goto lx - } - - if c1 == '=' { - op = OADD - goto asop - } + op = OADD + goto incop case '-': - c1 = l.getr() - if c1 == '-' { - l.nlsemi = true - c = LDEC - goto lx - } - - if c1 == '=' { - op = OSUB - goto asop - } + op = OSUB + goto incop case '>': c1 = l.getr() if c1 == '>' { c = LRSH - c1 = l.getr() - if c1 == '=' { - op = ORSH - goto asop - } - - break + op = ORSH + prec = PMUL + goto binop } + l.prec = PCMP if c1 == '=' { c = LGE + l.op = OGE goto lx } - c = LGT + l.op = OGT case '<': c1 = l.getr() if c1 == '<' { c = LLSH - c1 = l.getr() - if c1 == '=' { - op = OLSH - goto asop - } - - break - } - - if c1 == '=' { - c = LLE - goto lx + op = OLSH + prec = PMUL + goto binop } if c1 == '-' { c = LCOMM + // Not a binary operator, but parsed as one + // so we can give a good error message when used + // in an expression context. + l.prec = PCOMM + l.op = OSEND goto lx } + l.prec = PCMP + if c1 == '=' { + c = LLE + l.op = OLE + goto lx + } c = LLT + l.op = OLT case '=': c1 = l.getr() if c1 == '=' { c = LEQ + l.prec = PCMP + l.op = OEQ goto lx } @@ -1164,6 +1158,8 @@ l0: c1 = l.getr() if c1 == '=' { c = LNE + l.prec = PCMP + l.op = ONE goto lx } @@ -1171,43 +1167,39 @@ l0: c1 = l.getr() if c1 == '&' { c = LANDAND + l.prec = PANDAND + l.op = OANDAND goto lx } if c1 == '^' { c = LANDNOT - c1 = l.getr() - if c1 == '=' { - op = OANDNOT - goto asop - } - - break + op = OANDNOT + prec = PMUL + goto binop } - if c1 == '=' { - op = OAND - goto asop - } + op = OAND + prec = PMUL + goto binop1 case '|': c1 = l.getr() if c1 == '|' { c = LOROR + l.prec = POROR + l.op = OOROR goto lx } - if c1 == '=' { - op = OOR - goto asop - } + op = OOR + prec = PADD + goto binop1 case '^': - c1 = l.getr() - if c1 == '=' { - op = OXOR - goto asop - } + op = OXOR + prec = PADD + goto binop case '(', '[', '{', ',', ';': goto lx @@ -1232,7 +1224,7 @@ l0: lx: if Debug['x'] != 0 { - if c > 0xff { + if c >= utf8.RuneSelf { fmt.Printf("%v lex: TOKEN %s\n", Ctxt.Line(int(lineno)), lexname(c)) } else { fmt.Printf("%v lex: TOKEN '%c'\n", Ctxt.Line(int(lineno)), c) @@ -1242,7 +1234,27 @@ lx: l.tok = c return -asop: +incop: + c1 = l.getr() + if c1 == c { + l.nlsemi = true + l.op = op + c = LINCOP + goto lx + } + prec = PADD + goto binop1 + +binop: + c1 = l.getr() +binop1: + if c1 != '=' { + l.ungetr(c1) + l.op = op + l.prec = prec + goto lx + } + l.op = op if Debug['x'] != 0 { fmt.Printf("lex: TOKEN ASOP %s=\n", goopnames[op]) @@ -2319,7 +2331,6 @@ var lexn = map[rune]string{ LCONST: "CONST", LCONTINUE: "CONTINUE", LDDD: "...", - LDEC: "DEC", LDEFAULT: "DEFAULT", LDEFER: "DEFER", LELSE: "ELSE", @@ -2333,7 +2344,7 @@ var lexn = map[rune]string{ LGT: "GT", LIF: "IF", LIMPORT: "IMPORT", - LINC: "INC", + LINCOP: "INCOP", LINTERFACE: "INTERFACE", LLE: "LE", LLITERAL: "LITERAL", diff --git a/src/cmd/compile/internal/gc/parser.go b/src/cmd/compile/internal/gc/parser.go index d42572391d..621be57b50 100644 --- a/src/cmd/compile/internal/gc/parser.go +++ b/src/cmd/compile/internal/gc/parser.go @@ -102,6 +102,8 @@ func (p *parser) syntax_error(msg string) { } case LASOP: tok = goopnames[p.op] + "=" + case LINCOP: + tok = goopnames[p.op] + goopnames[p.op] default: tok = tokstring(p.tok) } @@ -219,12 +221,11 @@ var tokstrings = map[int32]string{ LANDAND: "&&", LANDNOT: "&^", LCOMM: "<-", - LDEC: "--", LEQ: "==", LGE: ">=", LGT: ">", LIGNORE: "LIGNORE", // we should never see this one - LINC: "++", + LINCOP: "opop", LLE: "<=", LLSH: "<<", LLT: "<", @@ -562,22 +563,13 @@ func (p *parser) simple_stmt(labelOk, rangeOk bool) *Node { stmt.Etype = EType(op) // rathole to pass opcode return stmt - case LINC: - // expr LINC + case LINCOP: + // expr LINCOP p.next() stmt := Nod(OASOP, lhs, Nodintconst(1)) stmt.Implicit = true - stmt.Etype = EType(OADD) - return stmt - - case LDEC: - // expr LDEC - p.next() - - stmt := Nod(OASOP, lhs, Nodintconst(1)) - stmt.Implicit = true - stmt.Etype = EType(OSUB) + stmt.Etype = EType(p.op) return stmt case ':': @@ -1104,54 +1096,20 @@ func (p *parser) select_stmt() *Node { return hdr } -// TODO(gri) should have lexer return this info - no need for separate lookup -// (issue 13244) -var prectab = map[int32]struct { - prec int // > 0 (0 indicates not found) - op Op -}{ - // not an expression anymore, but left in so we can give a good error - // message when used in expression context - LCOMM: {1, OSEND}, - - LOROR: {2, OOROR}, - - LANDAND: {3, OANDAND}, - - LEQ: {4, OEQ}, - LNE: {4, ONE}, - LLE: {4, OLE}, - LGE: {4, OGE}, - LLT: {4, OLT}, - LGT: {4, OGT}, - - '+': {5, OADD}, - '-': {5, OSUB}, - '|': {5, OOR}, - '^': {5, OXOR}, - - '*': {6, OMUL}, - '/': {6, ODIV}, - '%': {6, OMOD}, - '&': {6, OAND}, - LLSH: {6, OLSH}, - LRSH: {6, ORSH}, - LANDNOT: {6, OANDNOT}, -} - // Expression = UnaryExpr | Expression binary_op Expression . -func (p *parser) bexpr(prec int) *Node { +func (p *parser) bexpr(prec OpPrec) *Node { // don't trace bexpr - only leads to overly nested trace output + // prec is precedence of the prior/enclosing binary operator (if any), + // so we only want to parse tokens of greater precedence. + x := p.uexpr() - for { - t := prectab[p.tok] - if t.prec < prec { - return x - } + for p.prec > prec { + op, prec1 := p.op, p.prec p.next() - x = Nod(t.op, x, p.bexpr(t.prec+1)) + x = Nod(op, x, p.bexpr(prec1)) } + return x } func (p *parser) expr() *Node { @@ -1159,7 +1117,7 @@ func (p *parser) expr() *Node { defer p.trace("expr")() } - return p.bexpr(1) + return p.bexpr(0) } func unparen(x *Node) *Node { From b30e1d728ce99bcf12877ef7e1010e53c8766e2b Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Fri, 26 Feb 2016 14:56:31 -0800 Subject: [PATCH 089/101] cmd/compile: consolidate alg code Pull all alg-related code into its own file. subr.go is a Hobbesian Leviathan. 100% code movement. Cleanup and improvements to follow. Change-Id: Ib9c8f66563fdda90c6e8cf646d366a9487a4648d Reviewed-on: https://go-review.googlesource.com/19980 Reviewed-by: Dave Cheney Run-TryBot: Dave Cheney Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/alg.go | 626 ++++++++++++++++++++++++++++ src/cmd/compile/internal/gc/go.go | 19 - src/cmd/compile/internal/gc/subr.go | 600 -------------------------- 3 files changed, 626 insertions(+), 619 deletions(-) create mode 100644 src/cmd/compile/internal/gc/alg.go diff --git a/src/cmd/compile/internal/gc/alg.go b/src/cmd/compile/internal/gc/alg.go new file mode 100644 index 0000000000..c993737598 --- /dev/null +++ b/src/cmd/compile/internal/gc/alg.go @@ -0,0 +1,626 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package gc + +import "fmt" + +const ( + // These values are known by runtime. + ANOEQ = iota + AMEM0 + AMEM8 + AMEM16 + AMEM32 + AMEM64 + AMEM128 + ASTRING + AINTER + ANILINTER + AFLOAT32 + AFLOAT64 + ACPLX64 + ACPLX128 + AMEM = 100 +) + +func algtype(t *Type) int { + a := algtype1(t, nil) + if a == AMEM { + switch t.Width { + case 0: + return AMEM0 + case 1: + return AMEM8 + case 2: + return AMEM16 + case 4: + return AMEM32 + case 8: + return AMEM64 + case 16: + return AMEM128 + } + } + + return a +} + +func algtype1(t *Type, bad **Type) int { + if bad != nil { + *bad = nil + } + if t.Broke { + return AMEM + } + if t.Noalg { + return ANOEQ + } + + switch t.Etype { + // will be defined later. + case TANY, TFORW: + *bad = t + + return -1 + + case TINT8, + TUINT8, + TINT16, + TUINT16, + TINT32, + TUINT32, + TINT64, + TUINT64, + TINT, + TUINT, + TUINTPTR, + TBOOL, + TPTR32, + TPTR64, + TCHAN, + TUNSAFEPTR: + return AMEM + + case TFUNC, TMAP: + if bad != nil { + *bad = t + } + return ANOEQ + + case TFLOAT32: + return AFLOAT32 + + case TFLOAT64: + return AFLOAT64 + + case TCOMPLEX64: + return ACPLX64 + + case TCOMPLEX128: + return ACPLX128 + + case TSTRING: + return ASTRING + + case TINTER: + if isnilinter(t) { + return ANILINTER + } + return AINTER + + case TARRAY: + if Isslice(t) { + if bad != nil { + *bad = t + } + return ANOEQ + } + + a := algtype1(t.Type, bad) + if a == ANOEQ || a == AMEM { + if a == ANOEQ && bad != nil { + *bad = t + } + return a + } + + switch t.Bound { + case 0: + // We checked above that the element type is comparable. + return AMEM + case 1: + // Single-element array is same as its lone element. + return a + } + + return -1 // needs special compare + + case TSTRUCT: + if t.Type != nil && t.Type.Down == nil && !isblanksym(t.Type.Sym) { + // One-field struct is same as that one field alone. + return algtype1(t.Type.Type, bad) + } + + ret := AMEM + var a int + for t1 := t.Type; t1 != nil; t1 = t1.Down { + // All fields must be comparable. + a = algtype1(t1.Type, bad) + + if a == ANOEQ { + return ANOEQ + } + + // Blank fields, padded fields, fields with non-memory + // equality need special compare. + if a != AMEM || isblanksym(t1.Sym) || ispaddedfield(t1, t.Width) { + ret = -1 + continue + } + } + + return ret + } + + Fatalf("algtype1: unexpected type %v", t) + return 0 +} + +// Generate a helper function to compute the hash of a value of type t. +func genhash(sym *Sym, t *Type) { + if Debug['r'] != 0 { + fmt.Printf("genhash %v %v\n", sym, t) + } + + lineno = 1 // less confusing than end of input + dclcontext = PEXTERN + markdcl() + + // func sym(p *T, h uintptr) uintptr + fn := Nod(ODCLFUNC, nil, nil) + + fn.Func.Nname = newname(sym) + fn.Func.Nname.Class = PFUNC + tfn := Nod(OTFUNC, nil, nil) + fn.Func.Nname.Name.Param.Ntype = tfn + + n := Nod(ODCLFIELD, newname(Lookup("p")), typenod(Ptrto(t))) + tfn.List = list(tfn.List, n) + np := n.Left + n = Nod(ODCLFIELD, newname(Lookup("h")), typenod(Types[TUINTPTR])) + tfn.List = list(tfn.List, n) + nh := n.Left + n = Nod(ODCLFIELD, nil, typenod(Types[TUINTPTR])) // return value + tfn.Rlist = list(tfn.Rlist, n) + + funchdr(fn) + typecheck(&fn.Func.Nname.Name.Param.Ntype, Etype) + + // genhash is only called for types that have equality but + // cannot be handled by the standard algorithms, + // so t must be either an array or a struct. + switch t.Etype { + default: + Fatalf("genhash %v", t) + + case TARRAY: + if Isslice(t) { + Fatalf("genhash %v", t) + } + + // An array of pure memory would be handled by the + // standard algorithm, so the element type must not be + // pure memory. + hashel := hashfor(t.Type) + + n := Nod(ORANGE, nil, Nod(OIND, np, nil)) + ni := newname(Lookup("i")) + ni.Type = Types[TINT] + n.List = list1(ni) + n.Colas = true + colasdefn(n.List, n) + ni = n.List.N + + // h = hashel(&p[i], h) + call := Nod(OCALL, hashel, nil) + + nx := Nod(OINDEX, np, ni) + nx.Bounded = true + na := Nod(OADDR, nx, nil) + na.Etype = 1 // no escape to heap + call.List = list(call.List, na) + call.List = list(call.List, nh) + n.Nbody = list(n.Nbody, Nod(OAS, nh, call)) + + fn.Nbody = list(fn.Nbody, n) + + // Walk the struct using memhash for runs of AMEM + // and calling specific hash functions for the others. + case TSTRUCT: + var call *Node + var nx *Node + var na *Node + var hashel *Node + + t1 := t.Type + for { + first, size, next := memrun(t, t1) + t1 = next + + // Run memhash for fields up to this one. + if first != nil { + hashel = hashmem(first.Type) + + // h = hashel(&p.first, size, h) + call = Nod(OCALL, hashel, nil) + + nx = Nod(OXDOT, np, newname(first.Sym)) // TODO: fields from other packages? + na = Nod(OADDR, nx, nil) + na.Etype = 1 // no escape to heap + call.List = list(call.List, na) + call.List = list(call.List, nh) + call.List = list(call.List, Nodintconst(size)) + fn.Nbody = list(fn.Nbody, Nod(OAS, nh, call)) + } + + if t1 == nil { + break + } + if isblanksym(t1.Sym) { + t1 = t1.Down + continue + } + if algtype1(t1.Type, nil) == AMEM { + // Our memory run might have been stopped by padding or a blank field. + // If the next field is memory-ish, it could be the start of a new run. + continue + } + + hashel = hashfor(t1.Type) + call = Nod(OCALL, hashel, nil) + nx = Nod(OXDOT, np, newname(t1.Sym)) // TODO: fields from other packages? + na = Nod(OADDR, nx, nil) + na.Etype = 1 // no escape to heap + call.List = list(call.List, na) + call.List = list(call.List, nh) + fn.Nbody = list(fn.Nbody, Nod(OAS, nh, call)) + + t1 = t1.Down + } + } + + r := Nod(ORETURN, nil, nil) + r.List = list(r.List, nh) + fn.Nbody = list(fn.Nbody, r) + + if Debug['r'] != 0 { + dumplist("genhash body", fn.Nbody) + } + + funcbody(fn) + Curfn = fn + fn.Func.Dupok = true + typecheck(&fn, Etop) + typechecklist(fn.Nbody, Etop) + Curfn = nil + + // Disable safemode while compiling this code: the code we + // generate internally can refer to unsafe.Pointer. + // In this case it can happen if we need to generate an == + // for a struct containing a reflect.Value, which itself has + // an unexported field of type unsafe.Pointer. + old_safemode := safemode + + safemode = 0 + funccompile(fn) + safemode = old_safemode +} + +func hashfor(t *Type) *Node { + var sym *Sym + + a := algtype1(t, nil) + switch a { + case AMEM: + Fatalf("hashfor with AMEM type") + + case AINTER: + sym = Pkglookup("interhash", Runtimepkg) + + case ANILINTER: + sym = Pkglookup("nilinterhash", Runtimepkg) + + case ASTRING: + sym = Pkglookup("strhash", Runtimepkg) + + case AFLOAT32: + sym = Pkglookup("f32hash", Runtimepkg) + + case AFLOAT64: + sym = Pkglookup("f64hash", Runtimepkg) + + case ACPLX64: + sym = Pkglookup("c64hash", Runtimepkg) + + case ACPLX128: + sym = Pkglookup("c128hash", Runtimepkg) + + default: + sym = typesymprefix(".hash", t) + } + + n := newname(sym) + n.Class = PFUNC + tfn := Nod(OTFUNC, nil, nil) + tfn.List = list(tfn.List, Nod(ODCLFIELD, nil, typenod(Ptrto(t)))) + tfn.List = list(tfn.List, Nod(ODCLFIELD, nil, typenod(Types[TUINTPTR]))) + tfn.Rlist = list(tfn.Rlist, Nod(ODCLFIELD, nil, typenod(Types[TUINTPTR]))) + typecheck(&tfn, Etype) + n.Type = tfn.Type + return n +} + +// geneq generates a helper function to +// check equality of two values of type t. +func geneq(sym *Sym, t *Type) { + if Debug['r'] != 0 { + fmt.Printf("geneq %v %v\n", sym, t) + } + + lineno = 1 // less confusing than end of input + dclcontext = PEXTERN + markdcl() + + // func sym(p, q *T) bool + fn := Nod(ODCLFUNC, nil, nil) + + fn.Func.Nname = newname(sym) + fn.Func.Nname.Class = PFUNC + tfn := Nod(OTFUNC, nil, nil) + fn.Func.Nname.Name.Param.Ntype = tfn + + n := Nod(ODCLFIELD, newname(Lookup("p")), typenod(Ptrto(t))) + tfn.List = list(tfn.List, n) + np := n.Left + n = Nod(ODCLFIELD, newname(Lookup("q")), typenod(Ptrto(t))) + tfn.List = list(tfn.List, n) + nq := n.Left + n = Nod(ODCLFIELD, nil, typenod(Types[TBOOL])) + tfn.Rlist = list(tfn.Rlist, n) + + funchdr(fn) + + // geneq is only called for types that have equality but + // cannot be handled by the standard algorithms, + // so t must be either an array or a struct. + switch t.Etype { + default: + Fatalf("geneq %v", t) + + case TARRAY: + if Isslice(t) { + Fatalf("geneq %v", t) + } + + // An array of pure memory would be handled by the + // standard memequal, so the element type must not be + // pure memory. Even if we unrolled the range loop, + // each iteration would be a function call, so don't bother + // unrolling. + nrange := Nod(ORANGE, nil, Nod(OIND, np, nil)) + + ni := newname(Lookup("i")) + ni.Type = Types[TINT] + nrange.List = list1(ni) + nrange.Colas = true + colasdefn(nrange.List, nrange) + ni = nrange.List.N + + // if p[i] != q[i] { return false } + nx := Nod(OINDEX, np, ni) + + nx.Bounded = true + ny := Nod(OINDEX, nq, ni) + ny.Bounded = true + + nif := Nod(OIF, nil, nil) + nif.Left = Nod(ONE, nx, ny) + r := Nod(ORETURN, nil, nil) + r.List = list(r.List, Nodbool(false)) + nif.Nbody = list(nif.Nbody, r) + nrange.Nbody = list(nrange.Nbody, nif) + fn.Nbody = list(fn.Nbody, nrange) + + // return true + ret := Nod(ORETURN, nil, nil) + ret.List = list(ret.List, Nodbool(true)) + fn.Nbody = list(fn.Nbody, ret) + + // Walk the struct using memequal for runs of AMEM + // and calling specific equality tests for the others. + // Skip blank-named fields. + case TSTRUCT: + var conjuncts []*Node + + t1 := t.Type + for { + first, size, next := memrun(t, t1) + t1 = next + + // Run memequal for fields up to this one. + // TODO(rsc): All the calls to newname are wrong for + // cross-package unexported fields. + if first != nil { + if first.Down == t1 { + conjuncts = append(conjuncts, eqfield(np, nq, newname(first.Sym))) + } else if first.Down.Down == t1 { + conjuncts = append(conjuncts, eqfield(np, nq, newname(first.Sym))) + first = first.Down + if !isblanksym(first.Sym) { + conjuncts = append(conjuncts, eqfield(np, nq, newname(first.Sym))) + } + } else { + // More than two fields: use memequal. + conjuncts = append(conjuncts, eqmem(np, nq, newname(first.Sym), size)) + } + } + + if t1 == nil { + break + } + if isblanksym(t1.Sym) { + t1 = t1.Down + continue + } + if algtype1(t1.Type, nil) == AMEM { + // Our memory run might have been stopped by padding or a blank field. + // If the next field is memory-ish, it could be the start of a new run. + continue + } + + // Check this field, which is not just memory. + conjuncts = append(conjuncts, eqfield(np, nq, newname(t1.Sym))) + t1 = t1.Down + } + + var and *Node + switch len(conjuncts) { + case 0: + and = Nodbool(true) + case 1: + and = conjuncts[0] + default: + and = Nod(OANDAND, conjuncts[0], conjuncts[1]) + for _, conjunct := range conjuncts[2:] { + and = Nod(OANDAND, and, conjunct) + } + } + + ret := Nod(ORETURN, nil, nil) + ret.List = list(ret.List, and) + fn.Nbody = list(fn.Nbody, ret) + } + + if Debug['r'] != 0 { + dumplist("geneq body", fn.Nbody) + } + + funcbody(fn) + Curfn = fn + fn.Func.Dupok = true + typecheck(&fn, Etop) + typechecklist(fn.Nbody, Etop) + Curfn = nil + + // Disable safemode while compiling this code: the code we + // generate internally can refer to unsafe.Pointer. + // In this case it can happen if we need to generate an == + // for a struct containing a reflect.Value, which itself has + // an unexported field of type unsafe.Pointer. + old_safemode := safemode + safemode = 0 + + // Disable checknils while compiling this code. + // We are comparing a struct or an array, + // neither of which can be nil, and our comparisons + // are shallow. + Disable_checknil++ + + funccompile(fn) + + safemode = old_safemode + Disable_checknil-- +} + +// eqfield returns the node +// p.field == q.field +func eqfield(p *Node, q *Node, field *Node) *Node { + nx := Nod(OXDOT, p, field) + ny := Nod(OXDOT, q, field) + ne := Nod(OEQ, nx, ny) + return ne +} + +// eqmem returns the node +// memequal(&p.field, &q.field [, size]) +func eqmem(p *Node, q *Node, field *Node, size int64) *Node { + var needsize int + + nx := Nod(OADDR, Nod(OXDOT, p, field), nil) + nx.Etype = 1 // does not escape + ny := Nod(OADDR, Nod(OXDOT, q, field), nil) + ny.Etype = 1 // does not escape + typecheck(&nx, Erv) + typecheck(&ny, Erv) + + call := Nod(OCALL, eqmemfunc(size, nx.Type.Type, &needsize), nil) + call.List = list(call.List, nx) + call.List = list(call.List, ny) + if needsize != 0 { + call.List = list(call.List, Nodintconst(size)) + } + + return call +} + +func eqmemfunc(size int64, type_ *Type, needsize *int) *Node { + var fn *Node + + switch size { + default: + fn = syslook("memequal", 1) + *needsize = 1 + + case 1, 2, 4, 8, 16: + buf := fmt.Sprintf("memequal%d", int(size)*8) + fn = syslook(buf, 1) + *needsize = 0 + } + + substArgTypes(fn, type_, type_) + return fn +} + +// memrun finds runs of struct fields for which memory-only algs are appropriate. +// t is the parent struct type, and field is the field at which to start. +// first is the first field in the memory run. +// size is the length in bytes of the memory included in the run. +// next is the next field after the memory run. +func memrun(t *Type, field *Type) (first *Type, size int64, next *Type) { + var offend int64 + for { + if field == nil || algtype1(field.Type, nil) != AMEM || isblanksym(field.Sym) { + break + } + offend = field.Width + field.Type.Width + if first == nil { + first = field + } + + // If it's a memory field but it's padded, stop here. + if ispaddedfield(field, t.Width) { + field = field.Down + break + } + field = field.Down + } + if first != nil { + size = offend - first.Width // first.Width is offset + } + return first, size, field +} + +// ispaddedfield reports whether the given field +// is followed by padding. For the case where t is +// the last field, total gives the size of the enclosing struct. +func ispaddedfield(t *Type, total int64) bool { + if t.Etype != TFIELD { + Fatalf("ispaddedfield called non-field %v", t) + } + if t.Down == nil { + return t.Width+t.Type.Width != total + } + return t.Width+t.Type.Width != t.Down.Width +} diff --git a/src/cmd/compile/internal/gc/go.go b/src/cmd/compile/internal/gc/go.go index dbf3a97e7c..68d0ded631 100644 --- a/src/cmd/compile/internal/gc/go.go +++ b/src/cmd/compile/internal/gc/go.go @@ -26,25 +26,6 @@ const ( MaxStackVarSize = 10 * 1024 * 1024 ) -const ( - // These values are known by runtime. - ANOEQ = iota - AMEM0 - AMEM8 - AMEM16 - AMEM32 - AMEM64 - AMEM128 - ASTRING - AINTER - ANILINTER - AFLOAT32 - AFLOAT64 - ACPLX64 - ACPLX128 - AMEM = 100 -) - const ( // Maximum size in bits for Mpints before signalling // overflow and also mantissa precision for Mpflts. diff --git a/src/cmd/compile/internal/gc/subr.go b/src/cmd/compile/internal/gc/subr.go index 7d568a24d4..6c558203d3 100644 --- a/src/cmd/compile/internal/gc/subr.go +++ b/src/cmd/compile/internal/gc/subr.go @@ -348,162 +348,6 @@ func saveorignode(n *Node) { n.Orig = norig } -// ispaddedfield reports whether the given field -// is followed by padding. For the case where t is -// the last field, total gives the size of the enclosing struct. -func ispaddedfield(t *Type, total int64) bool { - if t.Etype != TFIELD { - Fatalf("ispaddedfield called non-field %v", t) - } - if t.Down == nil { - return t.Width+t.Type.Width != total - } - return t.Width+t.Type.Width != t.Down.Width -} - -func algtype1(t *Type, bad **Type) int { - if bad != nil { - *bad = nil - } - if t.Broke { - return AMEM - } - if t.Noalg { - return ANOEQ - } - - switch t.Etype { - // will be defined later. - case TANY, TFORW: - *bad = t - - return -1 - - case TINT8, - TUINT8, - TINT16, - TUINT16, - TINT32, - TUINT32, - TINT64, - TUINT64, - TINT, - TUINT, - TUINTPTR, - TBOOL, - TPTR32, - TPTR64, - TCHAN, - TUNSAFEPTR: - return AMEM - - case TFUNC, TMAP: - if bad != nil { - *bad = t - } - return ANOEQ - - case TFLOAT32: - return AFLOAT32 - - case TFLOAT64: - return AFLOAT64 - - case TCOMPLEX64: - return ACPLX64 - - case TCOMPLEX128: - return ACPLX128 - - case TSTRING: - return ASTRING - - case TINTER: - if isnilinter(t) { - return ANILINTER - } - return AINTER - - case TARRAY: - if Isslice(t) { - if bad != nil { - *bad = t - } - return ANOEQ - } - - a := algtype1(t.Type, bad) - if a == ANOEQ || a == AMEM { - if a == ANOEQ && bad != nil { - *bad = t - } - return a - } - - switch t.Bound { - case 0: - // We checked above that the element type is comparable. - return AMEM - case 1: - // Single-element array is same as its lone element. - return a - } - - return -1 // needs special compare - - case TSTRUCT: - if t.Type != nil && t.Type.Down == nil && !isblanksym(t.Type.Sym) { - // One-field struct is same as that one field alone. - return algtype1(t.Type.Type, bad) - } - - ret := AMEM - var a int - for t1 := t.Type; t1 != nil; t1 = t1.Down { - // All fields must be comparable. - a = algtype1(t1.Type, bad) - - if a == ANOEQ { - return ANOEQ - } - - // Blank fields, padded fields, fields with non-memory - // equality need special compare. - if a != AMEM || isblanksym(t1.Sym) || ispaddedfield(t1, t.Width) { - ret = -1 - continue - } - } - - return ret - } - - Fatalf("algtype1: unexpected type %v", t) - return 0 -} - -func algtype(t *Type) int { - a := algtype1(t, nil) - if a == AMEM { - switch t.Width { - case 0: - return AMEM0 - case 1: - return AMEM8 - case 2: - return AMEM16 - case 4: - return AMEM32 - case 8: - return AMEM64 - case 16: - return AMEM128 - } - } - - return a -} - func maptype(key *Type, val *Type) *Type { if key != nil { var bad *Type @@ -2395,450 +2239,6 @@ func hashmem(t *Type) *Node { return n } -func hashfor(t *Type) *Node { - var sym *Sym - - a := algtype1(t, nil) - switch a { - case AMEM: - Fatalf("hashfor with AMEM type") - - case AINTER: - sym = Pkglookup("interhash", Runtimepkg) - - case ANILINTER: - sym = Pkglookup("nilinterhash", Runtimepkg) - - case ASTRING: - sym = Pkglookup("strhash", Runtimepkg) - - case AFLOAT32: - sym = Pkglookup("f32hash", Runtimepkg) - - case AFLOAT64: - sym = Pkglookup("f64hash", Runtimepkg) - - case ACPLX64: - sym = Pkglookup("c64hash", Runtimepkg) - - case ACPLX128: - sym = Pkglookup("c128hash", Runtimepkg) - - default: - sym = typesymprefix(".hash", t) - } - - n := newname(sym) - n.Class = PFUNC - tfn := Nod(OTFUNC, nil, nil) - tfn.List = list(tfn.List, Nod(ODCLFIELD, nil, typenod(Ptrto(t)))) - tfn.List = list(tfn.List, Nod(ODCLFIELD, nil, typenod(Types[TUINTPTR]))) - tfn.Rlist = list(tfn.Rlist, Nod(ODCLFIELD, nil, typenod(Types[TUINTPTR]))) - typecheck(&tfn, Etype) - n.Type = tfn.Type - return n -} - -// Generate a helper function to compute the hash of a value of type t. -func genhash(sym *Sym, t *Type) { - if Debug['r'] != 0 { - fmt.Printf("genhash %v %v\n", sym, t) - } - - lineno = 1 // less confusing than end of input - dclcontext = PEXTERN - markdcl() - - // func sym(p *T, h uintptr) uintptr - fn := Nod(ODCLFUNC, nil, nil) - - fn.Func.Nname = newname(sym) - fn.Func.Nname.Class = PFUNC - tfn := Nod(OTFUNC, nil, nil) - fn.Func.Nname.Name.Param.Ntype = tfn - - n := Nod(ODCLFIELD, newname(Lookup("p")), typenod(Ptrto(t))) - tfn.List = list(tfn.List, n) - np := n.Left - n = Nod(ODCLFIELD, newname(Lookup("h")), typenod(Types[TUINTPTR])) - tfn.List = list(tfn.List, n) - nh := n.Left - n = Nod(ODCLFIELD, nil, typenod(Types[TUINTPTR])) // return value - tfn.Rlist = list(tfn.Rlist, n) - - funchdr(fn) - typecheck(&fn.Func.Nname.Name.Param.Ntype, Etype) - - // genhash is only called for types that have equality but - // cannot be handled by the standard algorithms, - // so t must be either an array or a struct. - switch t.Etype { - default: - Fatalf("genhash %v", t) - - case TARRAY: - if Isslice(t) { - Fatalf("genhash %v", t) - } - - // An array of pure memory would be handled by the - // standard algorithm, so the element type must not be - // pure memory. - hashel := hashfor(t.Type) - - n := Nod(ORANGE, nil, Nod(OIND, np, nil)) - ni := newname(Lookup("i")) - ni.Type = Types[TINT] - n.List = list1(ni) - n.Colas = true - colasdefn(n.List, n) - ni = n.List.N - - // h = hashel(&p[i], h) - call := Nod(OCALL, hashel, nil) - - nx := Nod(OINDEX, np, ni) - nx.Bounded = true - na := Nod(OADDR, nx, nil) - na.Etype = 1 // no escape to heap - call.List = list(call.List, na) - call.List = list(call.List, nh) - n.Nbody = list(n.Nbody, Nod(OAS, nh, call)) - - fn.Nbody = list(fn.Nbody, n) - - // Walk the struct using memhash for runs of AMEM - // and calling specific hash functions for the others. - case TSTRUCT: - var call *Node - var nx *Node - var na *Node - var hashel *Node - - t1 := t.Type - for { - first, size, next := memrun(t, t1) - t1 = next - - // Run memhash for fields up to this one. - if first != nil { - hashel = hashmem(first.Type) - - // h = hashel(&p.first, size, h) - call = Nod(OCALL, hashel, nil) - - nx = Nod(OXDOT, np, newname(first.Sym)) // TODO: fields from other packages? - na = Nod(OADDR, nx, nil) - na.Etype = 1 // no escape to heap - call.List = list(call.List, na) - call.List = list(call.List, nh) - call.List = list(call.List, Nodintconst(size)) - fn.Nbody = list(fn.Nbody, Nod(OAS, nh, call)) - } - - if t1 == nil { - break - } - if isblanksym(t1.Sym) { - t1 = t1.Down - continue - } - if algtype1(t1.Type, nil) == AMEM { - // Our memory run might have been stopped by padding or a blank field. - // If the next field is memory-ish, it could be the start of a new run. - continue - } - - hashel = hashfor(t1.Type) - call = Nod(OCALL, hashel, nil) - nx = Nod(OXDOT, np, newname(t1.Sym)) // TODO: fields from other packages? - na = Nod(OADDR, nx, nil) - na.Etype = 1 // no escape to heap - call.List = list(call.List, na) - call.List = list(call.List, nh) - fn.Nbody = list(fn.Nbody, Nod(OAS, nh, call)) - - t1 = t1.Down - } - } - - r := Nod(ORETURN, nil, nil) - r.List = list(r.List, nh) - fn.Nbody = list(fn.Nbody, r) - - if Debug['r'] != 0 { - dumplist("genhash body", fn.Nbody) - } - - funcbody(fn) - Curfn = fn - fn.Func.Dupok = true - typecheck(&fn, Etop) - typechecklist(fn.Nbody, Etop) - Curfn = nil - - // Disable safemode while compiling this code: the code we - // generate internally can refer to unsafe.Pointer. - // In this case it can happen if we need to generate an == - // for a struct containing a reflect.Value, which itself has - // an unexported field of type unsafe.Pointer. - old_safemode := safemode - - safemode = 0 - funccompile(fn) - safemode = old_safemode -} - -// eqfield returns the node -// p.field == q.field -func eqfield(p *Node, q *Node, field *Node) *Node { - nx := Nod(OXDOT, p, field) - ny := Nod(OXDOT, q, field) - ne := Nod(OEQ, nx, ny) - return ne -} - -func eqmemfunc(size int64, type_ *Type, needsize *int) *Node { - var fn *Node - - switch size { - default: - fn = syslook("memequal", 1) - *needsize = 1 - - case 1, 2, 4, 8, 16: - buf := fmt.Sprintf("memequal%d", int(size)*8) - fn = syslook(buf, 1) - *needsize = 0 - } - - substArgTypes(fn, type_, type_) - return fn -} - -// eqmem returns the node -// memequal(&p.field, &q.field [, size]) -func eqmem(p *Node, q *Node, field *Node, size int64) *Node { - var needsize int - - nx := Nod(OADDR, Nod(OXDOT, p, field), nil) - nx.Etype = 1 // does not escape - ny := Nod(OADDR, Nod(OXDOT, q, field), nil) - ny.Etype = 1 // does not escape - typecheck(&nx, Erv) - typecheck(&ny, Erv) - - call := Nod(OCALL, eqmemfunc(size, nx.Type.Type, &needsize), nil) - call.List = list(call.List, nx) - call.List = list(call.List, ny) - if needsize != 0 { - call.List = list(call.List, Nodintconst(size)) - } - - return call -} - -// geneq generates a helper function to -// check equality of two values of type t. -func geneq(sym *Sym, t *Type) { - if Debug['r'] != 0 { - fmt.Printf("geneq %v %v\n", sym, t) - } - - lineno = 1 // less confusing than end of input - dclcontext = PEXTERN - markdcl() - - // func sym(p, q *T) bool - fn := Nod(ODCLFUNC, nil, nil) - - fn.Func.Nname = newname(sym) - fn.Func.Nname.Class = PFUNC - tfn := Nod(OTFUNC, nil, nil) - fn.Func.Nname.Name.Param.Ntype = tfn - - n := Nod(ODCLFIELD, newname(Lookup("p")), typenod(Ptrto(t))) - tfn.List = list(tfn.List, n) - np := n.Left - n = Nod(ODCLFIELD, newname(Lookup("q")), typenod(Ptrto(t))) - tfn.List = list(tfn.List, n) - nq := n.Left - n = Nod(ODCLFIELD, nil, typenod(Types[TBOOL])) - tfn.Rlist = list(tfn.Rlist, n) - - funchdr(fn) - - // geneq is only called for types that have equality but - // cannot be handled by the standard algorithms, - // so t must be either an array or a struct. - switch t.Etype { - default: - Fatalf("geneq %v", t) - - case TARRAY: - if Isslice(t) { - Fatalf("geneq %v", t) - } - - // An array of pure memory would be handled by the - // standard memequal, so the element type must not be - // pure memory. Even if we unrolled the range loop, - // each iteration would be a function call, so don't bother - // unrolling. - nrange := Nod(ORANGE, nil, Nod(OIND, np, nil)) - - ni := newname(Lookup("i")) - ni.Type = Types[TINT] - nrange.List = list1(ni) - nrange.Colas = true - colasdefn(nrange.List, nrange) - ni = nrange.List.N - - // if p[i] != q[i] { return false } - nx := Nod(OINDEX, np, ni) - - nx.Bounded = true - ny := Nod(OINDEX, nq, ni) - ny.Bounded = true - - nif := Nod(OIF, nil, nil) - nif.Left = Nod(ONE, nx, ny) - r := Nod(ORETURN, nil, nil) - r.List = list(r.List, Nodbool(false)) - nif.Nbody = list(nif.Nbody, r) - nrange.Nbody = list(nrange.Nbody, nif) - fn.Nbody = list(fn.Nbody, nrange) - - // return true - ret := Nod(ORETURN, nil, nil) - ret.List = list(ret.List, Nodbool(true)) - fn.Nbody = list(fn.Nbody, ret) - - // Walk the struct using memequal for runs of AMEM - // and calling specific equality tests for the others. - // Skip blank-named fields. - case TSTRUCT: - var conjuncts []*Node - - t1 := t.Type - for { - first, size, next := memrun(t, t1) - t1 = next - - // Run memequal for fields up to this one. - // TODO(rsc): All the calls to newname are wrong for - // cross-package unexported fields. - if first != nil { - if first.Down == t1 { - conjuncts = append(conjuncts, eqfield(np, nq, newname(first.Sym))) - } else if first.Down.Down == t1 { - conjuncts = append(conjuncts, eqfield(np, nq, newname(first.Sym))) - first = first.Down - if !isblanksym(first.Sym) { - conjuncts = append(conjuncts, eqfield(np, nq, newname(first.Sym))) - } - } else { - // More than two fields: use memequal. - conjuncts = append(conjuncts, eqmem(np, nq, newname(first.Sym), size)) - } - } - - if t1 == nil { - break - } - if isblanksym(t1.Sym) { - t1 = t1.Down - continue - } - if algtype1(t1.Type, nil) == AMEM { - // Our memory run might have been stopped by padding or a blank field. - // If the next field is memory-ish, it could be the start of a new run. - continue - } - - // Check this field, which is not just memory. - conjuncts = append(conjuncts, eqfield(np, nq, newname(t1.Sym))) - t1 = t1.Down - } - - var and *Node - switch len(conjuncts) { - case 0: - and = Nodbool(true) - case 1: - and = conjuncts[0] - default: - and = Nod(OANDAND, conjuncts[0], conjuncts[1]) - for _, conjunct := range conjuncts[2:] { - and = Nod(OANDAND, and, conjunct) - } - } - - ret := Nod(ORETURN, nil, nil) - ret.List = list(ret.List, and) - fn.Nbody = list(fn.Nbody, ret) - } - - if Debug['r'] != 0 { - dumplist("geneq body", fn.Nbody) - } - - funcbody(fn) - Curfn = fn - fn.Func.Dupok = true - typecheck(&fn, Etop) - typechecklist(fn.Nbody, Etop) - Curfn = nil - - // Disable safemode while compiling this code: the code we - // generate internally can refer to unsafe.Pointer. - // In this case it can happen if we need to generate an == - // for a struct containing a reflect.Value, which itself has - // an unexported field of type unsafe.Pointer. - old_safemode := safemode - safemode = 0 - - // Disable checknils while compiling this code. - // We are comparing a struct or an array, - // neither of which can be nil, and our comparisons - // are shallow. - Disable_checknil++ - - funccompile(fn) - - safemode = old_safemode - Disable_checknil-- -} - -// memrun finds runs of struct fields for which memory-only algs are appropriate. -// t is the parent struct type, and field is the field at which to start. -// first is the first field in the memory run. -// size is the length in bytes of the memory included in the run. -// next is the next field after the memory run. -func memrun(t *Type, field *Type) (first *Type, size int64, next *Type) { - var offend int64 - for { - if field == nil || algtype1(field.Type, nil) != AMEM || isblanksym(field.Sym) { - break - } - offend = field.Width + field.Type.Width - if first == nil { - first = field - } - - // If it's a memory field but it's padded, stop here. - if ispaddedfield(field, t.Width) { - field = field.Down - break - } - field = field.Down - } - if first != nil { - size = offend - first.Width // first.Width is offset - } - return first, size, field -} - func ifacelookdot(s *Sym, t *Type, followptr *bool, ignorecase int) *Type { *followptr = false From 6520da6ed5241b0383d50a286b4be0da70dc352b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Mo=CC=88hrmann?= Date: Wed, 24 Feb 2016 23:22:40 +0100 Subject: [PATCH 090/101] fmt: use public io.RuneScanner interface for ScanState reader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All io.Reader that are passed to newScanState in all the standard library tests that implement io.RuneReader also implement io.RuneScanner. Do not check on each call ScanState's UnreadRune that the used RuneReader also implements the UnreadRune method by using a private interface. Instead require the used Reader to implement the public RuneScanner interface. The extra implementation logic for UnreadRune is removed from ScanState. Instead the readRune wrapper is extended to implement UnreadRune for the RuneScanner interface. If the Reader passed to newScanstate does not implement RuneScanner the readRune wrapper is used to implement the missing functionality. Note that a RuneReader that does not implement RuneScanner will also be wrapped by runeRead which was not the case before. Performance with the readRune wrapper is better than without before. Add benchmark to compare performance with and without using the readRune wrapper. name old time/op new time/op delta ScanInts-2 704µs ± 0% 615µs ± 1% -12.73% (p=0.000 n=20+20) ScanRecursiveInt-2 82.6ms ± 0% 51.4ms ± 0% -37.71% (p=0.000 n=20+20) ScanRecursiveIntReaderWrapper-2 85.1ms ± 0% 52.4ms ± 0% -38.36% (p=0.000 n=20+20) Change-Id: I8c6e85db9b87a8171caab12f020b6e256b498e81 Reviewed-on: https://go-review.googlesource.com/19895 Run-TryBot: Rob Pike TryBot-Result: Gobot Gobot Reviewed-by: Rob Pike --- src/fmt/scan.go | 109 ++++++++++++++++++++----------------------- src/fmt/scan_test.go | 12 +++++ 2 files changed, 63 insertions(+), 58 deletions(-) diff --git a/src/fmt/scan.go b/src/fmt/scan.go index 4618ed4a82..99cb1af93b 100644 --- a/src/fmt/scan.go +++ b/src/fmt/scan.go @@ -15,14 +15,6 @@ import ( "unicode/utf8" ) -// runeUnreader is the interface to something that can unread runes. -// If the object provided to Scan does not satisfy this interface, -// a local buffer will be used to back up the input, but its contents -// will be lost when Scan returns. -type runeUnreader interface { - UnreadRune() error -} - // ScanState represents the scanner state passed to custom scanners. // Scanners may do rune-at-a-time scanning or ask the ScanState // to discover the next space-delimited token. @@ -163,12 +155,10 @@ const eof = -1 // ss is the internal implementation of ScanState. type ss struct { - rr io.RuneReader // where to read input - buf buffer // token accumulator - peekRune rune // one-rune lookahead - prevRune rune // last rune returned by ReadRune - count int // runes consumed so far. - atEOF bool // already read EOF + rs io.RuneScanner // where to read input + buf buffer // token accumulator + count int // runes consumed so far. + atEOF bool // already read EOF ssave } @@ -191,23 +181,17 @@ func (s *ss) Read(buf []byte) (n int, err error) { } func (s *ss) ReadRune() (r rune, size int, err error) { - if s.peekRune >= 0 { - s.count++ - r = s.peekRune - size = utf8.RuneLen(r) - s.prevRune = r - s.peekRune = -1 - return - } - if s.atEOF || s.nlIsEnd && s.prevRune == '\n' || s.count >= s.argLimit { + if s.atEOF || s.count >= s.argLimit { err = io.EOF return } - r, size, err = s.rr.ReadRune() + r, size, err = s.rs.ReadRune() if err == nil { s.count++ - s.prevRune = r + if s.nlIsEnd && r == '\n' { + s.atEOF = true + } } else if err == io.EOF { s.atEOF = true } @@ -246,12 +230,8 @@ func (s *ss) mustReadRune() (r rune) { } func (s *ss) UnreadRune() error { - if u, ok := s.rr.(runeUnreader); ok { - u.UnreadRune() - } else { - s.peekRune = s.prevRune - } - s.prevRune = -1 + s.rs.UnreadRune() + s.atEOF = false s.count-- return nil } @@ -326,13 +306,14 @@ func (s *ss) SkipSpace() { } // readRune is a structure to enable reading UTF-8 encoded code points -// from an io.Reader. It is used if the Reader given to the scanner does -// not already implement io.RuneReader. +// from an io.Reader. It is used if the Reader given to the scanner does +// not already implement io.RuneScanner. type readRune struct { - reader io.Reader - buf [utf8.UTFMax]byte // used only inside ReadRune - pending int // number of bytes in pendBuf; only >0 for bad UTF-8 - pendBuf [utf8.UTFMax]byte // bytes left over + reader io.Reader + buf [utf8.UTFMax]byte // used only inside ReadRune + pending int // number of bytes in pendBuf; only >0 for bad UTF-8 + pendBuf [utf8.UTFMax]byte // bytes left over + peekRune rune // if >=0 next rune; when <0 is ^(previous Rune) } // readByte returns the next byte from the input, which may be @@ -344,33 +325,35 @@ func (r *readRune) readByte() (b byte, err error) { r.pending-- return } - n, err := io.ReadFull(r.reader, r.pendBuf[0:1]) - if n != 1 { - return 0, err + _, err = r.reader.Read(r.pendBuf[:1]) + if err != nil { + return } return r.pendBuf[0], err } -// unread saves the bytes for the next read. -func (r *readRune) unread(buf []byte) { - copy(r.pendBuf[r.pending:], buf) - r.pending += len(buf) -} - // ReadRune returns the next UTF-8 encoded code point from the // io.Reader inside r. func (r *readRune) ReadRune() (rr rune, size int, err error) { + if r.peekRune >= 0 { + rr = r.peekRune + r.peekRune = ^r.peekRune + size = utf8.RuneLen(rr) + return + } r.buf[0], err = r.readByte() if err != nil { - return 0, 0, err + return } if r.buf[0] < utf8.RuneSelf { // fast check for common ASCII case rr = rune(r.buf[0]) size = 1 // Known to be 1. + // Flip the bits of the rune so it's available to UnreadRune. + r.peekRune = ^rr return } var n int - for n = 1; !utf8.FullRune(r.buf[0:n]); n++ { + for n = 1; !utf8.FullRune(r.buf[:n]); n++ { r.buf[n], err = r.readByte() if err != nil { if err == io.EOF { @@ -380,13 +363,25 @@ func (r *readRune) ReadRune() (rr rune, size int, err error) { return } } - rr, size = utf8.DecodeRune(r.buf[0:n]) - if size < n { // an error - r.unread(r.buf[size:n]) + rr, size = utf8.DecodeRune(r.buf[:n]) + if size < n { // an error, save the bytes for the next read + copy(r.pendBuf[r.pending:], r.buf[size:n]) + r.pending += n - size } + // Flip the bits of the rune so it's available to UnreadRune. + r.peekRune = ^rr return } +func (r *readRune) UnreadRune() error { + if r.peekRune >= 0 { + return errors.New("fmt: scanning called UnreadRune with no rune available") + } + // Reverse bit flip of previously read rune to obtain valid >=0 state. + r.peekRune = ^r.peekRune + return nil +} + var ssFree = sync.Pool{ New: func() interface{} { return new(ss) }, } @@ -394,15 +389,13 @@ var ssFree = sync.Pool{ // newScanState allocates a new ss struct or grab a cached one. func newScanState(r io.Reader, nlIsSpace, nlIsEnd bool) (s *ss, old ssave) { s = ssFree.Get().(*ss) - if rr, ok := r.(io.RuneReader); ok { - s.rr = rr + if rs, ok := r.(io.RuneScanner); ok { + s.rs = rs } else { - s.rr = &readRune{reader: r} + s.rs = &readRune{reader: r, peekRune: -1} } s.nlIsSpace = nlIsSpace s.nlIsEnd = nlIsEnd - s.prevRune = -1 - s.peekRune = -1 s.atEOF = false s.limit = hugeWid s.argLimit = hugeWid @@ -424,7 +417,7 @@ func (s *ss) free(old ssave) { return } s.buf = s.buf[:0] - s.rr = nil + s.rs = nil ssFree.Put(s) } @@ -1142,7 +1135,7 @@ func (s *ss) advance(format string) (i int) { } // doScanf does the real work when scanning with a format string. -// At the moment, it handles only pointers to basic types. +// At the moment, it handles only pointers to basic types. func (s *ss) doScanf(format string, a []interface{}) (numProcessed int, err error) { defer errorHandler(&err) end := len(format) - 1 diff --git a/src/fmt/scan_test.go b/src/fmt/scan_test.go index ce6f08659a..3302a7ca2d 100644 --- a/src/fmt/scan_test.go +++ b/src/fmt/scan_test.go @@ -1001,6 +1001,18 @@ func BenchmarkScanRecursiveInt(b *testing.B) { } } +func BenchmarkScanRecursiveIntReaderWrapper(b *testing.B) { + b.ResetTimer() + ints := makeInts(intCount) + var r RecursiveInt + for i := b.N - 1; i >= 0; i-- { + buf := newReader(string(ints)) + b.StartTimer() + Fscan(buf, &r) + b.StopTimer() + } +} + // Issue 9124. // %x on bytes couldn't handle non-space bytes terminating the scan. func TestHexBytes(t *testing.T) { From 188e3d251507adb1b2910b49a091c7ba594819b6 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 26 Feb 2016 14:28:48 -0800 Subject: [PATCH 091/101] cmd/compile: change Func.{Enter,Exit} from NodeList to slice Introduces a new types Nodes that can be used to replace NodeList. Update #14473. Change-Id: Id77c5dcae0cbeb898ba12dd46bd400aad408871c Reviewed-on: https://go-review.googlesource.com/19969 Reviewed-by: David Crawshaw Run-TryBot: Ian Lance Taylor Reviewed-by: Brad Fitzpatrick --- src/cmd/compile/internal/gc/cgen.go | 2 +- src/cmd/compile/internal/gc/closure.go | 25 +++++------ src/cmd/compile/internal/gc/fmt.go | 32 ++++++++++++++ src/cmd/compile/internal/gc/gen.go | 6 +++ src/cmd/compile/internal/gc/pgen.go | 2 +- src/cmd/compile/internal/gc/racewalk.go | 22 +++++++--- src/cmd/compile/internal/gc/syntax.go | 56 +++++++++++++++++++++++- src/cmd/compile/internal/gc/typecheck.go | 6 +++ src/cmd/compile/internal/gc/walk.go | 50 +++++++++++---------- 9 files changed, 157 insertions(+), 44 deletions(-) diff --git a/src/cmd/compile/internal/gc/cgen.go b/src/cmd/compile/internal/gc/cgen.go index 7be050dd56..74f61129c2 100644 --- a/src/cmd/compile/internal/gc/cgen.go +++ b/src/cmd/compile/internal/gc/cgen.go @@ -2621,7 +2621,7 @@ func cgen_ret(n *Node) { if hasdefer { Ginscall(Deferreturn, 0) } - Genlist(Curfn.Func.Exit) + Genslice(Curfn.Func.Exit.Slice()) p := Thearch.Gins(obj.ARET, nil, nil) if n != nil && n.Op == ORETJMP { p.To.Type = obj.TYPE_MEM diff --git a/src/cmd/compile/internal/gc/closure.go b/src/cmd/compile/internal/gc/closure.go index c8c59ef201..401cd797dc 100644 --- a/src/cmd/compile/internal/gc/closure.go +++ b/src/cmd/compile/internal/gc/closure.go @@ -223,7 +223,7 @@ func capturevars(xfunc *Node) { lineno = xfunc.Lineno func_ := xfunc.Func.Closure - func_.Func.Enter = nil + func_.Func.Enter.Set(nil) for _, v := range func_.Func.Cvars() { if v.Type == nil { // if v->type is nil, it means v looked like it was @@ -265,7 +265,7 @@ func capturevars(xfunc *Node) { } typecheck(&outer, Erv) - func_.Func.Enter = list(func_.Func.Enter, outer) + func_.Func.Enter.Append(outer) } lineno = int32(lno) @@ -350,9 +350,7 @@ func transformclosure(xfunc *Node) { xfunc.Type = f.Type // update type of ODCLFUNC } else { // The closure is not called, so it is going to stay as closure. - nvar := 0 - - var body *NodeList + var body []*Node offset := int64(Widthptr) var addr *Node var cv *Node @@ -360,7 +358,6 @@ func transformclosure(xfunc *Node) { if v.Op == OXXX { continue } - nvar++ // cv refers to the field inside of closure OSTRUCTLIT. cv = Nod(OCLOSUREVAR, nil, nil) @@ -378,7 +375,7 @@ func transformclosure(xfunc *Node) { v.Class = PAUTO v.Ullman = 1 xfunc.Func.Dcl = append(xfunc.Func.Dcl, v) - body = list(body, Nod(OAS, v, cv)) + body = append(body, Nod(OAS, v, cv)) } else { // Declare variable holding addresses taken from closure // and initialize in entry prologue. @@ -392,14 +389,16 @@ func transformclosure(xfunc *Node) { if v.Name.Byval { cv = Nod(OADDR, cv, nil) } - body = list(body, Nod(OAS, addr, cv)) + body = append(body, Nod(OAS, addr, cv)) } } - typechecklist(body, Etop) - walkstmtlist(body) - xfunc.Func.Enter = body - xfunc.Func.Needctxt = nvar > 0 + if len(body) > 0 { + typecheckslice(body, Etop) + walkstmtslice(body) + xfunc.Func.Enter.Set(body) + xfunc.Func.Needctxt = true + } } lineno = int32(lno) @@ -443,7 +442,7 @@ func walkclosure(func_ *Node, init **NodeList) *Node { clos := Nod(OCOMPLIT, nil, Nod(OIND, typ, nil)) clos.Esc = func_.Esc clos.Right.Implicit = true - clos.List = concat(list1(Nod(OCFUNC, func_.Func.Closure.Func.Nname, nil)), func_.Func.Enter) + clos.List = concat(list1(Nod(OCFUNC, func_.Func.Closure.Func.Nname, nil)), func_.Func.Enter.NodeList()) // Force type conversion from *struct to the func type. clos = Nod(OCONVNOP, clos, nil) diff --git a/src/cmd/compile/internal/gc/fmt.go b/src/cmd/compile/internal/gc/fmt.go index c0a1170839..9327a13d91 100644 --- a/src/cmd/compile/internal/gc/fmt.go +++ b/src/cmd/compile/internal/gc/fmt.go @@ -1729,10 +1729,42 @@ func Hconv(l *NodeList, flag int) string { return buf.String() } +func Hconvslice(l []*Node, flag int) string { + if len(l) == 0 && fmtmode == FDbg { + return "" + } + + sf := flag + sm, sb := setfmode(&flag) + sep := "; " + if fmtmode == FDbg { + sep = "\n" + } else if flag&obj.FmtComma != 0 { + sep = ", " + } + + var buf bytes.Buffer + for i, n := range l { + buf.WriteString(Nconv(n, 0)) + if i+1 < len(l) { + buf.WriteString(sep) + } + } + + flag = sf + fmtbody = sb + fmtmode = sm + return buf.String() +} + func dumplist(s string, l *NodeList) { fmt.Printf("%s%v\n", s, Hconv(l, obj.FmtSign)) } +func dumpslice(s string, l []*Node) { + fmt.Printf("%s%v\n", s, Hconvslice(l, obj.FmtSign)) +} + func Dump(s string, n *Node) { fmt.Printf("%s [%p]%v\n", s, n, Nconv(n, obj.FmtSign)) } diff --git a/src/cmd/compile/internal/gc/gen.go b/src/cmd/compile/internal/gc/gen.go index adebfb81d0..4edef2b97a 100644 --- a/src/cmd/compile/internal/gc/gen.go +++ b/src/cmd/compile/internal/gc/gen.go @@ -219,6 +219,12 @@ func Genlist(l *NodeList) { } } +func Genslice(l []*Node) { + for _, n := range l { + gen(n) + } +} + // generate code to start new proc running call n. func cgen_proc(n *Node, proc int) { switch n.Left.Op { diff --git a/src/cmd/compile/internal/gc/pgen.go b/src/cmd/compile/internal/gc/pgen.go index 475d8e7b83..6c5fb2d35b 100644 --- a/src/cmd/compile/internal/gc/pgen.go +++ b/src/cmd/compile/internal/gc/pgen.go @@ -471,7 +471,7 @@ func compile(fn *Node) { } } - Genlist(Curfn.Func.Enter) + Genslice(Curfn.Func.Enter.Slice()) Genlist(Curfn.Nbody) gclean() checklabels() diff --git a/src/cmd/compile/internal/gc/racewalk.go b/src/cmd/compile/internal/gc/racewalk.go index d1ae6be0ad..d1f6cefec5 100644 --- a/src/cmd/compile/internal/gc/racewalk.go +++ b/src/cmd/compile/internal/gc/racewalk.go @@ -58,7 +58,7 @@ func instrument(fn *Node) { instrumentlist(fn.Nbody, nil) // nothing interesting for race detector in fn->enter - instrumentlist(fn.Func.Exit, nil) + instrumentslice(fn.Func.Exit.Slice(), nil) } if flag_race != 0 { @@ -71,18 +71,18 @@ func instrument(fn *Node) { nodpc.Type = Types[TUINTPTR] nodpc.Xoffset = int64(-Widthptr) nd := mkcall("racefuncenter", nil, nil, nodpc) - fn.Func.Enter = concat(list1(nd), fn.Func.Enter) + fn.Func.Enter.Set(append([]*Node{nd}, fn.Func.Enter.Slice()...)) nd = mkcall("racefuncexit", nil, nil) - fn.Func.Exit = list(fn.Func.Exit, nd) + fn.Func.Exit.Append(nd) } if Debug['W'] != 0 { s := fmt.Sprintf("after instrument %v", fn.Func.Nname.Sym) dumplist(s, fn.Nbody) s = fmt.Sprintf("enter %v", fn.Func.Nname.Sym) - dumplist(s, fn.Func.Enter) + dumpslice(s, fn.Func.Enter.Slice()) s = fmt.Sprintf("exit %v", fn.Func.Nname.Sym) - dumplist(s, fn.Func.Exit) + dumpslice(s, fn.Func.Exit.Slice()) } } @@ -100,6 +100,18 @@ func instrumentlist(l *NodeList, init **NodeList) { } } +func instrumentslice(l []*Node, init **NodeList) { + for i := range l { + var instr *NodeList + instrumentnode(&l[i], &instr, 0, 0) + if init == nil { + l[i].Ninit = concat(l[i].Ninit, instr) + } else { + *init = concat(*init, instr) + } + } +} + // walkexpr and walkstmt combined // walks the tree and adds calls to the // instrumentation code to top-level (statement) nodes' init diff --git a/src/cmd/compile/internal/gc/syntax.go b/src/cmd/compile/internal/gc/syntax.go index edc3f3ca10..4e988360f1 100644 --- a/src/cmd/compile/internal/gc/syntax.go +++ b/src/cmd/compile/internal/gc/syntax.go @@ -149,8 +149,8 @@ type Param struct { // Func holds Node fields used only with function-like nodes. type Func struct { Shortname *Node - Enter *NodeList - Exit *NodeList + Enter Nodes + Exit Nodes cvars *[]*Node // closure params Dcl []*Node // autodcl for this func/closure Inldcl *[]*Node // copy of dcl for use in inlining @@ -506,3 +506,55 @@ func count(l *NodeList) int { } return int(n) } + +// Nodes is a pointer to a slice of *Node. +// For fields that are not used in most nodes, this is used instead of +// a slice to save space. +type Nodes struct{ slice *[]*Node } + +// Slice returns the entries in Nodes as a slice. +// Changes to the slice entries (as in s[i] = n) will be reflected in +// the Nodes. +func (n *Nodes) Slice() []*Node { + if n.slice == nil { + return nil + } + return *n.slice +} + +// NodeList returns the entries in Nodes as a NodeList. +// Changes to the NodeList entries (as in l.N = n) will *not* be +// reflect in the Nodes. +// This wastes memory and should be used as little as possible. +func (n *Nodes) NodeList() *NodeList { + if n.slice == nil { + return nil + } + var ret *NodeList + for _, n := range *n.slice { + ret = list(ret, n) + } + return ret +} + +// Set sets Nodes to a slice. +// This takes ownership of the slice. +func (n *Nodes) Set(s []*Node) { + if len(s) == 0 { + n.slice = nil + } else { + n.slice = &s + } +} + +// Append appends entries to Nodes. +// If a slice is passed in, this will take ownership of it. +func (n *Nodes) Append(a ...*Node) { + if n.slice == nil { + if len(a) > 0 { + n.slice = &a + } + } else { + *n.slice = append(*n.slice, a...) + } +} diff --git a/src/cmd/compile/internal/gc/typecheck.go b/src/cmd/compile/internal/gc/typecheck.go index 395f04c21b..04455515e6 100644 --- a/src/cmd/compile/internal/gc/typecheck.go +++ b/src/cmd/compile/internal/gc/typecheck.go @@ -40,6 +40,12 @@ func typechecklist(l *NodeList, top int) { } } +func typecheckslice(l []*Node, top int) { + for i := range l { + typecheck(&l[i], top) + } +} + var _typekind = []string{ TINT: "int", TUINT: "uint", diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go index acc923a866..5e1db64df4 100644 --- a/src/cmd/compile/internal/gc/walk.go +++ b/src/cmd/compile/internal/gc/walk.go @@ -71,9 +71,9 @@ func walk(fn *Node) { } heapmoves() - if Debug['W'] != 0 && Curfn.Func.Enter != nil { + if Debug['W'] != 0 && len(Curfn.Func.Enter.Slice()) > 0 { s := fmt.Sprintf("enter %v", Curfn.Func.Nname.Sym) - dumplist(s, Curfn.Func.Enter) + dumpslice(s, Curfn.Func.Enter.Slice()) } } @@ -83,6 +83,12 @@ func walkstmtlist(l *NodeList) { } } +func walkstmtslice(l []*Node) { + for i := range l { + walkstmt(&l[i]) + } +} + func samelist(a *NodeList, b *NodeList) bool { for ; a != nil && b != nil; a, b = a.Next, b.Next { if a.N != b.N { @@ -320,7 +326,7 @@ func walkstmt(np **Node) { ll := ascompatee(n.Op, rl, n.List, &n.Ninit) n.List = reorder3(ll) for lr := n.List; lr != nil; lr = lr.Next { - lr.N = applywritebarrier(lr.N, &n.Ninit) + lr.N = applywritebarrier(lr.N) } break } @@ -588,9 +594,9 @@ opswitch: // transformclosure already did all preparation work. // Prepend captured variables to argument list. - n.List = concat(n.Left.Func.Enter, n.List) + n.List = concat(n.Left.Func.Enter.NodeList(), n.List) - n.Left.Func.Enter = nil + n.Left.Func.Enter.Set(nil) // Replace OCLOSURE with ONAME/PFUNC. n.Left = n.Left.Func.Closure.Func.Nname @@ -724,7 +730,7 @@ opswitch: r := convas(Nod(OAS, n.Left, n.Right), init) r.Dodata = n.Dodata n = r - n = applywritebarrier(n, init) + n = applywritebarrier(n) } case OAS2: @@ -735,7 +741,7 @@ opswitch: ll := ascompatee(OAS, n.List, n.Rlist, init) ll = reorder3(ll) for lr := ll; lr != nil; lr = lr.Next { - lr.N = applywritebarrier(lr.N, init) + lr.N = applywritebarrier(lr.N) } n = liststmt(ll) @@ -750,7 +756,7 @@ opswitch: ll := ascompatet(n.Op, n.List, &r.Type, 0, init) for lr := ll; lr != nil; lr = lr.Next { - lr.N = applywritebarrier(lr.N, init) + lr.N = applywritebarrier(lr.N) } n = liststmt(concat(list1(r), ll)) @@ -2133,7 +2139,7 @@ func needwritebarrier(l *Node, r *Node) bool { // TODO(rsc): Perhaps componentgen should run before this. -func applywritebarrier(n *Node, init **NodeList) *Node { +func applywritebarrier(n *Node) *Node { if n.Left != nil && n.Right != nil && needwritebarrier(n.Left, n.Right) { if Debug_wb > 1 { Warnl(int(n.Lineno), "marking %v for barrier", Nconv(n.Left, 0)) @@ -2542,12 +2548,12 @@ func vmatch1(l *Node, r *Node) bool { // walk through argin parameters. // generate and return code to allocate // copies of escaped parameters to the heap. -func paramstoheap(argin **Type, out int) *NodeList { +func paramstoheap(argin **Type, out int) []*Node { var savet Iter var v *Node var as *Node - var nn *NodeList + var nn []*Node for t := Structfirst(&savet, argin); t != nil; t = structnext(&savet) { v = t.Nname if v != nil && v.Sym != nil && v.Sym.Name[0] == '~' && v.Sym.Name[1] == 'r' { // unnamed result @@ -2560,7 +2566,7 @@ func paramstoheap(argin **Type, out int) *NodeList { // Defer might stop a panic and show the // return values as they exist at the time of panic. // Make sure to zero them on entry to the function. - nn = list(nn, Nod(OAS, nodarg(t, 1), nil)) + nn = append(nn, Nod(OAS, nodarg(t, 1), nil)) } if v == nil || v.Class&PHEAP == 0 { @@ -2574,13 +2580,13 @@ func paramstoheap(argin **Type, out int) *NodeList { if prealloc[v] == nil { prealloc[v] = callnew(v.Type) } - nn = list(nn, Nod(OAS, v.Name.Heapaddr, prealloc[v])) + nn = append(nn, Nod(OAS, v.Name.Heapaddr, prealloc[v])) if v.Class&^PHEAP != PPARAMOUT { as = Nod(OAS, v, v.Name.Param.Stackparam) v.Name.Param.Stackparam.Typecheck = 1 typecheck(&as, Etop) - as = applywritebarrier(as, &nn) - nn = list(nn, as) + as = applywritebarrier(as) + nn = append(nn, as) } } @@ -2588,17 +2594,17 @@ func paramstoheap(argin **Type, out int) *NodeList { } // walk through argout parameters copying back to stack -func returnsfromheap(argin **Type) *NodeList { +func returnsfromheap(argin **Type) []*Node { var savet Iter var v *Node - var nn *NodeList + var nn []*Node for t := Structfirst(&savet, argin); t != nil; t = structnext(&savet) { v = t.Nname if v == nil || v.Class != PHEAP|PPARAMOUT { continue } - nn = list(nn, Nod(OAS, v.Name.Param.Stackparam, v)) + nn = append(nn, Nod(OAS, v.Name.Param.Stackparam, v)) } return nn @@ -2611,11 +2617,11 @@ func heapmoves() { lno := lineno lineno = Curfn.Lineno nn := paramstoheap(getthis(Curfn.Type), 0) - nn = concat(nn, paramstoheap(getinarg(Curfn.Type), 0)) - nn = concat(nn, paramstoheap(Getoutarg(Curfn.Type), 1)) - Curfn.Func.Enter = concat(Curfn.Func.Enter, nn) + nn = append(nn, paramstoheap(getinarg(Curfn.Type), 0)...) + nn = append(nn, paramstoheap(Getoutarg(Curfn.Type), 1)...) + Curfn.Func.Enter.Append(nn...) lineno = Curfn.Func.Endlineno - Curfn.Func.Exit = returnsfromheap(Getoutarg(Curfn.Type)) + Curfn.Func.Exit.Append(returnsfromheap(Getoutarg(Curfn.Type))...) lineno = lno } From 52f099c4263f2ffd1cda777d7f6ed9689bb481a5 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Fri, 26 Feb 2016 02:10:29 -0800 Subject: [PATCH 092/101] cmd/compile: simplify lexinit and lexfini Split the syms array into separate basicTypes and builtinFuncs arrays. Also, in lexfini, instead of duplicating the code from lexinit to declare the builtin identifiers in the user package, just import them from builtinpkg like how importdot works. Change-Id: Ic3b3b454627a46f7bd5f290d0e31443e659d431f Reviewed-on: https://go-review.googlesource.com/19936 Run-TryBot: Matthew Dempsky TryBot-Result: Gobot Gobot Reviewed-by: Robert Griesemer --- src/cmd/compile/internal/gc/lex.go | 213 +++++++++++------------------ 1 file changed, 79 insertions(+), 134 deletions(-) diff --git a/src/cmd/compile/internal/gc/lex.go b/src/cmd/compile/internal/gc/lex.go index 51cee2d851..62cdded120 100644 --- a/src/cmd/compile/internal/gc/lex.go +++ b/src/cmd/compile/internal/gc/lex.go @@ -2067,77 +2067,75 @@ func (l *lexer) hexchar(n int) uint32 { return x } -var syms = []struct { +var basicTypes = [...]struct { name string etype EType - op Op }{ - // basic types - {"int8", TINT8, OXXX}, - {"int16", TINT16, OXXX}, - {"int32", TINT32, OXXX}, - {"int64", TINT64, OXXX}, - {"uint8", TUINT8, OXXX}, - {"uint16", TUINT16, OXXX}, - {"uint32", TUINT32, OXXX}, - {"uint64", TUINT64, OXXX}, - {"float32", TFLOAT32, OXXX}, - {"float64", TFLOAT64, OXXX}, - {"complex64", TCOMPLEX64, OXXX}, - {"complex128", TCOMPLEX128, OXXX}, - {"bool", TBOOL, OXXX}, - {"string", TSTRING, OXXX}, - {"any", TANY, OXXX}, + {"int8", TINT8}, + {"int16", TINT16}, + {"int32", TINT32}, + {"int64", TINT64}, + {"uint8", TUINT8}, + {"uint16", TUINT16}, + {"uint32", TUINT32}, + {"uint64", TUINT64}, + {"float32", TFLOAT32}, + {"float64", TFLOAT64}, + {"complex64", TCOMPLEX64}, + {"complex128", TCOMPLEX128}, + {"bool", TBOOL}, + {"string", TSTRING}, + {"any", TANY}, +} - // builtin funcs - {"append", Txxx, OAPPEND}, - {"cap", Txxx, OCAP}, - {"close", Txxx, OCLOSE}, - {"complex", Txxx, OCOMPLEX}, - {"copy", Txxx, OCOPY}, - {"delete", Txxx, ODELETE}, - {"imag", Txxx, OIMAG}, - {"len", Txxx, OLEN}, - {"make", Txxx, OMAKE}, - {"new", Txxx, ONEW}, - {"panic", Txxx, OPANIC}, - {"print", Txxx, OPRINT}, - {"println", Txxx, OPRINTN}, - {"real", Txxx, OREAL}, - {"recover", Txxx, ORECOVER}, +var builtinFuncs = [...]struct { + name string + op Op +}{ + {"append", OAPPEND}, + {"cap", OCAP}, + {"close", OCLOSE}, + {"complex", OCOMPLEX}, + {"copy", OCOPY}, + {"delete", ODELETE}, + {"imag", OIMAG}, + {"len", OLEN}, + {"make", OMAKE}, + {"new", ONEW}, + {"panic", OPANIC}, + {"print", OPRINT}, + {"println", OPRINTN}, + {"real", OREAL}, + {"recover", ORECOVER}, } // lexinit initializes known symbols and the basic types. func lexinit() { - for _, s := range syms { - if etype := s.etype; etype != Txxx { - if int(etype) >= len(Types) { - Fatalf("lexinit: %s bad etype", s.name) - } - s2 := Pkglookup(s.name, builtinpkg) - t := Types[etype] - if t == nil { - t = typ(etype) - t.Sym = s2 - - if etype != TANY && etype != TSTRING { - dowidth(t) - } - Types[etype] = t - } - - s2.Def = typenod(t) - s2.Def.Name = new(Name) - continue + for _, s := range basicTypes { + etype := s.etype + if int(etype) >= len(Types) { + Fatalf("lexinit: %s bad etype", s.name) } + s2 := Pkglookup(s.name, builtinpkg) + t := Types[etype] + if t == nil { + t = typ(etype) + t.Sym = s2 + if etype != TANY && etype != TSTRING { + dowidth(t) + } + Types[etype] = t + } + s2.Def = typenod(t) + s2.Def.Name = new(Name) + } + for _, s := range builtinFuncs { // TODO(marvin): Fix Node.EType type union. - if etype := s.op; etype != OXXX { - s2 := Pkglookup(s.name, builtinpkg) - s2.Def = Nod(ONAME, nil, nil) - s2.Def.Sym = s2 - s2.Def.Etype = EType(etype) - } + s2 := Pkglookup(s.name, builtinpkg) + s2.Def = Nod(ONAME, nil, nil) + s2.Def.Sym = s2 + s2.Def.Etype = EType(s.op) } // logically, the type of a string literal. @@ -2183,6 +2181,11 @@ func lexinit() { s.Def = nodlit(v) s.Def.Sym = s s.Def.Name = new(Name) + + s = Pkglookup("iota", builtinpkg) + s.Def = Nod(OIOTA, nil, nil) + s.Def.Sym = s + s.Def.Name = new(Name) } func lexinit1() { @@ -2230,86 +2233,28 @@ func lexinit1() { runetype.Sym = s s.Def = typenod(runetype) s.Def.Name = new(Name) -} - -func lexfini() { - for i := range syms { - s := Lookup(syms[i].name) - - etype := syms[i].etype - if etype != Txxx && (etype != TANY || Debug['A'] != 0) && s.Def == nil { - s.Def = typenod(Types[etype]) - s.Def.Name = new(Name) - s.Origpkg = builtinpkg - } - - // TODO(marvin): Fix Node.EType type union. - etype = EType(syms[i].op) - if etype != EType(OXXX) && s.Def == nil { - s.Def = Nod(ONAME, nil, nil) - s.Def.Sym = s - s.Def.Etype = etype - s.Origpkg = builtinpkg - } - } // backend-specific builtin types (e.g. int). for i := range Thearch.Typedefs { - s := Lookup(Thearch.Typedefs[i].Name) + s := Pkglookup(Thearch.Typedefs[i].Name, builtinpkg) + s.Def = typenod(Types[Thearch.Typedefs[i].Etype]) + s.Def.Name = new(Name) + s.Origpkg = builtinpkg + } +} + +func lexfini() { + for _, s := range builtinpkg.Syms { if s.Def == nil { - s.Def = typenod(Types[Thearch.Typedefs[i].Etype]) - s.Def.Name = new(Name) - s.Origpkg = builtinpkg + continue + } + s1 := Lookup(s.Name) + if s1.Def != nil { + continue } - } - // there's only so much table-driven we can handle. - // these are special cases. - if s := Lookup("byte"); s.Def == nil { - s.Def = typenod(bytetype) - s.Def.Name = new(Name) - s.Origpkg = builtinpkg - } - - if s := Lookup("error"); s.Def == nil { - s.Def = typenod(errortype) - s.Def.Name = new(Name) - s.Origpkg = builtinpkg - } - - if s := Lookup("rune"); s.Def == nil { - s.Def = typenod(runetype) - s.Def.Name = new(Name) - s.Origpkg = builtinpkg - } - - if s := Lookup("nil"); s.Def == nil { - var v Val - v.U = new(NilVal) - s.Def = nodlit(v) - s.Def.Sym = s - s.Def.Name = new(Name) - s.Origpkg = builtinpkg - } - - if s := Lookup("iota"); s.Def == nil { - s.Def = Nod(OIOTA, nil, nil) - s.Def.Sym = s - s.Origpkg = builtinpkg - } - - if s := Lookup("true"); s.Def == nil { - s.Def = Nodbool(true) - s.Def.Sym = s - s.Def.Name = new(Name) - s.Origpkg = builtinpkg - } - - if s := Lookup("false"); s.Def == nil { - s.Def = Nodbool(false) - s.Def.Sym = s - s.Def.Name = new(Name) - s.Origpkg = builtinpkg + s1.Def = s.Def + s1.Block = s.Block } nodfp = Nod(ONAME, nil, nil) From 31f2ed2cae4df04d9180574f75ec94a80578f8ed Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Sat, 27 Feb 2016 01:22:53 +0000 Subject: [PATCH 093/101] doc: go1.7.txt updates Change-Id: I6ac3d11ee8896f636235fe10c2556f93584019b5 Reviewed-on: https://go-review.googlesource.com/19984 Reviewed-by: Brad Fitzpatrick --- doc/go1.7.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/go1.7.txt b/doc/go1.7.txt index a73ba59297..88f22b2df1 100644 --- a/doc/go1.7.txt +++ b/doc/go1.7.txt @@ -3,11 +3,18 @@ Tools: cmd/dist: add list subcommand to list all supported platforms (CL 19837) cmd/go: GO15VENDOREXPERIMENT gone, assumed on (CL 19615) cmd/link: "-X name value" form gone (CL 19614) +cmd/compile: smaller binaries (many CLs) +cmd/go, go/build: add support for Fortran (CL 19670, CL 4114) +cmd/dist: introduce list subcommand to list all supported platforms (CL 19837) Ports: -SOMETHING WILL HAPPEN +We now require OpenBSD 5.6+ (CL 18219, crypto/rand using getentropy) +plan9/arm support? Start at least. API additions and behavior changes: runtime: add CallerFrames and Frames (CL 19869) +testing/quick: now generates nil values (CL 16470) +net/url: support query string without values (CL 19931) +net/textproto: permit all valid token chars in CanonicalMIMEHeaderKey input (CL 18725) From ccf39a23b17f5b5ed301c0016d520e44310fced3 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 27 Feb 2016 00:49:08 +0100 Subject: [PATCH 094/101] debug/gosym: fix TestPCLine on Plan 9 Plan 9 doesn't define main, so the INITENTRY symbol remains with the SXREF type, which leads Entryvalue to fail on "entry not text: main". Fixes #14536. Change-Id: Id9b7d61e5c2202aba3ec9cd52f5b56e0a38f7c47 Reviewed-on: https://go-review.googlesource.com/19973 Run-TryBot: David du Colombier <0intro@gmail.com> TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick Reviewed-by: Ian Lance Taylor --- src/debug/gosym/pclntab_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/debug/gosym/pclntab_test.go b/src/debug/gosym/pclntab_test.go index 8d4aa547a0..355bb0433e 100644 --- a/src/debug/gosym/pclntab_test.go +++ b/src/debug/gosym/pclntab_test.go @@ -42,7 +42,7 @@ func dotest(t *testing.T) { if err := cmd.Run(); err != nil { t.Fatal(err) } - cmd = exec.Command("go", "tool", "link", "-H", "linux", "-E", "main", + cmd = exec.Command("go", "tool", "link", "-H", "linux", "-o", pclinetestBinary, pclinetestBinary+".o") cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr From 8b96bc6818ca673b4d6b832190f7e823c80804ca Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Fri, 26 Feb 2016 21:50:44 -0800 Subject: [PATCH 095/101] cmd/compile: remove unneeded test binary Accidentally added in https://golang.org/cl/19968. Change-Id: Id70917c4d1f69db149688d797c90a19557d16f72 Reviewed-on: https://go-review.googlesource.com/19985 Reviewed-by: Minux Ma --- src/cmd/compile/internal/gc/test | Bin 2243120 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 src/cmd/compile/internal/gc/test diff --git a/src/cmd/compile/internal/gc/test b/src/cmd/compile/internal/gc/test deleted file mode 100755 index 5c696bc509c3bbfff223d6a238eff87cfc76ca53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2243120 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

1S%t4m?)Z0T~f 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 V%e8m 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 z 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≠~SmP7u9a6P2-!Yqt3W@ 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