1. 14 Oct, 2019 4 commits
  2. 13 Oct, 2019 2 commits
  3. 12 Oct, 2019 5 commits
    • Giovanni Bajo's avatar
      runtime: adjust expected error threshold in TestSelectFairness · e49ecaaa
      Giovanni Bajo authored
      Make it a bit more relaxed on the expected fairness, as fastrand()
      isn't a truly perfect random number generator.
      
      Fixes #34808
      
      Change-Id: Ib55b2bbe3c1bf63fb4f446fd1291eb1236efc33b
      Reviewed-on: https://go-review.googlesource.com/c/go/+/200857
      Run-TryBot: Giovanni Bajo <rasky@develer.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      e49ecaaa
    • Meng Zhuo's avatar
      net: use case-insensitive host string comparison in TestLookup* · 592d304b
      Meng Zhuo authored
      Some nameservers alter the case of records as they return, e.g
      .google.COM or .Google.com.
      However according to RFC4343, DNS name should be treated in case insensitive fashion.
      This CL will fix case sensitive testcases.
      
      Fixes #34781
      
      Change-Id: I5f9f6a41ddc1c61993e8d1f934ef0febddc3adc1
      Reviewed-on: https://go-review.googlesource.com/c/go/+/200277Reviewed-by: default avatarAndrei Tudor Călin <mail@acln.ro>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      592d304b
    • zdjones's avatar
      cmd/compile: make poset use sufficient conditions for OrderedOrEqual · 3c56eb40
      zdjones authored
      When assessing whether A <= B, the poset's OrderedOrEqual has a passing
      condition which permits A <= B, but is not sufficient to infer that A <= B.
      This CL removes that incorrect passing condition.
      
      Having identified that A and B are in the poset, the method will report that
      A <= B if any of these three conditions are true:
       (1) A and B are the same node in the poset.
       	- This means we know that A == B.
       (2) There is a directed path, strict or not, from A -> B
       	- This means we know that, at least, A <= B, but A < B is possible.
       (3) There is a directed path from B -> A, AND that path has no strict edges.
       	- This means we know that B <= A, but do not know that B < A.
      
      In condition (3), we do not have enough information to say that A <= B, rather
      we only know that B == A (which satisfies A <= B) is possible. The way I
      understand it, a strict edge shows a known, strictly-ordered relation (<) but
      the lack of a strict edge does not show the lack of a strictly-ordered relation.
      
      The difference is highlighted by the example in #34802, where a bounds check is
      incorrectly removed by prove, such that negative indexes into a slice
      succeed:
      
      	n := make([]int, 1)
      	for i := -1; i <= 0; i++ {
      	    fmt.Printf("i is %d\n", i)
      	    n[i] = 1  // No Bounds check, program runs, assignment to n[-1] succeeds!!
      	}
      
      When prove is checking the negative/failed branch from the bounds check at n[i],
      in the signed domain we learn (0 > i || i >= len(n)). Because prove can't learn
      the OR condition, we check whether we know that i is non-negative so we can
      learn something, namely that i >= len(n). Prove uses the poset to check whether
      we know that i is non-negative.  At this point the poset holds the following
      relations as a directed graph:
      
      	-1 <= i <= 0
      	-1 < 0
      
      In poset.OrderedOrEqual, we are testing for 0 <= i. In this case, condition (3)
      above is true because there is a non-strict path from i -> 0, and that path
      does NOT have any strict edges. Because this condition is true, the poset
      reports to prove that i is known to be >= 0. Knowing, incorrectly, that i >= 0,
      prove learns from the failed bounds check that i >= len(n) in the signed domain.
      
      When the slice, n, was created, prove learned that len(n) == 1. Because i is
      also the induction variable for the loop, upon entering the loop, prove previously
      learned that i is in [-1,0]. So when prove attempts to learn from the failed
      bounds check, it finds the new fact, i > len(n), unsatisfiable given that it
      previously learned that i <= 0 and len(n) = 1.
      
      Fixes #34802
      
      Change-Id: I235f4224bef97700c3aa5c01edcc595eb9f13afc
      Reviewed-on: https://go-review.googlesource.com/c/go/+/200759
      Run-TryBot: Zach Jones <zachj1@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarGiovanni Bajo <rasky@develer.com>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      3c56eb40
    • Cuong Manh Le's avatar
      cmd/compile: move OAS2 to its own case in order · e79c2382
      Cuong Manh Le authored
      Change-Id: Id0f4955588ae8027a24465b456c90d0543d60db2
      Reviewed-on: https://go-review.googlesource.com/c/go/+/200581
      Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      e79c2382
    • Cuong Manh Le's avatar
      cmd/compile: simplify OAS2XXX nodes handle in order · ba6aeb6c
      Cuong Manh Le authored
      Passes toolstash-check.
      
      Updates #23017
      
      Change-Id: I0ae82e28a6e9e732ba2a6aa98f9b35551efcea10
      Reviewed-on: https://go-review.googlesource.com/c/go/+/200580
      Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      ba6aeb6c
  4. 11 Oct, 2019 18 commits
  5. 10 Oct, 2019 7 commits
    • Brad Fitzpatrick's avatar
      all: remove nacl (part 3, more amd64p32) · 03ef105d
      Brad Fitzpatrick authored
      Part 1: CL 199499 (GOOS nacl)
      Part 2: CL 200077 (amd64p32 files, toolchain)
      Part 3: stuff that arguably should've been part of Part 2, but I forgot
              one of my grep patterns when splitting the original CL up into
              two parts.
      
      This one might also have interesting stuff to resurrect for any future
      x32 ABI support.
      
      Updates #30439
      
      Change-Id: I2b4143374a253a003666f3c69e776b7e456bdb9c
      Reviewed-on: https://go-review.googlesource.com/c/go/+/200318
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      03ef105d
    • Brad Fitzpatrick's avatar
      test: adjust a test to work with js/wasm's background goroutine · 6dc740f0
      Brad Fitzpatrick authored
      Fixes #34768
      
      Change-Id: Ic73591f620cdee5bc7203483902e6ba98d2c442b
      Reviewed-on: https://go-review.googlesource.com/c/go/+/200438Reviewed-by: default avatarBryan C. Mills <bcmills@google.com>
      6dc740f0
    • alan's avatar
      runtime: remove no-op pointer writes in treap rotations · 26ff21d4
      alan authored
      Change-Id: If5a272f331fe9da09467efedd0231a4ce34db0f8
      GitHub-Last-Rev: 4b81a79a92db4b51001ce6660b24c760fd3b630b
      GitHub-Pull-Request: golang/go#28420
      Reviewed-on: https://go-review.googlesource.com/c/go/+/144999
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRick Hudson <rlh@golang.org>
      26ff21d4
    • Jay Conrod's avatar
      cmd/go: forbid module pattern 'all' when outside a module · 68395a66
      Jay Conrod authored
      Also, in cmd/doc, avoid calling 'go list -m all' when in module mode
      outside a module since it's now an error.
      
      Fixes #32027
      
      Change-Id: I7224c7fdf7e950bce6c058ab2a5837c27ba3b899
      Reviewed-on: https://go-review.googlesource.com/c/go/+/200297
      Run-TryBot: Jay Conrod <jayconrod@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBryan C. Mills <bcmills@google.com>
      68395a66
    • Jeremy Faller's avatar
      cmd/compile: walk progs to generate debug_lines data · 46b75578
      Jeremy Faller authored
      Walking the progs is simpler than using the is_stmt symbol shenanigans.
      This is a reinstatement of CL 196661, which was rolled back due to tests
      failing. Unlike that original CL, this change should output the same
      debug_lines data the original approach wrote.
      
      The stats for JUST this CLC, note teh small speedup in compilation, and
      the lack of difference in binary size.
      
      name                      old time/op       new time/op       delta
      Template                        229ms ± 4%        218ms ± 1%  -4.95%  (p=0.000 n=10+8)
      Unicode                        92.6ms ± 9%       88.6ms ±13%    ~     (p=0.089 n=10+10)
      GoTypes                         850ms ± 2%        831ms ± 4%  -2.23%  (p=0.009 n=10+10)
      Compiler                        3.99s ± 1%        3.93s ± 1%  -1.29%  (p=0.000 n=10+9)
      SSA                             13.7s ± 1%        13.7s ± 1%    ~     (p=0.912 n=10+10)
      Flate                           140ms ± 3%        138ms ± 3%  -1.90%  (p=0.009 n=10+10)
      GoParser                        172ms ± 2%        169ms ± 4%    ~     (p=0.095 n=9+10)
      Reflect                         530ms ± 3%        516ms ± 5%    ~     (p=0.052 n=10+10)
      Tar                             202ms ± 1%        196ms ± 3%  -2.83%  (p=0.002 n=9+10)
      XML                             280ms ± 3%        270ms ± 4%  -3.48%  (p=0.009 n=10+10)
      LinkCompiler                    927ms ± 2%        907ms ± 4%    ~     (p=0.052 n=10+10)
      ExternalLinkCompiler            1.97s ± 2%        1.97s ± 3%    ~     (p=0.853 n=10+10)
      LinkWithoutDebugCompiler        549ms ± 3%        543ms ± 5%    ~     (p=0.481 n=10+10)
      StdCmd                          12.0s ± 1%        12.0s ± 1%    ~     (p=0.905 n=9+10)
      
      name                      old user-time/op  new user-time/op  delta
      Template                        372ms ±18%        344ms ±11%    ~     (p=0.190 n=10+10)
      Unicode                         264ms ±23%        241ms ±43%    ~     (p=0.315 n=8+10)
      GoTypes                         1.56s ±22%        1.68s ± 5%    ~     (p=0.237 n=10+8)
      Compiler                        7.41s ± 2%        7.31s ± 3%    ~     (p=0.123 n=10+10)
      SSA                             24.5s ± 2%        24.7s ± 1%    ~     (p=0.133 n=10+9)
      Flate                           199ms ± 6%        188ms ±28%    ~     (p=0.353 n=10+10)
      GoParser                        243ms ±11%        240ms ± 6%    ~     (p=0.968 n=10+9)
      Reflect                         929ms ±21%        862ms ±35%    ~     (p=0.190 n=10+10)
      Tar                             284ms ± 9%        296ms ±17%    ~     (p=0.497 n=9+10)
      XML                             386ms ±21%        398ms ±28%    ~     (p=1.000 n=9+10)
      LinkCompiler                    1.13s ± 9%        1.12s ± 8%    ~     (p=0.546 n=9+9)
      ExternalLinkCompiler            2.37s ±15%        2.30s ± 9%    ~     (p=0.549 n=10+9)
      LinkWithoutDebugCompiler        646ms ±10%        642ms ±13%    ~     (p=0.853 n=10+10)
      
      name                      old alloc/op      new alloc/op      delta
      Template                       36.5MB ± 0%       36.5MB ± 0%  -0.11%  (p=0.000 n=10+9)
      Unicode                        28.5MB ± 0%       28.5MB ± 0%    ~     (p=0.190 n=10+10)
      GoTypes                         121MB ± 0%        121MB ± 0%  -0.10%  (p=0.000 n=9+10)
      Compiler                        549MB ± 0%        549MB ± 0%  -0.10%  (p=0.000 n=9+10)
      SSA                            1.92GB ± 0%       1.92GB ± 0%  -0.13%  (p=0.000 n=10+10)
      Flate                          23.0MB ± 0%       23.0MB ± 0%  -0.07%  (p=0.000 n=10+10)
      GoParser                       27.9MB ± 0%       27.9MB ± 0%  -0.09%  (p=0.000 n=10+10)
      Reflect                        77.9MB ± 0%       77.8MB ± 0%  -0.13%  (p=0.000 n=9+10)
      Tar                            34.5MB ± 0%       34.4MB ± 0%  -0.09%  (p=0.000 n=10+10)
      XML                            44.3MB ± 0%       44.3MB ± 0%  -0.08%  (p=0.000 n=10+10)
      LinkCompiler                    229MB ± 0%        225MB ± 0%  -1.74%  (p=0.000 n=10+10)
      ExternalLinkCompiler            233MB ± 0%        242MB ± 0%  +3.81%  (p=0.000 n=10+10)
      LinkWithoutDebugCompiler        156MB ± 0%        152MB ± 0%  -2.29%  (p=0.000 n=10+9)
      
      name                      old allocs/op     new allocs/op     delta
      Template                         373k ± 0%         373k ± 0%  -0.21%  (p=0.000 n=10+10)
      Unicode                          340k ± 0%         340k ± 0%  -0.04%  (p=0.000 n=10+10)
      GoTypes                         1.33M ± 0%        1.33M ± 0%  -0.20%  (p=0.000 n=10+9)
      Compiler                        5.39M ± 0%        5.38M ± 0%  -0.16%  (p=0.000 n=10+10)
      SSA                             18.3M ± 0%        18.2M ± 0%  -0.15%  (p=0.000 n=10+10)
      Flate                            235k ± 0%         234k ± 0%  -0.23%  (p=0.000 n=10+7)
      GoParser                         309k ± 0%         308k ± 0%  -0.20%  (p=0.000 n=10+10)
      Reflect                          970k ± 0%         968k ± 0%  -0.30%  (p=0.000 n=10+10)
      Tar                              347k ± 0%         347k ± 0%  -0.22%  (p=0.000 n=10+10)
      XML                              425k ± 0%         424k ± 0%  -0.16%  (p=0.000 n=10+10)
      LinkCompiler                     602k ± 0%         601k ± 0%  -0.03%  (p=0.000 n=9+10)
      ExternalLinkCompiler            1.65M ± 0%        1.65M ± 0%  -0.02%  (p=0.000 n=10+10)
      LinkWithoutDebugCompiler         220k ± 0%         220k ± 0%  -0.03%  (p=0.016 n=10+9)
      
      name                      old object-bytes  new object-bytes  delta
      Template                        553kB ± 0%        553kB ± 0%  -0.01%  (p=0.000 n=10+10)
      Unicode                         215kB ± 0%        215kB ± 0%    ~     (all equal)
      GoTypes                        2.02MB ± 0%       2.02MB ± 0%  -0.00%  (p=0.000 n=10+10)
      Compiler                       7.98MB ± 0%       7.98MB ± 0%  -0.01%  (p=0.000 n=10+10)
      SSA                            27.1MB ± 0%       27.1MB ± 0%  -0.00%  (p=0.000 n=10+10)
      Flate                           340kB ± 0%        340kB ± 0%  -0.01%  (p=0.000 n=10+10)
      GoParser                        434kB ± 0%        434kB ± 0%  -0.00%  (p=0.000 n=10+10)
      Reflect                        1.34MB ± 0%       1.34MB ± 0%  -0.01%  (p=0.000 n=10+10)
      Tar                             479kB ± 0%        479kB ± 0%  -0.00%  (p=0.000 n=10+10)
      XML                             618kB ± 0%        618kB ± 0%  -0.01%  (p=0.000 n=10+10)
      
      name                      old export-bytes  new export-bytes  delta
      Template                       20.4kB ± 0%       20.4kB ± 0%    ~     (all equal)
      Unicode                        8.21kB ± 0%       8.21kB ± 0%    ~     (all equal)
      GoTypes                        36.6kB ± 0%       36.6kB ± 0%    ~     (all equal)
      Compiler                        116kB ± 0%        116kB ± 0%  +0.00%  (p=0.000 n=10+10)
      SSA                             141kB ± 0%        141kB ± 0%  +0.00%  (p=0.000 n=10+10)
      Flate                          5.10kB ± 0%       5.10kB ± 0%    ~     (all equal)
      GoParser                       8.92kB ± 0%       8.92kB ± 0%    ~     (all equal)
      Reflect                        11.8kB ± 0%       11.8kB ± 0%    ~     (all equal)
      Tar                            10.9kB ± 0%       10.9kB ± 0%    ~     (all equal)
      XML                            17.4kB ± 0%       17.4kB ± 0%    ~     (all equal)
      
      name                      old text-bytes    new text-bytes    delta
      HelloSize                       742kB ± 0%        742kB ± 0%    ~     (all equal)
      CmdGoSize                      10.6MB ± 0%       10.6MB ± 0%    ~     (all equal)
      
      name                      old data-bytes    new data-bytes    delta
      HelloSize                      10.7kB ± 0%       10.7kB ± 0%    ~     (all equal)
      CmdGoSize                       312kB ± 0%        312kB ± 0%    ~     (all equal)
      
      name                      old bss-bytes     new bss-bytes     delta
      HelloSize                       122kB ± 0%        122kB ± 0%    ~     (all equal)
      CmdGoSize                       146kB ± 0%        146kB ± 0%    ~     (all equal)
      
      name                      old exe-bytes     new exe-bytes     delta
      HelloSize                      1.10MB ± 0%       1.10MB ± 0%    ~     (all equal)
      CmdGoSize                      14.9MB ± 0%       14.9MB ± 0%  -0.03%  (p=0.000 n=10+10)
      
      Change-Id: Ie078a42b29353b96654fa1f0f47d600b5a53762d
      Reviewed-on: https://go-review.googlesource.com/c/go/+/200017Reviewed-by: default avatarJeremy Faller <jeremy@golang.org>
      Reviewed-by: default avatarDavid Chase <drchase@google.com>
      Run-TryBot: Jeremy Faller <jeremy@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      46b75578
    • Cuong Manh Le's avatar
      encoding/json: support TextUnmarshaler for map keys with string underlying types · fb9af841
      Cuong Manh Le authored
      When unmarshaling to a map, the map's key type must either be a string,
      an integer, or implement encoding.TextUnmarshaler. But for a user
      defined type, reflect.Kind will not distinguish between the static type
      and the underlying type. In:
      
      	var x MyString = "x"
      	t := reflect.TypeOf(x)
      	println(t.Kind() == reflect.String)
      
      the Kind of x is still reflect.String, even though the static type of x
      is MyString.
      
      Moreover, checking for the map's key type is a string occurs first, so
      even if the map key type MyString implements encoding.TextUnmarshaler,
      it will be ignored.
      
      To fix the bug, check for encoding.TextUnmarshaler first.
      
      Fixes #34437
      
      Change-Id: I780e0b084575e1dddfbb433fe03857adf71d05fb
      Reviewed-on: https://go-review.googlesource.com/c/go/+/200237
      Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarDaniel Martí <mvdan@mvdan.cc>
      fb9af841
    • Tom Thorogood's avatar
      encoding/json: stop escaping U+2028 and U+2029 in Compact · 900ebcfe
      Tom Thorogood authored
      Compact has been inconsistently escaping only some problematic characters
      (U+2028 and U+2029), but not others (<, > and &). This change addresses
      this inconsistency by removing the escaping of U+2028 and U+2029.
      
      Callers who need to escape the output of Compact should use HTMLEscape
      which escapes <, >, &, U+2028 and U+2029.
      
      Fixes #34070
      Fixes #30357
      Updates #5836
      
      Change-Id: Icfce7691d2b8b1d9b05ba7b64d2d1e4f3b67871b
      GitHub-Last-Rev: 38859fe3e2fd586bbd45175c2742f7b123836bf3
      GitHub-Pull-Request: golang/go#34804
      Reviewed-on: https://go-review.googlesource.com/c/go/+/200217Reviewed-by: default avatarDaniel Martí <mvdan@mvdan.cc>
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      900ebcfe
  6. 09 Oct, 2019 4 commits