1. 23 Oct, 2018 24 commits
  2. 22 Oct, 2018 14 commits
    • Ian Lance Taylor's avatar
      cmd/go: update private copy of goosList · cc558fed
      Ian Lance Taylor authored
      This copies the change to goosList in CL 138115 to the private copy in
      cmd/go.
      
      The change introducing the private copy was apparently not made with
      Gerrit, but can be seen at
      https://github.com/golang/vgo/commit/08359e782fb601567c57f56beb540841c2416d92.
      That change says "This is adapted from code in go/build and the rest
      of cmd/go. At some point, we should deduplicate them."
      
      Doing another copy for now, rather than something more complex
      involving cmd/dist, pending that deduplication.
      
      Change-Id: I9b6e1f63a3a68c002b60a9a97aa367c5cc7801c9
      Reviewed-on: https://go-review.googlesource.com/c/143759
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBryan C. Mills <bcmills@google.com>
      cc558fed
    • Clément Chigot's avatar
      cmd/cgo: add AIX operating system · ce4ef9ad
      Clément Chigot authored
      This commit adds AIX operating system to cmd/cgo package for ppc64
      architecture.
      
      It doesn't fully adapt cgo tool to AIX. But it allows to use
      go tool cgo -godefs which is really usefull for others packages.
      
      Update: #25893
      
      Change-Id: I38e289cf0122d143ba100986d08229b51b03ddfc
      Reviewed-on: https://go-review.googlesource.com/c/138731
      Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      ce4ef9ad
    • Rob Pike's avatar
      encoding/gob: delete out of memory test · 956af978
      Rob Pike authored
      Now that the library allows much larger data, it can kill
      machines with less memory.
      
      Fixes #28321
      
      Change-Id: I98e1a5fdf812fd75adfb22bf01542423de405fe2
      Reviewed-on: https://go-review.googlesource.com/c/143817Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      Reviewed-by: 's avatarDmitri Shuralyov <dmitshur@golang.org>
      956af978
    • Robert Griesemer's avatar
      go/types: report error for invalid use of ... in parameter lists · 553237aa
      Robert Griesemer authored
      The parser accepts ...T types in parameter lists whereever a type
      is permitted; this matches the syntax and allows for more tolerant
      parsing and error recovery.
      
      go/types on the other hand assumed that the parser would report
      those errors and assumed any outstanding such errors would be due
      to otherwise manipulated ASTs leading to invalid ASTs.
      
      go/types further assumed that a parameter list (a, b, c ...int)
      was permitted (a couple of tests used such parameter lists).
      
      With this CL, go/types now correctly refuses invalid parameter lists.
      
      Fixes #28281.
      
      Change-Id: Ib788255f7b7819fdb972c7801bb153a53ce2ddf7
      Reviewed-on: https://go-review.googlesource.com/c/143857
      Run-TryBot: Robert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarAlan Donovan <adonovan@google.com>
      553237aa
    • Clément Chigot's avatar
      cmd/go: add AIX operating system · 9258c3f9
      Clément Chigot authored
      This commit adds AIX operating system to cmd/go package for ppc64
      architecture.
      
      Updates: #25893
      
      Change-Id: I2605d10a7833fa2eb197f6db4a52d5919cf93614
      Reviewed-on: https://go-review.googlesource.com/c/138732
      Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      9258c3f9
    • Genevieve Luyt's avatar
      doc: use the new log functions · b917bdd3
      Genevieve Luyt authored
      The log interface was changed in https://golang.org/cl/2419042.
      
      Change-Id: I3eaddd8a5cfcae961db16555fb1b0ce6770b6334
      Reviewed-on: https://go-review.googlesource.com/c/143777Reviewed-by: 's avatarRob Pike <r@golang.org>
      b917bdd3
    • Robert Griesemer's avatar
      cmd/compile: s/eqtype/types.Identical/ (fix build) · ddf83eeb
      Robert Griesemer authored
      TBR=khr
      
      Change-Id: Ia5a08f1acd9f37c466829754990733330264f546
      Reviewed-on: https://go-review.googlesource.com/c/143758Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      ddf83eeb
    • Robert Griesemer's avatar
      go/types: copy embedded methods unchanged when completing interfaces · e9b39417
      Robert Griesemer authored
      The existing code adjusted the receivers of embedded interface methods
      to match the embedding interface type. That required cloning (shallow
      copying) the embedded methods and destroyed their object identity in
      the process. Don't do this anymore. The consequence to clients is that
      they might see different methods of an interface having different
      receiver types; they are always the type of the interface that explicitly
      declared the method (which is what one usually would want, anyway).
      
      Fixes #28282.
      
      Change-Id: I2e6f1497f46affdf7510547a64601de3787367db
      Reviewed-on: https://go-review.googlesource.com/c/143757Reviewed-by: 's avatarAlan Donovan <adonovan@google.com>
      e9b39417
    • Alessandro Arzilli's avatar
      cmd/compile,cmd/link: remove statictmp variables from symbol table. · ffbf479a
      Alessandro Arzilli authored
      Removes statictmp variables from debug_info and the final symbol table.
      
      Fixes #27800
      
      Change-Id: I302c59a04bc3f460e7085fef241f937bbf30421d
      Reviewed-on: https://go-review.googlesource.com/c/142577
      Run-TryBot: Alessandro Arzilli <alessandro.arzilli@gmail.com>
      Run-TryBot: Heschi Kreinick <heschi@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarHeschi Kreinick <heschi@google.com>
      ffbf479a
    • Keith Randall's avatar
      cmd/compile: in append(f()), type convert appended items · dca769dc
      Keith Randall authored
      The second and subsequent return values from f() need to be
      converted to the element type of the first return value from f()
      (which must be a slice).
      
      Fixes #22327
      
      Change-Id: I5c0a424812c82c1b95b6d124c5626cfc4408bdb6
      Reviewed-on: https://go-review.googlesource.com/c/142718Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
      dca769dc
    • fanzha02's avatar
      cmd/internal/obj/arm64: reclassify 32-bit/64-bit constants · 86ce1cb0
      fanzha02 authored
      Current assembler saves constants in Offset which type is int64,
      causing 32-bit constants have a incorrect class. This CL reclassifies
      constants when opcodes are 32-bit variant, like MOVW, ANDW and
      ADDW, etc. Besides, this CL encodes some constants of ADDCON class
      as MOVs instructions.
      
      This CL changes the assembler behavior as follows.
      
      1. go assembler ADDW $MOVCON, Rn, Rd
         previous version: MOVD $MOVCON, Rtmp; ADDW Rtmp, Rn, Rd
         current version: MOVW $MOVCON, Rtmp; ADDW Rtmp, Rn, Rd
      
      2. go assembly MOVW $0xaaaaffff, R1
         previous version: treats $0xaaaaffff as VCON, encodes it as MOVW 0x994, R1 (loads it from pool).
         current version: treats $0xaaaaffff as MOVCON, and encodes it into MOVW instructions.
      
      3. go assembly MOVD $0x210000, R1
         previous version: treats $0x210000 as ADDCON, loads it from pool
         current version: treats $0x210000 as MOVCON, and encodes it into MOVD instructions.
      
      Add the test cases.
      
      1. Binary size before/after.
      binary                          size change
      pkg/linux_arm64                 -1.534KB
      pkg/tool/linux_arm64            -0.718KB
      go                              -0.32KB
      gofmt                           no change
      
      2. go1 benchmark result.
      name                     old time/op    new time/op    delta
      BinaryTree17-8              6.26s ± 1%     6.28s ± 1%     ~     (p=0.105 n=10+10)
      Fannkuch11-8                5.40s ± 0%     5.39s ± 0%   -0.29%  (p=0.028 n=9+10)
      FmtFprintfEmpty-8          94.5ns ± 0%    95.0ns ± 0%   +0.51%  (p=0.000 n=10+9)
      FmtFprintfString-8          163ns ± 1%     159ns ± 1%   -2.06%  (p=0.000 n=10+9)
      FmtFprintfInt-8             200ns ± 1%     196ns ± 1%   -1.99%  (p=0.000 n=9+10)
      FmtFprintfIntInt-8          292ns ± 3%     284ns ± 1%   -2.87%  (p=0.001 n=10+9)
      FmtFprintfPrefixedInt-8     422ns ± 1%     420ns ± 1%   -0.59%  (p=0.015 n=10+10)
      FmtFprintfFloat-8           458ns ± 0%     463ns ± 1%   +1.19%  (p=0.000 n=9+10)
      FmtManyArgs-8              1.37µs ± 1%    1.35µs ± 1%   -1.85%  (p=0.000 n=10+10)
      GobDecode-8                15.5ms ± 1%    15.3ms ± 1%   -1.82%  (p=0.000 n=10+10)
      GobEncode-8                11.7ms ± 5%    11.7ms ± 2%     ~     (p=0.549 n=10+9)
      Gzip-8                      622ms ± 0%     624ms ± 0%   +0.23%  (p=0.000 n=10+9)
      Gunzip-8                   73.6ms ± 0%    73.8ms ± 1%     ~     (p=0.077 n=9+9)
      HTTPClientServer-8          115µs ± 1%     115µs ± 1%     ~     (p=0.796 n=10+10)
      JSONEncode-8               31.1ms ± 2%    28.7ms ± 1%   -7.98%  (p=0.000 n=10+9)
      JSONDecode-8                145ms ± 0%     145ms ± 1%     ~     (p=0.447 n=9+10)
      Mandelbrot200-8            9.67ms ± 0%    9.60ms ± 0%   -0.76%  (p=0.000 n=9+9)
      GoParse-8                  7.56ms ± 1%    7.58ms ± 0%   +0.21%  (p=0.035 n=10+9)
      RegexpMatchEasy0_32-8       208ns ±10%     222ns ± 0%     ~     (p=0.531 n=10+6)
      RegexpMatchEasy0_1K-8       699ns ± 4%     694ns ± 4%     ~     (p=0.868 n=10+10)
      RegexpMatchEasy1_32-8       186ns ± 8%     190ns ±12%     ~     (p=0.955 n=10+10)
      RegexpMatchEasy1_1K-8      1.13µs ± 1%    1.05µs ± 2%   -6.64%  (p=0.000 n=10+10)
      RegexpMatchMedium_32-8      316ns ± 7%     288ns ± 1%   -8.68%  (p=0.000 n=10+7)
      RegexpMatchMedium_1K-8     90.2µs ± 0%    85.5µs ± 2%   -5.19%  (p=0.000 n=10+10)
      RegexpMatchHard_32-8       5.53µs ± 0%    3.90µs ± 0%  -29.52%  (p=0.000 n=10+10)
      RegexpMatchHard_1K-8        119µs ± 0%     124µs ± 0%   +4.29%  (p=0.000 n=9+10)
      Revcomp-8                   1.07s ± 0%     1.07s ± 0%     ~     (p=0.094 n=9+9)
      Template-8                  162ms ± 1%     160ms ± 2%     ~     (p=0.089 n=10+10)
      TimeParse-8                 756ns ± 2%     763ns ± 1%     ~     (p=0.158 n=10+10)
      TimeFormat-8                758ns ± 1%     746ns ± 1%   -1.52%  (p=0.000 n=10+10)
      
      name                     old speed      new speed      delta
      GobDecode-8              49.4MB/s ± 1%  50.3MB/s ± 1%   +1.84%  (p=0.000 n=10+10)
      GobEncode-8              65.6MB/s ± 5%  65.4MB/s ± 2%     ~     (p=0.549 n=10+9)
      Gzip-8                   31.2MB/s ± 0%  31.1MB/s ± 0%   -0.24%  (p=0.000 n=9+9)
      Gunzip-8                  264MB/s ± 0%   263MB/s ± 1%     ~     (p=0.073 n=9+9)
      JSONEncode-8             62.3MB/s ± 2%  67.7MB/s ± 1%   +8.67%  (p=0.000 n=10+9)
      JSONDecode-8             13.4MB/s ± 0%  13.4MB/s ± 1%     ~     (p=0.508 n=9+10)
      GoParse-8                7.66MB/s ± 1%  7.64MB/s ± 0%   -0.23%  (p=0.049 n=10+9)
      RegexpMatchEasy0_32-8     154MB/s ± 9%   143MB/s ± 3%     ~     (p=0.303 n=10+7)
      RegexpMatchEasy0_1K-8    1.46GB/s ± 4%  1.47GB/s ± 4%     ~     (p=0.912 n=10+10)
      RegexpMatchEasy1_32-8     172MB/s ± 9%   170MB/s ±12%     ~     (p=0.971 n=10+10)
      RegexpMatchEasy1_1K-8     908MB/s ± 1%   972MB/s ± 2%   +7.12%  (p=0.000 n=10+10)
      RegexpMatchMedium_32-8   3.17MB/s ± 7%  3.46MB/s ± 1%   +9.14%  (p=0.000 n=10+7)
      RegexpMatchMedium_1K-8   11.3MB/s ± 0%  12.0MB/s ± 2%   +5.51%  (p=0.000 n=10+10)
      RegexpMatchHard_32-8     5.78MB/s ± 0%  8.21MB/s ± 0%  +41.93%  (p=0.000 n=9+10)
      RegexpMatchHard_1K-8     8.62MB/s ± 0%  8.27MB/s ± 0%   -4.11%  (p=0.000 n=9+10)
      Revcomp-8                 237MB/s ± 0%   237MB/s ± 0%     ~     (p=0.081 n=9+9)
      Template-8               12.0MB/s ± 1%  12.1MB/s ± 2%     ~     (p=0.072 n=10+10)
      
      Change-Id: I080801f520366b42d5f9699954bd33106976a81b
      Reviewed-on: https://go-review.googlesource.com/c/120661
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarCherry Zhang <cherryyz@google.com>
      86ce1cb0
    • Carlos Eduardo Seo's avatar
      cmd/compile: intrinsify math/big.mulWW on ppc64x · 1e8ecefc
      Carlos Eduardo Seo authored
      This change implements mulWW as an intrinsic for ppc64x. Performance
      numbers below:
      
      name                            old time/op    new time/op    delta
      QuoRem                            4.54µs ±45%    3.22µs ± 0%  -29.22%  (p=0.029 n=4+4)
      ModSqrt225_Tonelli                 765µs ± 3%     757µs ± 0%   -1.02%  (p=0.029 n=4+4)
      ModSqrt225_3Mod4                   231µs ± 0%     231µs ± 0%   -0.10%  (p=0.029 n=4+4)
      ModSqrt231_Tonelli                 789µs ± 0%     788µs ± 0%   -0.14%  (p=0.029 n=4+4)
      ModSqrt231_5Mod8                   267µs ± 0%     267µs ± 0%   -0.13%  (p=0.029 n=4+4)
      Sqrt                              49.5µs ±17%    45.3µs ± 0%   -8.48%  (p=0.029 n=4+4)
      IntSqr/1                          32.2ns ±22%    24.2ns ± 0%  -24.79%  (p=0.029 n=4+4)
      IntSqr/2                          60.6ns ± 0%    60.9ns ± 0%   +0.50%  (p=0.029 n=4+4)
      IntSqr/3                          82.8ns ± 0%    83.3ns ± 0%   +0.51%  (p=0.029 n=4+4)
      IntSqr/5                           122ns ± 0%     121ns ± 0%   -1.22%  (p=0.029 n=4+4)
      IntSqr/8                           227ns ± 0%     226ns ± 0%   -0.44%  (p=0.029 n=4+4)
      IntSqr/10                          300ns ± 0%     298ns ± 0%   -0.67%  (p=0.029 n=4+4)
      IntSqr/20                         1.02µs ± 0%    0.89µs ± 0%  -13.08%  (p=0.029 n=4+4)
      IntSqr/30                         1.73µs ± 0%    1.51µs ± 0%  -12.73%  (p=0.029 n=4+4)
      IntSqr/50                         3.69µs ± 1%    3.29µs ± 0%  -10.70%  (p=0.029 n=4+4)
      IntSqr/80                         7.64µs ± 0%    7.04µs ± 0%   -7.91%  (p=0.029 n=4+4)
      IntSqr/100                        11.1µs ± 0%    10.3µs ± 0%   -7.04%  (p=0.029 n=4+4)
      IntSqr/200                        37.9µs ± 0%    36.4µs ± 0%   -4.13%  (p=0.029 n=4+4)
      IntSqr/300                        69.4µs ± 0%    66.0µs ± 0%   -4.94%  (p=0.029 n=4+4)
      IntSqr/500                         174µs ± 0%     168µs ± 0%   -3.10%  (p=0.029 n=4+4)
      IntSqr/800                         347µs ± 0%     333µs ± 0%   -4.06%  (p=0.029 n=4+4)
      IntSqr/1000                        524µs ± 0%     507µs ± 0%   -3.21%  (p=0.029 n=4+4)
      
      Change-Id: If067452f5b6579ad3a2e9daa76a7ffe6fceae1bb
      Reviewed-on: https://go-review.googlesource.com/c/143217
      Run-TryBot: Giovanni Bajo <rasky@develer.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarGiovanni Bajo <rasky@develer.com>
      1e8ecefc
    • Rob Pike's avatar
      encoding/gob: increase "tooBig" from 1GB to 8GB on 64-bit machines · 3bf9b77c
      Rob Pike authored
      A little shift magic makes it easy to adjust the maximum buffer
      size on machines with larger integers.
      
      Fixes #27635
      
      Change-Id: I1f26b07a363fbb9730df2377052475fa88bbb781
      Reviewed-on: https://go-review.googlesource.com/c/143678
      Run-TryBot: Rob Pike <r@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      3bf9b77c
    • Rob Pike's avatar
      doc: tweak example in Effective Go · 7c2718b1
      Rob Pike authored
      A prior attempt at addressing the issue got bogged down in an
      endless conversation around the subtleties of Read semantics.
      Let's not go there.
      
      Instead, we put the issue to bed, perhaps not in perfect comfort
      but well enough, by moving a line of the example so that even
      if there is a "benign" error as the issue suggests, the loop
      terminates with n and err correctly set.
      
      Fixes #27818
      
      Change-Id: I4a32d56c9e782f17578565d90b22ce531e3d8667
      Reviewed-on: https://go-review.googlesource.com/c/143677Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      7c2718b1
  3. 21 Oct, 2018 1 commit
  4. 20 Oct, 2018 1 commit