1. 26 Apr, 2019 4 commits
    • Russ Cox's avatar
      net/url: document, test that PathEscape escapes / to %2F · a7dc6ca4
      Russ Cox authored
      I couldn't remember and couldn't tell from the docs,
      so I added a test and documented what I found.
      
      Change-Id: Ic5d837c2d620b15d7a831823e94e70080f5e5324
      Reviewed-on: https://go-review.googlesource.com/c/go/+/173948
      Run-TryBot: Russ Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      a7dc6ca4
    • Russ Cox's avatar
      cmd/go: make 'go version' apply to files · 216797b6
      Russ Cox authored
      Expand "go version" from printing just the version of the
      go command itself to being able to print the version of any
      go binary (when listed on the command line).
      
      This is a simplified version of rsc.io/goversion, which will
      now be deprecated in favor of "go version".
      
      (Preparatory changes to runtime, cmd/go, and cmd/link
      made this version information easier to find, allowing a
      much simpler implementation than in rsc.io/goversion.)
      
      Fixes #31624.
      
      Change-Id: I5f6f5b8392ce86a617e32ce287f6bf2aceafccff
      Reviewed-on: https://go-review.googlesource.com/c/go/+/173343
      Run-TryBot: Russ Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarJay Conrod <jayconrod@google.com>
      216797b6
    • Russ Cox's avatar
      cmd/link: make it easy to find binary versions · d6b06f02
      Russ Cox authored
      It is useful to be able to dig the Go version out of a binary,
      even a stripped binary. rsc.io/goversion does this for x86
      binaries by disassembling the binary to find runtime/proc.go's
      startup-time reference to runtime.buildVersion's address.
      That approach is quite fragile: the implementation doesn't
      work for non-x86 and must be updated as the generated
      code changes.
      
      rsc.io/goversion finds the module version string by looking
      for random 16-byte framing around the actual string.
      This is less fragile but fairly kludgy and requires scanning
      the entire data segment.
      
      cmd/buildid finds the build ID by looking for an ELF note
      or else falling back to scanning the beginning of the text
      segment for a magic string. This has proved quite reliable
      and doesn't require scanning much of the binary.
      
      This CL makes it possible to find the Go and module versions
      using a scan more like the build ID scan: a symbol early in
      the writable data segment starts with a magic number and
      then has pointers to the two string variables.
      
      Setting up for "go version <binary>".
      
      For #31624.
      
      Change-Id: I78ea8c52fe1686b5cc5a829ca5f198104d10ebf0
      Reviewed-on: https://go-review.googlesource.com/c/go/+/173342
      Run-TryBot: Russ Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarJay Conrod <jayconrod@google.com>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      d6b06f02
    • Russ Cox's avatar
      api: add recent Go 1.13 work · a62887aa
      Russ Cox authored
      Change-Id: I0d1048723057dff0caf2059ce2efd63eb953ed82
      Reviewed-on: https://go-review.googlesource.com/c/go/+/173947
      Run-TryBot: Russ Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      a62887aa
  2. 25 Apr, 2019 14 commits
  3. 24 Apr, 2019 16 commits
  4. 23 Apr, 2019 6 commits
    • sergey's avatar
      net/url: Reduce allocation on parsing URL func · 601eee39
      sergey authored
      Build result string via string.Builder to avoid allocation.
      As side effect some performance boots.
      
      name                 old time/op    new time/op    delta
      QueryUnescape/#00-4     114ns ± 0%      98ns ± 1%  -13.89%  (p=0.000 n=4+5)
      QueryUnescape/#01-4     401ns ± 2%     383ns ± 1%   -4.54%  (p=0.008 n=5+5)
      QueryUnescape/#02-4     300ns ± 2%     274ns ± 2%   -8.66%  (p=0.008 n=5+5)
      QueryUnescape/#03-4     564ns ± 2%     542ns ± 2%   -4.04%  (p=0.008 n=5+5)
      QueryUnescape/#04-4    3.27µs ± 2%    3.34µs ± 8%     ~     (p=0.690 n=5+5)
      PathUnescape/#00-4      112ns ± 2%      99ns ± 3%  -11.25%  (p=0.008 n=5+5)
      PathUnescape/#01-4      392ns ± 2%     374ns ± 6%     ~     (p=0.063 n=5+5)
      PathUnescape/#02-4      296ns ± 2%     274ns ± 2%   -7.43%  (p=0.008 n=5+5)
      PathUnescape/#03-4      556ns ± 2%     537ns ± 1%   -3.45%  (p=0.008 n=5+5)
      PathUnescape/#04-4     2.99µs ± 1%    3.00µs ± 1%     ~     (p=0.690 n=5+5)
      
      name                 old allocs/op  new allocs/op  delta
      QueryUnescape/#00-4      2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.008 n=5+5)
      QueryUnescape/#01-4      2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.008 n=5+5)
      QueryUnescape/#02-4      2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.008 n=5+5)
      QueryUnescape/#03-4      2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.008 n=5+5)
      QueryUnescape/#04-4      2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.008 n=5+5)
      PathUnescape/#00-4       2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.008 n=5+5)
      PathUnescape/#01-4       2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.008 n=5+5)
      PathUnescape/#02-4       2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.008 n=5+5)
      PathUnescape/#03-4       2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.008 n=5+5)
      PathUnescape/#04-4       2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.008 n=5+5)
      
      Change-Id: I7cba5eb53bebef7b1fdd44598eed47241ce83167
      Reviewed-on: https://go-review.googlesource.com/c/go/+/166463Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      601eee39
    • Matthew Dempsky's avatar
      cmd/compile: don't call hcrash in Warn · 24513d33
      Matthew Dempsky authored
      Fixes #31638.
      
      Change-Id: I748f64b48b75241a9db31c9f37555379a841677a
      Reviewed-on: https://go-review.googlesource.com/c/go/+/173443
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      24513d33
    • Brad Fitzpatrick's avatar
      net: don't crash on Windows when Lookup name has null byte in string · 2e118812
      Brad Fitzpatrick authored
      Fixes #31597
      
      Change-Id: I0db1f6f457632c49f9ecfa9d85b99b4cf7d91325
      Reviewed-on: https://go-review.googlesource.com/c/go/+/173362
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarAlex Brainman <alex.brainman@gmail.com>
      2e118812
    • Keith Randall's avatar
      Revert "cmd/compile: add signed divisibility by power of 2 rules" · 17615969
      Keith Randall authored
      This reverts CL 168038 (git 68819fb6)
      
      Reason for revert: Doesn't work on 32 bit archs.
      
      Change-Id: Idec9098060dc65bc2f774c5383f0477f8eb63a3d
      Reviewed-on: https://go-review.googlesource.com/c/go/+/173442Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      17615969
    • Bryan C. Mills's avatar
      cmd/go/internal/web: merge internal/web2 into web · 58de7c6d
      Bryan C. Mills authored
      The cmd/go/internal/web package was forked in order to support direct
      HTTPS fetches from widely-used hosting providers,¹ but direct fetches
      were subsequently dropped in CL 107657. The forked web2 package, with
      its GitHub-specific diagnostics and .netrc support, remained in use
      for module proxy support, but was not used for the initial '?go-get=1'
      path resolution, so the .netrc file was only used to fetch from
      already-resolved module protocol servers.
      
      This CL moves the .netrc support into its own (new) package,
      cmd/go/internal/auth, and consolidates the web and web2 packages back
      into just web. As a result, fetches via the web package now support
      .netrc, and fetches that previously used web2 now enforce the same
      security policies as web (such as prohibiting HTTPS-to-HTTP
      redirects).
      
      ¹https://github.com/golang/vgo/commit/63138cb6ceed7d6d4e51a8cbd568c64bd3e2b132
      
      Fixes #29591
      Fixes #29888
      Fixes #30610
      Updates #26232
      
      Change-Id: Ia3a13526e443679cf14a72a1f3db96f336ce5e73
      Reviewed-on: https://go-review.googlesource.com/c/go/+/170879
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      Reviewed-by: default avatarJay Conrod <jayconrod@google.com>
      58de7c6d
    • David Chase's avatar
      cmd/link: revert/revise CL 98075 because LLDB is very picky now · 807761f3
      David Chase authored
      This was originally
      
      Revert "cmd/link: fix up debug_range for dsymutil (revert CL 72371)"
      
      which has the effect of no longer using Base Address Selection
      Entries in DWARF.  However, the build-time costs of that are
      about 2%, so instead the hacky fixup that generated technically
      incorrect DWARF was removed from the linker, and the choice
      is instead made in the compiler, dependent on platform, but
      also under control of a flag so that we can report this bug
      against LLDB/dsymutil/dwarfdump (really, the LLVM dwarf
      libraries).
      
      This however does not solve #31188; debugging still fails,
      but dwarfdump no longer complains.  There are at least two
      LLDB bugs involved, and this change will at allow us
      to report them without them being rejected because our
      now-obsolete workaround for the first bug creates
      not-quite-DWARF.
      
      Updates #31188.
      
      Change-Id: I5300c51ad202147bab7333329ebe961623d2b47d
      Reviewed-on: https://go-review.googlesource.com/c/go/+/170638
      Run-TryBot: David Chase <drchase@google.com>
      Reviewed-by: default avatarHeschi Kreinick <heschi@google.com>
      807761f3