1. 05 Oct, 2018 12 commits
  2. 04 Oct, 2018 19 commits
    • Jason Keene's avatar
      cmd/go: ensure git attributes are set · 1bca6cec
      Jason Keene authored
      This change disables the export-subst and export-ignore attributes when
      creating zip files for modules. This is done to prevent the ziphash for
      a given repo/revision from differing based on variables such as git
      version or size of repo. The full rational for this change is detailed
      here:
      
          https://github.com/golang/go/issues/27153#issuecomment-420763082
      
      Fixes #27153
      
      Change-Id: Ib33f525d91d2581fa0b5d26e70d29620c7e685e9
      Reviewed-on: https://go-review.googlesource.com/c/135175
      Run-TryBot: Bryan C. Mills <bcmills@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBryan C. Mills <bcmills@google.com>
      1bca6cec
    • Mikio Hara's avatar
      vendor: update golang_org/x/net/route from upstream · fa179eb8
      Mikio Hara authored
      Updates the route package to git rev 68fc911 for:
      - 68fc911 re-adjust routing message alignment for FreeBSD 386 emulation
      - 4dfa261 fix typos in comments
      - ae89d30 avoid unnecessary type conversions
      
      Change-Id: I915e614e464acf85a8fc80f36f05a85a9246bb01
      Reviewed-on: https://go-review.googlesource.com/c/139817
      Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      fa179eb8
    • Ben Shi's avatar
      cmd/internal/obj/arm64: simplify ADD and SUB · 80818620
      Ben Shi authored
      Currently "ADD $0x123456, Rs, Rd" will load pre-stored 0x123456
      from the constant pool and use it for the addition. Total 12 bytes
      are cost. And so does SUB.
      
      This CL breaks it to "ADD 0x123000, Rs, Rd" + "ADD 0x000456, Rd, Rd".
      Both "0x123000" and "0x000456" can be directly encoded into the
      instruction binary code. So 4 bytes are saved.
      
      1. The total size of pkg/android_arm64 decreases about 0.3KB.
      
      2. The go1 benchmark show little regression (excluding noise).
      
      name                     old time/op    new time/op    delta
      BinaryTree17-4              15.9s ± 0%     15.9s ± 1%  +0.10%  (p=0.044 n=29+29)
      Fannkuch11-4                8.72s ± 0%     8.75s ± 0%  +0.34%  (p=0.000 n=30+24)
      FmtFprintfEmpty-4           173ns ± 0%     173ns ± 0%    ~     (all equal)
      FmtFprintfString-4          368ns ± 0%     368ns ± 0%    ~     (p=0.593 n=30+30)
      FmtFprintfInt-4             417ns ± 0%     417ns ± 0%    ~     (all equal)
      FmtFprintfIntInt-4          673ns ± 0%     661ns ± 1%  -1.70%  (p=0.000 n=30+30)
      FmtFprintfPrefixedInt-4     805ns ± 0%     805ns ± 0%  +0.10%  (p=0.011 n=30+30)
      FmtFprintfFloat-4          1.09µs ± 0%    1.09µs ± 0%    ~     (p=0.125 n=30+29)
      FmtManyArgs-4              2.68µs ± 0%    2.68µs ± 0%  +0.07%  (p=0.004 n=30+30)
      GobDecode-4                32.9ms ± 0%    33.2ms ± 1%  +1.07%  (p=0.000 n=29+29)
      GobEncode-4                29.5ms ± 0%    29.6ms ± 0%  +0.26%  (p=0.000 n=28+28)
      Gzip-4                      1.38s ± 1%     1.35s ± 3%  -1.94%  (p=0.000 n=28+30)
      Gunzip-4                    139ms ± 0%     139ms ± 0%  +0.10%  (p=0.000 n=28+29)
      HTTPClientServer-4          745µs ± 5%     742µs ± 3%    ~     (p=0.405 n=28+29)
      JSONEncode-4               49.5ms ± 1%    49.9ms ± 0%  +0.89%  (p=0.000 n=30+30)
      JSONDecode-4                264ms ± 1%     264ms ± 0%  +0.25%  (p=0.001 n=30+30)
      Mandelbrot200-4            16.6ms ± 0%    16.6ms ± 0%    ~     (p=0.507 n=29+29)
      GoParse-4                  15.9ms ± 0%    16.0ms ± 1%  +0.91%  (p=0.002 n=23+30)
      RegexpMatchEasy0_32-4       379ns ± 0%     379ns ± 0%    ~     (all equal)
      RegexpMatchEasy0_1K-4      1.31µs ± 0%    1.31µs ± 0%  +0.09%  (p=0.008 n=27+30)
      RegexpMatchEasy1_32-4       357ns ± 0%     358ns ± 0%  +0.28%  (p=0.000 n=28+29)
      RegexpMatchEasy1_1K-4      2.04µs ± 0%    2.04µs ± 0%    ~     (p=0.850 n=30+30)
      RegexpMatchMedium_32-4      587ns ± 0%     589ns ± 0%  +0.33%  (p=0.000 n=30+30)
      RegexpMatchMedium_1K-4      162µs ± 0%     163µs ± 0%    ~     (p=0.351 n=30+29)
      RegexpMatchHard_32-4       9.54µs ± 0%    9.60µs ± 0%  +0.59%  (p=0.000 n=28+30)
      RegexpMatchHard_1K-4        287µs ± 0%     287µs ± 0%  +0.11%  (p=0.000 n=26+29)
      Revcomp-4                   2.50s ± 0%     2.50s ± 0%  -0.13%  (p=0.012 n=28+27)
      Template-4                  312ms ± 1%     312ms ± 1%  +0.20%  (p=0.015 n=27+30)
      TimeParse-4                1.68µs ± 0%    1.68µs ± 0%  -0.35%  (p=0.000 n=30+30)
      TimeFormat-4               1.66µs ± 0%    1.64µs ± 0%  -1.20%  (p=0.000 n=25+29)
      [Geo mean]                  246µs          246µs       -0.00%
      
      name                     old speed      new speed      delta
      GobDecode-4              23.3MB/s ± 0%  23.1MB/s ± 1%  -1.05%  (p=0.000 n=29+29)
      GobEncode-4              26.0MB/s ± 0%  25.9MB/s ± 0%  -0.25%  (p=0.000 n=29+28)
      Gzip-4                   14.1MB/s ± 1%  14.4MB/s ± 3%  +1.94%  (p=0.000 n=27+30)
      Gunzip-4                  139MB/s ± 0%   139MB/s ± 0%  -0.10%  (p=0.000 n=28+29)
      JSONEncode-4             39.2MB/s ± 1%  38.9MB/s ± 0%  -0.88%  (p=0.000 n=30+30)
      JSONDecode-4             7.37MB/s ± 0%  7.35MB/s ± 0%  -0.26%  (p=0.001 n=30+30)
      GoParse-4                3.65MB/s ± 0%  3.62MB/s ± 1%  -0.86%  (p=0.001 n=23+30)
      RegexpMatchEasy0_32-4    84.3MB/s ± 0%  84.3MB/s ± 0%    ~     (p=0.126 n=27+26)
      RegexpMatchEasy0_1K-4     784MB/s ± 0%   783MB/s ± 0%  -0.10%  (p=0.003 n=27+30)
      RegexpMatchEasy1_32-4    89.5MB/s ± 0%  89.3MB/s ± 0%  -0.20%  (p=0.000 n=27+29)
      RegexpMatchEasy1_1K-4     502MB/s ± 0%   502MB/s ± 0%    ~     (p=0.858 n=30+28)
      RegexpMatchMedium_32-4   1.70MB/s ± 0%  1.70MB/s ± 0%  -0.25%  (p=0.000 n=30+30)
      RegexpMatchMedium_1K-4   6.30MB/s ± 0%  6.30MB/s ± 0%    ~     (all equal)
      RegexpMatchHard_32-4     3.35MB/s ± 0%  3.33MB/s ± 0%  -0.47%  (p=0.000 n=30+30)
      RegexpMatchHard_1K-4     3.57MB/s ± 0%  3.56MB/s ± 0%  -0.20%  (p=0.000 n=27+30)
      Revcomp-4                 102MB/s ± 0%   102MB/s ± 0%  +0.14%  (p=0.008 n=28+28)
      Template-4               6.23MB/s ± 0%  6.21MB/s ± 1%  -0.21%  (p=0.009 n=21+30)
      [Geo mean]               24.1MB/s       24.0MB/s       -0.16%
      
      Change-Id: Ifcef3edb667540e2d86e586c23afcfbc2cf1340b
      Reviewed-on: https://go-review.googlesource.com/c/134536
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      80818620
    • Alberto Donizetti's avatar
      runtime: skip TestLldbPython when lldb is too old · d2170040
      Alberto Donizetti authored
      The TestLldbPython test is known to fail with very old lldb releases
      (3.8 and older). Skip the test when the lldb found on the system is
      too old.
      
      Fixes #22299
      
      Change-Id: I8f78d6c0d995118f806dae87f3f04a9726473116
      Reviewed-on: https://go-review.googlesource.com/c/139397Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      d2170040
    • Brad Fitzpatrick's avatar
      debug/pe: skip a test on windows/arm · 6d735371
      Brad Fitzpatrick authored
      It requires a DLL that's not available on windows/arm apparently.
      
      Fixes #27904
      
      Change-Id: I082a273f62976b7184636c6aeca6201a7871d238
      Reviewed-on: https://go-review.googlesource.com/c/139720
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarKatie Hockman <katie@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      6d735371
    • Plekhanov Maxim's avatar
      math: use Abs in Pow rather than if x < 0 { x = -x } · 47e71f3b
      Plekhanov Maxim authored
      name     old time/op  new time/op  delta
      PowInt   55.7ns ± 1%  53.4ns ± 2%  -4.15%  (p=0.000 n=9+9)
      PowFrac   133ns ± 1%   133ns ± 2%    ~     (p=0.587 n=8+9)
      
      Change-Id: Ica0f4c2cbd554f2195c6d1762ed26742ff8e3924
      Reviewed-on: https://go-review.googlesource.com/c/85375Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      47e71f3b
    • Plekhanov Maxim's avatar
      math: use Abs in Mod rather than if x < 0 { x = -x} · 497d2417
      Plekhanov Maxim authored
      goos: linux
      goarch: amd64
      pkg: math
      
      name  old time/op  new time/op  delta
      Mod   64.7ns ± 2%  63.7ns ± 2%  -1.52%  (p=0.003 n=8+10)
      
      Change-Id: I851bec0fd6c223dab73e4a680b7393d49e81a0e8
      Reviewed-on: https://go-review.googlesource.com/c/85095Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      497d2417
    • Brad Fitzpatrick's avatar
      os: make UserHomeDir specialize behavior for GOOS=android · f22c357a
      Brad Fitzpatrick authored
      Change-Id: I69582662aeee7344226856c24907516ddfc92f60
      Reviewed-on: https://go-review.googlesource.com/c/139717
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarElias Naur <elias.naur@gmail.com>
      f22c357a
    • Austin Clements's avatar
      runtime: clarify table of arena sizes · 4c1c839a
      Austin Clements authored
      Currently the table of arena sizes mixes the number of entries in the
      L1 with the size of the L2. While the size of the L2 is important,
      this makes it hard to see what's actually going on because there's an
      implicit factor of sys.PtrSize.
      
      This changes the L2 column to say both the number of entries and the
      size that results in. This should hopefully make the relations between
      the columns of the table clearer, since they can now be plugged
      directly into the given formula.
      
      Change-Id: Ie677adaef763b893a2f620bd4fc3b8db314b3a1e
      Reviewed-on: https://go-review.googlesource.com/c/139697Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      4c1c839a
    • Austin Clements's avatar
      runtime: don't double-zero treap nodes · 011b8eb6
      Austin Clements authored
      mheap_.treapalloc.alloc() already returns a zeroed treapNode. Don't
      bother re-zeroing all of the fields.
      
      Change-Id: Iea317040fbb72dfe5ef1e2c56c287680b065f2d9
      Reviewed-on: https://go-review.googlesource.com/c/139460
      Run-TryBot: Austin Clements <austin@google.com>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      011b8eb6
    • Tobias Klauser's avatar
      cmd/compile: regenerate known formats for TestFormats · 6606cd3d
      Tobias Klauser authored
      This fixes the build for long-running tests after CL 139338
      
      Change-Id: Ib8adfa785d41c736188e2ff7e14125de045b96b9
      Reviewed-on: https://go-review.googlesource.com/c/139637
      Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      6606cd3d
    • Robert Griesemer's avatar
      go/types: determine hasPtrRecv property from source rather than type · d6ab653c
      Robert Griesemer authored
      LookupFieldOrMethod needs to know if a method receiver is a pointer
      type. Until now this was computed from the the method signature's
      receiver, which required the method signature to be type-checked.
      Furthermore, it required the receiver to be set before the method
      signature was fully type-checked in some cases (see issue #6638).
      
      This CL remembers this property during object resolution, when we
      know it from the source.
      
      With this CL, method signatures don't need to be type-checked before
      they can be looked up; this is a first step towards separating
      type checking of types and type-checking of associated methods.
      
      Updates #23203.
      Updates #26854.
      
      Change-Id: Ie3eb7976e8fe8176ea1b284fa7471a4b7000f80b
      Reviewed-on: https://go-review.googlesource.com/c/139422
      Run-TryBot: Robert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAlan Donovan <adonovan@google.com>
      d6ab653c
    • Matthew Dempsky's avatar
      cmd/compile: merge TPTR32 and TPTR64 as TPTR · 62e5215a
      Matthew Dempsky authored
      Change-Id: I0490098a7235458c5aede1135426a9f19f8584a7
      Reviewed-on: https://go-review.googlesource.com/c/76312
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      62e5215a
    • Matthew Dempsky's avatar
      cmd/compile: handle TPTR32 like TPTR64 in smallintconst · d397d4bf
      Matthew Dempsky authored
      In preparation for followup CL merging TPTR32 and TPTR64, move TPTR32
      from the small-types fast path to the generic 64-bit fallback code so
      that it's in the same case clause as TPTR64.
      
      This should be safe, but theoretically it could change semantics
      because TPTR32 used to always be assumed to be "small", whereas now it
      will only be considered small for values less than 1<<31.
      
      This change is done in a separate CL so that it's more easily
      identified by git bisection in case it does introduce regressions.
      
      Change-Id: I6c7bb253d4e4d95c530a6e05a1147905674b55ca
      Reviewed-on: https://go-review.googlesource.com/c/139517
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      d397d4bf
    • Matthew Dempsky's avatar
      cmd/compile: remove pointer arithmetic · 5e8beed1
      Matthew Dempsky authored
      Change-Id: Ie4bab0b74d5a4e1aecd8501a48176b2e9a3d8c42
      Reviewed-on: https://go-review.googlesource.com/c/76311
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      5e8beed1
    • Kir Kolyshkin's avatar
      crypto/x509: fix getting user home dir on darwin · 2f1ef6be
      Kir Kolyshkin authored
      As pointed out in https://github.com/golang/go/issues/26463,
      HOME (or equivalent) environment variable (rather than the
      value obtained by parsing /etc/passwd or the like) should be
      used to obtain user's home directory.
      
      Since commit fa1a49aa there's a method to obtain
      user's home directory -- use it here.
      
      Change-Id: I852fbb24249bcfe08f3874fae6e7b9d01d869190
      Reviewed-on: https://go-review.googlesource.com/c/139426Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      2f1ef6be
    • Michael Fraenkel's avatar
      expvar: add Map.Delete · c6483b61
      Michael Fraenkel authored
      Fixes #13491
      
      Change-Id: Ic0525d8ee90f47d0d23c1485919aee13d2400494
      Reviewed-on: https://go-review.googlesource.com/c/139537
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      c6483b61
    • uropek's avatar
      test: fix spelling of `caught be the compiler` to `caught by the compiler` · f1973f31
      uropek authored
      Change-Id: Id21cdce35963dcdb96cc06252170590224c5aa17
      GitHub-Last-Rev: 429dad0ceba123415af308179d0d2aa9773e6323
      GitHub-Pull-Request: golang/go#28000
      Reviewed-on: https://go-review.googlesource.com/c/139424Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      f1973f31
    • Richard Musiol's avatar
      syscall: use asynchronous operations on js/wasm · 0e4c013b
      Richard Musiol authored
      This commit makes syscall on js/wasm use the asynchronous variants
      of functions in Node.js' fs module. This enables concurrency
      and allows the API of the fs module to be implemented with an
      alternative backend that only supports asynchronous operations.
      
      Updates #26051.
      
      Change-Id: Ibe1dcc988469fc11c3b8d8d49de439c12ddaafce
      Reviewed-on: https://go-review.googlesource.com/c/137236
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      0e4c013b
  3. 03 Oct, 2018 9 commits
    • Brad Fitzpatrick's avatar
      crypto/rand: warn to stderr if blocked 60+ sec on first Reader.Read call · 1961d8d7
      Brad Fitzpatrick authored
      Fixes #22614
      
      Change-Id: I220afbaaeab4dec6d59eeeef12107234a77f1587
      Reviewed-on: https://go-review.googlesource.com/c/139419Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      1961d8d7
    • Don Byington's avatar
      reflect: add an example for Kind · d16e4d34
      Don Byington authored
      Fixes #27990
      
      Change-Id: I0f09fc6f68cec770b1c26eed2315afbf6bf6cd4d
      GitHub-Last-Rev: 8486e6d5019c6c21b10e5fcf10a2727cf2705174
      GitHub-Pull-Request: golang/go#27991
      Reviewed-on: https://go-review.googlesource.com/c/139417
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      d16e4d34
    • Lynn Boger's avatar
      cmd/compile: add rules to use index regs for ppc64x · 85c9c859
      Lynn Boger authored
      The following adds support for load and store instructions
      with index registers, and adds rules to take advantage of
      those instructions.
      
      Examples of improvements:
      
      crypto/rc4:
      name     old time/op   new time/op   delta
      RC4_128    445ns ± 0%    404ns ± 0%   -9.21%  (p=0.029 n=4+4)
      RC4_1K    3.46µs ± 0%   3.13µs ± 0%   -9.29%  (p=0.029 n=4+4)
      RC4_8K    27.0µs ± 0%   24.7µs ± 0%   -8.83%  (p=0.029 n=4+4)
      
      crypto/des:
      name         old time/op    new time/op    delta
      Encrypt         276ns ± 0%     264ns ± 0%  -4.35%  (p=0.029 n=4+4)
      Decrypt         278ns ± 0%     263ns ± 0%  -5.40%  (p=0.029 n=4+4)
      TDESEncrypt     683ns ± 0%     645ns ± 0%  -5.56%  (p=0.029 n=4+4)
      TDESDecrypt     684ns ± 0%     641ns ± 0%  -6.29%  (p=0.029 n=4+4)
      
      crypto/sha1:
      name          old time/op    new time/op    delta
      Hash8Bytes       661ns ± 0%     635ns ± 0%  -3.93%  (p=1.000 n=1+1)
      Hash320Bytes    2.70µs ± 0%    2.56µs ± 0%  -5.26%  (p=1.000 n=1+1)
      Hash1K          7.14µs ± 0%    6.78µs ± 0%  -5.03%  (p=1.000 n=1+1)
      Hash8K          52.1µs ± 0%    49.4µs ± 0%  -5.14%  (p=1.000 n=1+1)
      
      Change-Id: I03810e90fcc20029975a323f06bfa086c973c2b0
      Reviewed-on: https://go-review.googlesource.com/c/135975
      Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMichael Munday <mike.munday@ibm.com>
      85c9c859
    • Brad Fitzpatrick's avatar
      os: add UserHomeDir · fa1a49aa
      Brad Fitzpatrick authored
      Fixes #26463
      
      Change-Id: Iaef1c7456ffaeadeead6027a37d09c44a3d05bd5
      Reviewed-on: https://go-review.googlesource.com/c/139418Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      fa1a49aa
    • Clément Chigot's avatar
      internal/syscall: add AIX operating system · 86e251c9
      Clément Chigot authored
      This commit adds AIX operating system to internal/syscall package for ppc64
      architecture.
      
      Updates: #25893
      
      Change-Id: I5c3a9d4403ca170a7e894e06e68b83387d09b816
      Reviewed-on: https://go-review.googlesource.com/c/138718
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      86e251c9
    • Martin Möhrmann's avatar
      strings: correctly handle invalid utf8 sequences in Map · f74de24f
      Martin Möhrmann authored
      When an invalid UTF-8 byte sequence is decoded in a range loop over a string
      a utf8.RuneError rune is returned. This is not distinguishable from decoding
      the valid '\uFFFD' sequence representing utf8.RuneError from a string without
      further checks within the range loop.
      
      The previous Map code did not do any extra checks and would thereby not map
      invalid UTF-8 byte sequences correctly when those were mapping to utf8.RuneError.
      
      Fix this by adding the extra checks necessary to distinguish the decoding
      of invalid utf8 byte sequences from decoding the sequence for utf8.RuneError
      when the mapping of a rune is utf8.RuneError.
      
      This fix does not result in a measureable performance regression:
      name                old time/op  new time/op  delta
      ByteByteMap         1.05µs ± 3%  1.03µs ± 3%   ~     (p=0.118 n=10+10)
      Map/identity/ASCII   169ns ± 2%   170ns ± 1%   ~     (p=0.501 n=9+10)
      Map/identity/Greek   298ns ± 1%   303ns ± 4%   ~     (p=0.338 n=10+10)
      Map/change/ASCII     323ns ± 3%   325ns ± 4%   ~     (p=0.679 n=8+10)
      Map/change/Greek     628ns ± 5%   635ns ± 1%   ~     (p=0.460 n=10+9)
      MapNoChanges         120ns ± 4%   119ns ± 1%   ~     (p=0.496 n=10+9)
      
      Fixes #26305
      
      Change-Id: I70e99fa244983c5040756fa4549ac1e8cb6022c3
      Reviewed-on: https://go-review.googlesource.com/c/131495Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      f74de24f
    • Clément Chigot's avatar
      internal/poll: add AIX operating system · 816e4934
      Clément Chigot authored
      This commit adds AIX operating system to internal/poll package for ppc64
      architecture.
      
      Updates: #25893
      
      Change-Id: I9b1da9255012de58f16547c1b18f8840485da170
      Reviewed-on: https://go-review.googlesource.com/c/138717
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      816e4934
    • Clément Chigot's avatar
      runtime: add AIX operating system · 9f78aa77
      Clément Chigot authored
      This commit adds AIX operating system to runtime package for ppc64
      architecture.
      
      Only new files and minor changes are in this commit. Others
      modifications in files like asm_ppc64.s  will be in separate commits.
      
      Updates: #25893
      
      Change-Id: I9c5e073f5f3debb43b004ad1167694a5afd31cfd
      Reviewed-on: https://go-review.googlesource.com/c/138716
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      9f78aa77
    • Austin Clements's avatar
      runtime: fix race between unminit and Windows profile loop · c216c3aa
      Austin Clements authored
      Currently, the Windows profile loop isn't robust against racing with
      unminit. For example,
      
      T1 is running profileloop1, T2 is another thread
      T1: thread := atomic.Loaduintptr(&T2.thread)
      T2: calls unminit, which does CloseHandle(T2.thread)
      T1: attempts to suspends T2
      
      In this case the SuspendThread will fail, but currently we ignore this
      failure and forge ahead, which will cause further failures and
      probably bad profile data.
      
      Handle this race by defending against SuspendThread failing. If
      SuspendThread succeeds, then we know the thread is no longer going
      anywhere.
      
      Change-Id: I4726553239b17f05ca07a0cf7df49631e0cb550d
      Reviewed-on: https://go-review.googlesource.com/c/129685
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAlex Brainman <alex.brainman@gmail.com>
      c216c3aa