Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix #1

Merged
merged 546 commits into from
May 16, 2019
Merged

fix #1

merged 546 commits into from
May 16, 2019
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Apr 27, 2019

  1. cmd/compile: add unsigned divisibility rules

    "Division by invariant integers using multiplication" paper
    by Granlund and Montgomery contains a method for directly computing
    divisibility (x%c == 0 for c constant) by means of the modular inverse.
    The method is further elaborated in "Hacker's Delight" by Warren Section 10-17
    
    This general rule can compute divisibilty by one multiplication and a compare
    for odd divisors and an additional rotate for even divisors.
    
    To apply the divisibility rule, we must take into account
    the rules to rewrite x%c = x-((x/c)*c) and (x/c) for c constant on the first
    optimization pass "opt".  This complicates the matching as we want to match
    only in the cases where the result of (x/c) is not also available.
    So, we must match on the expanded form of (x/c) in the expression x == c*(x/c)
    in the "late opt" pass after common subexpresion elimination.
    
    Note, that if there is an intermediate opt pass introduced in the future we
    could simplify these rules by delaying the magic division rewrite to "late opt"
    and matching directly on (x/c) in the intermediate opt pass.
    
    Additional rules to lower the generic RotateLeft* ops were also applied.
    
    On amd64, the divisibility check is 25-50% faster.
    
    name                     old time/op  new time/op  delta
    DivconstI64-4            2.08ns ± 0%  2.08ns ± 1%     ~     (p=0.881 n=5+5)
    DivisibleconstI64-4      2.67ns ± 0%  2.67ns ± 1%     ~     (p=1.000 n=5+5)
    DivisibleWDivconstI64-4  2.67ns ± 0%  2.67ns ± 0%     ~     (p=0.683 n=5+5)
    DivconstU64-4            2.08ns ± 1%  2.08ns ± 1%     ~     (p=1.000 n=5+5)
    DivisibleconstU64-4      2.77ns ± 1%  1.55ns ± 2%  -43.90%  (p=0.008 n=5+5)
    DivisibleWDivconstU64-4  2.99ns ± 1%  2.99ns ± 1%     ~     (p=1.000 n=5+5)
    DivconstI32-4            1.53ns ± 2%  1.53ns ± 0%     ~     (p=1.000 n=5+5)
    DivisibleconstI32-4      2.23ns ± 0%  2.25ns ± 3%     ~     (p=0.167 n=5+5)
    DivisibleWDivconstI32-4  2.27ns ± 1%  2.27ns ± 1%     ~     (p=0.429 n=5+5)
    DivconstU32-4            1.78ns ± 0%  1.78ns ± 1%     ~     (p=1.000 n=4+5)
    DivisibleconstU32-4      2.52ns ± 2%  1.26ns ± 0%  -49.96%  (p=0.000 n=5+4)
    DivisibleWDivconstU32-4  2.63ns ± 0%  2.85ns ±10%   +8.29%  (p=0.016 n=4+5)
    DivconstI16-4            1.54ns ± 0%  1.54ns ± 0%     ~     (p=0.333 n=4+5)
    DivisibleconstI16-4      2.10ns ± 0%  2.10ns ± 1%     ~     (p=0.571 n=4+5)
    DivisibleWDivconstI16-4  2.22ns ± 0%  2.23ns ± 1%     ~     (p=0.556 n=4+5)
    DivconstU16-4            1.09ns ± 0%  1.01ns ± 1%   -7.74%  (p=0.000 n=4+5)
    DivisibleconstU16-4      1.83ns ± 0%  1.26ns ± 0%  -31.52%  (p=0.008 n=5+5)
    DivisibleWDivconstU16-4  1.88ns ± 0%  1.89ns ± 1%     ~     (p=0.365 n=5+5)
    DivconstI8-4             1.54ns ± 1%  1.54ns ± 1%     ~     (p=1.000 n=5+5)
    DivisibleconstI8-4       2.10ns ± 0%  2.11ns ± 0%     ~     (p=0.238 n=5+4)
    DivisibleWDivconstI8-4   2.22ns ± 0%  2.23ns ± 2%     ~     (p=0.762 n=5+5)
    DivconstU8-4             0.92ns ± 1%  0.94ns ± 1%   +2.65%  (p=0.008 n=5+5)
    DivisibleconstU8-4       1.66ns ± 0%  1.26ns ± 1%  -24.28%  (p=0.008 n=5+5)
    DivisibleWDivconstU8-4   1.79ns ± 0%  1.80ns ± 1%     ~     (p=0.079 n=4+5)
    
    A follow-up change will address the signed division case.
    
    Updates #30282
    
    Change-Id: I7e995f167179aa5c76bb10fbcbeb49c520943403
    Reviewed-on: https://go-review.googlesource.com/c/go/+/168037
    Run-TryBot: Brian Kessler <brian.m.kessler@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    bmkessler authored and randall77 committed Apr 27, 2019
    Configuration menu
    Copy the full SHA
    a28a942 View commit details
    Browse the repository at this point in the history
  2. cmd/link/internal/ld: consolidate macho platform setup

    Determine the macho platform once and use that the two places that
    need it. This makes it easier to add a third platform check for a
    follow-up change.
    
    Updates #31447
    
    Change-Id: I522a5fface647ab8e608f816c5832d531534df7a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174198
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    eliasnaur committed Apr 27, 2019
    Configuration menu
    Copy the full SHA
    a74e012 View commit details
    Browse the repository at this point in the history
  3. cmd/link/internal/ld,syscall: drop $INODE64 suffixes on simulators

    Some libc functions are suffixed with "$INODE64" on macOS.
    Unfortunately, the iOS simulator doesn't have the suffixes, so we can't
    use GOARCH to distinguish the two platform.
    
    Add linker support for adding the suffix, using the macho platform
    to determine whether it is needed.
    
    While here, add the correct suffix for fdopendir on 386. It's
    "$INODE64$UNIX2003", believe it or not. Without the suffix,
    
    GOARCH=386 go test -short syscall
    
    crashes on my Mojave machine.
    
    Fixes #31447
    
    Change-Id: I9bd3de40ece7df62f744bc24cd00909e56b00b78
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174199
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    eliasnaur committed Apr 27, 2019
    Configuration menu
    Copy the full SHA
    096ab3c View commit details
    Browse the repository at this point in the history
  4. cmd/link/internal/ld,syscall: replace getfsstat64 with getfsstat

    getfsstat64 is deprecated but not yet caught by the App Store checks.
    Use the supported getfsstat$INODE64 form instead to ensure forward
    compatibility.
    
    Change-Id: I0d97e8a8b254debb3de1cfcb3778dbed3702c249
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174200
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    Reviewed-by: Keith Randall <khr@golang.org>
    eliasnaur committed Apr 27, 2019
    Configuration menu
    Copy the full SHA
    4fdeb73 View commit details
    Browse the repository at this point in the history

Commits on Apr 28, 2019

  1. cmd/go/internal/renameio: use ERROR_ACCESS_DENIED to check for errors

    CL 172418 added code to check for "Access is denied" error.
    But "Access is denied" error will be spelled differently on
    non-English version of Windows.
    
    Check if error is ERROR_ACCESS_DENIED instead.
    
    Updates #31247
    
    Change-Id: I7b1633013d563f7c06c1f12a9be75122106834f9
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174123
    Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
    alexbrainman committed Apr 28, 2019
    Configuration menu
    Copy the full SHA
    e85d619 View commit details
    Browse the repository at this point in the history
  2. syscall: allow setting security attributes on processes

    This allows creating processes that can only be debugged/accessed by
    certain tokens, according to a particular security descriptor. We
    already had everything ready for this but just neglected to pass through
    the value from the user-accessible SysProcAttr.
    
    Change-Id: I4a3fcc9f5078aa0058b26c103355c984093ae03f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174197
    Run-TryBot: Jason Donenfeld <Jason@zx2c4.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
    zx2c4 authored and alexbrainman committed Apr 28, 2019
    Configuration menu
    Copy the full SHA
    049c8db View commit details
    Browse the repository at this point in the history
  3. runtime: remove spurious register loads for openbsd/amd64 kqueue

    The kqueue system call takes no arguments, hence there should be no need
    to zero the registers used for the first syscall arguments.
    
    Change-Id: Ia79b2d4f4d568bb6795cb885e1464cf1fc2bf7c7
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174128
    Run-TryBot: Benny Siegert <bsiegert@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Benny Siegert <bsiegert@gmail.com>
    4a6f656c authored and bsiegert committed Apr 28, 2019
    Configuration menu
    Copy the full SHA
    6b69230 View commit details
    Browse the repository at this point in the history
  4. cmd/compile: intrinsify math/bits.Add64 for ppc64x

    This change creates an intrinsic for Add64 for ppc64x and adds a
    testcase for it.
    
    name               old time/op  new time/op  delta
    Add64-160          1.90ns ±40%  2.29ns ± 0%     ~     (p=0.119 n=5+5)
    Add64multiple-160  6.69ns ± 2%  2.45ns ± 4%  -63.47%  (p=0.016 n=4+5)
    
    Change-Id: I9abe6fb023fdf62eea3c9b46a1820f60bb0a7f97
    Reviewed-on: https://go-review.googlesource.com/c/go/+/173758
    Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com>
    Run-TryBot: Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
    ceseo committed Apr 28, 2019
    Configuration menu
    Copy the full SHA
    50ad094 View commit details
    Browse the repository at this point in the history

Commits on Apr 29, 2019

  1. runtime: whitelist debugCall32..debugCall65536 in debugCallCheck

    Whitelists functions debugCall32 through debugCall65536 in
    runtime.debugCallCheck so that any instruction inside those functions
    is considered a safe point.
    This is useful for implementing nested function calls.
    
    For example when evaluating:
    
    	f(g(x))
    
    The debugger should:
    
    1. initiate the call to 'f' until the entry point of 'f',
    2. complete the call to 'g(x)'
    3. copy the return value of 'g(x)' in the arguments of 'f'
    4. complete the call to 'f'
    
    Similarly for:
    
    	f().amethod()
    
    The debugger should initiate the call to '.amethod()', then initiate
    and complete the call to f(), copy the return value to the arguments
    of '.amethod()' and finish its call.
    However in this example, unlike the other example, it may be
    impossible to determine the entry point of '.amethod()' until after
    'f()' is evaluated, which means that the call to 'f()' needs to be
    initiated while stopped inside a debugCall... function.
    
    Change-Id: I575c23542709cedb1a171d63576f7e11069c7674
    Reviewed-on: https://go-review.googlesource.com/c/go/+/161137
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Heschi Kreinick <heschi@google.com>
    aarzilli authored and aclements committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    d016330 View commit details
    Browse the repository at this point in the history
  2. strconv: Document ParseFloat's special cases

    Updates #30990
    
    Change-Id: I968fb13251ab3796328089046a3f0fc5c7eb9df9
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174204
    Reviewed-by: Benny Siegert <bsiegert@gmail.com>
    Run-TryBot: Benny Siegert <bsiegert@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    msoedov authored and bsiegert committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    203b80a View commit details
    Browse the repository at this point in the history
  3. cmd/go: implement Go checksum database support

    This CL adds support for consulting the Go checksum database
    when downloading a module that is not already listed in go.sum.
    The overall system is described at golang.org/design/25530-sumdb,
    and this CL implements the functionality described specifically in
    golang.org/design/25530-sumdb#command-client.
    
    Although the eventual plan is to set GOPROXY and GOSUMDB to
    default to a Google-run proxy serving the public Go ecosystem,
    this CL leaves them off by default.
    
    Fixes #30601.
    
    Change-Id: Ie46140f93c6cc2d85573fbce0878a258819ff44d
    Reviewed-on: https://go-review.googlesource.com/c/go/+/173951
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    rsc committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    3cf1d77 View commit details
    Browse the repository at this point in the history
  4. encoding/json: add a Fuzz function

    Adds a sample Fuzz test function to package encoding/json following the
    guidelines defined in #31309, based on
    https://github.com/dvyukov/go-fuzz-corpus/blob/master/json/json.go
    
    Fixes #31309
    Updates #19109
    
    Change-Id: I5fe04d9a5f41c0de339f8518dae30896ec14e356
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174058
    Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Dmitry Vyukov <dvyukov@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Romain Baugue authored and bradfitz committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    45ed3db View commit details
    Browse the repository at this point in the history
  5. all: remove a few unused parameters

    I recently modified tabwriter to reduce the number of defers due to
    flush calls. However, I forgot to notice that the new function
    flushNoDefers can no longer return an error, due to the lack of the
    defer.
    
    In crypto/tls, hashForServerKeyExchange never returned a non-nil error,
    so simplify the code.
    
    Finally, in go/types and net we can find a few trivially unused
    parameters, so remove them.
    
    Change-Id: I54c8de83fbc944df432453b55c93008d7e810e61
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174131
    Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Benny Siegert <bsiegert@gmail.com>
    mvdan committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    a27ede0 View commit details
    Browse the repository at this point in the history
  6. net/http: remove "number:" from Response.Status string

    The behavior of Value.String method on non-string JavaScript types has
    changed after CL 169757.
    
    Update the implementation of Transport.RoundTrip method to construct the
    Response.Status string without relying on result.Get("status").String(),
    since that now returns strings like "<number: 200>" instead of "200".
    
    Fixes #31736
    
    Change-Id: I27b3e6cc95aa65fd1918b1400e88478a154aad12
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174218
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Richard Musiol <neelance@gmail.com>
    dmitshur committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    db1514c View commit details
    Browse the repository at this point in the history
  7. cmd/link/internal/s390x: fix s390x build

    Fix breakage from CL 173437
    
    Change-Id: If218ffaa1259fbdee641143ffbe4b38030c373b9
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174278
    Reviewed-by: Michael Munday <mike.munday@ibm.com>
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    bradfitz committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    76659e4 View commit details
    Browse the repository at this point in the history
  8. net: correct docs of KeepAlive field in Dialer type

    KeepAlive field used to report the wording "keep-alive period"
    which may be misleading. This field does not represent the whole
    TCP keepalive time, that is the inactivity period upon which one
    endpoint starts probing the other end. But it acctually specifies
    the keepalive interval, that is the time between two keepalive
    probes.
    
    Fixes #29089
    
    Change-Id: If99b38ba108830d0e5fe527171a2f5c96a3bcde7
    Reviewed-on: https://go-review.googlesource.com/c/go/+/155960
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    gmichelo authored and bradfitz committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    cbf90b0 View commit details
    Browse the repository at this point in the history
  9. misc/wasm: fix command line arguments containing multi-byte characters

    Command line arguments containing multi-byte characters were causing
    go_js_wasm_exec to crash (RangeError: Source is too large), because
    their byte length was not handled correctly. This change fixes the bug.
    
    Fixes #31645.
    
    Change-Id: I7860ebf5b12da37d9d0f43d4b6a22d326a90edaf
    Reviewed-on: https://go-review.googlesource.com/c/go/+/173877
    Run-TryBot: Richard Musiol <neelance@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    neelance authored and bradfitz committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    9308637 View commit details
    Browse the repository at this point in the history
  10. runtime: initialise cpu.HWCap on openbsd/arm64

    OpenBSD does not provide auxv, however we still need to initialise cpu.HWCap.
    For now initialise it to the bare minimum, until some form of CPU capability
    detection is implemented or becomes available - see issue #31746.
    
    Updates #31656
    
    Change-Id: I68c3c069319fe60dc873f46def2a67c9f3d937d5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174129
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    4a6f656c authored and bradfitz committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    08b956f View commit details
    Browse the repository at this point in the history
  11. runtime: support all as parameter in gdb goroutine commands.

    For example, can use `goroutine all bt` to dump all goroutines'
    information.
    
    Change-Id: I51b547c2b837913e4bdabf0f45b28f09250a3e34
    GitHub-Last-Rev: d04dcd4
    GitHub-Pull-Request: #26283
    Reviewed-on: https://go-review.googlesource.com/c/go/+/122589
    Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
    Reviewed-by: David Chase <drchase@google.com>
    haosdent authored and dr2chase committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    8c1f785 View commit details
    Browse the repository at this point in the history
  12. os/exec: always set SYSTEMROOT on Windows if not listed in Cmd.Env

    Fixes #25210
    
    Change-Id: If27b61776154dae9b9b67bf4e4f5faa785d98105
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174318
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    bradfitz committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    06c9ccd View commit details
    Browse the repository at this point in the history
  13. runtime/cgo: ignore missing Info.plist files on iOS

    When running Go programs on Corellium virtual iPhones, the Info.plist
    files might not exist. Ignore the error.
    
    Updates #31722
    
    Change-Id: Id2e315c09346b69dda9e10cf29fb5dba6743aac4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174202
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    eliasnaur committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    6ee8324 View commit details
    Browse the repository at this point in the history
  14. syscall: don't return EINVAL on zero Chmod mode on Windows

    Fixes #20858
    
    Change-Id: I45c397795426aaa276b20f5cbeb80270c95b920c
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174320
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    bradfitz committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    2b8cbc3 View commit details
    Browse the repository at this point in the history
  15. testing: delay flag registration; move to an Init function

    Any code that imports the testing package forces the testing flags to be
    defined, even in non-test binaries. People work around this today by
    defining a copy of the testing.TB interface just to avoid importing
    testing.
    
    Fix this by moving flag registration into a new function, testing.Init.
    Delay calling Init until the testing binary begins to run, in
    testing.MainStart.
    
    Init is exported for cases where users need the testing flags to be
    defined outside of a "go test" context. In particular, this may be
    needed where testing.Benchmark is called outside of a test.
    
    Fixes #21051
    
    Change-Id: Ib7e02459e693c26ae1ba71bbae7d455a91118ee3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/173722
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    cespare authored and bradfitz committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    fbc6a97 View commit details
    Browse the repository at this point in the history
  16. runtime: make mmap return 0 instead of -1 on aix/ppc64

    Most of the platforms are returning 0 instead of -1 when mmap syscalls
    is failing. This patch corrects it for AIX in order to fix
    TestMmapErrorSign and to improve AIX compatibility.
    
    Change-Id: I1dad88d0e69163ad55c504b2b4a997892fd876cd
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174297
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    Clément Chigot authored and ianlancetaylor committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    d5014ec View commit details
    Browse the repository at this point in the history
  17. cmd/go: add XCOFF format handler for go version

    Change-Id: Ib102ae95acfd89fc3c9942a4ec82c74362f62045
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174299
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    Clément Chigot authored and ianlancetaylor committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    ccbc9a3 View commit details
    Browse the repository at this point in the history
  18. runtime: account for callbacks in checkdead on Windows

    When a callback runs on a different thread in Windows, as in the
    runtime package test TestCallbackInAnotherThread, it will use the
    extra M. That can cause the test in checkdead to fail incorrectly.
    Check whether there actually is an extra M before expecting it.
    
    I think this is a general problem unrelated to timers. I think the test
    was passing previously because the timer goroutine was using an M.
    But I haven't proved that. This change seems correct, and it avoids
    the test failure when using the new timers on Windows.
    
    Updates #27707
    
    Change-Id: Ieb31c04ff0354d6fae7e173b59bcfadb8b0464cd
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174037
    Reviewed-by: Keith Randall <khr@golang.org>
    ianlancetaylor committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    98c5a56 View commit details
    Browse the repository at this point in the history
  19. cmd,runtime: enable cgo for openbsd/arm64

    Updates #31656.
    
    Change-Id: Ide6f829282fcdf20c67998b766a201a6a92c3035
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174132
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    4a6f656c authored and bradfitz committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    998cc2a View commit details
    Browse the repository at this point in the history
  20. cmd/compile: evaluate map initializers incrementally

    For the code:
    
    m := map[int]int {
      a(): b(),
      c(): d(),
      e(): f(),
    }
    
    We used to do:
    
    t1 := a()
    t2 := b()
    t3 := c()
    t4 := d()
    t5 := e()
    t6 := f()
    m := map[int]int{}
    m[t1] = t2
    m[t3] = t4
    m[t5] = t6
    
    After this CL we do:
    
    m := map[int]int{}
    t1 := a()
    t2 := b()
    m[t1] = t2
    t3 := c()
    t4 := d()
    m[t3] = t4
    t5 := e()
    t6 := f()
    m[t5] = t6
    
    Ordering the initialization this way limits the lifetime of the
    temporaries involved.  In particular, for large maps the number of
    simultaneously live temporaries goes from ~2*len(m) to ~2. This change
    makes the compiler (regalloc, mostly) a lot happier. The compiler runs
    faster and uses a lot less memory.
    
    For #26546, changes compile time of a big map from 8 sec to 0.5 sec.
    
    Fixes #26552
    
    Update #26546
    
    Change-Id: Ib7d202dead3feaf493a464779fd9611c63fcc25f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174417
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Matthew Dempsky <mdempsky@google.com>
    randall77 committed Apr 29, 2019
    Configuration menu
    Copy the full SHA
    ee59c06 View commit details
    Browse the repository at this point in the history

Commits on Apr 30, 2019

  1. cmd/go: add test of $GONOPROXY, $GONOSUMDB behavior

    Change-Id: I8a4917ce14ea22d5991226e485d43a9c9312950e
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174219
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    rsc committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    d021dd6 View commit details
    Browse the repository at this point in the history
  2. encoding/json: fix Unmarshal hang on recursive pointers

    indirect walks down v until it gets to a non-pointer. But it does not
    handle the case when v is a pointer to itself, like in:
    
    	var v interface{}
    	v = &v
    	Unmarshal(b, v)
    
    So just stop immediately if we see v is a pointer to itself.
    
    Fixes #31740
    
    Change-Id: Ie396264119e24d70284cd9bf76dcb2050babb069
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174337
    Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    cuonglm authored and mvdan committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    dcb8482 View commit details
    Browse the repository at this point in the history
  3. runtime: do not use heap arena hints on wasm

    The address space of WebAssembly's linear memory is contiguous, so
    requesting specific addresses is not supported. Do not use heap arena
    hints so we do not have unused memory ranges.
    
    This fixes go1 benchmarks on wasm which ran out of memory since
    https://golang.org/cl/170950.
    
    Change-Id: I70115b18dbe43abe16dd5f57996343d97bf94760
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174203
    Run-TryBot: Richard Musiol <neelance@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    neelance authored and Richard Musiol committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    c2d9eea View commit details
    Browse the repository at this point in the history
  4. cmd/internal/obj/wasm: cache SP in a local

    We use Wasm global variables extensively for simulating
    registers, especially SP. V8 does not handle global variables
    efficiently.
    
    This CL reduces global variable accesses by caching the global SP
    in a local variable in each function. The local cache is set on
    function entry and updated after each call (where the stack could
    have moved). Within a function, the SP access will use the local
    variable.
    
    Supersedes https://golang.org/cl/173979.
    
    Running on Chrome Version 73.0.3683.103 on darwin/amd64:
    
    name                   old time/op    new time/op     delta
    BinaryTree17              15.3s ± 2%      14.5s ± 3%   -5.20%  (p=0.000 n=9+10)
    Fannkuch11                8.91s ± 2%      9.48s ± 2%   +6.41%  (p=0.000 n=9+10)
    FmtFprintfEmpty           197ns ± 5%      165ns ± 3%  -16.09%  (p=0.000 n=9+8)
    FmtFprintfString          354ns ± 8%      325ns ± 7%   -8.33%  (p=0.001 n=10+10)
    FmtFprintfInt             400ns ± 4%      368ns ± 6%   -8.01%  (p=0.000 n=10+10)
    FmtFprintfIntInt          618ns ± 3%      587ns ± 6%   -4.97%  (p=0.001 n=10+10)
    FmtFprintfPrefixedInt     637ns ± 4%      606ns ± 4%   -4.88%  (p=0.000 n=10+10)
    FmtFprintfFloat           965ns ± 7%      898ns ± 4%   -6.97%  (p=0.000 n=10+10)
    FmtManyArgs              2.34µs ± 1%     2.24µs ± 3%   -4.40%  (p=0.000 n=9+10)
    GobDecode                29.8ms ± 3%     28.8ms ± 6%   -3.60%  (p=0.006 n=9+10)
    GobEncode                20.5ms ± 8%     17.6ms ± 3%  -14.32%  (p=0.000 n=10+10)
    Gzip                      714ms ± 3%      718ms ± 8%     ~     (p=0.971 n=10+10)
    Gunzip                    148ms ± 3%      136ms ± 3%   -7.99%  (p=0.000 n=10+9)
    HTTPClientServer          219µs ± 3%      215µs ± 4%     ~     (p=0.190 n=10+10)
    JSONEncode               35.1ms ± 2%     31.8ms ±13%   -9.52%  (p=0.002 n=10+10)
    JSONDecode                220ms ± 3%      207ms ± 5%   -5.87%  (p=0.000 n=10+10)
    Mandelbrot200            5.22ms ± 1%     5.11ms ± 4%   -2.11%  (p=0.027 n=8+10)
    GoParse                  17.2ms ± 6%     16.1ms ± 5%   -6.63%  (p=0.000 n=10+9)
    RegexpMatchEasy0_32       375ns ± 3%      340ns ± 3%   -9.25%  (p=0.000 n=10+10)
    RegexpMatchEasy0_1K      2.70µs ± 3%     2.65µs ± 4%     ~     (p=0.118 n=10+10)
    RegexpMatchEasy1_32       341ns ± 2%      305ns ± 4%  -10.62%  (p=0.000 n=9+10)
    RegexpMatchEasy1_1K      3.20µs ± 3%     2.99µs ± 3%   -6.35%  (p=0.000 n=10+10)
    RegexpMatchMedium_32      520ns ± 3%      501ns ± 4%   -3.64%  (p=0.002 n=9+10)
    RegexpMatchMedium_1K      145µs ± 7%      128µs ± 3%  -11.57%  (p=0.000 n=9+10)
    RegexpMatchHard_32       7.88µs ± 3%     7.01µs ± 5%  -10.97%  (p=0.000 n=10+10)
    RegexpMatchHard_1K        237µs ± 5%      207µs ± 4%  -12.71%  (p=0.000 n=9+10)
    Revcomp                   2.34s ± 1%      2.31s ± 5%     ~     (p=0.230 n=7+10)
    Template                  261ms ± 7%      246ms ± 5%   -5.93%  (p=0.007 n=10+10)
    TimeParse                1.47µs ± 3%     1.39µs ± 5%   -5.75%  (p=0.000 n=9+10)
    TimeFormat               1.52µs ± 3%     1.43µs ± 4%   -6.42%  (p=0.000 n=8+10)
    
    name                   old speed      new speed       delta
    GobDecode              25.7MB/s ± 3%   26.7MB/s ± 5%   +3.77%  (p=0.006 n=9+10)
    GobEncode              37.5MB/s ± 8%   43.7MB/s ± 3%  +16.61%  (p=0.000 n=10+10)
    Gzip                   27.2MB/s ± 3%   27.0MB/s ± 7%     ~     (p=0.971 n=10+10)
    Gunzip                  131MB/s ± 3%    142MB/s ± 5%   +8.07%  (p=0.000 n=10+10)
    JSONEncode             55.2MB/s ± 2%   61.2MB/s ±12%  +10.80%  (p=0.002 n=10+10)
    JSONDecode             8.84MB/s ± 3%   9.39MB/s ± 5%   +6.28%  (p=0.000 n=10+10)
    GoParse                3.37MB/s ± 6%   3.61MB/s ± 5%   +7.09%  (p=0.000 n=10+9)
    RegexpMatchEasy0_32    85.3MB/s ± 3%   94.0MB/s ± 3%  +10.20%  (p=0.000 n=10+10)
    RegexpMatchEasy0_1K     379MB/s ± 3%    387MB/s ± 4%     ~     (p=0.123 n=10+10)
    RegexpMatchEasy1_32    93.9MB/s ± 2%  105.1MB/s ± 4%  +11.96%  (p=0.000 n=9+10)
    RegexpMatchEasy1_1K     320MB/s ± 3%    342MB/s ± 3%   +6.79%  (p=0.000 n=10+10)
    RegexpMatchMedium_32   1.92MB/s ± 2%   2.00MB/s ± 3%   +3.94%  (p=0.001 n=9+10)
    RegexpMatchMedium_1K   7.09MB/s ± 6%   8.01MB/s ± 3%  +13.00%  (p=0.000 n=9+10)
    RegexpMatchHard_32     4.06MB/s ± 3%   4.56MB/s ± 5%  +12.38%  (p=0.000 n=10+10)
    RegexpMatchHard_1K     4.32MB/s ± 4%   4.96MB/s ± 4%  +14.60%  (p=0.000 n=9+10)
    Revcomp                 109MB/s ± 1%    110MB/s ± 5%     ~     (p=0.219 n=7+10)
    Template               7.44MB/s ± 8%   7.91MB/s ± 5%   +6.30%  (p=0.007 n=10+10)
    
    Change-Id: I5828cf6b23ce104c02addc2642aba48dd6c48aab
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174062
    Run-TryBot: Richard Musiol <neelance@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    neelance authored and Richard Musiol committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    203e188 View commit details
    Browse the repository at this point in the history
  5. cmd/go/internal/modfetch: fix concurrent read/write race in modfetch

    On Windows systems, the failure rate for cmd/go's TestScript/mod_concurrent
    is somewhere around 3-10% without this change. With the change, I have yet
    to see a failure.
    
    Fixes #31744.
    
    Change-Id: Ib321ebb9556dd8438086cf329dfa083a9e051732
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174439
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    rsc committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    8e28cd1 View commit details
    Browse the repository at this point in the history
  6. encoding/csv: add a Fuzz function

    Adds a sample Fuzz test function to package encoding/csv based on
    https://github.com/dvyukov/go-fuzz-corpus/blob/master/csv/main.go
    
    Updates #19109
    Updates #31309
    
    Change-Id: Ieb0cb6caa1df72dbb7e29df4bdeed0bfa91187d3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174302
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    elwinar authored and bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    858064f View commit details
    Browse the repository at this point in the history
  7. cmd/go: say to confirm import path when it's not found

    Fixes #31366.
    
    Change-Id: Ief26f53e7fe94bedb7db79d3d7130c4cdcec4281
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174179
    Run-TryBot: Jay Conrod <jayconrod@google.com>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    tbpg authored and Jay Conrod committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    12aec55 View commit details
    Browse the repository at this point in the history
  8. html: add a Fuzz function

    Adds a sample Fuzz test function to package html based on
    https://github.com/dvyukov/go-fuzz-corpus/blob/master/stdhtml/main.go
    
    Updates #19109
    Updates #31309
    
    Change-Id: I8c49fff8f70fc8a8813daf1abf0044752003adbb
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174301
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    elwinar authored and bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    4ad1355 View commit details
    Browse the repository at this point in the history
  9. cmd/dist: disable cgo for darwin/386

    Fixes #31751
    
    Change-Id: Id002f14557a34accc3597cb1b9a42e838a027da4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174497
    Reviewed-by: Keith Randall <khr@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    e0ac75d View commit details
    Browse the repository at this point in the history
  10. runtime: implement pthread functions for darwin/arm64

    They were not needed when Go only produced binaries with cgo suppport.
    Now that Go is about to run self-hosted on iOS we do need these.
    
    Updates #31722
    
    Change-Id: If233aa2b31edc7b1c2dcac68974f9fba0604f9a3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174300
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    eliasnaur committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    9f12e2e View commit details
    Browse the repository at this point in the history
  11. cmd/link: add .go.buildinfo in XCOFF symbol table

    .go.buildinfo must be added to the symbol table on AIX. Otherwise, ld
    won't be able to handle its relocations.
    
    This patch also make ".data" the default section for all symbols inside
    the data segment.
    
    Change-Id: I83ac2bf1050e0ef6ef9c96ff793efd4ddc8e98d7
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174298
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Clément Chigot authored and bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    0c9e0c2 View commit details
    Browse the repository at this point in the history
  12. all: add new GOOS=illumos, split out of GOOS=solaris

    Like GOOS=android which implies the "linux" build tag, GOOS=illumos
    implies the "solaris" build tag. This lets the existing ecosystem of
    packages still work on illumos, but still permits packages to start
    differentiating between solaris and illumos.
    
    Fixes #20603
    
    Change-Id: I8f4eabf1a66060538dca15d7658c1fbc6c826622
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174457
    Run-TryBot: Benny Siegert <bsiegert@gmail.com>
    Reviewed-by: Benny Siegert <bsiegert@gmail.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Joshua M. Clulow authored and bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    f686a28 View commit details
    Browse the repository at this point in the history
  13. runtime: fix data sizes for res_search results

    The return values are 32 bit, not 64 bit.
    
    I don't think this would be the cause of any problems, but
    it can't hurt to fix it.
    
    Change-Id: Icdd50606360ab9d74070271f9d1721d5fe640bc7
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174518
    Run-TryBot: Keith Randall <khr@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    randall77 committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    1fd1408 View commit details
    Browse the repository at this point in the history
  14. cmd/go/internal/modcmd: allow mod download without go.mod

    Fixes #29522
    
    Change-Id: I48f3a945d24c23c7c7ef5c7f1fe5046b6b2898e9
    Reviewed-on: https://go-review.googlesource.com/c/go/+/157937
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    oiooj authored and Bryan C. Mills committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    a8d0047 View commit details
    Browse the repository at this point in the history
  15. all: refer to map elements as elements instead of values

    The spec carefully and consistently uses "key" and "element"
    as map terminology. The implementation, not so much.
    
    This change attempts to make the implementation consistently
    hew to the spec's terminology. Beyond consistency, this has
    the advantage of avoid some confusion and naming collisions,
    since v and value are very generic and commonly used terms.
    
    I believe that I found all everything, but there are a lot of
    non-obvious places for these to hide, and grepping for them is hard.
    Hopefully this change changes enough of them that we will start using
    elem going forward. Any remaining hidden cases can be removed ad hoc
    as they are discovered.
    
    The only externally-facing part of this change is in package reflect,
    where there is a minor doc change and a function parameter name change.
    
    Updates #27167
    
    Change-Id: I2f2d78f16c360dc39007b9966d5c2046a29d3701
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174523
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    josharian committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    73cb9a1 View commit details
    Browse the repository at this point in the history
  16. encoding/gob: adding missing fuzz skip to one of the fuzz tests

    It's slow & often times out randomly on longtest builders. Not useful.
    
    Fixes #31517
    
    Change-Id: Icedbb0c94fbe43d04e8b47d5785ac61c5e2d8750
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174522
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    55d690d View commit details
    Browse the repository at this point in the history
  17. cmd/dist: set the default external linker on platforms without gcc

    The go tool already sets -extld to the appropriate compiler. This
    CL changes cmd/dist to do the same, to fix bootstrapping on platforms
    that only have clang (Android and iOS).
    
    Updates #31722
    
    Change-Id: I8a4fd227f85a768053a8946198eab68bbbdf9ae5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174305
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    eliasnaur committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    d7edc91 View commit details
    Browse the repository at this point in the history
  18. cmd/dist: detect GOHOSTARCH on iOS

    cmd/dist defaults to GOHOSTARCH=amd64 on darwin because no other
    darwin host could build Go. With the upcoming self-hosted iOS
    builders, GOHOSTARCH=arm64 is also possible.
    
    Updates #31722
    
    Change-Id: I9af47d9f8c57ea45475ce498acefbfe6bf4815b9
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174306
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    eliasnaur committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    888bac1 View commit details
    Browse the repository at this point in the history
  19. cmd/go: derive executable name from package path in 'go run'

    Change name of temporary executable on go run . to directory name.
    Fixes #31571
    
    Change-Id: I0a0ce74154e76205bb43805c95bd7fb8fd2dfd01
    GitHub-Last-Rev: e096498
    GitHub-Pull-Request: #31614
    Reviewed-on: https://go-review.googlesource.com/c/go/+/173297
    Run-TryBot: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    Liberatys authored and Jay Conrod committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    62ddf7d View commit details
    Browse the repository at this point in the history
  20. time: look for zoneinfo.zip in GOROOT

    The zoneinfo.zip file will be in the $GOROOT in self-hsoted builds
    on iOS.
    
    Updates #31722
    
    Change-Id: I991fae92e3dc50581b099a2d8901aed36ecc7cef
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174310
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    eliasnaur committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    8e4f1a7 View commit details
    Browse the repository at this point in the history
  21. cmd/go: query modules in parallel

    Refactor modload.QueryPackage and modload.QueryPattern to share code.
    
    Fine-tune error reporting and make it consistent between QueryPackage and QueryPattern.
    
    Expand tests for pattern errors.
    
    Update a TODO in modget/get.go and add a test case that demonstrates it.
    
    Updates #26232
    
    Change-Id: I900ca8de338ef9a51b7f85ed93d8bcf837621646
    Reviewed-on: https://go-review.googlesource.com/c/go/+/173017
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    Bryan C. Mills committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    c66ab9b View commit details
    Browse the repository at this point in the history
  22. net/http: make Server return 501 for unsupported transfer-encodings

    Ensures that our HTTP/1.X Server properly responds
    with a 501 Unimplemented as mandated by the spec at
    RFC 7230 Section 3.3.1, which says:
        A server that receives a request message with a
        transfer coding it does not understand SHOULD
        respond with 501 (Unimplemented).
    
    Fixes #30710
    
    Change-Id: I096904e6df053cd1e4b551774cc27523ff3d09f6
    Reviewed-on: https://go-review.googlesource.com/c/go/+/167017
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    odeke-em authored and bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    88548d0 View commit details
    Browse the repository at this point in the history
  23. cmd/go,cmd/internal/sys,cmd/link: skip Go build ids for externally li…

    …nked tools
    
    cmd/go already skips build ids on Android where buildmode=pie is
    forced. Expand the check to all externally linked tools.
    
    Necessary for self-hosted iOS builds where PIE is not forced but
    external linking is.
    
    Updates #31722
    
    Change-Id: Iad796a9411a37eb0c44d365b70a3c5907537e461
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174307
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    eliasnaur committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    8bde43e View commit details
    Browse the repository at this point in the history
  24. cmd/go/internal/modfetch/codehost: disable fetch of server-resolved c…

    …ommit hash
    
    We cannot rely on the server to filter out the refs we don't want
    (we only want refs/heads/* and refs/tags/*), so do not give it
    the full hash.
    
    Fixes #31191.
    
    Change-Id: If1208c35954228aa6e8734f8d5f1725d0ec79c87
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174517
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    rsc committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    70b890c View commit details
    Browse the repository at this point in the history
  25. cmd/compile: remove dynamic entry handling from sinit/maplit

    The order pass now handles all the dynamic entries.
    
    Update #26552
    
    Followup to CL 174417
    
    Change-Id: Ie924cadb0e0ba36c423868f654f13040100b44c6
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174498
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Matthew Dempsky <mdempsky@google.com>
    randall77 committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    85387aa View commit details
    Browse the repository at this point in the history
  26. os: fix tests on self-hosted Go builds

    Updates #31722
    
    Change-Id: I467bb2539f993fad642abf96388a58a263fbe007
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174311
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    eliasnaur committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    08318f5 View commit details
    Browse the repository at this point in the history
  27. cmd/asm: reject BSWAPW on amd64

    Since BSWAP operation on 16-bit registers is undefined,
    forbid the usage of BSWAPW. Users should rely on XCHGB instead.
    
    This behavior is consistent with what GAS does.
    
    Fixes #29167
    
    Change-Id: I3b31e3dd2acfd039f7564a1c17e6068617bcde8d
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174312
    Run-TryBot: Iskander Sharipov <quasilyte@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    quasilyte authored and bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    720af3c View commit details
    Browse the repository at this point in the history
  28. cmd/compile: fix line numbers for index panics

    In the statement x = a[i], the index panic should appear to come from
    the line number of the '['. Previous to this CL we sometimes used the
    line number of the '=' instead.
    
    Fixes #29504
    
    Change-Id: Ie718fd303c1ac2aee33e88d52c9ba9bcf220dea1
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174617
    Run-TryBot: Keith Randall <khr@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    randall77 committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    e7d08b6 View commit details
    Browse the repository at this point in the history
  29. cmd/compile: add signed divisibility rules

    "Division by invariant integers using multiplication" paper
    by Granlund and Montgomery contains a method for directly computing
    divisibility (x%c == 0 for c constant) by means of the modular inverse.
    The method is further elaborated in "Hacker's Delight" by Warren Section 10-17
    
    This general rule can compute divisibilty by one multiplication, and add
    and a compare for odd divisors and an additional rotate for even divisors.
    
    To apply the divisibility rule, we must take into account
    the rules to rewrite x%c = x-((x/c)*c) and (x/c) for c constant on the first
    optimization pass "opt".  This complicates the matching as we want to match
    only in the cases where the result of (x/c) is not also needed.
    So, we must match on the expanded form of (x/c) in the expression x == c*(x/c)
    in the "late opt" pass after common subexpresion elimination.
    
    Note, that if there is an intermediate opt pass introduced in the future we
    could simplify these rules by delaying the magic division rewrite to "late opt"
    and matching directly on (x/c) in the intermediate opt pass.
    
    On amd64, the divisibility check is 30-45% faster.
    
    name                     old time/op  new time/op  delta`
    DivisiblePow2constI64-4  0.83ns ± 1%  0.82ns ± 0%     ~     (p=0.079 n=5+4)
    DivisibleconstI64-4      2.68ns ± 1%  1.87ns ± 0%  -30.33%  (p=0.000 n=5+4)
    DivisibleWDivconstI64-4  2.69ns ± 1%  2.71ns ± 3%     ~     (p=1.000 n=5+5)
    DivisiblePow2constI32-4  1.15ns ± 1%  1.15ns ± 0%     ~     (p=0.238 n=5+4)
    DivisibleconstI32-4      2.24ns ± 1%  1.20ns ± 0%  -46.48%  (p=0.016 n=5+4)
    DivisibleWDivconstI32-4  2.27ns ± 1%  2.27ns ± 1%     ~     (p=0.683 n=5+5)
    DivisiblePow2constI16-4  0.81ns ± 1%  0.82ns ± 1%     ~     (p=0.135 n=5+5)
    DivisibleconstI16-4      2.11ns ± 2%  1.20ns ± 1%  -42.99%  (p=0.008 n=5+5)
    DivisibleWDivconstI16-4  2.23ns ± 0%  2.27ns ± 2%   +1.79%  (p=0.029 n=4+4)
    DivisiblePow2constI8-4   0.81ns ± 1%  0.81ns ± 1%     ~     (p=0.286 n=5+5)
    DivisibleconstI8-4       2.13ns ± 3%  1.19ns ± 1%  -43.84%  (p=0.008 n=5+5)
    DivisibleWDivconstI8-4   2.23ns ± 1%  2.25ns ± 1%     ~     (p=0.183 n=5+5)
    
    Fixes #30282
    Fixes #15806
    
    Change-Id: Id20d78263a4fdfe0509229ae4dfa2fede83fc1d0
    Reviewed-on: https://go-review.googlesource.com/c/go/+/173998
    Run-TryBot: Brian Kessler <brian.m.kessler@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    bmkessler authored and bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    4d9dd35 View commit details
    Browse the repository at this point in the history
  30. cmd/go: make get -u upgrade only modules providing packages

    Currently, 'go get -u' upgrades modules matching command line
    arguments and any modules they transitively require. 'go get -u' with
    no positional arguments upgrades all modules transitively required by
    the main module. This usually adds a large number of indirect
    requirements, which is surprising to users.
    
    With this change, 'go get' will load packages specified by
    its arguments using a similar process to other commands
    ('go build', etc). Only modules providing packages will be upgraded.
    
    'go get -u' now upgrades modules providing packages transitively
    imported by the command-line arguments. 'go get -u' without arguments
    will only upgrade modules needed by the package in the current
    directory.
    
    'go get -m' will load all packages within a module. 'go get -m -u'
    without arguments will upgrade modules needed by the main module. It
    is equivalent to 'go get -u all'. Neither command will upgrade modules
    that are required but not used.
    
    Note that 'go get -m' and 'go get -d' both download modules in order
    to load packages.
    
    Fixes #26902
    
    Change-Id: I2bad686b3ca8c9de985a81fb42b16a36bb4cc3ea
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174099
    Run-TryBot: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Russ Cox <rsc@golang.org>
    Jay Conrod committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    65b89c3 View commit details
    Browse the repository at this point in the history
  31. syscall: on wasm, do not use typed array asynchronously

    The underlying buffer of a typed array becomes invalid as soon as we
    grow the WebAssembly memory, which can happen at any time while Go code
    runs. This is a known limitation, see https://golang.org/cl/155778.
    
    As a consequence, using a typed array with one of the asynchronous
    read/write operations of Node.js' fs module is dangerous, since it may
    become invalid while the asynchronous operation has not finished yet.
    The result of this situation is most likely undefined.
    
    I am not aware of any nice solution to this issue, so this change adds
    a workaround of using an additional typed array which is not backed by
    WebAssembly memory and copying the bytes between the two typed arrays.
    
    Maybe WebAssembly will come up with a better solution in the future.
    
    Fixes #31702.
    
    Change-Id: Iafc2a0fa03c81db414520bd45a1a17c00080b61e
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174304
    Run-TryBot: Richard Musiol <neelance@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    neelance authored and bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    6505b48 View commit details
    Browse the repository at this point in the history
  32. net/http: add Transport.ReadBufferSize and WriteBufferSize

    Previously transport was using the hardcoded bufio.defaultBufSize
    (4096), limiting throughput and increasing cpu usage when uploading or
    downloading large files.
    
    Add options to allow users to configure the buffer sizes as needed.
    
    I tested the maximum benefit of this change by uploading data from
    /dev/zero to a server discarding the bytes. Here is an example upload
    using the default buffer size:
    
    $ time ./upload 10 https://localhost:8000/
    Uploaded 10.00g in 25.13 seconds (407.49m/s)
    
    real	0m25.135s
    user	0m5.167s
    sys	0m11.643s
    
    With this change, using 128k buffer size:
    
    $ time ./upload 10 https://localhost:8000/
    Uploaded 10.00g in 7.93 seconds (1291.51m/s)
    
    real	0m7.935s
    user	0m4.517s
    sys	0m2.603s
    
    In real world usage the difference will be smaller, depending on the
    local and remote storage and the network.
    
    See https://github.com/nirs/http-bench for more info.
    
    Fixes #22618
    
    Change-Id: Iac99ed839c7b95d6dc66602ba8fe1fc5b500c47c
    Reviewed-on: https://go-review.googlesource.com/c/go/+/76410
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    nirs authored and bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    c706d42 View commit details
    Browse the repository at this point in the history
  33. net/http: make Transport.MaxConnsPerHost work for HTTP/2

    Treat HTTP/2 connections as an ongoing persistent connection. When we
    are told there is no cached connections, cleanup the associated
    connection and host connection count.
    
    Fixes #27753
    
    Change-Id: I6b7bd915fc7819617cb5d3b35e46e225c75eda29
    Reviewed-on: https://go-review.googlesource.com/c/go/+/140357
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    fraenkel authored and bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    43b9fcf View commit details
    Browse the repository at this point in the history
  34. internal/cpu: add detection for the new ECDSA and EDDSA capabilities …

    …on s390x
    
    This CL will check for the Message-Security-Assist Extension 9 facility
    which enables the KDSA instruction.
    
    Change-Id: I659aac09726e0999ec652ef1f5983072c8131a48
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174529
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    wgo authored and bradfitz committed Apr 30, 2019
    Configuration menu
    Copy the full SHA
    ba978f5 View commit details
    Browse the repository at this point in the history

Commits on May 1, 2019

  1. net: set DNSError.IsTemporary from addrinfoErrno errors

    Today it is not possible (AFAICT) to detect if a DNSError if of type EAI_AGAIN, i.e. if it is something temporary that should be retried. This information is available inside addrinfoErrno but when the DNSError is created this information is lost.
    
    This PR fixes this so that the addinfoErrno.Temporary information is added to DNSError as well. With that a user who gets a DNSError can check now is its a temporary error (for errors that resulted from a addrinfoErrno this is EAI_AGAIN).
    
    Change-Id: I64badb2ebd904e41fc2e0755416f7f32560534d8
    GitHub-Last-Rev: ced7238
    GitHub-Pull-Request: #31676
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174557
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    mvo5 authored and bradfitz committed May 1, 2019
    Configuration menu
    Copy the full SHA
    7ee2213 View commit details
    Browse the repository at this point in the history
  2. os,time: fix tests on iOS

    When fixing tests for for self-hosted iOS builds, I
    broke hosted builds.
    
    Updates #31722
    
    Change-Id: Id4e7d234fbd86cb2d29d320d75f4441efd663d12
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174698
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    eliasnaur committed May 1, 2019
    Configuration menu
    Copy the full SHA
    b39daa7 View commit details
    Browse the repository at this point in the history
  3. test: enable more memcombine tests for ppc64le

    This enables more of the testcases in memcombine for ppc64le,
    and adds more detail to some existing.
    
    Change-Id: Ic522a1175bed682b546909c96f9ea758f8db247c
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174737
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    laboger committed May 1, 2019
    Configuration menu
    Copy the full SHA
    e30aa16 View commit details
    Browse the repository at this point in the history
  4. runtime: change the span allocation policy to first-fit

    This change modifies the treap implementation to be address-ordered
    instead of size-ordered, and further augments it so it may be used for
    allocation. It then modifies the find method to implement a first-fit
    allocation policy.
    
    This change to the treap implementation consequently makes it so that
    spans are scavenged in highest-address-first order without any
    additional changes to the scavenging code. Because the treap itself is
    now address ordered, and the scavenging code iterates over it in
    reverse, the highest address is now chosen instead of the largest span.
    
    This change also renames the now wrongly-named "scavengeLargest" method
    on mheap to just "scavengeLocked" and also fixes up logic in that method
    which made assumptions about size.
    
    For #30333.
    
    Change-Id: I94b6f3209211cc1bfdc8cdaea04152a232cfbbb4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/164101
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 1, 2019
    Configuration menu
    Copy the full SHA
    40036a9 View commit details
    Browse the repository at this point in the history
  5. go/internal/gccgoimporter: skip new test with aliases with old gccgo

    Add the issue31540 test to the list of tests that needs to be skipped
    with old copies of gccgo. Along the way, add an explicit field to the
    importer test struct that can be used to tag the test (as opposed to
    having special cases by name in the test routine), so as to make it
    easier to remember to tag testcases correctly.
    
    Fixes #31764.
    
    Change-Id: Ib9d98fea2df8ce0b51e5a886fb2c4acd6db490ff
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174738
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    thanm committed May 1, 2019
    Configuration menu
    Copy the full SHA
    ab5cee5 View commit details
    Browse the repository at this point in the history
  6. cmd/compile/internal/ppc64: improve naming for ginsnop2

    This is a follow up from a review comment at the end of the last
    Go release, to provide a more meaningful name for ginsnop2.
    
    Updates #30475
    
    Change-Id: Ice9efd763bf2204a9e8c55ae230d3e8a80210108
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174757
    Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    laboger committed May 1, 2019
    Configuration menu
    Copy the full SHA
    b098c0f View commit details
    Browse the repository at this point in the history
  7. index/suffixarray: add 32-bit implementation

    The original index/suffixarray used 32-bit ints on 64-bit machines,
    because that's what 'int' meant in Go at the time. When we changed
    the meaning of int, that doubled the space overhead of suffix arrays
    for all uses, even though the vast majority of them describe less
    than 2 GB of text.
    
    The space overhead of a suffix array compared to the text is not
    insignificant: there's a big difference for many uses between 4X and 8X.
    
    This CL adjusts names in qsufsort.go so that a global search and
    replace s/32/64/g produces a working 64-bit implementation,
    and then it modifies suffixarray.go to choose between the 32-bit
    and 64-bit implementation as appropriate depending on the input size.
    The 64-bit implementation is generated by 'go generate'.
    
    This CL also restructures the benchmarks, to test different
    input sizes, different input texts, and 32-bit vs 64-bit.
    
    The serialized form uses varint-encoded numbers and is unchanged,
    so on-disk suffix arrays written by older versions of Go will be
    readable by this version, and vice versa.
    
    The 32-bit version runs a up to 17% faster than the 64-bit version
    on real inputs, but more importantly it uses 50% less memory.
    
    I have a followup CL that also implements a faster algorithm
    on top of these improvements, but these are a good first step.
    
    name                                  64-bit speed   32-bit speed    delta
    New/text=opticks/size=100K/bits=*-12  4.44MB/s ± 0%  4.64MB/s ± 0%   +4.41%  (p=0.008 n=5+5)
    New/text=opticks/size=500K/bits=*-12  3.70MB/s ± 1%  3.82MB/s ± 0%   +3.30%  (p=0.008 n=5+5)
    New/text=go/size=100K/bits=*-12       4.40MB/s ± 0%  4.61MB/s ± 0%   +4.82%  (p=0.008 n=5+5)
    New/text=go/size=500K/bits=*-12       3.66MB/s ± 0%  3.77MB/s ± 0%   +3.01%  (p=0.016 n=4+5)
    New/text=go/size=1M/bits=*-12         3.29MB/s ± 0%  3.55MB/s ± 0%   +7.90%  (p=0.016 n=5+4)
    New/text=go/size=5M/bits=*-12         2.25MB/s ± 1%  2.65MB/s ± 0%  +17.81%  (p=0.008 n=5+5)
    New/text=go/size=10M/bits=*-12        1.82MB/s ± 0%  2.09MB/s ± 1%  +14.36%  (p=0.008 n=5+5)
    New/text=go/size=50M/bits=*-12        1.35MB/s ± 0%  1.51MB/s ± 1%  +12.33%  (p=0.008 n=5+5)
    New/text=zero/size=100K/bits=*-12     3.42MB/s ± 0%  3.32MB/s ± 0%   -2.74%  (p=0.000 n=5+4)
    New/text=zero/size=500K/bits=*-12     3.00MB/s ± 1%  2.97MB/s ± 0%   -1.13%  (p=0.016 n=5+4)
    New/text=zero/size=1M/bits=*-12       2.81MB/s ± 0%  2.78MB/s ± 2%     ~     (p=0.167 n=5+5)
    New/text=zero/size=5M/bits=*-12       2.46MB/s ± 0%  2.53MB/s ± 0%   +3.18%  (p=0.008 n=5+5)
    New/text=zero/size=10M/bits=*-12      2.35MB/s ± 0%  2.42MB/s ± 0%   +2.98%  (p=0.016 n=4+5)
    New/text=zero/size=50M/bits=*-12      2.12MB/s ± 0%  2.18MB/s ± 0%   +3.02%  (p=0.008 n=5+5)
    New/text=rand/size=100K/bits=*-12     6.98MB/s ± 0%  7.22MB/s ± 0%   +3.38%  (p=0.016 n=4+5)
    New/text=rand/size=500K/bits=*-12     5.53MB/s ± 0%  5.64MB/s ± 0%   +1.92%  (p=0.008 n=5+5)
    New/text=rand/size=1M/bits=*-12       4.62MB/s ± 1%  5.06MB/s ± 0%   +9.61%  (p=0.008 n=5+5)
    New/text=rand/size=5M/bits=*-12       3.09MB/s ± 0%  3.43MB/s ± 0%  +10.94%  (p=0.016 n=4+5)
    New/text=rand/size=10M/bits=*-12      2.68MB/s ± 0%  2.95MB/s ± 0%  +10.39%  (p=0.008 n=5+5)
    New/text=rand/size=50M/bits=*-12      1.92MB/s ± 0%  2.06MB/s ± 1%   +7.41%  (p=0.008 n=5+5)
    SaveRestore/bits=*-12                  243MB/s ± 1%   259MB/s ± 0%   +6.68%  (p=0.000 n=9+10)
    
    name                               64-bit alloc/op  32-bit alloc/op  delta
    New/text=opticks/size=100K/bits=*-12    1.62MB ± 0%    0.81MB ± 0%  -50.00%  (p=0.000 n=5+4)
    New/text=opticks/size=500K/bits=*-12    8.07MB ± 0%    4.04MB ± 0%  -49.89%  (p=0.008 n=5+5)
    New/text=go/size=100K/bits=*-12         1.62MB ± 0%    0.81MB ± 0%  -50.00%  (p=0.008 n=5+5)
    New/text=go/size=500K/bits=*-12         8.07MB ± 0%    4.04MB ± 0%  -49.89%  (p=0.029 n=4+4)
    New/text=go/size=1M/bits=*-12           16.1MB ± 0%     8.1MB ± 0%  -49.95%  (p=0.008 n=5+5)
    New/text=go/size=5M/bits=*-12           80.3MB ± 0%    40.2MB ± 0%     ~     (p=0.079 n=4+5)
    New/text=go/size=10M/bits=*-12           160MB ± 0%      80MB ± 0%  -50.00%  (p=0.008 n=5+5)
    New/text=go/size=50M/bits=*-12           805MB ± 0%     402MB ± 0%  -50.06%  (p=0.029 n=4+4)
    New/text=zero/size=100K/bits=*-12       3.02MB ± 0%    1.46MB ± 0%     ~     (p=0.079 n=4+5)
    New/text=zero/size=500K/bits=*-12       19.7MB ± 0%     8.7MB ± 0%  -55.98%  (p=0.008 n=5+5)
    New/text=zero/size=1M/bits=*-12         39.0MB ± 0%    19.7MB ± 0%  -49.60%  (p=0.000 n=5+4)
    New/text=zero/size=5M/bits=*-12          169MB ± 0%      85MB ± 0%  -49.46%  (p=0.029 n=4+4)
    New/text=zero/size=10M/bits=*-12         333MB ± 0%     169MB ± 0%  -49.43%  (p=0.000 n=5+4)
    New/text=zero/size=50M/bits=*-12        1.63GB ± 0%    0.74GB ± 0%  -54.61%  (p=0.008 n=5+5)
    New/text=rand/size=100K/bits=*-12       1.61MB ± 0%    0.81MB ± 0%  -50.00%  (p=0.000 n=5+4)
    New/text=rand/size=500K/bits=*-12       8.07MB ± 0%    4.04MB ± 0%  -49.89%  (p=0.000 n=5+4)
    New/text=rand/size=1M/bits=*-12         16.1MB ± 0%     8.1MB ± 0%  -49.95%  (p=0.029 n=4+4)
    New/text=rand/size=5M/bits=*-12         80.7MB ± 0%    40.3MB ± 0%  -50.06%  (p=0.008 n=5+5)
    New/text=rand/size=10M/bits=*-12         161MB ± 0%      81MB ± 0%  -50.03%  (p=0.008 n=5+5)
    New/text=rand/size=50M/bits=*-12         806MB ± 0%     403MB ± 0%  -50.00%  (p=0.016 n=4+5)
    SaveRestore/bits=*-12                   9.47MB ± 0%    5.28MB ± 0%  -44.29%  (p=0.000 n=9+8)
    
    https://perf.golang.org/search?q=upload:20190126.1+|+bits:64+vs+bits:32
    
    Fixes #6816.
    
    Change-Id: Ied2fbea519a202ecc43719debcd233344ce38847
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174097
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 1, 2019
    Configuration menu
    Copy the full SHA
    45be353 View commit details
    Browse the repository at this point in the history
  8. runtime: look for idle p to run current goroutine when switching to G…

    …C or traceReader
    
    This repairs one of the several causes of pauses uncovered
    by a GC microbenchmark.  A pause can occur when a goroutine's
    quantum expires "at the same time" a GC is needed.  The
    current M switches to running a GC worker, which means that
    the amount of available work has expanded by one.  The GC
    worker, however, does not call ready, and does not itself
    conditionally wake a P (a "normal" thread would do this).
    
    This is also true if M switches to a traceReader.
    
    This is problem 4 in this list:
    #27732 (comment)
    
    Updates #27732.
    
    Change-Id: I6905365cac8504cde6faab2420f4421536551f0b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/146817
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    dr2chase committed May 1, 2019
    Configuration menu
    Copy the full SHA
    e56c73f View commit details
    Browse the repository at this point in the history
  9. cmd/go/internal/modfetch/codehost: fix pseudoversions for non-semver …

    …tags and tags on other branches
    
    Pseudoversion determination depends in part on the results from gitRepo.RecentTag, which currently invokes:
    
    git describe --first-parent --always --abbrev=0 --match <prefix>v[0-9]*.[0-9]*.[0-9]* --tags <rev>
    
    The comment at #27171 (comment) describes some problems with the current approach.
    
    One problem is Docker and other repos can have tags that are not valid semver tags but that still match a glob pattern of v[0-9]*.[0-9]*.[0-9]* which are found by 'git describe' but then rejected by cmd/go, and hence those repos currently can end up with v0.0.0 pseudoversions instead of finding a proper semver tag to use as input to building a pseudoversion  (when then causes problems when the v0.0.0 pseudoversion is fed into MVS). An example problematic tag is a date-based tag such as 'v18.06.16', which matches the glob pattern, but is not a valid semver tag (due to the leading 0 in '06').
    
    Issues #31673, #31287, and #27171 also describe problems where the '--first-parent' argument to 'git describe' cause the current approach to miss relevant semver tags that were created on a separate branch and then subsequently merged to master.
    
    In #27171, Bryan described the base tag that is supposed to be used for pseudoversions as:
    
    "It is intended to be the semantically-latest tag that appears on any commit that is a (transitive) parent of the commit with the given hash, regardless of branches. (The pseudo-version is supposed to sort after every version — tagged or otherwise — that came before it, but before the next tag that a human might plausibly want to apply to the branch.)"
    
    This CL solves the glob problem and tags-on-other-branches problem more directly than the current approach: this CL gets the full list of tags that have been merged into the specific revision of interest, and then sorts and filters the results in cmd/go to select the semantically-latest valid semver tag.
    
    Fixes #31673
    Fixes #31287
    Updates #27171
    
    Change-Id: I7c3e6b46b2b21dd60562cf2893b6bd2afaae61d5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174061
    Run-TryBot: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    leitzler authored and Jay Conrod committed May 1, 2019
    Configuration menu
    Copy the full SHA
    cbe2b14 View commit details
    Browse the repository at this point in the history
  10. cmd/go/internal/get: fix strayed verbose output on stdout

    Fixes #31768
    
    Change-Id: I3cc0ebc4be34d7c2d2d4fd655bfd0c2515ff3021
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174739
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    Run-TryBot: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    hyangah committed May 1, 2019
    Configuration menu
    Copy the full SHA
    fad365b View commit details
    Browse the repository at this point in the history
  11. cmd/dist: only build exec wrappers when cross compiling

    Updates #31722
    
    Change-Id: Ib44b46e628e364fff6eacda2b26541db2f0a4261
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174701
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    eliasnaur authored and bradfitz committed May 1, 2019
    Configuration menu
    Copy the full SHA
    f0c383b View commit details
    Browse the repository at this point in the history
  12. misc/cgo/testcarchive: skip TestExtar on self-hosted iOS

    iOS cannot (directly) run shell scripts.
    
    Updates #31722
    
    Change-Id: I69473e9339c50a77338d391c73b4e146bce3fa89
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174700
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    eliasnaur authored and bradfitz committed May 1, 2019
    Configuration menu
    Copy the full SHA
    07f6894 View commit details
    Browse the repository at this point in the history
  13. strings, bytes: add ToValidUTF8

    The newly added functions create a copy of their input with all bytes in
    invalid UTF-8 byte sequences mapped to the UTF-8 byte sequence
    given as replacement parameter.
    
    Fixes #25805
    
    Change-Id: Iaf65f65b40c0581c6bb000f1590408d6628321d0
    Reviewed-on: https://go-review.googlesource.com/c/go/+/142003
    Run-TryBot: Martin Möhrmann <moehrmann@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    martisch authored and bradfitz committed May 1, 2019
    Configuration menu
    Copy the full SHA
    3259bc4 View commit details
    Browse the repository at this point in the history
  14. cmd/go: sort vendor/modules.txt package lists

    Right now they are in a deterministic order
    but one that depends on the shape of the import graph.
    Sort them instead.
    
    Change-Id: Ia0c076a0d6677a511e52acf01f38353e9895dec2
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174527
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    rsc committed May 1, 2019
    Configuration menu
    Copy the full SHA
    40a6d0e View commit details
    Browse the repository at this point in the history
  15. cmd/compile: fix maplit init panics for dynamic entry

    golang.org/cl/174498 removes dynamic map entry handling in maplit, by
    filtering the static entry only. It panics if it see a dynamic entry.
    It relies on order to remove all dynamic entries.
    
    But after recursively call order on the statics, some static entries
    become dynamic, e.g OCONVIFACE node:
    
    	type i interface {
    		j()
    	}
    	type s struct{}
    
    	func (s) j() {}
    
    	type foo map[string]i
    
    	var f = foo{
    		"1": s{},
    	}
    
    To fix it, we recursively call order on each static entry, if it changed
    to dynamic, put entry to dynamic then.
    
    Fixes #31777
    
    Change-Id: I1004190ac8f2d1eaa4beb6beab989db74099b025
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174777
    Run-TryBot: Matthew Dempsky <mdempsky@google.com>
    Reviewed-by: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    cuonglm authored and mdempsky committed May 1, 2019
    Configuration menu
    Copy the full SHA
    aaf40f8 View commit details
    Browse the repository at this point in the history
  16. cmd/go/internal/web: fix log message

    The web package is now used for proxy fetches, so its logs shouldn't
    start with "Parsing meta tags".
    
    Change-Id: I22a7dce09e3a681544ee4b860f93c63336e547ca
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174740
    Run-TryBot: Heschi Kreinick <heschi@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    heschi committed May 1, 2019
    Configuration menu
    Copy the full SHA
    e5f0d14 View commit details
    Browse the repository at this point in the history

Commits on May 2, 2019

  1. cmd/compile: disable Go1.13 language features for -lang=go1.12 and below

    Fixes   #31747.
    Updates #19308.
    Updates #12711.
    Updates #29008.
    Updates #28493.
    Updates #19113.
    
    Change-Id: I76d2fdbc7698cc4e0f31b7ae24cbb4d28afbb6a3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174897
    Run-TryBot: Robert Griesemer <gri@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Matthew Dempsky <mdempsky@google.com>
    griesemer committed May 2, 2019
    Configuration menu
    Copy the full SHA
    762953b View commit details
    Browse the repository at this point in the history
  2. errors: fix comment referencing the Wrapper interface

    The Unwrap function performs a type assertion looking for the Wrapper
    interface. The method of that interface is called Unwrap but the
    interface itself is called Wrapper.
    
    Change-Id: Ie3bf296f93b773d36015bcab2a0e6585d39783c7
    GitHub-Last-Rev: 32b1a0c
    GitHub-Pull-Request: #31794
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174917
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    jcbwlkr authored and bradfitz committed May 2, 2019
    Configuration menu
    Copy the full SHA
    74b3c50 View commit details
    Browse the repository at this point in the history
  3. doc/go1.13: start doc, note macOS, FreeBSD deprecations

    For #23011.
    For #27619.
    
    Change-Id: Id1f280993ecdfb07a7420926ca1c0f5b7872afbb
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174521
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 2, 2019
    Configuration menu
    Copy the full SHA
    2316784 View commit details
    Browse the repository at this point in the history
  4. cmd/compile: remove outdate TODO in inl.go

    Mid-stack inlining is enable now, see #19348, but we still can not
    remove the special case for runtime.heapBits.nextArena, because
    runtime.heapBits.next is too complex to be inlined
    (cost 96 exceeds budget 80).
    
    Change-Id: I04ea86509074afdc83a3f70d68b8a1a8829763d1
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174839
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    cuonglm authored and bradfitz committed May 2, 2019
    Configuration menu
    Copy the full SHA
    19f5c23 View commit details
    Browse the repository at this point in the history
  5. cmd/go: make modconv test more robust

    Change-Id: I3e75201c56779eda1bcd725691c72d384da56f73
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174840
    Run-TryBot: Baokun Lee <nototon@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    oiooj authored and Jay Conrod committed May 2, 2019
    Configuration menu
    Copy the full SHA
    e4c0e9d View commit details
    Browse the repository at this point in the history
  6. cmd/go/internal/modload: make 'list -u' consider current pseudoversion

    As pointed out by thepudds in #30634, the 'list -u' documentation states that the current version should be considered for upgrade:
    The -u flag adds information about available upgrades. When the latest version of a given module is newer than the current one, list -u sets the Module's Update field to information about the newer module.
    
    In go 1.12.4 (and current tip), an older version will be suggested as upgrade to a newer pseudo version.
    
    Updates: #30634
    
    Change-Id: If2c8887198884b8e7ccb3a604908065aa1f1878a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174206
    Run-TryBot: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    leitzler authored and Jay Conrod committed May 2, 2019
    Configuration menu
    Copy the full SHA
    f03b333 View commit details
    Browse the repository at this point in the history
  7. cmd/dist: don't generate exec wrappers for compatible cross compiles

    This change will allow android/arm64 hosts to build for android/arm,
    and likewise for iOS.
    
    Updates #31722
    
    Change-Id: Id410bd112abbab585ebb13b61fe4d3a38a1a81fb
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174705
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    eliasnaur authored and bradfitz committed May 2, 2019
    Configuration menu
    Copy the full SHA
    d2c1263 View commit details
    Browse the repository at this point in the history
  8. cmd/link: support PIE mode with internal link on linux arm64

    This CL improves internal link to provide basic support for cgo and PIE:
    1, add support for GOT, PLT and GOTPLT.
    2, add support for following ELF relocation types which have been used by std
       packages:
         R_AARCH64_ADR_GOT_PAGE
         R_AARCH64_LD64_GOT_LO12_NC
         R_AARCH64_ADR_PREL_PG_HI21
         R_AARCH64_ADD_ABS_LO12_NC
         R_AARCH64_LDST8_ABS_LO12_NC
         R_AARCH64_LDST32_ABS_LO12_NC
         R_AARCH64_LDST64_ABS_LO12_NC
         R_AARCH64_JUMP26
         R_AARCH64_ABS64
         R_AARCH64_PREL32
         R_AARCH64_PREL64
    
    With this change, Go toolchain can be built in internal linking mode, and
    pure Go programs can be built with PIE mode in internal linking mode on arm64.
    
    Updates #10373
    The prototype of this CL is contributed by Wei Xiao <wei.xiao@arm.com>
    
    Change-Id: I2253923c69e855fd1524d54def309a961dce6247
    Reviewed-on: https://go-review.googlesource.com/c/go/+/163579
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    erifan01 authored and cherrymui committed May 2, 2019
    Configuration menu
    Copy the full SHA
    d2765de View commit details
    Browse the repository at this point in the history
  9. sort: simplify bootstrap

    We compile package sort as part of the compiler bootstrap,
    to make sure the compiler uses a consistent sort algorithm
    no matter what version of Go it is compiled against.
    (This matters for elements that compare "equal" but are distinguishable.)
    
    Package sort was compiled in such a way as to disallow
    sort.Slice entirely during bootstrap (at least with some compilers),
    while cmd/internal/obj was compiled in such a way as to
    make obj.SortSlice available to all compilers, precisely because
    sort.Slice was not. This is all highly confusing.
    Simplify by making sort.Slice available all the time.
    
    Followup to CL 169137 and #30440
    (and also CL 40114 and CL 73951).
    
    Change-Id: I127f4e02d6c71392805d256c3a90ef7c51f9ba0c
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174525
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc authored and bradfitz committed May 2, 2019
    Configuration menu
    Copy the full SHA
    0a338f7 View commit details
    Browse the repository at this point in the history
  10. net/http: skip flaky TestTransportMaxConnsPerHost for now

    Updates #31784
    
    Change-Id: Iee056c850c03939606b227a12715c76b0339d268
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175097
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    bradfitz committed May 2, 2019
    Configuration menu
    Copy the full SHA
    bf35b7c View commit details
    Browse the repository at this point in the history
  11. reflect: MakeFunc: allow assignment conversions on values returned fr…

    …om the wrapped function
    
    Instead of requiring exact type match, allow assignment conversions
    (those conversions allowed in the language spec without a cast) on the
    returned values.
    
    Particularly useful when the type being returned is an interface type,
    but the Value actually returned is a concrete value implementing that
    type (as it is tricky to return a Value which has interface type).
    
    RELNOTE=y
    
    Fixes #28761
    
    Change-Id: I69eef07ca51690b2086dfa1eb549db5e4724c657
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174531
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    randall77 committed May 2, 2019
    Configuration menu
    Copy the full SHA
    fe83731 View commit details
    Browse the repository at this point in the history
  12. cmd: update golang.org/x/sys dependency

    $ go get -u golang.org/x/sys
    $ go mod vendor
    $ go mod tidy
    
    Change-Id: Ie0a4646aef41b00ec8e27bc6f7e3ec9c270c8ccb
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174946
    Run-TryBot: Filippo Valsorda <filippo@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    FiloSottile committed May 2, 2019
    Configuration menu
    Copy the full SHA
    5aee621 View commit details
    Browse the repository at this point in the history
  13. crypto/cipher: disable broken js/wasm test from nodejs v8 to v12 upgrade

    Updates #31812
    
    Change-Id: Id9898f89205c116009e25033afb5b9026594e80f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175099
    Reviewed-by: Andrew Bonventre <andybons@golang.org>
    bradfitz committed May 2, 2019
    Configuration menu
    Copy the full SHA
    16bf0d5 View commit details
    Browse the repository at this point in the history

Commits on May 3, 2019

  1. math/big: document Int.String

    Int.String had no documentation and the documentation for Int.Text
    did not mention the handling of the nil pointer case.
    
    Change-Id: I9f21921e431c948545b7cabc7829e4b4e574bbe9
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175118
    Reviewed-by: Robert Griesemer <gri@golang.org>
    bmkessler authored and griesemer committed May 3, 2019
    Configuration menu
    Copy the full SHA
    689ee11 View commit details
    Browse the repository at this point in the history
  2. cmd/compile: fix isStaticCompositeLiteral reports wrong for struct field

    golang.org/cl/174498 add ONAME case to isStaticCompositeLiteral, to
    detect global variable as compile-time constant.
    
    It does report wrong for struct field, e.g:
    
    	o := one{i: two{i: 42}.i}
    
    field i in two{i: 42} was reported as static composite literal, while it
    should not.
    
    In general, adding ONAME case for isStaticCompositeLiteral is probably
    wrong.
    
    Fixes #31782
    
    Change-Id: Icde7d43bbb002b75df5c52b948b7126a4265e07b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174837
    Reviewed-by: Matthew Dempsky <mdempsky@google.com>
    Run-TryBot: Matthew Dempsky <mdempsky@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    cuonglm authored and mdempsky committed May 3, 2019
    Configuration menu
    Copy the full SHA
    004fb5c View commit details
    Browse the repository at this point in the history
  3. cmd/compile: add math/bits.{Add,Sub}64 intrinsics on s390x

    This CL adds intrinsics for the 64-bit addition and subtraction
    functions in math/bits. These intrinsics use the condition code
    to propagate the carry or borrow bit.
    
    To make the carry chains more efficient I've removed the
    'clobberFlags' property from most of the load and store
    operations. Originally these ops did clobber flags when using
    offsets that didn't fit in a signed 20-bit integer, however
    that is no longer true.
    
    As with other platforms the intrinsics are faster when executed
    in a chain rather than a loop because currently we need to spill
    and restore the carry bit between each loop iteration. We may
    be able to reduce the need to do this on s390x (e.g. by using
    compare-and-branch instructions that do not clobber flags) in the
    future.
    
    name           old time/op  new time/op  delta
    Add64          1.21ns ± 2%  2.03ns ± 2%  +67.18%  (p=0.000 n=7+10)
    Add64multiple  2.98ns ± 3%  1.03ns ± 0%  -65.39%  (p=0.000 n=10+9)
    Sub64          1.23ns ± 4%  2.03ns ± 1%  +64.85%  (p=0.000 n=10+10)
    Sub64multiple  3.73ns ± 4%  1.04ns ± 1%  -72.28%  (p=0.000 n=10+8)
    
    Change-Id: I913bbd5e19e6b95bef52f5bc4f14d6fe40119083
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174303
    Run-TryBot: Michael Munday <mike.munday@ibm.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    mundaym committed May 3, 2019
    Configuration menu
    Copy the full SHA
    2c1b513 View commit details
    Browse the repository at this point in the history
  4. misc/ios: don't refer to iostest.bash

    iostest.bash might not live much longer, and all.bash is much
    less confusing and more explicit.
    
    Change-Id: If42e8716bbbb02aa3f817dceaabb1aa8076aae1a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175178
    Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    eliasnaur committed May 3, 2019
    Configuration menu
    Copy the full SHA
    bd384d4 View commit details
    Browse the repository at this point in the history
  5. net: skip DNS tests on self-hosted Android

    They were already skipped on tethered Android builders because
    the tests are gated on GO_BUILDER_NAME being set and the Android
    exec wrapper does not propagate GO_BUILDER_NAME.
    
    Updates #31722
    
    Change-Id: Ifd2c7daecc19a4e540d86d1f38083f43cc3e6b15
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175177
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    eliasnaur committed May 3, 2019
    Configuration menu
    Copy the full SHA
    9f51325 View commit details
    Browse the repository at this point in the history
  6. net/http: add Transport.Clone

    Fixes #26013
    
    Change-Id: I2c82bd90ea7ce6f7a8e5b6c460d3982dca681a93
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174597
    Reviewed-by: Andrew Bonventre <andybons@golang.org>
    bradfitz committed May 3, 2019
    Configuration menu
    Copy the full SHA
    5e404b3 View commit details
    Browse the repository at this point in the history
  7. net/http: add func NewRequestWithContext, Request.Clone

    Fixes #23544
    
    Change-Id: Iaa31d76c4cda8ce22412d73c9025fc57e4fb1967
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174324
    Reviewed-by: Andrew Bonventre <andybons@golang.org>
    bradfitz committed May 3, 2019
    Configuration menu
    Copy the full SHA
    f5c43b9 View commit details
    Browse the repository at this point in the history
  8. net/http: strip escaped password from error

    Using password that returns from User.Password() won't work in this case
    because password in Userinfo already unescaped. The solution is uses
    User.String() to escape password back again and then stringify it to error.
    
    Fixes #31808
    
    Change-Id: I723aafd5a57a5b69f2dd7d3a21b82ebbd4174451
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175018
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    wingyplus authored and bradfitz committed May 3, 2019
    Configuration menu
    Copy the full SHA
    2c67cdf View commit details
    Browse the repository at this point in the history
  9. net/http: fix TestTransportMaxConnsPerHost flakes

    The testcase created a race between the close of the current connection
    and the client grabbing a connection for the next request. The client
    may receive the current connection which may be closed during its use.
    We can have the trasnport close all idle connections thereby forcing the
    client to receive a new connection.
    
    Closing idle connections did not handle cleaning up host connection
    counts for http/2. We will now decrement the host connection count for
    http/2 connections.
    
    Fixes #31784
    
    Change-Id: Iefc0d0d7ed9fa3acd8b4f42004f1579fc1de63fd
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174950
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    fraenkel authored and bradfitz committed May 3, 2019
    Configuration menu
    Copy the full SHA
    0a4d352 View commit details
    Browse the repository at this point in the history
  10. cmd/go: update go bug to be more consistent with Github issue template

    As a result of using go env, the following new environment variables are
    shown as part of the env section:
    
    +CGO_CFLAGS="-g -O2"
    +CGO_CPPFLAGS=""
    +CGO_CXXFLAGS="-g -O2"
    +CGO_FFLAGS="-g -O2"
    +CGO_LDFLAGS="-g -O2"
    +PKG_CONFIG="pkg-config"
    +GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build612849170=/tmp/go-build -gno-record-gcc-switches"
    
    The diff between the web-based template and the result of go bug is now:
    
    +GOROOT/bin/go version: go version devel +478f3a5384 Wed Mar 27 16:21:00 2019 +0000 linux/amd64
    +GOROOT/bin/go tool compile -V: compile version devel +478f3a5384 Wed Mar 27 16:21:00 2019 +0000
    +uname -sr: Linux 4.15.0-46-generic
    +Distributor ID:        Ubuntu
    +Description:   Ubuntu 18.04.2 LTS
    +Release:       18.04
    +Codename:      bionic
    +/lib/x86_64-linux-gnu/libc.so.6: GNU C Library (Ubuntu GLIBC 2.27-3ubuntu1) stable release version 2.27.
    
    Fixes #26751
    
    Change-Id: I32baca1c3c06d08068dad0041a43a1f5532bd91e
    Reviewed-on: https://go-review.googlesource.com/c/go/+/127495
    Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
    myitcv authored and bradfitz committed May 3, 2019
    Configuration menu
    Copy the full SHA
    8b2bd6f View commit details
    Browse the repository at this point in the history
  11. runtime: add physHugePageSize

    This change adds the global physHugePageSize which is initialized in
    osinit(). physHugePageSize contains the system's transparent huge page
    (or superpage) size in bytes.
    
    For #30333.
    
    Change-Id: I2f0198c40729dbbe6e6f2676cef1d57dd107562c
    Reviewed-on: https://go-review.googlesource.com/c/go/+/170858
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 3, 2019
    Configuration menu
    Copy the full SHA
    1033065 View commit details
    Browse the repository at this point in the history
  12. runtime: remove sys.HugePageSize

    sys.HugePageSize was superceded in the last commit by physHugePageSize
    which is determined dynamically by querying the operating system.
    
    For #30333.
    
    Change-Id: I827bfca8bdb347e989cead31564a8fffe56c66ff
    Reviewed-on: https://go-review.googlesource.com/c/go/+/173757
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 3, 2019
    Configuration menu
    Copy the full SHA
    7fcba81 View commit details
    Browse the repository at this point in the history
  13. cmd/compile,runtime/internal/atomic: add Load8

    Change-Id: Id52a5730cf9207ee7ccebac4ef12791dc5720e7c
    Reviewed-on: https://go-review.googlesource.com/c/go/+/172283
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: David Chase <drchase@google.com>
    aclements committed May 3, 2019
    Configuration menu
    Copy the full SHA
    4a4e05b View commit details
    Browse the repository at this point in the history
  14. cmd/go: fix clang test break as a result of golang.org/cl/127495

    golang.org/cl/127495 incorrectly tested against environment specifc
    details that do not form part of the script test conditions. This broke
    the clang build.
    
    Fix by removing the specific check; the existing checks are sufficient.
    
    Change-Id: Ic6ec873df9343c809968a08dd676e210046da5fd
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175179
    Run-TryBot: Paul Jolly <paul@myitcv.org.uk>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    myitcv committed May 3, 2019
    Configuration menu
    Copy the full SHA
    59ea685 View commit details
    Browse the repository at this point in the history

Commits on May 4, 2019

  1. all: add Unwrap and Is methods to various error types

    Add Unwrap methods to types which wrap an underlying error:
    
      "encodinc/csv".ParseError
      "encoding/json".MarshalerError
      "net/http".transportReadFromServerError
      "net".OpError
      "net".DNSConfigError
      "net/url".Error
      "os/exec".Error
      "signal/internal/pty".PtyError
      "text/template".ExecError
    
    Add os.ErrTemporary. A case could be made for putting this error
    value in package net, since no exported error types in package os
    include a Temporary method. However, syscall errors returned from
    the os package do include this method.
    
    Add Is methods to error types with a Timeout or Temporary method,
    making errors.Is(err, os.Err{Timeout,Temporary}) equivalent to
    testing the corresponding method:
    
      "context".DeadlineExceeded
      "internal/poll".TimeoutError
      "net".adrinfoErrno
      "net".OpError
      "net".DNSError
      "net/http".httpError
      "net/http".tlsHandshakeTimeoutError
      "net/pipe".timeoutError
      "net/url".Error
    
    Updates #30322
    Updates #29934
    
    Change-Id: I409fb20c072ea39116ebfb8c7534d493483870dc
    Reviewed-on: https://go-review.googlesource.com/c/go/+/170037
    Run-TryBot: Damien Neil <dneil@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
    neild committed May 4, 2019
    Configuration menu
    Copy the full SHA
    170b8b4 View commit details
    Browse the repository at this point in the history

Commits on May 5, 2019

  1. all: remove commented-out print statements

    Those print statements are not a good debug helpers
    and only clutter the code.
    
    Change-Id: Ifbf450a04e6fa538af68e6352c016728edb4119a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/160537
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
    quasilyte committed May 5, 2019
    Configuration menu
    Copy the full SHA
    12e6322 View commit details
    Browse the repository at this point in the history
  2. syscall: support generating netbsd/arm64 files in mkall.sh

    CL 155739 added the generated files but didn't update mkall.sh. Do so
    now.
    
    Updates #30824
    
    Change-Id: I642bbff6afbc976091a0dc291fa2beff5e245246
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175237
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Benny Siegert <bsiegert@gmail.com>
    Run-TryBot: Benny Siegert <bsiegert@gmail.com>
    Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    tklauser committed May 5, 2019
    Configuration menu
    Copy the full SHA
    ba9bc8e View commit details
    Browse the repository at this point in the history
  3. syscall: remove unused {dragonfly,illumos,solaris}64Bit constants

    These are unused since CL 153837. illumos64Bit was added by CL 174457
    but was never used.
    
    Change-Id: I34a1bd41cf70f8a07e57f93a71de3c6034fcaf7b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175358
    Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    tklauser committed May 5, 2019
    Configuration menu
    Copy the full SHA
    b41eee4 View commit details
    Browse the repository at this point in the history

Commits on May 6, 2019

  1. net/http: update bundled x/net/http2

    Updates x/net/http2 to git rev 1da14a5a36f220ea3f03470682b737b1dfd5de22 for:
    
        http2: make empty method mean GET
        https://golang.org/cl/169557 (Fixes #31061)
    
        http2: don't hang a stream if trailers values are not provided
        https://golang.org/cl/161958
    
    Change-Id: I628af8c6d07d19e8f19ee37637243f6c242ef3a1
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174677
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
    bradfitz committed May 6, 2019
    Configuration menu
    Copy the full SHA
    79f79c3 View commit details
    Browse the repository at this point in the history
  2. errors: fix Is panics if target is uncomparable

    Fixes #31841
    
    Change-Id: I3f068686154fd2fa5755b0df47b4eaa5c9a19107
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175260
    Reviewed-by: Damien Neil <dneil@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    cuonglm authored and bradfitz committed May 6, 2019
    Configuration menu
    Copy the full SHA
    0bf1f02 View commit details
    Browse the repository at this point in the history
  3. cmd/dist: delete unnecessary dirs from GOROOT on completion

    On my machine, these directories add up to 276mb
    and account for 40% of the size of the GOROOT directory.
    
    Once bootstrapping is complete, they are never used again.
    
    Fixes #31851
    
    Change-Id: Idbf8f21bae3d64655aa43761cc778677add6234a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175377
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    josharian committed May 6, 2019
    Configuration menu
    Copy the full SHA
    a921881 View commit details
    Browse the repository at this point in the history
  4. html/template: add support for JavaScript modules

    html/template does not properly treat JavaScript code as
    JavaScript when using a <script> tag with "module" set as
    the type attribute.
    
    See also:
    https://www.w3.org/TR/html5/semantics-scripting.html#element-attrdef-script-type and
    https://html.spec.whatwg.org/multipage/scripting.html#the-script-element:module-script-2
    
    Original change from tomut at https://golang.org/cl/135417
    
    Fixes #31327
    
    Change-Id: I6239be69cd7994990d091400664e4474124a98fc
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175218
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    andybons committed May 6, 2019
    Configuration menu
    Copy the full SHA
    5003b62 View commit details
    Browse the repository at this point in the history
  5. cmd/compile: make numberlines line mismatch check ignore columns

    This does not repair #31786, and in fact also unfixes the revert
    of CL 174617.  We were just getting lucky when it looked like
    it was working.  And unfortunately for the bug, there does not
    appear to be any particular problems with the line numbers;
    if anything they're a couple of extras, i.e., stepping might
    repeat, rather than skip.  Delve works fine either way.
    
    Updates #31786.
    
    Change-Id: I5c2fdc2a0265bb99773b3a85492a3db557dffee4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174948
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    dr2chase committed May 6, 2019
    Configuration menu
    Copy the full SHA
    d199369 View commit details
    Browse the repository at this point in the history
  6. net: use same TCP Keep Alive interval between dial and accept

    Fixes #31510
    
    Change-Id: I601d114b617a055380bf3c805e2d9a9b0795b656
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175259
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    corona10 authored and bradfitz committed May 6, 2019
    Configuration menu
    Copy the full SHA
    b98cecf View commit details
    Browse the repository at this point in the history
  7. net/http: add support for SameSite=None

    Section 4.2 of the Internet-Draft for SameSite includes the possible
    SameSite value of "None".
    
    https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00
    
    Change-Id: I44f246024429ec175db13ff6b36bee465f3d233d
    GitHub-Last-Rev: 170d24a
    GitHub-Pull-Request: #31842
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175337
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    vsekhar authored and bradfitz committed May 6, 2019
    Configuration menu
    Copy the full SHA
    e642412 View commit details
    Browse the repository at this point in the history
  8. cmd/internal/obj: write package path at compile time if possible

    Currently, when the compiler emits a symbol name in the object
    file, it uses "". for the package path of the package being
    compiled. This is then expanded in the linker to the actual
    package path.
    
    With CL 173938, it does not need an allocation if the symbol name
    does not need expansion. In many cases, the compiler actually
    knows the package path (through the -p flag), so we could just
    write it out in compile time, without fixing it up in the linker.
    This reduces allocations in the linker.
    
    In case that the package path is not known (compiler's -p flag is
    missing, or the object file is generated by the assembler), the
    linker still does the expansion.
    
    This reduces ~100MB allocations (~10% inuse_space) in linking
    k8s.io/kubernetes/cmd/kube-apiserver on Linux/AMD64.
    
    Also makes the linker a little faster: linking cmd/go on
    Linux/AMD64:
    Real  1.13 ± 1%  1.11 ± 1%  -2.13%  (p=0.000 n=10+10)
    User  1.17 ± 3%  1.14 ± 5%  -3.14%  (p=0.003 n=10+10)
    Sys   0.34 ±15%  0.34 ±15%    ~     (p=0.986 n=10+10)
    
    The caveat is that the object files get slightly bigger. On
    Linux/AMD64, runtime.a gets 2.1% bigger, cmd/compile/internal/ssa
    (which has a longer import path) gets 2.8% bigger.
    
    This reveals that when building an unnamed plugin (e.g.
    go build -buildmode=plugin x.go), the go command passes different
    package paths to the compiler and to the linker. Before this CL
    there seems nothing obviously broken, but given that the compiler
    already emits the package's import path in various places (e.g.
    debug info), I guess it is possible that this leads to some
    unexpected behavior. Now that the compiler writes the package
    path in more places, this disagreement actually leads to
    unresolved symbols. Adjust the go command to use the same package
    path for both compiling and linking.
    
    Change-Id: I19f08981f51db577871c906e08d9e0fd588a2dd8
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174657
    Reviewed-by: Austin Clements <austin@google.com>
    cherrymui committed May 6, 2019
    Configuration menu
    Copy the full SHA
    cc5eaf9 View commit details
    Browse the repository at this point in the history
  9. doc: document Go 1.11.10

    Change-Id: Icca4495f727e3921b717a4bbb441cd832d321d46
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175439
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    andybons committed May 6, 2019
    Configuration menu
    Copy the full SHA
    e1f9e70 View commit details
    Browse the repository at this point in the history
  10. doc: document Go 1.12.5

    Change-Id: I9986a323db2a8f5fa74b071cfd04e8c786da0cb3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175438
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    andybons committed May 6, 2019
    Configuration menu
    Copy the full SHA
    1560264 View commit details
    Browse the repository at this point in the history
  11. cmd/go/internal/modfile: make error message for module path more clear

    Fixes #31775
    
    `
    
    Change-Id: I59c4e90f20d1b31161c259680b48b7be7218bf58
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175017
    Run-TryBot: Baokun Lee <nototon@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    oiooj authored and Bryan C. Mills committed May 6, 2019
    Configuration menu
    Copy the full SHA
    1ad2298 View commit details
    Browse the repository at this point in the history
  12. runtime: merge all treaps into one implementation

    This change modifies the treap implementation to support holding all
    spans in a single treap, instead of keeping them all in separate treaps.
    
    This improves ergonomics for nearly all treap-related callsites.
    With that said, iteration is now more expensive, but it never occurs on
    the fast path, only on scavenging-related paths.
    
    This change opens up the opportunity for further optimizations, such as
    splitting spans without treap removal (taking treap removal off the span
    allocator's critical path) as well as improvements to treap iteration
    (building linked lists for each iteration type and managing them on
    insert/removal, since those operations should be less frequent).
    
    For #30333.
    
    Change-Id: I3dac97afd3682a37fda09ae8656a770e1369d0a9
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174398
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 6, 2019
    Configuration menu
    Copy the full SHA
    9baa430 View commit details
    Browse the repository at this point in the history
  13. runtime: make treap iteration more efficient

    This change introduces a treapIterFilter type which represents the
    power set of states described by a treapIterType.
    
    This change then adds a treapIterFilter field to each treap node
    indicating the types of spans that live in that subtree. The field is
    maintained via the same mechanism used to maintain maxPages. This allows
    pred, succ, start, and end to be judicious about which subtrees it will
    visit, ensuring that iteration avoids traversing irrelevant territory.
    
    Without this change, repeated scavenging attempts can end up being N^2
    as the scavenger walks over what it already scavenged before finding new
    spans available for scavenging.
    
    Finally, this change also only scavenges a span once it is removed from
    the treap. There was always an invariant that spans owned by the treap
    may not be mutated in-place, but with this change violating that
    invariant can cause issues with scavenging.
    
    For #30333.
    
    Change-Id: I8040b997e21c94a8d3d9c8c6accfe23cebe0c3d3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174878
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 6, 2019
    Configuration menu
    Copy the full SHA
    fa8470a View commit details
    Browse the repository at this point in the history
  14. runtime: scavenge huge spans first

    This change adds two new treap iteration types: one for large
    unscavenged spans (contain at least one huge page) and one for small
    unscavenged spans. This allows us to scavenge the huge spans first by
    first iterating over the large ones, then the small ones.
    
    Also, since we now depend on physHugePageSize being a power of two,
    ensure that that's the case when it's retrieved from the OS.
    
    For #30333.
    
    Change-Id: I51662740205ad5e4905404a0856f5f2b2d2a5680
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174399
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 6, 2019
    Configuration menu
    Copy the full SHA
    a62b572 View commit details
    Browse the repository at this point in the history
  15. runtime: track the number of free unscavenged huge pages

    This change tracks the number of potential free and unscavenged huge
    pages which will be used to inform the rate at which scavenging should
    occur.
    
    For #30333.
    
    Change-Id: I47663e5ffb64cac44ffa10db158486783f707479
    Reviewed-on: https://go-review.googlesource.com/c/go/+/170860
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 6, 2019
    Configuration menu
    Copy the full SHA
    f4a5ae5 View commit details
    Browse the repository at this point in the history
  16. runtime: split spans during allocation without treap removal

    Now that the treap is first-fit, we can make a nice optimization.
    Mainly, since we know that span splitting doesn't modify the relative
    position of a span in a treap, we can actually modify a span in-place
    on the treap. The only caveat is that we need to update the relevant
    metadata.
    
    To enable this optimization, this change introduces a mutate method on
    the iterator which takes a callback that is passed the iterator's span.
    The method records some properties of the span before it calls into the
    callback and then uses those records to see what changed and update
    treap metadata appropriately.
    
    Change-Id: I74f7d2ee172800828434ba0194d3d78d3942acf2
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174879
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 6, 2019
    Configuration menu
    Copy the full SHA
    5c15ed6 View commit details
    Browse the repository at this point in the history
  17. runtime: ensure free and unscavenged spans may be backed by huge pages

    This change adds a new sysHugePage function to provide the equivalent of
    Linux's madvise(MADV_HUGEPAGE) support to the runtime. It then uses
    sysHugePage to mark a newly-coalesced free span as backable by huge
    pages to make the freeHugePages approximation a bit more accurate.
    
    The problem being solved here is that if a large free span is composed
    of many small spans which were coalesced together, then there's a chance
    that they have had madvise(MADV_NOHUGEPAGE) called on them at some point,
    which makes freeHugePages less accurate.
    
    For #30333.
    
    Change-Id: Idd4b02567619fc8d45647d9abd18da42f96f0522
    Reviewed-on: https://go-review.googlesource.com/c/go/+/173338
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 6, 2019
    Configuration menu
    Copy the full SHA
    31c4e09 View commit details
    Browse the repository at this point in the history
  18. reflect: special-case panic message when returning Value{} from MakeF…

    …unc function
    
    Before this CL we used to panic with "nil pointer dereference" because
    the value we're calling assignTo on is the zero Value. Provide a better
    error message.
    
    Fixes #28748
    
    Change-Id: I7dd4c9e30b599863664d91e78cc45878d8b0052e
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175440
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    randall77 committed May 6, 2019
    Configuration menu
    Copy the full SHA
    04845fe View commit details
    Browse the repository at this point in the history
  19. all: simplify code using "gofmt -s -w"

    Most changes are removing redundant declaration of type when direct
    instantiating value of map or slice, e.g. []T{T{}} become []T{{}}.
    
    Small changes are removing the high order of subslice if its value
    is the length of slice itself, e.g. T[:len(T)] become T[:].
    
    The following file is excluded due to incompatibility with go1.4,
    
    - src/cmd/compile/internal/gc/ssa.go
    
    Change-Id: Id3abb09401795ce1e6da591a89749cba8502fb26
    Reviewed-on: https://go-review.googlesource.com/c/go/+/166437
    Run-TryBot: Dave Cheney <dave@cheney.net>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    shuLhan authored and ianlancetaylor committed May 6, 2019
    Configuration menu
    Copy the full SHA
    ed7f323 View commit details
    Browse the repository at this point in the history
  20. cmd/dist: allow builders to control granularity of test/ directory sh…

    …arding
    
    Even with 10 shards on builders, it still takes about ~2.5 minutes per
    shard (and getting slower all the time as the test/ directory grows).
    I'm currently experimenting with massively sharding out testing on
    Cloud Run (each dist test & normal TestFoo func all running in
    parallel), and in such a setup, 2.5 minutes is an eternity. I'd like
    to increase that dist test's sharding from 10 to more like 1,000.
    
    Updates #31834
    
    Change-Id: I8b02989727793b5b5b2013d67e1eb01ef4786e28
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175297
    Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    bradfitz committed May 6, 2019
    Configuration menu
    Copy the full SHA
    6b1ac82 View commit details
    Browse the repository at this point in the history
  21. net/url: add tests for URLHostname

    These changes add tests for URLHostname.
    
    Change-Id: Ie474516401a2236a9be65fb5c4e478322b1a199c
    GitHub-Last-Rev: 18f2d59
    GitHub-Pull-Request: #31832
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175142
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    desimone authored and bradfitz committed May 6, 2019
    Configuration menu
    Copy the full SHA
    2729cd0 View commit details
    Browse the repository at this point in the history
  22. crypto/ed25519: promote from golang.org/x/crypto/ed25519

    The crypto/tls and crypto/x509 APIs leak PublicKey and PrivateKey types,
    so in order to add support for Ed25519 certificates we need the ed25519
    package in the stdlib.
    
    It's also a primitive that's reasonable to use directly in applications,
    as it is a modern, safe and fast signing algorithm, for which there
    aren't higher level APIs. (The nacl/sign API is limiting in that it
    repeats the message.)
    
    A few docs changes will come in a follow-up, and a CL will land on
    golang.org/x/crypto/ed25519 to make it a type alias wrapper on Go 1.13+.
    
    Updates #25355
    
    Change-Id: I057f20cc7d1aca2b95c29ce73eb03c3b237e413f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174945
    Run-TryBot: Filippo Valsorda <filippo@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Adam Langley <agl@golang.org>
    FiloSottile committed May 6, 2019
    Configuration menu
    Copy the full SHA
    53374e7 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2019

  1. cmd/go: simplify some modfetch code

    No point to s[:].
    
    Change-Id: I9ba5483010180015555ecbed87c1ac82903fd9dc
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175277
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    ianlancetaylor committed May 7, 2019
    Configuration menu
    Copy the full SHA
    3e7e254 View commit details
    Browse the repository at this point in the history
  2. cmd/cgo: fix unexpected semicolon in rewritten line

    Followup to CL 157961 and CL 158457.
    Finish the list of operators and punctuation
    that disable semicolon insertion at end-of-line
    The reported case was "(" but "." was also missing.
    
    Fixes #31017.
    
    Change-Id: I0c06443f38dc8250c62e3aadd104abfa0e3be074
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174524
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    rsc committed May 7, 2019
    Configuration menu
    Copy the full SHA
    a88cb1d View commit details
    Browse the repository at this point in the history
  3. cmd/go: fix sumdb test failure

    Fixes #31779
    
    Change-Id: Iae80d9adcb39d12c36c525fc2738625cadcc8e41
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174838
    Run-TryBot: Baokun Lee <nototon@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    oiooj authored and Bryan C. Mills committed May 7, 2019
    Configuration menu
    Copy the full SHA
    7feb313 View commit details
    Browse the repository at this point in the history
  4. cmd/go: don't print phdrs running "go version" on ELF files

    I assume this was for debugging purposes.
    
    Updates #31624
    
    Change-Id: Ie158fde0574c9bbbd9d1b684f51af5681974aff7
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175449
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Russ Cox <rsc@golang.org>
    ianlancetaylor authored and rsc committed May 7, 2019
    Configuration menu
    Copy the full SHA
    8280455 View commit details
    Browse the repository at this point in the history
  5. cmd/compile: note that some rules know the name of the opt pass

    Change-Id: I4a70f4a52f84cf50f99939351319504b1c5dff76
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175777
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    josharian committed May 7, 2019
    Configuration menu
    Copy the full SHA
    49ad7bc View commit details
    Browse the repository at this point in the history
  6. cmd/compile: avoid compiler crash for recursive interface type

    This change is a simple work-around to avoid a compiler crash
    and provide a reasonable error message. A future change should
    fix the root cause for this problem.
    
    Fixes #23823.
    
    Change-Id: Ifc80d9f4d35e063c378e54d5cd8d1cf4c0d2ec6a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175518
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    griesemer committed May 7, 2019
    Configuration menu
    Copy the full SHA
    dc0388c View commit details
    Browse the repository at this point in the history

Commits on May 8, 2019

  1. math/big: fix the bug in assembly implementation of shlVU on arm64

    For the case where the addresses of parameter z and x of the function
    shlVU overlap and the address of z is greater than x, x (input value)
    can be polluted during the calculation when the high words of x are
    overlapped with the low words of z (output value).
    
    Fixes #31084
    
    Change-Id: I9bb0266a1d7856b8faa9a9b1975d6f57dece0479
    Reviewed-on: https://go-review.googlesource.com/c/go/+/169780
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    erifan01 authored and cherrymui committed May 8, 2019
    Configuration menu
    Copy the full SHA
    503e6cc View commit details
    Browse the repository at this point in the history
  2. image/png: fix palette extension to handle 255 color images

    The PNG decode path attempts to handle paletted images that refer to
    non-existent palette indicies. This PR fixes a corner case were images
    that have exactly 255 palette colors and an IDAT chunk that references
    palette index 255 produce an invalid image such that invoking At on
    the pixel(s) in question causes an index out of range panic.
    
    Fixes #31830
    
    Change-Id: I34c44d9de5b9d76fe8c45c04e866fbc7f51f2a9c
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175397
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Nigel Tao <nigeltao@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    zuercher authored and nigeltao committed May 8, 2019
    Configuration menu
    Copy the full SHA
    3403ee5 View commit details
    Browse the repository at this point in the history
  3. reflect: add a test for Calling a Method of a direct interface type

    Gccgo's implementation of direct interface types has bugs that
    causes reflect Call of method from Type.Method fail. CL 175837
    and CL 175798 fix the bug. This CL adds a test.
    
    Change-Id: I4e5f2cb96304c1ac7be04ca6d2851bac52b8eb24
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175880
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    cherrymui committed May 8, 2019
    Configuration menu
    Copy the full SHA
    2d32d36 View commit details
    Browse the repository at this point in the history
  4. cmd/link/internal/ld: add missing Close

    Noticed while working on issue 30488.
    
    Change-Id: Ia3655e07c939d03925b3560eeba24c60e24c136c
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175917
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    eliasnaur committed May 8, 2019
    Configuration menu
    Copy the full SHA
    bc588d4 View commit details
    Browse the repository at this point in the history
  5. doc: update /doc/asm compiler output example

    The compiler output shown in the doc is now quite old
    (most of the changes happened in Go 1.5).
    Update it to be more like what users will actually see.
    
    Also explain how to get literal machine code again.
    
    Prompted by #30968.
    
    Change-Id: I0ce139c3fe299ccc43e85b6aca81c6e0aac1a2df
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175757
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Rob Pike <r@golang.org>
    rsc committed May 8, 2019
    Configuration menu
    Copy the full SHA
    bc0c077 View commit details
    Browse the repository at this point in the history
  6. cmd/link/internal/ld: bump macOS and macOS SDK version to 10.9

    Satisfies the Apple Notary.
    
    Fixes #30488
    
    Change-Id: I91cf2d706a3ebe79bafdb759a0d32266ed6b9096
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175918
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    eliasnaur committed May 8, 2019
    Configuration menu
    Copy the full SHA
    4cd6c3b View commit details
    Browse the repository at this point in the history
  7. doc: fixed some links

    Change-Id: I8563a20a4ba43cee7d4b73377c405a6ff12636e5
    GitHub-Last-Rev: 0dae408
    GitHub-Pull-Request: #31914
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176017
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Lorenz Nickel authored and bradfitz committed May 8, 2019
    Configuration menu
    Copy the full SHA
    bef1534 View commit details
    Browse the repository at this point in the history
  8. api: update next.txt

    Change-Id: I2f2a70dd9279ab95fdabee51579d49363a9f65b3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176018
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    bradfitz committed May 8, 2019
    Configuration menu
    Copy the full SHA
    2625fef View commit details
    Browse the repository at this point in the history
  9. regexp: clarify docs re Submatch result

    Currently we say that a negative index means no match,
    but we don't say how "no match" is expressed when 'Index'
    is not present. Say how it is expressed.
    
    Change-Id: I82b6c9038557ac49852ac03642afc0bc545bb4a2
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175677
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    dvyukov committed May 8, 2019
    Configuration menu
    Copy the full SHA
    7f5434c View commit details
    Browse the repository at this point in the history
  10. math/big: stack allocate scaleDenom return value

    benchmark             old ns/op     new ns/op     delta
    BenchmarkRatCmp-4     154           77.9          -49.42%
    
    Change-Id: I932710ad8b6905879e232168b1777927f86ba22a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175460
    Run-TryBot: Robert Griesemer <gri@golang.org>
    Reviewed-by: Robert Griesemer <gri@golang.org>
    jtolio authored and griesemer committed May 8, 2019
    Configuration menu
    Copy the full SHA
    5a2da56 View commit details
    Browse the repository at this point in the history
  11. go/types: add CheckExpr function to type-check an expression

    In IDE-like applications (and also in tests), there is often a need to
    type-check an expression as if it appeared at a particular position in
    the source code of an already typed-checked package.
    
    Eval was added to address this need, but did so only partially,
    stopping short of exposing a type-annotated expression tree. This
    makes it impossible to resolve an expression such as new(T).x and
    discover what Object x refers to.  CheckExpr exposes that generality.
    Eval is now implemented in terms of CheckExpr.
    
    This change includes a test that demonstrates the object resolution
    functionality just described.
    
    Historical context:
    - https://go-review.googlesource.com/c/tools/+/10800
    - https://codereview.appspot.com/10748044/
    
    Change-Id: I715ba934b9fc0c9ceb61270e20c5f91f4eff20c3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/144677
    Run-TryBot: Alan Donovan <adonovan@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Robert Griesemer <gri@golang.org>
    adonovan committed May 8, 2019
    Configuration menu
    Copy the full SHA
    19966e9 View commit details
    Browse the repository at this point in the history
  12. cmd/go: disallow go.sum updates in -mod=readonly

    When running go build with the flag -mod=readonly, it fails the build if
    go.sum files requires updating. This ensures that CI/CD systems get a
    complete go.sum file so that they'd never hit a notary,
    assuming the CI/CD system passes the above flag.
    I am not familiar with the entire codebase but I assume goSum.dirty
    will always be true if go.sum has any missing lines.
    
    Fixes #30667
    
    Change-Id: I767d3b594055d8c10048f4c68e6687c94bb0545c
    Reviewed-on: https://go-review.googlesource.com/c/go/+/166237
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    marwan-at-work authored and Bryan C. Mills committed May 8, 2019
    Configuration menu
    Copy the full SHA
    d21c7b7 View commit details
    Browse the repository at this point in the history
  13. cmd/link: write memprofile in legacy format for compilebench

    compilebench depends on the legacy heap profile format to read the
    allocation stats of build tools. We're adding a benchmark for the
    linker to compilebench, so we need the linker to emit the heap profile
    in the legacy format.
    
    This is the linker equivalent of CL 35484, which did this for the
    compiler.
    
    Change-Id: I16ad60c4f0fd80b4b6d608a5677ebe04e1fb5e5a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176057
    Run-TryBot: Austin Clements <austin@google.com>
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    aclements committed May 8, 2019
    Configuration menu
    Copy the full SHA
    7498e8f View commit details
    Browse the repository at this point in the history
  14. internal/syscall/windows/sysdll: mark package as Windows-only

    Updates #31920
    
    Change-Id: Ie24ed5bab249e2f90d1740f42a8b8d94fd0983f5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176019
    Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
    bradfitz committed May 8, 2019
    Configuration menu
    Copy the full SHA
    591454c View commit details
    Browse the repository at this point in the history
  15. cmd/compile: add countRule rewrite rule helper

    noteRule is useful when you're trying to debug
    a particular rule, or get a general sense for
    how often a rule fires overall.
    
    It is less useful if you're trying to figure
    out which functions might be useful to benchmark
    to ascertain the impact of a newly added rule.
    
    Enter countRule. You use it like noteRule,
    except that you get per-function summaries.
    
    Sample output:
    
     # runtime
    (*mspan).sweep: idx1=1
    evacuate_faststr: idx1=1
    evacuate_fast32: idx1=1
    evacuate: idx1=2
    evacuate_fast64: idx1=1
    sweepone: idx1=1
    purgecachedstats: idx1=1
    mProf_Free: idx1=1
    
    This suggests that the map benchmarks
    might be good to run for this added rule.
    
    Change-Id: Id471c3231f1736165f2020f6979ff01c29677808
    Reviewed-on: https://go-review.googlesource.com/c/go/+/167088
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    josharian committed May 8, 2019
    Configuration menu
    Copy the full SHA
    0047353 View commit details
    Browse the repository at this point in the history
  16. cmd/go: set the "generate" build tag in go generate, per design doc

    And use it in two internal windows packages, so they don't show up in
    "go list std" or binary releases on non-Windows platforms.
    
    Fixes #31920
    
    Change-Id: Iaa292b6015c9d7310dd677c9e296006440ba5e27
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175983
    Reviewed-by: Rob Pike <r@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    bradfitz committed May 8, 2019
    Configuration menu
    Copy the full SHA
    41df5ae View commit details
    Browse the repository at this point in the history

Commits on May 9, 2019

  1. cmd/go: diagnose go.mod and vendor out of sync in std and cmd

    The most common failure mode of the current std/cmd setup is
    going to be people running "go get m@latest" and then not running
    "go mod vendor" and being confused about getting the old m.
    Diagnose and report what to do.
    
    Also, having done the check, when in the standard library,
    switch the go command to -mod=vendor mode.
    This avoids some network accesses I saw when running
    'go clean -modcache' before doing some work in cmd.
    
    Change-Id: I0ba4a66637b67225a9b97a1c89f26f9015b41673
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174528
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    856b57e View commit details
    Browse the repository at this point in the history
  2. cmd/asm: accept TEXT f+0(SB) in -gensymabis mode

    f+0(SB) is a non-standard but acceptable alias for f(SB).
    
    Fixes #30968.
    
    Change-Id: I499ccee4d3ff3ab4e47f75d99407aace858e59aa
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174537
    Reviewed-by: Austin Clements <austin@google.com>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    f766b68 View commit details
    Browse the repository at this point in the history
  3. misc/android: silence adb output unless an error occurs

    Fixes #31917
    
    Change-Id: I794e457b2245d355e2df5077078c67aa09e00ff9
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175920
    Run-TryBot: Elias Naur <mail@eliasnaur.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    eliasnaur committed May 9, 2019
    Configuration menu
    Copy the full SHA
    fb63ed2 View commit details
    Browse the repository at this point in the history
  4. cmd/link: fix link time regression in object file reading

    In CL 173938, the linker's object file reader was switched over to
    selectively create strings backed with read-only mmap'd memory.
    In the process a call to r.rd.Offset() was added to readSymName(),
    which greatly increased the number of system calls (Offset does a
    seek system call).
    
    This patch changes the object file reader so that all reads are done
    directly from the mmap'd data if it is present, and adds logic to keep
    track of the offset within the rodata consumed so far. Doing this gets
    rid of the calls to r.rd.Offset() and the corresponding seek system
    calls.
    
    Also as part of this change, hoist the calls to objabi.PathToPrefix
    up into the initial setup code for object reading, and store the
    result in the reader (since objabi.PathToPrefix was also coming up
    as hot in the profile).
    
    Numbers for this change from compilebench:
    
    benchmark                 old ns/op       new ns/op       delta
    BenchmarkTemplate         172053975       170357597       -0.99%
    BenchmarkUnicode          64564850        64333653        -0.36%
    BenchmarkGoTypes          627931042       628043673       +0.02%
    BenchmarkCompiler         2982468893      2924575043      -1.94%
    BenchmarkSSA              9701681721      9799342557      +1.01%
    BenchmarkFlate            106847240       107509414       +0.62%
    BenchmarkGoParser         132082319       130734905       -1.02%
    BenchmarkReflect          386810586       383036621       -0.98%
    BenchmarkTar              154360072       152670594       -1.09%
    BenchmarkXML              217725693       216858727       -0.40%
    BenchmarkLinkCompiler     908813802       734363234       -19.20%
    BenchmarkStdCmd           32378532486     31222542974     -3.57%
    
    Fixes #31898.
    
    Change-Id: Ibf253a52ce9213325f42b1c2b20d0410f5c88c3b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176039
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    thanm committed May 9, 2019
    Configuration menu
    Copy the full SHA
    0793c81 View commit details
    Browse the repository at this point in the history
  5. cmd/compile: test delve instead of gdb in ssa/debug_test.go

    This seems to deflake the test, and also allows testing
    on macOS.
    
    Fixes #31786.
    
    Change-Id: I10bfba46dd4b8e64cb09fdd4dd9d175c1ce1f022
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176058
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    dr2chase committed May 9, 2019
    Configuration menu
    Copy the full SHA
    5286b2a View commit details
    Browse the repository at this point in the history
  6. cmd/vet/all: update whitelist for vet fixes

    The vetall builder runs vet straight out of golang.org/x/tools,
    so submiting CL 176097 in that repo will break the builder
    by making all these whitelist entries stale.
    Submiting this CL will fix it, by removing them.
    
    The addition of the gcWriteBarrier declaration in runtime/stubs.go
    is necessary because the diagnostic is no longer emitted on arm,
    so it must be removed from all.txt. Adding it to runtime is better
    than adding it to every-other-goarch.txt.
    
    For #31916.
    
    Change-Id: I432f6049cd3ee5a467add5066c440be8616d9d54
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176177
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    b6f59cb View commit details
    Browse the repository at this point in the history
  7. cmd/compile: emit DWARF call_line attrs with data4 form on iOS

    When targeting iOS, change the format (DWARF "form") of the call line
    attribute for inlined subroutine DIEs, to work around an apparent bug
    in /usr/bin/symbols on Darwin.
    
    [Just for posterity: there is nothing wrong with using DW_FORM_udata
    for the call_line attribute form; this is perfectly legal DWARF (and
    is in fact recommended by the standard relative to data4, which is
    less descriptive and often takes more space). The form switch is there
    just to make the Apple tools happy.]
    
    Updates #31459.
    
    Change-Id: Iaf362788a8c6684eea4cde8956c0661b694cecc1
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174538
    Run-TryBot: Than McIntosh <thanm@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: David Chase <drchase@google.com>
    thanm committed May 9, 2019
    Configuration menu
    Copy the full SHA
    b56d1ba View commit details
    Browse the repository at this point in the history
  8. cmd/vendor: import vet fixes from x/tools

    Fixes build - I did not understand that vetall was
    effectively pinned to a vet version by cmd/go.mod.
    
    Change-Id: I56bfd8f62eadacc97cad0ed48e41a178bbc18b8f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176179
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    d56199d View commit details
    Browse the repository at this point in the history
  9. runtime: remove periodic scavenging

    This change removes the periodic scavenger which goes over every span
    in the heap and scavenges it if it hasn't been used for 5 minutes. It
    should no longer be necessary if we have background scavenging
    (follow-up).
    
    For #30333.
    
    Change-Id: Ic3a1a4e85409dc25719ba4593a3b60273a4c71e0
    Reviewed-on: https://go-review.googlesource.com/c/go/+/143157
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 9, 2019
    Configuration menu
    Copy the full SHA
    eaa1c87 View commit details
    Browse the repository at this point in the history
  10. runtime: add background scavenger

    This change adds a background scavenging goroutine whose pacing is
    determined when the heap goal changes. The scavenger is paced to use
    at most 1% of the mutator's time for most systems. Furthermore, the
    scavenger's pacing is computed based on the estimated number of
    scavengable huge pages to take advantage of optimizations provided by
    the OS.
    
    The purpose of this scavenger is to deal with a shrinking heap: if the
    heap goal is falling over time, the scavenger should kick in and start
    returning free pages from the heap to the OS.
    
    Also, now that we have a pacing system, the credit system used by
    scavengeLocked has become redundant. Replace it with a mechanism which
    only scavenges on the allocation path if it makes sense to do so with
    respect to the new pacing system.
    
    Fixes #30333.
    
    Change-Id: I6203f8dc84affb26c3ab04528889dd9663530edc
    Reviewed-on: https://go-review.googlesource.com/c/go/+/142960
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 9, 2019
    Configuration menu
    Copy the full SHA
    fe67ea3 View commit details
    Browse the repository at this point in the history
  11. runtime: split spans when scavenging if it's more than we need

    This change makes it so that during scavenging we split spans when the
    span we have next for scavenging is larger than the amount of work we
    have left to do.
    
    The purpose of this change is to improve the worst-case behavior of the
    scavenger: currently, if the scavenger only has a little bit of work to
    do but sees a very large free span, it will scavenge the whole thing,
    spending a lot of time to get way ahead of the scavenge pacing for no
    reason.
    
    With this change the scavenger should follow the pacing more closely,
    but may still over-scavenge by up to a physical huge page since the
    splitting behavior avoids breaking up huge pages in free spans.
    
    This change is also the culmination of the scavenging improvements, so
    we also include benchmark results for this series (starting from
    "runtime: merge all treaps into one implementation" until this patch).
    
    This patch stack results in average and peak RSS reductions (up to 11%
    and 7% respectively) for some benchmarks, with mostly minimal
    performance degredation (3-4% for some benchmarks, ~0% geomean). Each of
    these benchmarks was executed with GODEBUG=madvdontneed=1 on Linux; the
    performance degredation is even smaller when MADV_FREE may be used, but
    the impact on RSS is much harder to measure. Applications that generally
    maintain a steady heap size for the most part show no change in
    application performance.
    
    These benchmarks are taken from an experimental benchmarking suite
    representing a variety of open-source Go packages, the raw results may
    be found here:
    
    https://perf.golang.org/search?q=upload:20190509.1
    
    For #30333.
    
    Change-Id: I618a48534d2d6ce5f656bb66825e3c383ab1ffba
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175797
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    Reviewed-by: Austin Clements <austin@google.com>
    mknyszek committed May 9, 2019
    Configuration menu
    Copy the full SHA
    ff70494 View commit details
    Browse the repository at this point in the history
  12. cmd/internal/bio: rename Reader.Seek to MustSeek

    Renaming the method makes clear, both to readers and to vet,
    that this method is not the implementation of io.Seeker:
    it cannot fail.
    
    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    For #31916.
    
    Change-Id: I3e6ad7264cb0121b4b76935450cccb71d533e96b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176108
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    ffd7eba View commit details
    Browse the repository at this point in the history
  13. all: document vendoring in the standard library

    Added documentation that explains special cases for vendored packages
    in the standard library and provides instructions for updating vendor
    directories.
    
    Fixes #31806
    
    Change-Id: Ib697ed18eae28023ab0bfb9f4d250992c393571d
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174999
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    Jay Conrod committed May 9, 2019
    Configuration menu
    Copy the full SHA
    a44c3ed View commit details
    Browse the repository at this point in the history
  14. fmt: rename buffer.WriteByte to writeByte

    Renaming the method makes clear, both to readers and to vet,
    that this method is not the implementation of io.ByteWriter.
    
    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    For #31916.
    
    Change-Id: I79da062ca6469b62a6b9e284c6cf2413c7425249
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176109
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    50a1d89 View commit details
    Browse the repository at this point in the history
  15. encoding/gob: rename encBuffer.WriteByte to writeByte

    Renaming the method makes clear, both to readers and to vet,
    that this method is not the implementation of io.ByteWriter.
    
    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    For #31916.
    
    Change-Id: I5b509eb7f0118d5f2d3c6e352ff2849cd5a3071e
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176110
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    c514071 View commit details
    Browse the repository at this point in the history
  16. cmd/link: use standard-syntax struct tags in large-tag test

    These ridiculous tags are testing what happens with very long tags.
    There is no need for them to be malformed as well.
    Fix them to make vet happier.
    
    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    For #31916.
    
    Change-Id: I100aed5230fcde41676c79c7074c69c16ea4b96d
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176111
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    0a2f72b View commit details
    Browse the repository at this point in the history
  17. runtime: fix js/wasm lock implementation

    Trybots started failing on js/wasm after golang.org/cl/175797 landed,
    but it seemed completely unrelated. It would fail very consistently on
    the heapsampling.go test.
    
    Digging deeper it was very difficult to ascertain what was going wrong,
    but clearly m.locks for some m was non-zero when calling into the
    scheduler.
    
    The failure comes from the fact that lock calls into gosched, but it's
    unclear how exactly we got there in the first place; there should be no
    preemption in this single-threaded context.
    
    Furthermore, lock shouldn't be calling gosched_m at all because in a
    single-threaded context, the thread shouldn't be preempted until it
    actually unlocks.
    
    But, digging further it turns out the implementation in lock_js.go never
    incremented or decremented m.locks. This is definitely wrong because
    many parts of the runtime depend on that value being set correctly.
    
    So, this change removes the loop which calls into gosched_m (which
    should be unnecessary) and increments and decrements m.locks
    appropriately. This appears to fix the aforementioned failure.
    
    Change-Id: Id214c0762c3fb2b405ff55543d7e2a78c17443c4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176297
    Run-TryBot: Michael Knyszek <mknyszek@google.com>
    Reviewed-by: Russ Cox <rsc@golang.org>
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    mknyszek committed May 9, 2019
    Configuration menu
    Copy the full SHA
    cd03664 View commit details
    Browse the repository at this point in the history
  18. runtime: fix vet complaints for linux/386

    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    This CL makes "GOOS=linux GOARCH=386 go vet -unsafeptr=false runtime" happy,
    while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too.
    
    For #31916.
    
    Change-Id: I3e5586a7ff6e359357350d0602c2259493280ded
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176099
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    6ed2ec4 View commit details
    Browse the repository at this point in the history
  19. runtime: fix vet complaints for linux/amd64

    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    This CL makes "GOOS=linux GOARCH=amd64 go vet -unsafeptr=false runtime" happy,
    while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too.
    
    For #31916.
    
    Change-Id: I4ca1acb02f4666b102d25fcc55fac96b8f80379a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176100
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    fe67ce2 View commit details
    Browse the repository at this point in the history
  20. runtime: fix vet complaints for linux/arm

    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    This CL makes "GOOS=linux GOARCH=arm go vet -unsafeptr=false runtime" happy,
    while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too.
    
    For #31916.
    
    Change-Id: Ifae75b832320b5356ac8773cf85055bfb2bd7214
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176101
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    1ea7644 View commit details
    Browse the repository at this point in the history
  21. runtime: fix vet complaints for linux/arm64, linux/mips*, linux/ppc64…

    …*, linux/s390x
    
    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    This CL makes "go vet -unsafeptr=false runtime" happy for these GOOS/GOARCHes,
    except for an unresolved complaint on mips/mipsle that is a bug in vet,
    while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too.
    
    For #31916.
    
    Change-Id: I6ef7e982a2fdbbfbc22cee876ca37ac54d8109e5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176102
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    49f62af View commit details
    Browse the repository at this point in the history
  22. runtime: fix vet complaints for solaris/amd64, illumos/amd64

    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    This CL makes "go vet -unsafeptr=false runtime" happy for these GOOS/GOARCHes,
    while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too.
    
    For #31916.
    
    Change-Id: Ic64f7f4034695dd4c32c9b7f258960faf3742a83
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176103
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    60f6763 View commit details
    Browse the repository at this point in the history
  23. syscall: fix vet complaints for all dragonfly, freebsd, netbsd, openbsd

    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    This CL makes "go vet -unsafeptr=false runtime" happy for these GOOSes,
    while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too.
    
    For #31916.
    
    Change-Id: Id2e1223497bd0cd6e880cd81f3ece6363e58219f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176104
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    b4a472b View commit details
    Browse the repository at this point in the history
  24. runtime: fix vet complaints for all freebsd, netbsd, openbsd

    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    This CL makes "go vet -unsafeptr=false runtime" happy for these GOOSes,
    while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too.
    
    For #31916.
    
    Change-Id: I63c4805bdd44b301072da66c77086940e2a2765e
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176105
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    924c161 View commit details
    Browse the repository at this point in the history
  25. runtime, crypto/x509: fix vet complaints for all windows

    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    This CL makes "go vet -unsafeptr=false runtime" happy for windows/*,
    while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too.
    
    For #31916.
    
    Change-Id: If37ab2b3f6fca4696b8a6afb2ef11ba6c4fb42e0
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176106
    Reviewed-by: Austin Clements <austin@google.com>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    13723d4 View commit details
    Browse the repository at this point in the history
  26. runtime: fix vet complaints for all nacl

    Working toward making the tree vet-safe instead of having
    so many exceptions in cmd/vet/all/whitelist.
    
    This CL makes "go vet -unsafeptr=false runtime" happy for nacl/*,
    while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too.
    
    For #31916.
    
    Change-Id: I6adb4a7b0c2b03d901fba37f9c05e74e5b7b6691
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176107
    Reviewed-by: Austin Clements <austin@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    56c1cf3 View commit details
    Browse the repository at this point in the history
  27. runtime: fix vet complaints for js/wasm

    Change-Id: Ifc8a731a2efd94fdc4fc6f26ca6e16f0c0292211
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176178
    Reviewed-by: Austin Clements <austin@google.com>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    a4f5c9c View commit details
    Browse the repository at this point in the history
  28. os/user: make Current return better error w/o cgo & complete environment

    Fixes #31949
    
    Change-Id: Ib96a43e4c56a00c5ba04e4d213255a063058ae08
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176337
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    bradfitz committed May 9, 2019
    Configuration menu
    Copy the full SHA
    b8d5150 View commit details
    Browse the repository at this point in the history
  29. runtime: fix s390x build

    The new prototypes of duffzero and duffcopy must be
    accompanied by functions. Otherwise buildmode=shared
    (in particular, misc/cgo/testshared) has missing symbols.
    
    The right fix, of course, is to implement these on s390x.
    
    For #31916.
    
    Change-Id: I3efff5e3011956341e1b26223a4847a8a91a0453
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176397
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 9, 2019
    Configuration menu
    Copy the full SHA
    40657c2 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2019

  1. cmd/compile: re-use regalloc's []valState

    Updates #27739: reduces package ssa's allocated space by 3.77%.
    
    maxrss is harder to measure, but using best-of-three-runs
    as reported by /usr/bin/time -l, I see ~2% reduction in maxrss.
    
    We still have a long way to go, though; the new maxrss is still 1.1gb.
    
    name        old alloc/op      new alloc/op      delta
    Template         38.8MB ± 0%       37.7MB ± 0%  -2.77%  (p=0.008 n=5+5)
    Unicode          28.2MB ± 0%       28.1MB ± 0%  -0.20%  (p=0.008 n=5+5)
    GoTypes           131MB ± 0%        127MB ± 0%  -2.94%  (p=0.008 n=5+5)
    Compiler          606MB ± 0%        587MB ± 0%  -3.21%  (p=0.008 n=5+5)
    SSA              2.14GB ± 0%       2.06GB ± 0%  -3.77%  (p=0.008 n=5+5)
    Flate            24.0MB ± 0%       23.3MB ± 0%  -3.00%  (p=0.008 n=5+5)
    GoParser         28.8MB ± 0%       28.1MB ± 0%  -2.61%  (p=0.008 n=5+5)
    Reflect          83.8MB ± 0%       81.5MB ± 0%  -2.71%  (p=0.008 n=5+5)
    Tar              36.4MB ± 0%       35.4MB ± 0%  -2.73%  (p=0.008 n=5+5)
    XML              47.9MB ± 0%       46.7MB ± 0%  -2.49%  (p=0.008 n=5+5)
    [Geo mean]       84.6MB            82.4MB       -2.65%
    
    name        old allocs/op     new allocs/op     delta
    Template           379k ± 0%         379k ± 0%  -0.05%  (p=0.008 n=5+5)
    Unicode            340k ± 0%         340k ± 0%    ~     (p=0.151 n=5+5)
    GoTypes           1.36M ± 0%        1.36M ± 0%  -0.06%  (p=0.008 n=5+5)
    Compiler          5.49M ± 0%        5.48M ± 0%  -0.03%  (p=0.008 n=5+5)
    SSA               17.5M ± 0%        17.5M ± 0%  -0.03%  (p=0.008 n=5+5)
    Flate              235k ± 0%         235k ± 0%  -0.04%  (p=0.008 n=5+5)
    GoParser           302k ± 0%         302k ± 0%  -0.04%  (p=0.008 n=5+5)
    Reflect            976k ± 0%         975k ± 0%  -0.10%  (p=0.008 n=5+5)
    Tar                352k ± 0%         352k ± 0%  -0.06%  (p=0.008 n=5+5)
    XML                436k ± 0%         436k ± 0%  -0.03%  (p=0.008 n=5+5)
    [Geo mean]         842k              841k       -0.04%
    
    Change-Id: I0ab6631b5a0bb6303c291dcb0367b586a4e584fb
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176221
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    josharian committed May 10, 2019
    Configuration menu
    Copy the full SHA
    4ae31dc View commit details
    Browse the repository at this point in the history
  2. cmd/go: move two vcs test repos to vcs-test.golang.org

    Follow-up to CL 174061. This also fixes a break after GOSUMDB
    was introduced.
    
    Updates #31946
    Updates #31673
    Updates #31287
    Updates #27171
    
    Change-Id: I8e91e857f301b6b73cc90f2f2c68523412e22b46
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176417
    Run-TryBot: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Jay Conrod committed May 10, 2019
    Configuration menu
    Copy the full SHA
    2aa8971 View commit details
    Browse the repository at this point in the history
  3. cmd/go/testdata/script: remove skips and clarify comments in mod_*_up…

    …grade_pseudo tests
    
    These tests were added in CL 174206.
    
    They required a 'git' binary and network access in an earlier draft,
    but now use the test-local module proxy instead, so no longer need to
    be skipped when those resources are not present.
    
    Updates #30634
    
    Change-Id: I5f36c6c776209a89bc45d133847df5052b55da59
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176537
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Bryan C. Mills committed May 10, 2019
    Configuration menu
    Copy the full SHA
    1d1ff46 View commit details
    Browse the repository at this point in the history
  4. runtime: fix windows-amd64-2012 build

    I forgot that in Go assembly, x+16(SP) is not the same as 16(SP).
    The former is the virtual stack pointer (one word below FP on x86)
    while the latter is the actual stack pointer.
    
    Change-Id: Ibb7012bb97261949f5e1a0dc70869d9a6f50aa99
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176557
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    rsc committed May 10, 2019
    Configuration menu
    Copy the full SHA
    ef4666e View commit details
    Browse the repository at this point in the history
  5. cmd/go: force -coverpkg main packages to be built as libraries

    This fixes TestScript/cover_pkgall_multiple_mains, which started
    failing after CL 174657.
    
    When compiling main packages with coverage instrumentation
    (e.g., for -coverpkg all), we now pass -p with the full import path
    instead of '-p main'. This avoids link errors
    'duplicate symbol main.main (types 1 and 1)'.
    
    Fixes #31946
    
    Change-Id: Id147527b1dbdc14bb33ac133c30d50c250b4365c
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176558
    Run-TryBot: Jay Conrod <jayconrod@google.com>
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Jay Conrod committed May 10, 2019
    Configuration menu
    Copy the full SHA
    3b8c804 View commit details
    Browse the repository at this point in the history
  6. cmd/vendor: import vet fixes from x/tools

    Vet help prints only to stdout.
    
    Fixes #31885
    
    Change-Id: If6089a371fa8e21828eba2e23cddd2d19fb69e8a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176617
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Yury Smolsky authored and bradfitz committed May 10, 2019
    Configuration menu
    Copy the full SHA
    5833aa5 View commit details
    Browse the repository at this point in the history
  7. cmd/go: move automatic testing.Init call into generated test code

    In CL 173722, we moved the flag registration in the testing package into
    an Init function. In order to avoid needing changes to user code, we
    called Init automatically as part of testing.MainStart.
    
    However, that isn't early enough if flag.Parse is called before the
    tests run, as part of package initialization.
    
    Fix this by injecting a bit of code to call testing.Init into test
    packages. This runs before any other initialization code in the user's
    test package, so testing.Init will be called before any user code can
    call flag.Parse.
    
    Fixes #31859
    
    Change-Id: Ib42cd8d3819150c49a3cecf7eef2472319d0c7e9
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176098
    Run-TryBot: Caleb Spare <cespare@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    cespare authored and Bryan C. Mills committed May 10, 2019
    Configuration menu
    Copy the full SHA
    49a1a01 View commit details
    Browse the repository at this point in the history
  8. cmd/go: add generated code comment to _testmain.go template

    Fixes #31971
    
    Change-Id: I127659be145e348fae20930615666d67dc7971ef
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176468
    Run-TryBot: Jay Conrod <jayconrod@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Jay Conrod committed May 10, 2019
    Configuration menu
    Copy the full SHA
    309ab1e View commit details
    Browse the repository at this point in the history
  9. cmd/compile: reduce rulelog noise

    When the SSA rules are re-generated to log rules,
    they write output like:
    
    rewrite AMD64.rules:527
    rewrite AMD64.rules:427
    rewrite AMD64.rules:494
    
    This is silly; there are no non-rewrite lines in the file.
    Furthermore, the rulelog file tends to be gigantic
    for any non-trivial compilation (measured in gigabytes).
    
    Remove the "rewrite " prefix.
    
    No impact to normal builds.
    
    Change-Id: I955995c1cc5f27a4a6a3849e19082ecb3e40bd4f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176677
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    josharian committed May 10, 2019
    Configuration menu
    Copy the full SHA
    f61cf6f View commit details
    Browse the repository at this point in the history

Commits on May 11, 2019

  1. test: use a real use function in nilptr2.go

    Adjust the dummy use function to a real use. As suggested by the
    println calls in the test, nilptr2.go supposes to check that a
    used nil pointer dereference panics. This use function is not
    real enough so an optimized compiler such as gccgo could
    eliminate the call.
    
    The spec requires that even a dummy use would cause a panic.
    Unfortunately, due to #31151 this is not true for gccgo at -O1 or
    above.
    
    Change-Id: Ie07c8a5969ab94dad82d4f7cfec30597c25b7c46
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176579
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    cherrymui committed May 11, 2019
    Configuration menu
    Copy the full SHA
    ce5ae2f View commit details
    Browse the repository at this point in the history
  2. net: comment duplicate constant

    Change-Id: If5a4d8eff4e51d72fb9dc1d5db2bfe674ec5753b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176717
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    tamird authored and ianlancetaylor committed May 11, 2019
    Configuration menu
    Copy the full SHA
    0926701 View commit details
    Browse the repository at this point in the history

Commits on May 12, 2019

  1. cmd/link: add support for R_AARCH64_LDST128_ABS_LO12_NC relocations

    These are encountered when compiling with -linkmode=internal on openbsd/arm64.
    
    Fixes #31940
    
    Change-Id: I851e6a7da0a3fb3e23b4fa2ed8dce3051c680f11
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176697
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    4a6f656c authored and bradfitz committed May 12, 2019
    Configuration menu
    Copy the full SHA
    83f205f View commit details
    Browse the repository at this point in the history
  2. cmd/internal/obj/x86: add oclass function tests

    To make refactoring/optimizations easier in future.
    
    Change-Id: I158f52af7c72849df1d6bd9334b3ce9dd199318f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175357
    Run-TryBot: Iskander Sharipov <quasilyte@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    quasilyte committed May 12, 2019
    Configuration menu
    Copy the full SHA
    2e4edf4 View commit details
    Browse the repository at this point in the history

Commits on May 13, 2019

  1. os: fix typo in Chmod godoc

    Change-Id: I3e5c20d2ffbbe604e6c8b21e2afa50dd6c9f2b7a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176626
    Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    tklauser authored and bradfitz committed May 13, 2019
    Configuration menu
    Copy the full SHA
    afd7915 View commit details
    Browse the repository at this point in the history
  2. errors: remove useless condition checking in Is

    golang.org/cl/175260 fixed Is panics if target is uncomparable. It did
    add an useless condition checking whether target is comparable. Just
    remove that condition.
    
    Change-Id: I0a317056479638d209b0a0cbc7010c153558c087
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176497
    Reviewed-by: Joan Lopez de la Franca Beltran <joanjan14@gmail.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    cuonglm authored and bradfitz committed May 13, 2019
    Configuration menu
    Copy the full SHA
    c583104 View commit details
    Browse the repository at this point in the history
  3. time: fix a typo in comments

    Change-Id: I407d7215d077176678a714ff1446e987bb818f7c
    GitHub-Last-Rev: 22012ad
    GitHub-Pull-Request: #31988
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176797
    Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    nkryuchkov authored and bradfitz committed May 13, 2019
    Configuration menu
    Copy the full SHA
    2fd97ee View commit details
    Browse the repository at this point in the history
  4. cmd/compile: remove large intermediate slice from gc.scopePCs

    Three loops can be converted into one.
    Minor reviewer-recommended refactoring.
    Passes toolstash-check.
    
    Updates #27739.
    
    Change-Id: Ia87a11d88ae3ce56fcc4267fe6c5a9c13bf7f533
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176577
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: Alessandro Arzilli <alessandro.arzilli@gmail.com>
    dr2chase committed May 13, 2019
    Configuration menu
    Copy the full SHA
    d41a0a0 View commit details
    Browse the repository at this point in the history
  5. doc: use consistent path in example code

    Previous section of documentation said that if GOPATH is not set then
    it will be default to "$HOME/go", not "$HOME/work".
    
    This change fix the path in example code to "$HOME/go", and while at it
    fix the output of git command after commit.
    
    Change-Id: Ifedca6c3997efd07e865c27b7321d755acad0254
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175258
    Reviewed-by: Andrew Bonventre <andybons@golang.org>
    shuLhan authored and andybons committed May 13, 2019
    Configuration menu
    Copy the full SHA
    c2f7dd1 View commit details
    Browse the repository at this point in the history
  6. mime: update .mjs MIME type from text/ to application/javascript

    .mjs should be the same MIME type as .js, and RFC 4329 says that
    text/javascript is obsolete, even back in 2006:
    
        https://tools.ietf.org/html/rfc4329#section-7.1
    
    I didn't notice this when I recently reviewed CL 169502.
    
    Also, re-sort it.
    
    Updates #30547
    
    Change-Id: I8ed8ddaf06c8a08b010423ebd071f39ef3a325e5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175459
    Reviewed-by: Andrew Bonventre <andybons@golang.org>
    Run-TryBot: Andrew Bonventre <andybons@golang.org>
    bradfitz committed May 13, 2019
    Configuration menu
    Copy the full SHA
    db2bf15 View commit details
    Browse the repository at this point in the history
  7. cmd/go/internal/modfetch: fix GOSUMDB test failures

    Use cfg.GOSUMDB consistently instead of re-resolving it from the environment.
    
    Set cfg.GOSUMDB to 'off' explicitly in coderepo_test, since it may
    include modules that cannot be fetched using a released version of the
    'go' command.
    
    Fixes #31964
    
    Change-Id: I17cae9e0c6aa1168ba534e6da4e3652800ac81e5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176538
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    Bryan C. Mills committed May 13, 2019
    Configuration menu
    Copy the full SHA
    5f320f9 View commit details
    Browse the repository at this point in the history
  8. cmd/go/internal/modfetch/codehost: ignore incomplete semver tags in R…

    …ecentTag
    
    Fixes #31965
    
    Change-Id: I2126903196b630c0bee2c022be1a818e0856ce3b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176539
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    Bryan C. Mills committed May 13, 2019
    Configuration menu
    Copy the full SHA
    8d212c3 View commit details
    Browse the repository at this point in the history
  9. runtime: resolve latent function type TODO

    This was left over from the C->Go transition.
    
    Change-Id: I52494af3d49a388dc45b57210ba68292ae01cf84
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176897
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    tamird authored and aclements committed May 13, 2019
    Configuration menu
    Copy the full SHA
    7a43f8a View commit details
    Browse the repository at this point in the history
  10. index/suffixarray: index 3-10X faster in half the memory

    This CL changes the index/suffixarray construction algorithm from QSufSort to SAIS.
    
    For an N-byte input, QSufSort runs in O(N log N) time and requires
    an N-int temporary work space in addition to the N-int output.
    
    In contrast, SAIS runs in O(N) time and, for essentially all real inputs,
    is able to use the N-int output buffer as its temporary work space.
    (In pathological cases, SAIS must allocate a temporary work space of
    at most N/2 ints. There exist more complex variants that guarantee
    to avoid the work space in all cases, but they hardly seem worth the cost
    given how rare these pathological cases are.)
    
    The SAIS code therefore uses 50% of the memory across the board.
    It also runs 3-10X faster on real input text.
    
    This CL also adds more extensive algorithmic tests, including an
    exhaustive test over small inputs to catch corner case problems.
    
    name                                   old speed      new speed        delta
    New/text=opticks/size=100K/bits=32-12  6.15MB/s ± 1%   26.79MB/s ± 1%   +335.89%  (p=0.008 n=5+5)
    New/text=opticks/size=100K/bits=64-12  5.90MB/s ± 2%   27.29MB/s ± 2%   +362.23%  (p=0.008 n=5+5)
    New/text=opticks/size=500K/bits=32-12  4.99MB/s ± 3%   25.37MB/s ± 2%   +408.01%  (p=0.008 n=5+5)
    New/text=opticks/size=500K/bits=64-12  4.88MB/s ± 1%   25.66MB/s ± 4%   +425.52%  (p=0.008 n=5+5)
    New/text=go/size=100K/bits=32-12       5.81MB/s ± 1%   26.49MB/s ± 2%   +355.85%  (p=0.008 n=5+5)
    New/text=go/size=100K/bits=64-12       5.76MB/s ± 2%   26.65MB/s ± 3%   +362.60%  (p=0.008 n=5+5)
    New/text=go/size=500K/bits=32-12       4.91MB/s ± 1%   25.12MB/s ± 2%   +411.86%  (p=0.008 n=5+5)
    New/text=go/size=500K/bits=64-12       4.83MB/s ± 2%   25.79MB/s ± 2%   +434.44%  (p=0.008 n=5+5)
    New/text=go/size=1M/bits=32-12         4.62MB/s ± 2%   24.87MB/s ± 2%   +438.78%  (p=0.008 n=5+5)
    New/text=go/size=1M/bits=64-12         4.39MB/s ± 2%   24.61MB/s ± 2%   +460.68%  (p=0.008 n=5+5)
    New/text=go/size=5M/bits=32-12         2.85MB/s ± 2%   24.78MB/s ± 7%   +768.33%  (p=0.008 n=5+5)
    New/text=go/size=5M/bits=64-12         2.28MB/s ± 1%   18.70MB/s ± 7%   +719.63%  (p=0.008 n=5+5)
    New/text=go/size=10M/bits=32-12        2.08MB/s ± 1%   21.04MB/s ± 6%   +909.60%  (p=0.008 n=5+5)
    New/text=go/size=10M/bits=64-12        1.83MB/s ± 1%   16.64MB/s ± 2%   +809.18%  (p=0.008 n=5+5)
    New/text=go/size=50M/bits=32-12        1.51MB/s ± 0%   10.58MB/s ± 1%   +602.52%  (p=0.008 n=5+5)
    New/text=go/size=50M/bits=64-12        1.34MB/s ± 4%    9.00MB/s ± 1%   +569.35%  (p=0.008 n=5+5)
    New/text=zero/size=100K/bits=32-12     4.17MB/s ± 0%  157.56MB/s ± 1%  +3678.42%  (p=0.016 n=4+5)
    New/text=zero/size=100K/bits=64-12     4.19MB/s ± 2%  162.72MB/s ± 2%  +3783.63%  (p=0.008 n=5+5)
    New/text=zero/size=500K/bits=32-12     3.72MB/s ± 5%  159.17MB/s ± 1%  +4176.57%  (p=0.008 n=5+5)
    New/text=zero/size=500K/bits=64-12     3.77MB/s ± 3%  164.95MB/s ± 4%  +4277.60%  (p=0.008 n=5+5)
    New/text=zero/size=1M/bits=32-12       3.46MB/s ± 3%  158.42MB/s ± 1%  +4476.08%  (p=0.008 n=5+5)
    New/text=zero/size=1M/bits=64-12       3.41MB/s ± 4%  163.70MB/s ± 2%  +4700.65%  (p=0.008 n=5+5)
    New/text=zero/size=5M/bits=32-12       3.12MB/s ± 2%  151.92MB/s ± 4%  +4775.48%  (p=0.008 n=5+5)
    New/text=zero/size=5M/bits=64-12       3.09MB/s ± 2%  166.19MB/s ± 2%  +5274.84%  (p=0.008 n=5+5)
    New/text=zero/size=10M/bits=32-12      2.97MB/s ± 1%  157.75MB/s ± 1%  +5211.38%  (p=0.008 n=5+5)
    New/text=zero/size=10M/bits=64-12      2.92MB/s ± 1%  162.75MB/s ± 2%  +5473.77%  (p=0.008 n=5+5)
    New/text=zero/size=50M/bits=32-12      2.67MB/s ± 1%  144.43MB/s ± 5%  +5305.39%  (p=0.008 n=5+5)
    New/text=zero/size=50M/bits=64-12      2.61MB/s ± 1%  125.19MB/s ± 2%  +4700.33%  (p=0.016 n=5+4)
    New/text=rand/size=100K/bits=32-12     8.69MB/s ± 6%   27.60MB/s ± 1%   +217.73%  (p=0.008 n=5+5)
    New/text=rand/size=100K/bits=64-12     8.92MB/s ± 1%   26.37MB/s ± 4%   +195.50%  (p=0.008 n=5+5)
    New/text=rand/size=500K/bits=32-12     7.11MB/s ± 2%   25.23MB/s ± 2%   +254.78%  (p=0.008 n=5+5)
    New/text=rand/size=500K/bits=64-12     7.08MB/s ± 1%   25.45MB/s ± 2%   +259.56%  (p=0.008 n=5+5)
    New/text=rand/size=1M/bits=32-12       6.45MB/s ± 2%   24.47MB/s ± 3%   +279.11%  (p=0.008 n=5+5)
    New/text=rand/size=1M/bits=64-12       6.09MB/s ± 4%   23.00MB/s ± 4%   +277.85%  (p=0.008 n=5+5)
    New/text=rand/size=5M/bits=32-12       3.68MB/s ± 3%   10.34MB/s ± 5%   +181.08%  (p=0.008 n=5+5)
    New/text=rand/size=5M/bits=64-12       3.25MB/s ± 1%    6.23MB/s ± 1%    +91.93%  (p=0.008 n=5+5)
    New/text=rand/size=10M/bits=32-12      3.03MB/s ± 1%    5.61MB/s ± 2%    +85.28%  (p=0.008 n=5+5)
    New/text=rand/size=10M/bits=64-12      2.80MB/s ± 1%    4.29MB/s ± 2%    +53.40%  (p=0.008 n=5+5)
    New/text=rand/size=50M/bits=32-12      2.11MB/s ± 0%    2.45MB/s ± 1%    +16.23%  (p=0.029 n=4+4)
    New/text=rand/size=50M/bits=64-12      2.04MB/s ± 1%    2.24MB/s ± 1%    +10.03%  (p=0.016 n=5+4)
    SaveRestore/bits=32-12                  327MB/s ± 5%     319MB/s ± 2%       ~     (p=0.310 n=5+5)
    SaveRestore/bits=64-12                  306MB/s ± 3%     306MB/s ± 2%       ~     (p=0.841 n=5+5)
    
    name                                   old alloc/op   new alloc/op     delta
    New/text=opticks/size=100K/bits=32-12     811kB ± 0%       401kB ± 0%    -50.51%  (p=0.008 n=5+5)
    New/text=opticks/size=100K/bits=64-12    1.62MB ± 0%      0.80MB ± 0%    -50.51%  (p=0.008 n=5+5)
    New/text=opticks/size=500K/bits=32-12    4.04MB ± 0%      2.01MB ± 0%    -50.37%  (p=0.008 n=5+5)
    New/text=opticks/size=500K/bits=64-12    8.07MB ± 0%      4.01MB ± 0%    -50.36%  (p=0.016 n=4+5)
    New/text=go/size=100K/bits=32-12          811kB ± 0%       401kB ± 0%       ~     (p=0.079 n=4+5)
    New/text=go/size=100K/bits=64-12         1.62MB ± 0%      0.80MB ± 0%    -50.50%  (p=0.008 n=5+5)
    New/text=go/size=500K/bits=32-12         4.04MB ± 0%      2.01MB ± 0%       ~     (p=0.079 n=4+5)
    New/text=go/size=500K/bits=64-12         8.07MB ± 0%      4.01MB ± 0%    -50.36%  (p=0.000 n=4+5)
    New/text=go/size=1M/bits=32-12           8.07MB ± 0%      4.01MB ± 0%    -50.36%  (p=0.008 n=5+5)
    New/text=go/size=1M/bits=64-12           16.1MB ± 0%       8.0MB ± 0%    -50.36%  (p=0.008 n=5+5)
    New/text=go/size=5M/bits=32-12           40.2MB ± 0%      20.0MB ± 0%    -50.18%  (p=0.008 n=5+5)
    New/text=go/size=5M/bits=64-12           80.3MB ± 0%      40.0MB ± 0%    -50.18%  (p=0.008 n=5+5)
    New/text=go/size=10M/bits=32-12          80.2MB ± 0%      40.0MB ± 0%    -50.09%  (p=0.000 n=5+4)
    New/text=go/size=10M/bits=64-12           160MB ± 0%        80MB ± 0%    -50.09%  (p=0.000 n=5+4)
    New/text=go/size=50M/bits=32-12           402MB ± 0%       200MB ± 0%    -50.29%  (p=0.000 n=5+4)
    New/text=go/size=50M/bits=64-12           805MB ± 0%       400MB ± 0%    -50.29%  (p=0.000 n=5+4)
    New/text=zero/size=100K/bits=32-12       1.46MB ± 0%      0.40MB ± 0%    -72.46%  (p=0.008 n=5+5)
    New/text=zero/size=100K/bits=64-12       3.02MB ± 0%      0.80MB ± 0%    -73.45%  (p=0.008 n=5+5)
    New/text=zero/size=500K/bits=32-12       8.66MB ± 0%      2.01MB ± 0%       ~     (p=0.079 n=4+5)
    New/text=zero/size=500K/bits=64-12       19.7MB ± 0%       4.0MB ± 0%    -79.63%  (p=0.008 n=5+5)
    New/text=zero/size=1M/bits=32-12         19.7MB ± 0%       4.0MB ± 0%       ~     (p=0.079 n=4+5)
    New/text=zero/size=1M/bits=64-12         39.0MB ± 0%       8.0MB ± 0%    -79.48%  (p=0.000 n=5+4)
    New/text=zero/size=5M/bits=32-12         85.2MB ± 0%      20.0MB ± 0%    -76.52%  (p=0.008 n=5+5)
    New/text=zero/size=5M/bits=64-12          169MB ± 0%        40MB ± 0%    -76.27%  (p=0.008 n=5+5)
    New/text=zero/size=10M/bits=32-12         169MB ± 0%        40MB ± 0%    -76.26%  (p=0.000 n=5+4)
    New/text=zero/size=10M/bits=64-12         333MB ± 0%        80MB ± 0%    -75.99%  (p=0.008 n=5+5)
    New/text=zero/size=50M/bits=32-12         739MB ± 0%       200MB ± 0%    -72.93%  (p=0.000 n=4+5)
    New/text=zero/size=50M/bits=64-12        1.63GB ± 0%      0.40GB ± 0%    -75.42%  (p=0.008 n=5+5)
    New/text=rand/size=100K/bits=32-12        807kB ± 0%       401kB ± 0%    -50.25%  (p=0.008 n=5+5)
    New/text=rand/size=100K/bits=64-12       1.61MB ± 0%      0.80MB ± 0%    -50.25%  (p=0.008 n=5+5)
    New/text=rand/size=500K/bits=32-12       4.04MB ± 0%      2.01MB ± 0%       ~     (p=0.079 n=4+5)
    New/text=rand/size=500K/bits=64-12       8.07MB ± 0%      4.01MB ± 0%       ~     (p=0.079 n=4+5)
    New/text=rand/size=1M/bits=32-12         8.07MB ± 0%      4.01MB ± 0%    -50.36%  (p=0.000 n=5+4)
    New/text=rand/size=1M/bits=64-12         16.1MB ± 0%       8.0MB ± 0%    -50.36%  (p=0.008 n=5+5)
    New/text=rand/size=5M/bits=32-12         40.3MB ± 0%      20.0MB ± 0%    -50.35%  (p=0.029 n=4+4)
    New/text=rand/size=5M/bits=64-12         80.7MB ± 0%      40.0MB ± 0%       ~     (p=0.079 n=4+5)
    New/text=rand/size=10M/bits=32-12        80.7MB ± 0%      40.0MB ± 0%    -50.41%  (p=0.008 n=5+5)
    New/text=rand/size=10M/bits=64-12         161MB ± 0%        80MB ± 0%    -50.44%  (p=0.029 n=4+4)
    New/text=rand/size=50M/bits=32-12         403MB ± 0%       200MB ± 0%    -50.36%  (p=0.000 n=5+4)
    New/text=rand/size=50M/bits=64-12         806MB ± 0%       400MB ± 0%       ~     (p=0.079 n=4+5)
    SaveRestore/bits=32-12                   5.28MB ± 0%      5.28MB ± 0%       ~     (p=1.000 n=5+5)
    SaveRestore/bits=64-12                   9.47MB ± 0%      9.47MB ± 0%       ~     (p=0.286 n=5+5)
    
    https://perf.golang.org/search?q=upload:20190426.1
    
    Fixes #15480.
    
    Change-Id: I0790f6edf67f5a9c02b4462632b4942e0c37988b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174100
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Eric Roshan-Eisner <edre@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 13, 2019
    Configuration menu
    Copy the full SHA
    6ca324f View commit details
    Browse the repository at this point in the history
  11. cmd/compile: correct the argument type in SETXXstore -> MOVBstore rul…

    …es on AMD64
    
    MOVBstore's value argument is a value, not a flag. We are storing
    a byte so just use UInt8.
    
    Fixes #31915.
    
    Change-Id: Id799e5f44efc3a9c3d8480f6f25ad032c2a631bb
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176719
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    Reviewed-by: Keith Randall <khr@golang.org>
    cherrymui committed May 13, 2019
    Configuration menu
    Copy the full SHA
    23f3ea8 View commit details
    Browse the repository at this point in the history
  12. cmd/go: print finally FAIL if a test has failed in package list mode

    Fixes #30507
    
    Change-Id: Ic598e4d5f71c624fcde051982bf85533e2f18e8d
    Reviewed-on: https://go-review.googlesource.com/c/go/+/170948
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    luka-zitnik authored and Bryan C. Mills committed May 13, 2019
    Configuration menu
    Copy the full SHA
    3def99a View commit details
    Browse the repository at this point in the history
  13. cmd/objdump: mark tests as parallel

    Speeds up
    
    go test -short -count=1 cmd/objdump
    
    on my machine from 1.7s to 1.3s.
    
    Not much, but as the backpacking saying goes,
    take care of the ounces and the pounds will take care of themselves.
    
    Updates #26473
    
    Change-Id: I59fe9a179e48537c7d82cbba72cde9f92b42a029
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176901
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    josharian committed May 13, 2019
    Configuration menu
    Copy the full SHA
    ed7a92b View commit details
    Browse the repository at this point in the history
  14. cmd/go: make 'go get' match patterns against packages, not modules

    This is a follow-up to CL 174099, fixing an important TODO.
    The 'go help modget' documentation will be clarified in anotehr CL,
    pending further discussion.
    
    When invoked without -m, 'go get' will no longer match arguments
    containing "..." against module paths. If a module's path matches a
    pattern but no packages within the module match the pattern, the
    module should not be upgraded. For example, if
    golang.org/x/tools/playground and golang.org/x/tools are separate
    modules, and only golang.org/x/tools is in the build list,
    'go get golang.org/x/tools/playground/...' should add
    golang.org/x/tools/playground to the build list and leave
    golang.org/x/tools alone.
    
    Updates #26902
    
    Change-Id: I2bd18c7950db1aa7bd8527210c1baf2c7d174375
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176578
    Run-TryBot: Jay Conrod <jayconrod@google.com>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    Jay Conrod committed May 13, 2019
    Configuration menu
    Copy the full SHA
    71be83e View commit details
    Browse the repository at this point in the history
  15. runtime: resolve latent TODOs

    These were added in https://go-review.googlesource.com/1224; according
    to austin@google.com these annotations are not valuable - resolving by
    removing the TODOs.
    
    Change-Id: Icf3f21bc385cac9673ba29f0154680e970cf91f2
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176899
    Reviewed-by: Austin Clements <austin@google.com>
    tamird authored and aclements committed May 13, 2019
    Configuration menu
    Copy the full SHA
    9c86eae View commit details
    Browse the repository at this point in the history
  16. cmd/fix: mark tests as parallel

    This speeds up
    
    go test -short -count=1 cmd/fix
    
    on my machine from about 8s to about 0.05s.
    
    Updates #26473
    
    Change-Id: I698ee20704ae0aee874ba642e7b0e070ddc99194
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176900
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    josharian committed May 13, 2019
    Configuration menu
    Copy the full SHA
    3378683 View commit details
    Browse the repository at this point in the history
  17. cmd/objdump: ensure that test executable files are distinct

    This fixes test failures introduced by CL 176901.
    
    Change-Id: I133299ba3be3a15ced076c95e4833ba6070d7eb7
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176903
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    josharian committed May 13, 2019
    Configuration menu
    Copy the full SHA
    f68244e View commit details
    Browse the repository at this point in the history
  18. cmd/compile: mark a few more tests as parallel

    Reduces the time on my machine for
    
    go clean -cache; go test -short -count=1 cmd/compile/internal/gc
    
    from 4.7s to 3.7s.
    
    Updates #26473
    
    Change-Id: I9f9573675ffd6519da63961f48f61260ae4717fd
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176937
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    josharian committed May 13, 2019
    Configuration menu
    Copy the full SHA
    5d98330 View commit details
    Browse the repository at this point in the history
  19. spec: clarify language on package-level variable initialization

    The very first paragraph on "Package initialization" stated that
    "variables are initialized in declaration order, but after any
    variables they might depend on". This phrasing was easily
    misread as "declaration order is the first sorting criteria"
    and then contradicted what the subsequent paragraphs spelled
    out in precise detail.
    
    Instead, variable initialization proceeds by repeatedly determining
    a set of ready to initialize variables, and then selecting from that
    set the variable declared earliest. That is, declaration order is the
    second sorting criteria.
    
    Also, for the purpose of variable initialization, declarations
    introducing blank (_) variables are considered like any other
    variables (their initialization expressions may have side-effects
    and affect initialization order), even though blank identifiers
    are not "declared".
    
    This CL adds clarifying language regarding these two issues
    and the supporting example.
    
    Both gccgo and go/types implement this behavior. cmd/compile
    has a long-standing issue (#22326).
    
    The spec also did not state in which order multiple variables
    initialized by a single (multi-value) initialization expression are
    handled. This CL adds a clarifying paragraph: If any such variable
    is initialized, all that declaration's variables are initialized at
    the same time.
    
    This behavior matches user expectation: We are not expecting to
    observe partially initialized sets of variables in declarations
    such as "var a, b, c = f()".
    
    It also matches existing cmd/compile and go/types (but not gccgo)
    behavior.
    
    Finally, cmd/compile, gccgo, and go/types produce different
    initialization orders in (esoteric) cases where hidden (not
    detected with existing rules) dependencies exist. Added a
    sentence and example clarifying how much leeway compilers have
    in those situations. The goal is to preserve the ability to
    use static initialization while at the same time maintain
    the relative initialization order of variables with detected
    dependencies.
    
    Fixes   #31292.
    Updates #22326.
    
    Change-Id: I0a369abff8cfce27afc975998db875f5c580caa2
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175980
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    Reviewed-by: Matthew Dempsky <mdempsky@google.com>
    griesemer committed May 13, 2019
    Configuration menu
    Copy the full SHA
    451cf3e View commit details
    Browse the repository at this point in the history
  20. spec: clarify the difference between &T{} and new(T)

    Add a small paragraph and example pointing out
    the difference for the case where T is a slice
    or map. This is a common error for Go novices.
    
    Fixes #29425.
    
    Change-Id: Icdb59f25361e9f6a09b190fbfcc9ae0c7d90077b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176338
    Reviewed-by: Matthew Dempsky <mdempsky@google.com>
    griesemer committed May 13, 2019
    Configuration menu
    Copy the full SHA
    eebb9db View commit details
    Browse the repository at this point in the history

Commits on May 14, 2019

  1. text/template: fix truth handling of typed interface nils in if and with

    Before this commit, the two logically equivalent conditionals below would
    produce different output:
    
        {{ if not .NonEmptyInterfaceTypedNil }}OK{{ else }}{{ end }}
        {{ if .NonEmptyInterfaceTypedNil }}{{ else }}OK{{ end }}
    
    The functions `not`, `or`, and `and` all use the same `truth` function, which
    unwraps any concrete interface value before passing it to `isTrue`.
    
    `if` and `with` also use `isTrue` to establish truth, but was missing the
    interface indirect call.
    
    Fixes #30501
    
    Change-Id: I9c49eed41e737d8f162e39bef1c3b82fd5518fed
    GitHub-Last-Rev: 95fc2c8
    GitHub-Pull-Request: #30534
    Reviewed-on: https://go-review.googlesource.com/c/go/+/164958
    Reviewed-by: Russ Cox <rsc@golang.org>
    Run-TryBot: Russ Cox <rsc@golang.org>
    bep authored and robpike committed May 14, 2019
    Configuration menu
    Copy the full SHA
    45d74aa View commit details
    Browse the repository at this point in the history
  2. cmd/go: default to GO111MODULE=auto and make it trigger in GOPATH/src

    Fixes #31857
    
    Change-Id: Ib0b791376acb7ee1cdc163f808b8ecf77dbdaf06
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176580
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    Bryan C. Mills committed May 14, 2019
    Configuration menu
    Copy the full SHA
    5b4ea62 View commit details
    Browse the repository at this point in the history
  3. cmd/go: do not allow version prefixes to match prereleases of that ve…

    …rsion
    
    Fixes #31972
    
    Change-Id: I3bb9ef3a1134e67d2d062bea2f0e4032647e12e6
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176898
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Bryan C. Mills committed May 14, 2019
    Configuration menu
    Copy the full SHA
    9892cd6 View commit details
    Browse the repository at this point in the history
  4. cmd/go: convert semver tags with metadata to pseudoversions

    Some repositories include tags like 'v1.0.0-rc.1+oryOS.9'.
    
    If we were to allow such tags, they could become ambiguous: semantic
    versioning defines versions that differ only in metadata to have equal
    precedence, so if someone added a tag 'v1.0.0-rc.1+other' at a
    different commit, then the version 'v1.0.0-rc.1' would become
    ambiguous.
    
    However, we should still allow those tags to be used to resolve
    versions, and since we can even parse the underlying semantic version,
    we can at least use that as the basis for a unique (and well-ordered)
    pseudo-version.
    
    Fixes #31713
    
    Change-Id: I5035f76d74ead6e786c04a368595cb5e42d36f91
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176905
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    Reviewed-by: Jay Conrod <jayconrod@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Bryan C. Mills committed May 14, 2019
    Configuration menu
    Copy the full SHA
    aad2336 View commit details
    Browse the repository at this point in the history
  5. cmd/go: fix import current directory error message

    Fixes #14683
    
    Change-Id: I62c429e4fcc2f20a94d3db8c1f0ca587252c07a7
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174130
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    cuonglm authored and ianlancetaylor committed May 14, 2019
    Configuration menu
    Copy the full SHA
    46e03c4 View commit details
    Browse the repository at this point in the history
  6. runtime: call atomic.Storeuintptr in noteclear on AIX

    The memory might not be synchronized in a thread being woken up after a
    semasleep. Using atomic instructions in noteclear function will force
    this synchronisation.
    
    Fixes #30189
    
    Change-Id: If7432f29b2a1a56288231822db52f3f8d1d6dbfe
    Reviewed-on: https://go-review.googlesource.com/c/go/+/163624
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    Clément Chigot authored and ianlancetaylor committed May 14, 2019
    Configuration menu
    Copy the full SHA
    1956b28 View commit details
    Browse the repository at this point in the history
  7. net: check for canceled context before starting Windows DNS lookup

    Fixes #31950
    
    Change-Id: Id9bcd51a8b49523eeecbd0d8d527372a0b8d8760
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177038
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    bradfitz committed May 14, 2019
    Configuration menu
    Copy the full SHA
    40b433e View commit details
    Browse the repository at this point in the history
  8. net/http/httputil: remove all fields in Connection header

    In the reverseproxy, replace use (Header).Get, which returns only one value
    of a multiple value header, with using the Header map directly. Also fixes
    corresponding tests which hid the bug, and adds more tests.
    
    Fixes #30303
    
    Change-Id: Ic9094b5983043460697748759f6dfd95fc111db7
    GitHub-Last-Rev: b410381
    GitHub-Pull-Request: #30687
    Reviewed-on: https://go-review.googlesource.com/c/go/+/166298
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    jonathonlacher authored and bradfitz committed May 14, 2019
    Configuration menu
    Copy the full SHA
    a5cea06 View commit details
    Browse the repository at this point in the history
  9. database/sql: fix subject of unexported func comment

    Change-Id: I5db429c86e01b55ec3abc6ab4ca11c221b27f189
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177039
    Reviewed-by: Daniel Theophanes <kardianos@gmail.com>
    bradfitz committed May 14, 2019
    Configuration menu
    Copy the full SHA
    2637f1f View commit details
    Browse the repository at this point in the history
  10. cmd/compile: make sure to initialize static entries of slices

    If a slice's entries are sparse, we decide to initialize it dynamically
    instead of statically. That's CL 151319.
    
    But if we do initialize it dynamically, we still need to initialize
    the static entries. Typically we do that, but the bug fixed here is
    that we don't if the entry's value is itself an array or struct.
    
    To fix, use initKindLocalCode to ensure that both static and
    dynamic entries are initialized via code.
    
    Fixes #31987
    
    Change-Id: I1192ffdbfb5cd50445c1206c4a3d8253295201dd
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176904
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
    randall77 committed May 14, 2019
    Configuration menu
    Copy the full SHA
    a9e107c View commit details
    Browse the repository at this point in the history
  11. cmd/compile: index line number tables by source file to improve sparsity

    This reduces allocations and also resolves some
    lurking inliner/inlinee line-number match problems.
    However, it does add about 1.5% to compile time.
    
    This fixes compiler OOMs seen compiling some large protobuf-
    derived inputs.  For compiling the compiler itself,
    
    compilebench -pkg cmd/compile/internal/ssa -memprofile withcl.prof
    
    the numberlines-related memory consumption is reduced from 129MB
    to 29MB (about a 5% overall reduction in allocation).
    
    Additionally modified after going over changes with Austin
    to remove unused code (nobody called size()) and correct
    the cache-clearing code.
    
    I've attempted to speed this up by not using maps, and have
    not succeeded.  I'd rather get correct code in now, speed it
    up later if I can.
    
    Updates #27739.
    Fixes #29279.
    
    Change-Id: I098005de4e45196a5f5b10c0886a49f88e9f8fd5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/154617
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    dr2chase committed May 14, 2019
    Configuration menu
    Copy the full SHA
    6081a9f View commit details
    Browse the repository at this point in the history
  12. cmd/internal/obj/x86: fix oclass tests for Hsolaris

    Use objabi.Hlinux for now.
    
    Fixes #32028
    
    Change-Id: If9745f72c0ee4444ea2a2faa50813d2e1ac2bf97
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177077
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
    quasilyte authored and bradfitz committed May 14, 2019
    Configuration menu
    Copy the full SHA
    a75bfb0 View commit details
    Browse the repository at this point in the history
  13. cmd/dist: make GOROOT unwritable on builders

    Updates #30316
    
    Change-Id: I57e489f6bbe4a3b39c907dabe5ac41fb9939cdb4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/163477
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
    bradfitz committed May 14, 2019
    Configuration menu
    Copy the full SHA
    02d24fc View commit details
    Browse the repository at this point in the history
  14. spec: clarify that slice a expression shares underlying array with op…

    …erand
    
    The spec was not very precise as to what happens with respect to sharing
    if a sliced operand is (a pointer to) an array. Added a small clarification
    and a supporting example.
    
    Fixes #31689.
    
    Change-Id: Ic49351bec2033abd3f5428154ec3e9a7c2c9eaa5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177139
    Reviewed-by: Matthew Dempsky <mdempsky@google.com>
    Reviewed-by: Rob Pike <r@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    griesemer committed May 14, 2019
    Configuration menu
    Copy the full SHA
    1e3ffb0 View commit details
    Browse the repository at this point in the history

Commits on May 15, 2019

  1. cmd/go/internal/renameio: allow write file with the specified permiss…

    …ions
    
    Now renameio package creates file use ioutil.TempFile, which calls
    OpenFile with mode 0600, we should support creates a file with given
    permission bits.
    
    Fixes #31871
    
    Change-Id: I0436e9f7081f2fce18bf9f3b14d55b02d4d995fb
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175958
    Run-TryBot: Baokun Lee <nototon@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    oiooj authored and Bryan C. Mills committed May 15, 2019
    Configuration menu
    Copy the full SHA
    cefc0bb View commit details
    Browse the repository at this point in the history
  2. regexp: optimize for provably too short inputs

    For many patterns we can compute the minimum input length at compile time.
    If the input is shorter, we can return early and get a huge speedup.
    
    As pointed out by Damian Gryski, Perl's regex engine contains a number of
    these kinds of fail-fast optimizations:
    https://perldoc.perl.org/perlreguts.html#Peep-hole-Optimisation-and-Analysis
    
    Benchmarks: (including new ones for compile time)
    
    name               old time/op    new time/op    delta
    Compile/Onepass-8    4.39µs ± 1%    4.40µs ± 0%  +0.34%  (p=0.029 n=9+8)
    Compile/Medium-8     9.80µs ± 0%    9.91µs ± 0%  +1.17%  (p=0.000 n=10+10)
    Compile/Hard-8       72.7µs ± 0%    73.5µs ± 0%  +1.10%  (p=0.000 n=9+10)
    
    name                       old time/op    new time/op      delta
    Match/Easy0/16-8             52.6ns ± 5%       4.9ns ± 0%     -90.68%  (p=0.000 n=10+9)
    Match/Easy0/32-8             64.1ns ±10%      61.4ns ± 1%        ~     (p=0.188 n=10+9)
    Match/Easy0/1K-8              280ns ± 1%       277ns ± 2%      -0.97%  (p=0.004 n=10+10)
    Match/Easy0/32K-8            4.61µs ± 1%      4.55µs ± 1%      -1.49%  (p=0.000 n=9+10)
    Match/Easy0/1M-8              229µs ± 0%       226µs ± 1%      -1.29%  (p=0.000 n=8+10)
    Match/Easy0/32M-8            7.50ms ± 1%      7.47ms ± 1%        ~     (p=0.165 n=10+10)
    Match/Easy0i/16-8             533ns ± 1%         5ns ± 2%     -99.07%  (p=0.000 n=10+10)
    Match/Easy0i/32-8             950ns ± 0%       950ns ± 1%        ~     (p=0.920 n=10+9)
    Match/Easy0i/1K-8            27.5µs ± 1%      27.5µs ± 0%        ~     (p=0.739 n=10+10)
    Match/Easy0i/32K-8           1.13ms ± 0%      1.13ms ± 1%        ~     (p=0.079 n=9+10)
    Match/Easy0i/1M-8            36.7ms ± 2%      36.1ms ± 0%      -1.64%  (p=0.000 n=10+9)
    Match/Easy0i/32M-8            1.17s ± 0%       1.16s ± 1%      -0.80%  (p=0.004 n=8+9)
    Match/Easy1/16-8             55.5ns ± 6%       4.9ns ± 1%     -91.19%  (p=0.000 n=10+9)
    Match/Easy1/32-8             58.3ns ± 8%      56.6ns ± 1%        ~     (p=0.449 n=10+8)
    Match/Easy1/1K-8              750ns ± 0%       748ns ± 1%        ~     (p=0.072 n=8+10)
    Match/Easy1/32K-8            31.8µs ± 0%      31.6µs ± 1%      -0.50%  (p=0.035 n=10+9)
    Match/Easy1/1M-8             1.10ms ± 1%      1.09ms ± 0%      -0.95%  (p=0.000 n=10+9)
    Match/Easy1/32M-8            35.5ms ± 0%      35.2ms ± 1%      -1.05%  (p=0.000 n=9+10)
    Match/Medium/16-8             442ns ± 2%         5ns ± 1%     -98.89%  (p=0.000 n=10+10)
    Match/Medium/32-8             875ns ± 0%       878ns ± 1%        ~     (p=0.071 n=9+10)
    Match/Medium/1K-8            26.1µs ± 0%      25.9µs ± 0%      -0.64%  (p=0.000 n=10+10)
    Match/Medium/32K-8           1.09ms ± 1%      1.08ms ± 0%      -0.84%  (p=0.000 n=10+9)
    Match/Medium/1M-8            34.9ms ± 0%      34.6ms ± 1%      -0.98%  (p=0.000 n=9+10)
    Match/Medium/32M-8            1.12s ± 1%       1.11s ± 1%      -0.98%  (p=0.000 n=10+9)
    Match/Hard/16-8               721ns ± 1%         5ns ± 0%     -99.32%  (p=0.000 n=10+9)
    Match/Hard/32-8              1.32µs ± 1%      1.31µs ± 0%      -0.71%  (p=0.000 n=9+9)
    Match/Hard/1K-8              39.8µs ± 1%      39.7µs ± 1%        ~     (p=0.165 n=10+10)
    Match/Hard/32K-8             1.57ms ± 0%      1.56ms ± 0%      -0.70%  (p=0.000 n=10+9)
    Match/Hard/1M-8              50.4ms ± 1%      50.1ms ± 1%      -0.57%  (p=0.007 n=10+10)
    Match/Hard/32M-8              1.62s ± 1%       1.60s ± 0%      -0.98%  (p=0.000 n=10+10)
    Match/Hard1/16-8             3.88µs ± 1%      3.86µs ± 0%        ~     (p=0.118 n=10+10)
    Match/Hard1/32-8             7.44µs ± 1%      7.46µs ± 1%        ~     (p=0.109 n=10+10)
    Match/Hard1/1K-8              232µs ± 1%       229µs ± 1%      -1.31%  (p=0.000 n=10+9)
    Match/Hard1/32K-8            7.41ms ± 2%      7.41ms ± 0%        ~     (p=0.237 n=10+8)
    Match/Hard1/1M-8              238ms ± 1%       238ms ± 0%        ~     (p=0.481 n=10+10)
    Match/Hard1/32M-8             7.69s ± 1%       7.61s ± 0%      -1.00%  (p=0.000 n=10+10)
    
    Fixes #31329
    
    Change-Id: I04640e8c59178ec8b3106e13ace9b109b6bdbc25
    Reviewed-on: https://go-review.googlesource.com/c/go/+/171023
    Reviewed-by: Rob Pike <r@golang.org>
    Reviewed-by: Russ Cox <rsc@golang.org>
    Run-TryBot: Rob Pike <r@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    sylvinus authored and rsc committed May 15, 2019
    Configuration menu
    Copy the full SHA
    8116599 View commit details
    Browse the repository at this point in the history
  3. cmd/vendor: go get -u golang.org/x/tools && go mod vendor

    Picks up vet fix from CL 176357.
    
    Change-Id: Ia77cd4a582c4edfbe59bbc311e6ce14046df0e83
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177137
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    rsc committed May 15, 2019
    Configuration menu
    Copy the full SHA
    ba23fa4 View commit details
    Browse the repository at this point in the history
  4. cmd/go: do not build test packages unnecessarily during go vet

    Vet needs export data for the imports of the package it is analyzing.
    Vet does not need export data for the package itself, since vet will
    do its own type checking. Assuming that vet is just as good as the compiler
    at detecting invalid programs, don't run the compiler unnecessarily.
    
    This especially matters for tests without external test files or for
    which the external test files do not import the test-augmented original
    package. In that case, the test-augmented original package need not
    be compiled at all.
    
    Cuts time for 'go clean -cache && go vet -x cmd/compile/internal/ssa'
    from 7.6r 24.3u 2.8s to 3.5r 8.5u 1.9s, by not running the compiler
    on the augmented test package.
    
    There is still more to be done here - if we do need to build a
    test-augmented package, we rerun cgo unnecessarily.
    But this is a big help.
    
    Cuts time for 'go vet std cmd' by about 30%.
    
    For #31916.
    
    Change-Id: If6136b4d384f1da77aed90b43f1a6b95f09b5d86
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176438
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 15, 2019
    Configuration menu
    Copy the full SHA
    38431f1 View commit details
    Browse the repository at this point in the history
  5. syscall: implement rawVforkSyscall for linux/ppc64x and linux/s390x

    This allows the use of CLONE_VFORK and CLONE_VM for fork/exec, preventing
    "fork/exec ...: cannot allocate memory" failures from occuring when attempting
    to execute commands from a Go process that has a large memory footprint.
    Additionally, this should reduce the latency of fork/exec on these platforms.
    
    The same problem was addressed on linux/amd64 via issue #5838.
    
    Updates #31936
    
    Change-Id: I7ae0fbbeaa29cab944a49a11272a380d497eb2d0
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175697
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    4a6f656c committed May 15, 2019
    Configuration menu
    Copy the full SHA
    ab242dc View commit details
    Browse the repository at this point in the history
  6. crypto/x509: add support for Ed25519 certificates and keys

    Based on RFC 8410.
    
    Updates #25355
    
    Change-Id: If7abb7eeb0ede10a9bb3d2004f2116e587c6207a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175478
    Run-TryBot: Filippo Valsorda <filippo@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Adam Langley <agl@golang.org>
    FiloSottile committed May 15, 2019
    Configuration menu
    Copy the full SHA
    599ec77 View commit details
    Browse the repository at this point in the history
  7. errors, fmt: revert rejected changes for Go 1.13

    Reverts the following changes:
    
      https://go.googlesource.com/go/+/1f90d081391d4f5911960fd28d81d7ea5e554a8f
      https://go.googlesource.com/go/+/8bf18b56a47a98b9dd2fa03beb358312237a8c76
      https://go.googlesource.com/go/+/5402854c3557f87fa2741a52ffc15dfb1ef333cc
      https://go.googlesource.com/go/+/37f84817247d3b8e687a701ccb0d6bc7ffe3cb78
      https://go.googlesource.com/go/+/6be6f114e0d483a233101a67c9644cd72bd3ae7a
    
    Partially reverts the followinng change, removing the errors.Opaque
    function and the errors.Wrapper type definition:
    
      https://go.googlesource.com/go/+/62f5e8156ef56fa61e6af56f4ccc633bde1a9120
    
    Updates documentation referencing the Wrapper type.
    
    Change-Id: Ia622883e39cafb06809853e3fd90b21441124534
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176997
    Run-TryBot: Damien Neil <dneil@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
    neild committed May 15, 2019
    Configuration menu
    Copy the full SHA
    3e2c522 View commit details
    Browse the repository at this point in the history
  8. fmt: support %w

    When fmt.Errorf is provided with a %w verb with an error operand,
    return an error implementing an Unwrap method returning that operand.
    
    It is invalid to use %w with other formatting functions, to use %w
    multiple times in a format string, or to use %w with a non-error
    operand. When the Errorf format string contains an invalid use of %w,
    the returned error does not implement Unwrap.
    
    Change-Id: I534e20d3b163ab22c2b137b1c9095906dc243221
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176998
    Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
    neild committed May 15, 2019
    Configuration menu
    Copy the full SHA
    14491a2 View commit details
    Browse the repository at this point in the history

Commits on May 16, 2019

  1. runtime: fix 'go vet -race runtime'

    This updates the Go function declarations to match race_amd64.s.
    
    Change-Id: I2b541a6b335ce732f4c31652aa615240ce7bb1c3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177397
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    rsc committed May 16, 2019
    Configuration menu
    Copy the full SHA
    639ac76 View commit details
    Browse the repository at this point in the history
  2. cmd/go: run full 'go vet' during 'go test' for packages in GOROOT

    Now that the main tree complies with 'go vet', enable all vet checks
    during 'go test' in the main tree. This helps surface helpful errors
    while developing, instead of having to wait for the misc-vet-vetall builder.
    
    During 'go test', the additional vet checks are essentially free:
    the vet invocations themselves take only 8 seconds total for the entire tree.
    
    Also update buildall.bash (used by the misc-compile builders)
    to run 'go vet std cmd' for each GOOS/GOARCH pair.
    This is not as free, since in general it can require recompiling
    packages with their tests included before invoking vet.
    (That compilation was going on anyway in the 'go test' case.)
    
    On my Mac laptop, ./buildall.bash freebsd used to take
    68+16+17+18 = 119 seconds for make.bash and then
    the builds of the three freebsd architectures.
    Now it takes 68+16+23+17+23+18+24 = 189 seconds, 60% longer.
    Some of this is spent doing unnecessary cgo work.
    Still, this lets us shard the vet checks and match all.bash.
    
    Fixes #20119.
    For #31916.
    
    Change-Id: I6b0c40bac47708a688463c7fca12c0fc23ab2751
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176439
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 16, 2019
    Configuration menu
    Copy the full SHA
    4f76871 View commit details
    Browse the repository at this point in the history
  3. cmd/vet/all: delete

    The work of running full vet on std and cmd during local development
    has moved to go test, which of course runs during all.bash.
    
    For errors in other GOOS/GOARCH combinations, the misc-compile
    builders (running buildall.bash) also now run go vet std cmd.
    
    The vetall builder need not do anything anymore.
    Make it a no-op until it can be retired, and remove
    cmd/vet/all and its special case in the go command.
    
    Fixes #31916.
    
    Change-Id: I8f30d184c382ea7c2c8f520e5618f680db633968
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176440
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 16, 2019
    Configuration menu
    Copy the full SHA
    86463c1 View commit details
    Browse the repository at this point in the history
  4. cmd/go: add more information to -debug-actiongraph

    Add information about action and build IDs,
    commands run, time spent in commands,
    and overall time to -debug-actiongraph output.
    
    Also avoid a terrible outcome in:
    
    	go build -debug-actiongraph x.go
    
    Change-Id: I7a3a638f4848d75f2bdc997517f4ab23656da4f1
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177138
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    rsc committed May 16, 2019
    Configuration menu
    Copy the full SHA
    54260c5 View commit details
    Browse the repository at this point in the history
  5. cmd/go: rename renamed testing import

    _go_testing is equally unlikely and much less concerning
    than testing_xxxxxxxxxxxx if it appears in an error message
    (as it does, for example, in https://storage.googleapis.com/go-build-log/0d543f89/linux-amd64_3467a10e.log).
    
    Change-Id: I45dc3ebe2d3b6c9e53273cd21782ee11a53f5edb
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177197
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 16, 2019
    Configuration menu
    Copy the full SHA
    0c47e24 View commit details
    Browse the repository at this point in the history
  6. cmd/go: cut 'go test -short cmd/go' time by about half

    Was 50 seconds on unloaded Mac laptop; now 27.
    Still longer than I would like, but every little bit helps.
    
    For #26473.
    
    Change-Id: Id4be016ee1555cbc3512eca0ae10236d7f06bd02
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177398
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 16, 2019
    Configuration menu
    Copy the full SHA
    dccd5da View commit details
    Browse the repository at this point in the history
  7. runtime: disable some tests in -quick mode

    Speeds up the "go test runtime -cpu=1,2,4 -short -quick" phase of all.bash.
    
    For #26473.
    
    Change-Id: I090f5a5aa754462b3253a2156dc31fa67ce7af2a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177399
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
    rsc committed May 16, 2019
    Configuration menu
    Copy the full SHA
    018d9b4 View commit details
    Browse the repository at this point in the history
  8. misc/cgo: disable testcarchive, testplugin during -short test (includ…

    …ing all.bash)
    
    These tests take 20 seconds each to rebuild the entire world
    in their respective modes. That's too much for short mode,
    including all.bash on developer machines.
    
    Keep doing it on builders and if someone runs 'go test' by hand
    in that directory.
    
    For #26473.
    
    Change-Id: I3dc6955bc3aa7a20fd170efcde72a7d19b37bdbf
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177417
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 16, 2019
    Configuration menu
    Copy the full SHA
    a6a0ed3 View commit details
    Browse the repository at this point in the history
  9. cmd/dist: say 'go test .' instead of 'go test' in a few places for cl…

    …eaner output
    
    This just makes all.bash a bit less chatty.
    
    Change-Id: I7d2ecabf0c7d8df2065d7052718f611bb2907801
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177418
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    rsc committed May 16, 2019
    Configuration menu
    Copy the full SHA
    80b393e View commit details
    Browse the repository at this point in the history
  10. testing: panic on calls to Short/Verbose before Parse

    CL 121936 added this diagnostic to avoid a panic accessing *short.
    (Hence the "This shouldn't really be a panic" comment.)
    
    That CL was right to produce a clearer error than a plain memory fault,
    but I think wrong to print+exit instead of panicking. I just ran into
    one of these in a real program, and there is no indication anywhere
    of how the program reached this point. The panic will show that.
    So change print+exit to a panic with a helpful message, in contrast
    to the original panic with an unhelpful message and the current
    helpful message without stack trace.
    
    Change-Id: Ib2bae1dead4ccde92f00fa3a34c05241ff7690c6
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177419
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    rsc committed May 16, 2019
    Configuration menu
    Copy the full SHA
    6ab049b View commit details
    Browse the repository at this point in the history
  11. testing: shorten go test -short testing

    This cuts the time for 'go test -short testing' from 0.9s to < 0.1s.
    
    Change-Id: Ib8402f80239e1e96ea5221dfd5cd0db08170d85b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177420
    Run-TryBot: Russ Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    rsc committed May 16, 2019
    Configuration menu
    Copy the full SHA
    f269453 View commit details
    Browse the repository at this point in the history
  12. cmd/compile: add debugging and stats output to numberlines

    This is useful for debugging line number assignment and
    also for making sense of pathological line number inputs.
    
    Activated with
    -gcflags=-d=ssa/number_lines/stats=1 (the bit matters)
    -gcflags=-d=ssa/number_lines/debug
    
    Stats:
    "SUM_LINE_RANGE",
       SUM for f in files {MAX line in f {line}-MIN line in f {line}}
    "MAXMIN_LINE_RANGE",
       MAX for f in files {MAX line in f {line}} -
       MIN for f in files {MIN line in f {line}}
    "MAXFILE", maxfile,
       MAX for f in files {f}
    "NFILES", len(entries)
       | files |
    
    Change-Id: I8a7336e6370452fe2e3a62de17606db9bd6a6fd3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174947
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Keith Randall <khr@golang.org>
    dr2chase committed May 16, 2019
    Configuration menu
    Copy the full SHA
    fba6066 View commit details
    Browse the repository at this point in the history
  13. os: pass correct environment when creating Windows processes

    This is CVE-2019-11888.
    
    Previously, passing a nil environment but a non-nil token would result
    in the new potentially unprivileged process inheriting the parent
    potentially privileged environment, or would result in the new
    potentially privileged process inheriting the parent potentially
    unprivileged environment. Either way, it's bad. In the former case, it's
    an infoleak. In the latter case, it's a possible EoP, since things like
    PATH could be overwritten.
    
    Not specifying an environment currently means, "use the existing
    environment". This commit amends the behavior to be, "use the existing
    environment of the token the process is being created for." The behavior
    therefore stays the same when creating processes without specifying a
    token. And it does the correct thing when creating processes when
    specifying a token.
    
    Fixes #32000
    
    Change-Id: Ia57f6e89b97bdbaf7274d6a89c1d9948b6d40ef5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176619
    Run-TryBot: Jason Donenfeld <Jason@zx2c4.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
    zx2c4 authored and alexbrainman committed May 16, 2019
    Configuration menu
    Copy the full SHA
    12279fa View commit details
    Browse the repository at this point in the history