1. 21 May, 2018 10 commits
  2. 20 May, 2018 1 commit
    • Keith Randall's avatar
      runtime: use libc for nanotime on Darwin · cc09212f
      Keith Randall authored
      Use mach_absolute_time and mach_timebase_info to get nanosecond-level
      timing information from libc on Darwin.
      
      The conversion code from Apple's arbitrary time unit to nanoseconds is
      really annoying.  It would be nice if we could replace the internal
      runtime "time" with arbitrary units and put the conversion to nanoseconds
      only in the places that really need it (so it isn't in every nanotime call).
      
      It's especially annoying because numer==denom==1 for all the machines
      I tried.  Makes it hard to test the conversion code :(
      
      Update #17490
      
      Change-Id: I6c5d602a802f5c24e35184e33d5e8194aa7afa86
      Reviewed-on: https://go-review.googlesource.com/110655
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      cc09212f
  3. 19 May, 2018 2 commits
    • Keith Randall's avatar
      runtime: fix darwin 386/amd64 stack switches · e86c2678
      Keith Randall authored
      A few libc_ calls were missing stack switches.
      
      Unfortunately, adding the stack switches revealed a deeper problem.
      systemstack() is fundamentally flawed because when you do
      
          systemstack(func() { ... })
      
      There's no way to mark the anonymous function as nosplit.  At first I
      thought it didn't matter, as that function runs on the g0 stack.  But
      nosplit is still required, because some syscalls are done when stack
      bounds are not set up correctly (e.g. in a signal handler, which runs
      on the g0 stack, but g is still pointing at the g stack).  Instead use
      asmcgocall and funcPC, so we can be nosplit all the way down.
      
      Mid-stack inlining now pushes darwin over the nosplit limit also.
      Leaving that as a TODO.
      Update #23168
      
      This might fix the cause of occasional darwin hangs.
      Update #25181
      
      Update #17490
      
      Change-Id: If9c3ef052822c7679f5a1dd192443f714483327e
      Reviewed-on: https://go-review.googlesource.com/111258Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      e86c2678
    • Ali Rizvi-Santiago's avatar
      debug/pe: parse the import directory correctly · e9137299
      Ali Rizvi-Santiago authored
      This parses the import table properly which allows for debug/pe
      to extract import symbols from pecoffs linked with an import
      table in a section named something other than ".idata"
      
      The section names in a pecoff object aren't guaranteed to actually
      mean anything, so hardcoding a search for the ".idata" section
      is not guaranteed to find the import table in all shared libraries.
      This resulted in debug/pe being unable to read import symbols
      from some libraries.
      
      The proper way to locate the import table is to validate the
      number of data directory entries, locate the import entry, and
      then use the va to identify the section containing the import
      table. This patch does exactly this.
      
      Fixes #16103.
      
      Change-Id: I3ab6de7f896a0c56bb86c3863e504e8dd4c8faf3
      GitHub-Last-Rev: ce8077cb154f18ada7a86e152ab03de813937816
      GitHub-Pull-Request: golang/go#25193
      Reviewed-on: https://go-review.googlesource.com/110555
      Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarAlex Brainman <alex.brainman@gmail.com>
      e9137299
  4. 18 May, 2018 5 commits
  5. 17 May, 2018 7 commits
  6. 16 May, 2018 6 commits
  7. 15 May, 2018 6 commits
    • Rob Pike's avatar
      doc/contribute.html: English cleanups · 3868a371
      Rob Pike authored
      Fixes #24487
      
      Change-Id: Ic523e469f7f67f376edd2fca6e07d35bb11b2db9
      Reviewed-on: https://go-review.googlesource.com/113016Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      3868a371
    • Michael Munday's avatar
      cmd/compile: improve error message emitted by debug info generation · 3797f88f
      Michael Munday authored
      Before:
      
      unexpected at 2721:load with unexpected source op v3278unexpected at 2775:load with
      unexpected source op v3281unexpected at 2249:load with unexpected source op
      v3289unexpected at 2875:load with unexpected source op v3278unexpected at 2232:load
      with unexpected source op v286unexpected at 2231:load with unexpected source op
      v3291unexpected at 2784:load with unexpected source op v3289unexpected at 2785:load
      with unexpected source op v3291
      
      After:
      
      debug info generation: v2721: load with unexpected source op: Phi (v3278)
      debug info generation: v2775: load with unexpected source op: Phi (v3281)
      debug info generation: v2249: load with unexpected source op: Phi (v3289)
      debug info generation: v2875: load with unexpected source op: Phi (v3278)
      debug info generation: v2232: load with unexpected source op: Phi (v286)
      debug info generation: v2231: load with unexpected source op: Phi (v3291)
      debug info generation: v2784: load with unexpected source op: Phi (v3289)
      debug info generation: v2785: load with unexpected source op: Phi (v3291)
      
      Updates #25404.
      
      Change-Id: Ib97722848d27ca18bdcd482a610626bc3c6def7d
      Reviewed-on: https://go-review.googlesource.com/113275
      Run-TryBot: Michael Munday <mike.munday@ibm.com>
      Run-TryBot: Heschi Kreinick <heschi@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarHeschi Kreinick <heschi@google.com>
      3797f88f
    • Michael Munday's avatar
      vendor/golang_org/x/crypto: revendor · 212c9479
      Michael Munday authored
      This change updates the vendored copy of golang.org/x/crypto to
      commit 1a580b3eff7814fc9b40602fd35256c63b50f491.
      
      An import of golang.org/x/sys/cpu was replaced with an import of
      internal/cpu as required by
      https://github.com/golang/go/issues/24843#issuecomment-383194779.
      
      The following bash command can be used to replicate this import
      update:
      
      find `pwd` -name '*.go' -exec sed -i 's/golang\.org\/x\/sys\/cpu/internal\/cpu/g' '{}' \;
      
      Change-Id: Ic80d361f940a96c70e4196f594d791c63421d73c
      Reviewed-on: https://go-review.googlesource.com/113175Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      212c9479
    • isharipo's avatar
      mime: do a pre-allocation in encodeWord · 3fb3ca08
      isharipo authored
      The preallocated memory size is comparable to bytes.Buffer bootstraping
      array length (bytes.Buffer was used before rewrite to strings.Builder).
      
      Without preallocation, encodeWord does more than one allocation for
      almost any possible input.
      
      The regression happens because bytes.Buffer did a 80-bytes allocation
      at the beginning of encodeWord while strings.Builder did several
      smaller allocations (started with cap=0).
      
      Comparison with reported regression:
      
        name           old time/op    new time/op    delta
        QEncodeWord-4     781ns ± 1%     593ns ± 1%  -24.08%  (p=0.008 n=5+5)
      
        name           old alloc/op   new alloc/op   delta
        QEncodeWord-4      152B ± 0%       80B ± 0%  -47.37%  (p=0.008 n=5+5)
      
        name           old allocs/op  new allocs/op  delta
        QEncodeWord-4      5.00 ± 0%      2.00 ± 0%  -60.00%  (p=0.008 n=5+5)
      
      Comparison with buffer solution (like before strings.Builder, but
      without sync pool for buffer re-using):
      
        name           old time/op    new time/op    delta
        QEncodeWord-4     595ns ± 1%     593ns ± 1%     ~     (p=0.460 n=5+5)
      
        name           old alloc/op   new alloc/op   delta
        QEncodeWord-4      160B ± 0%       80B ± 0%  -50.00%  (p=0.008 n=5+5)
      
        name           old allocs/op  new allocs/op  delta
        QEncodeWord-4      2.00 ± 0%      2.00 ± 0%     ~     (all equal)
      
      We avoid allocation in buf.String(), as expected.
      
      Fixes #25379
      
      Change-Id: I19763f0e593a27390c1a549b86ce6507b489046b
      Reviewed-on: https://go-review.googlesource.com/113235
      Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      3fb3ca08
    • Richard Musiol's avatar
      misc/wasm: fix passing large negative integers from JS to Go · 73b59513
      Richard Musiol authored
      This commit addresses a FIXME left in the code of wasm_exec.js to
      properly get the upper 32 bit of a JS number to be stored as an
      64-bit integer. A bitshift operation is not possible, because in
      JavaScript bitshift operations only operate on the lower 32 bits.
      
      Change-Id: I8f627fd604e592682d9d322942a4852db64a7f66
      Reviewed-on: https://go-review.googlesource.com/113076Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      73b59513
    • Richard Musiol's avatar
      misc/wasm: pollute global JS namespace less · db91ee36
      Richard Musiol authored
      This commit changes wasm_exec.js so it only puts the single
      name "go" into the global namespace. Other names became private
      or were turned into a property/method of "go".
      
      Change-Id: I633829dfd3c06936f092c0a14b9978bf855e41fe
      Reviewed-on: https://go-review.googlesource.com/112980Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: 's avatarAgniva De Sarker <agniva.quicksilver@gmail.com>
      db91ee36
  8. 14 May, 2018 3 commits
    • Elias Naur's avatar
      net: skip socket hungry test on iOS · 3027932a
      Elias Naur authored
      The iOS builder recently gained access to the GO_BUILDER_NAME
      environment variable, which in turn enabled some net tests that
      were previously guarded by testenv.Builder() == "". Some such tests
      have been disabled because they don't work; others have increased
      the pressure on open file descriptors, pushing the low iOS limit of
      250.
      
      Since many net tests run with t.Parallel(), the "too many open files"
      error hit many different tests, so instead of playing whack-a-mole,
      lower the file descriptor demand by skipping the most file
      descriptor hungry test, TestTCPSpuriousConnSetupCompletionWithCancel.
      
      Before:
      
      $ GO_BUILDER_NAME=darwin-arm64 GOARCH=arm64 go test -short -v net
      ...
      Socket statistical information:
      ...
      (inet4, stream, default): opened=5245 connected=193 listened=75 accepted=177 closed=5399 openfailed=0 connectfailed=5161 listenfailed=0 acceptfailed=143 closefailed=0
      ...
      
      After:
      
      $ GO_BUILDER_NAME=darwin-arm64 GOARCH=arm64 go test -short -v net
      ...
      Socket statistical information:
      ...
      (inet4, stream, default): opened=381 connected=194 listened=75 accepted=169 closed=547 openfailed=0 connectfailed=297 listenfailed=0 acceptfailed=134 closefailed=0
      ...
      
      Fixes #25365 (Hopefully).
      
      Change-Id: I8343de1b687ffb79001a846b1211df7aadd0535b
      Reviewed-on: https://go-review.googlesource.com/113095
      Run-TryBot: Elias Naur <elias.naur@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarHyang-Ah Hana Kim <hyangah@gmail.com>
      3027932a
    • David du Colombier's avatar
      cmd/compile: skip TestStmtLines on Plan 9 · 218650fa
      David du Colombier authored
      TestStmtLines has been added in CL 102435.
      This test is failing on Plan 9 because executables
      don't have a DWARF symbol table.
      
      Fixes #25387.
      
      Change-Id: I6ae7cba0e8ad4ab569a29ea8920b7849acfb9846
      Reviewed-on: https://go-review.googlesource.com/113115
      Run-TryBot: David du Colombier <0intro@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarDavid Chase <drchase@google.com>
      218650fa
    • David Chase's avatar
      cmd/compile: remove now-irrelevant test · eeff8fa4
      David Chase authored
      This test measures "line churn" which was minimized to help
      improve the debugger experience.  With proper is_stmt markers,
      this is no longer necessary, and it is more accurate (for
      profiling) to allow line numbers to vary willy-nilly.
      
      "Debugger experience" is now better measured by
      cmd/compile/internal/ssa/debug_test.go
      
      This CL made the obsoleting change:
      https://go-review.googlesource.com/c/go/+/102435
      
      Change-Id: I874ab89f3b243b905aaeba7836118f632225a667
      Reviewed-on: https://go-review.googlesource.com/113155
      Run-TryBot: David Chase <drchase@google.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      eeff8fa4