1. 14 Jun, 2017 27 commits
    • Robert Griesemer's avatar
      cmd/compile: fix detection of calls to reflect.Method · cabf622d
      Robert Griesemer authored
      The existing code used Type.String() to obtain the name of a type;
      specifically type reflect.Method in this case. However, Type.String()
      formatting is intended for error messages and uses the format
      pkgpath.name instead of pkgname.name if a package (in this case
      package reflect) is imported multiple times. As a result, the
      reflect.Method type detection failed under peculiar circumstances
      (see the included test case).
      
      Thanks to https://github.com/ericlagergren for tracking down
      an easy way to make the bug disappear (which in turn directly
      led to the underlying cause).
      
      Fixes #19028.
      
      Change-Id: I1b9c5dfd183260a9be74969fe916a94146fc36da
      Reviewed-on: https://go-review.googlesource.com/45777Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      cabf622d
    • Brad Fitzpatrick's avatar
      cmd/go: disable tool version check during bootstrap · 952ecbe0
      Brad Fitzpatrick authored
      The check that the go tool version matched the go compiler version was
      too aggressive and didn't cover the bootstrapping case with make.bash.
      
      We never noticed because we never had a VERSION file in place.
      
      Repro:
      
      $ echo "go1.9beta1" > $GOROOT/VERSION
      $ cd $GOROOT/src
      $ ./make.bash
      
      No test, because x/build/cmd/release catches it.
      
      Updates #19064
      Fixes #20674
      
      Change-Id: Ibdd7a92377f4cc77d71ed548f02d48bde6550f67
      Reviewed-on: https://go-review.googlesource.com/45778Reviewed-by: default avatarChris Broadfoot <cbro@golang.org>
      952ecbe0
    • Brad Fitzpatrick's avatar
      net/http: update bundled http2 · 8c4bec8f
      Brad Fitzpatrick authored
      Update x/net/http2 to git rev 6b17b9baf5 for:
      
         http2: stop rejecting outgoing paths beginning with two slashes
         https://golang.org/cl/45773
      
      This also uses an updated version of x/tools/cmd/bundle (CL 45190)
      that fixes an edge case where it used to drop some comments.
      
      Updates #20627
      Fixes #19103
      
      Change-Id: I450d61485e66098f4f8a79954f729f7bcd85856f
      Reviewed-on: https://go-review.googlesource.com/45700
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarChris Broadfoot <cbro@golang.org>
      8c4bec8f
    • Chris Broadfoot's avatar
      api: promote next to go1.9 · cf7347a9
      Chris Broadfoot authored
      Change-Id: I27aa87607aa82b400411a60c6bdb6f9a42ff97c1
      Reviewed-on: https://go-review.googlesource.com/45776
      Run-TryBot: Chris Broadfoot <cbro@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      cf7347a9
    • Chris Broadfoot's avatar
      api: update next.txt · 752c9380
      Chris Broadfoot authored
      Change-Id: I824fc5a62977140ccc62d55e8b42cfd01da935e9
      Reviewed-on: https://go-review.googlesource.com/45774Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      752c9380
    • Brad Fitzpatrick's avatar
      A+C: automated update · 82dba192
      Brad Fitzpatrick authored
      Add Adam Bender (corporate CLA for Google Inc.)
      Add Ahmet Alp Balkan (corporate CLA for Google Inc.)
      Add Aishraj Dahal (individual CLA)
      Add Alexey Neganov (individual CLA)
      Add Andrew Benton (individual CLA)
      Add Bartosz Grzybowski (individual CLA)
      Add Ben Shi (individual CLA)
      Add Brandon Bennett (corporate CLA for Facebook, Inc.)
      Add Brian Starke (individual CLA)
      Add Bulat Gaifullin (individual CLA)
      Add Carl Henrik Lunde (individual CLA)
      Add Carlisia Campos (individual CLA)
      Add Carlo Alberto Ferraris (individual CLA)
      Add Carolyn Van Slyck (individual CLA)
      Add Chew Choon Keat (individual CLA)
      Add Chris Biscardi (individual CLA)
      Add Damien Lespiau (corporate CLA for Intel Corporation)
      Add David NewHamlet (individual CLA)
      Add Dieter Plaetinck (corporate CLA for RainTank)
      Add Dominic Green (individual CLA)
      Add Eitan Adler (individual CLA)
      Add Evgeniy Polyakov (individual CLA)
      Add Ewan Valentine (individual CLA)
      Add Fangming Fang (corporate CLA for ARM Ltd.)
      Add Felipe Oliveira (individual CLA)
      Add Filip Gruszczyński (individual CLA)
      Add Gengliang Wang (individual CLA)
      Add George Gkirtsou (individual CLA)
      Add Gregory Man (individual CLA)
      Add Hauke Löffler (individual CLA)
      Add Heschi Kreinick (corporate CLA for Google Inc.)
      Add Hongfei Tan (individual CLA)
      Add Hugues Bruant (individual CLA)
      Add Ibrahim AshShohail (individual CLA)
      Add James Neve (individual CLA)
      Add James Smith (individual CLA)
      Add Jamie Stackhouse (individual CLA)
      Add Jan Berktold (individual CLA)
      Add Jeff Johnson (corporate CLA for Google Inc.)
      Add Joe Richey (corporate CLA for Google Inc.)
      Add Johan Brandhorst (individual CLA)
      Add Jonathan Stacks (individual CLA)
      Add Jordan Krage (individual CLA)
      Add Josselin Costanzi (individual CLA)
      Add Joël Stemmer (corporate CLA for Google Inc.)
      Add Julio Montes (corporate CLA for Intel Corporation)
      Add Kamil Chmielewski (individual CLA)
      Add Karoly Negyesi (individual CLA)
      Add Keiji Yoshida (individual CLA)
      Add Kirill Smelkov (corporate CLA for Nexedi)
      Add Koichi Shiraishi (individual CLA)
      Add Kris Nova (individual CLA)
      Add Kyrylo Silin (individual CLA)
      Add Lars Jeppesen (individual CLA)
      Add Lars Wiegman (individual CLA)
      Add Laurie Clark-Michalek (individual CLA)
      Add Lion Yang (individual CLA)
      Add Lorenzo Masini (individual CLA)
      Add Lucas Clemente (corporate CLA for Google Inc.)
      Add Marcelo E. Magallon (individual CLA)
      Add Mark Adams (individual CLA)
      Add Mark Harrison (corporate CLA for Google Inc.)
      Add Mark Ryan (corporate CLA for Intel Corporation)
      Add Martin Lindhe (individual CLA)
      Add Marwan Sulaiman (individual CLA)
      Add Matt Blair (individual CLA)
      Add Matt Harden (individual CLA)
      Add Matt Strong (individual CLA)
      Add Mike Wiacek (corporate CLA for Google Inc.)
      Add Milutin Jovanović (individual CLA)
      Add Monis Khan (corporate CLA for Red Hat, Inc.)
      Add Mostyn Bramley-Moore (individual CLA)
      Add Mura Li (individual CLA)
      Add Máté Gulyás (individual CLA)
      Add Nathan Caza (individual CLA)
      Add Nicholas Maniscalco (individual CLA)
      Add Nick Kubala (corporate CLA for Google Inc.)
      Add Nick Miyake (individual CLA)
      Add Niklas Schnelle (individual CLA)
      Add Patrick Pelletier (individual CLA)
      Add Paul Jolly (individual CLA)
      Add Paulo Flabiano Smorigo (corporate CLA for IBM)
      Add Peter Nguyen (individual CLA)
      Add Pravendra Singh (individual CLA)
      Add Raymond Kazlauskas (individual CLA)
      Add Remi Gillig (individual CLA)
      Add Sam Boyer (individual CLA)
      Add Sean Chittenden (corporate CLA for Joyent, Inc.)
      Add Sean Christopherson (corporate CLA for Intel Corporation)
      Add Shintaro Kaneko (individual CLA)
      Add Takuto Ikuta (corporate CLA for Google Inc.)
      Add Thomas Bonfort (individual CLA)
      Add Toshiki Shima (individual CLA)
      Add Trey Roessig (individual CLA)
      Add Wade Simmons (individual CLA)
      Add Wei Xiao (corporate CLA for ARM Ltd.)
      Add Weichao Tang (individual CLA)
      Add Will Storey (individual CLA)
      Add Wu Yunzhou (individual CLA)
      Add Xu Fee (individual CLA)
      Add Zach Bintliff (individual CLA)
      Add Zak (individual CLA)
      Add Zellyn Hunter (corporate CLA for Square, Inc.)
      Add Максим Федосеев (individual CLA)
      Add 张嵩 (individual CLA)
      
      Updates #12042
      
      Change-Id: I43922a9489828e519e480f8fc1abc92863e0abcc
      Reviewed-on: https://go-review.googlesource.com/45770Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      82dba192
    • Brad Fitzpatrick's avatar
      os: clarify behavior of TempDir · 0b81c023
      Brad Fitzpatrick authored
      Fixes #19695
      
      Change-Id: Ie5103f7905969e25dba6e5fb37344b70e807fc69
      Reviewed-on: https://go-review.googlesource.com/45702
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      0b81c023
    • Brad Fitzpatrick's avatar
      net: clarify Listen on 0.0.0.0 behavior · 071908f3
      Brad Fitzpatrick authored
      Fixes #17615
      
      Change-Id: I7f88c0c6579c79007492e765d1b5ca4f28d19575
      Reviewed-on: https://go-review.googlesource.com/45771Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      071908f3
    • thoeni's avatar
      encoding/json: don't marshal unexported embedded fields of non struct type · 296b3538
      thoeni authored
      Marshal must process unexported embedded fields of struct type,
      looking for exported fields in those structs. However, it must
      not process unexported embedded fields of non-struct type.
      
      For example, consider:
      
          type t1 struct {
              X int
          }
          type t2 int
          type T struct {
              t1
              t2
          }
      
      When considering T, Marshal must process t1 to find t1.X.
      Marshal must not process t2, but it was. Fix that.
      
      Fixes #18009
      
      Change-Id: I62ba0b65ba30fd927990e101a26405a9998787a3
      Reviewed-on: https://go-review.googlesource.com/33773
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      296b3538
    • Brad Fitzpatrick's avatar
      sync: make another attempt at clarifying RWMutex double RLock rules · e2160cc5
      Brad Fitzpatrick authored
      Updates #15418 (the original bug, fixed by https://golang.org/cl/23570)
      Fixes #19460 (round two)
      
      Change-Id: Iac4447daabb56e3b470046c489c22d588c20163e
      Reviewed-on: https://go-review.googlesource.com/45697Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      e2160cc5
    • Heschi Kreinick's avatar
      doc: list cmd/compile's DWARF changes in 1.9 relnotes · 04ab75e2
      Heschi Kreinick authored
      Change-Id: I956873854724e8afed460f7ff3a657d68ec20fa1
      Reviewed-on: https://go-review.googlesource.com/45755Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      04ab75e2
    • Keith Randall's avatar
      runtime: remove unused arm assembly for div/mod · 4958f9e2
      Keith Randall authored
      Also add runtime· prefixes to the code that is still used.
      
      Fixes #19507
      
      Change-Id: Ib6da6b2a9e398061d3f93958ee1258295b6cc33b
      Reviewed-on: https://go-review.googlesource.com/45699Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      4958f9e2
    • Ian Lance Taylor's avatar
      runtime: don't run TestCgoNumGoroutine on Windows or Plan 9 · 03a4a5c9
      Ian Lance Taylor authored
      The test requires pthreads.
      
      Fixes #20666.
      
      Change-Id: Icb2400250a80cdad6680cd1ef6c18ef7343d5e29
      Reviewed-on: https://go-review.googlesource.com/45701
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      03a4a5c9
    • Brad Fitzpatrick's avatar
      time: unify the Time.Equals vs == pitfall documentation · dd94bacd
      Brad Fitzpatrick authored
      Fixes #19510 (good details therein)
      
      Change-Id: Id28b66d91435d839fd79eeed486527cc77257c12
      Reviewed-on: https://go-review.googlesource.com/45698Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      dd94bacd
    • Ian Lance Taylor's avatar
      cmd/cgo: match note following error in compiler errors · dcaac4b3
      Ian Lance Taylor authored
      With current GCC a macro that refers to another macro can report an
      error on the macro definition line, with a note on the use.
      When cgo is trying to decide which line an error refers to,
      it is looking at the uses. So if we see an error on a line that we
      don't recognize followed by a note on a line that we do recognize,
      treat the note as an error.
      
      Fixes #20125.
      
      Change-Id: I389cd0eb7d56ad2d54bef70e278d9f76c4d36448
      Reviewed-on: https://go-review.googlesource.com/44290
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      Reviewed-by: default avatarHiroshi Ioka <hirochachacha@gmail.com>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      dcaac4b3
    • Brad Fitzpatrick's avatar
      doc: add go-contrib-init mention to contributing docs · 491ec4df
      Brad Fitzpatrick authored
      Fixes #17802
      
      Change-Id: I245552534c3e21d95c569ac7118ba289244ba11d
      Reviewed-on: https://go-review.googlesource.com/45652Reviewed-by: default avatarSteve Francia <spf@golang.org>
      491ec4df
    • Samuel Tan's avatar
      html/template: only search identifier nodes for predefined escapers · 882a6404
      Samuel Tan authored
      Predefined escapers (i.e. "html" and "urlquery") should only occur in
      Identifier nodes, and never in Field or Chain nodes, since these are
      global functions that return string values (see inline comments for more
      details). Therefore, skip Chain and Field nodes when searching for
      predefined escapers in template pipelines.
      
      Also, make a non-functional change two existing test cases to avoid
      giving the impression that it is valid to reference a field of a
      predefined escaper.
      
      Fixes #20323
      
      Change-Id: I34f722f443c778699fcdd575dc3e0fd1fd6f2eb3
      Reviewed-on: https://go-review.googlesource.com/43296Reviewed-by: default avatarSamuel Tan <samueltan@google.com>
      Reviewed-by: default avatarMike Samuel <mikesamuel@gmail.com>
      Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      Run-TryBot: Russ Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      882a6404
    • Alberto Donizetti's avatar
      doc: list html/template and text/template changes in 1.9 relnotes · 2c3c8c42
      Alberto Donizetti authored
      Updates #20587
      
      Change-Id: I3d65a0124157990b302db8879ee1a4941124ea11
      Reviewed-on: https://go-review.googlesource.com/45730Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      2c3c8c42
    • Austin Clements's avatar
      runtime: record mutex event before readying · b067ad93
      Austin Clements authored
      Currently, semrelease1 readies the next waiter before recording a
      mutex event. However, if the next waiter is expecting to look at the
      mutex profile, as is the case in TestMutexProfile, this may delay
      recording the event too much.
      
      Swap the order of these operations so semrelease1 records the mutex
      event before readying the next waiter. This also means readying the
      next waiter is the very last thing semrelease1 does, which seems
      appropriate.
      
      Fixes #19139.
      
      Change-Id: I1a62063599fdb5d49bd86061a180c0a2d659474b
      Reviewed-on: https://go-review.googlesource.com/45751
      Run-TryBot: Austin Clements <austin@google.com>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarPeter Weinberger <pjw@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      b067ad93
    • Lynn Boger's avatar
      cmd/link: implement trampolines for ppc64le with ext linking · 738739f5
      Lynn Boger authored
      When using golang on ppc64le there have been issues
      when building executables that generate extremely large text
      sections.  This is due to the call instruction and the limitation
      on the offset field, which is smaller than most platforms.  If the
      size of the call target offset is too big for the offset field in
      the call instruction, then link errors can occur.
      
      The original solution to this problem in golang was to split the
      text section when it became too large, allowing the external (GNU)
      linker to insert the necessary stub to handle the long call.  That
      worked fine until the another size limit for the program size was hit,
      where a plt_branch was created instead of a long branch.  In that case
      the plt_branch code sequence expects r2 to contain the address of the
      TOC, but when golang creates dynamic executables by default
      (-buildmode=exe) r2 does not always contain the address of the TOC
      and as a result when building programs that reach this extremely
      large size, a runtime SEGV or SIGILL can occur due to branching to a bad
      address.
      
      When using internal linking, trampolines are generated to handle the
      long calls but the text sections are not split.  With this change,
      text sections will still be split approrpriately with external linking
      but if the buildmode being used does not maintain r2 as the TOC
      addresses, then trampolines will be created for those calls.
      
      Fixes #20497
      
      Change-Id: If5400b0f86c2c08e106b332be6db0b259b07d93d
      Reviewed-on: https://go-review.googlesource.com/45130
      Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      738739f5
    • Ian Lance Taylor's avatar
      runtime, syscall: reset signal handlers to default in child · df0892cb
      Ian Lance Taylor authored
      Block all signals during a fork. In the parent process, after the
      fork, restore the signal mask. In the child process, reset all
      currently handled signals to the default handler, and then restore the
      signal mask.
      
      The effect of this is that the child will be operating using the same
      signal regime as the program it is about to exec, as exec resets all
      non-ignored signals to the default, and preserves the signal mask.
      
      We do this so that in the case of a signal sent to the process group,
      the child process will not try to run a signal handler while in the
      precarious state after a fork.
      
      Fixes #18600.
      
      Change-Id: I9f39aaa3884035908d687ee323c975f349d5faaa
      Reviewed-on: https://go-review.googlesource.com/45471
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      df0892cb
    • Alan Donovan's avatar
      go/token: use fine-grained locking in FileSet · 17ba830f
      Alan Donovan authored
      Before, all accesses to the lines and infos tables of each File were
      serialized by the lock of the owning FileSet, causing parsers running
      in parallel to contend.  Now, each File has its own mutex.
      
      This fixes a data race in (*File).PositionFor, which used to call
      f.position then f.unpack without holding the mutex's lock.
      
      Fixes golang/go#18348
      
      Change-Id: Iaa5989b2eba88a7fb2e91c1a0a8bc1e7f6497f2b
      Reviewed-on: https://go-review.googlesource.com/34591Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      17ba830f
    • Brad Fitzpatrick's avatar
      doc: add more Go 1.9 notes · 76319222
      Brad Fitzpatrick authored
      Updates #20587
      
      Change-Id: I7effe922242db45f3ce74882d07511aaaac2f634
      Reviewed-on: https://go-review.googlesource.com/45613Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      76319222
    • Josh Bleecher Snyder's avatar
      runtime: speed up stack copying · aafd9640
      Josh Bleecher Snyder authored
      I was surprised to see readvarint show up in a cpu profile.
      
      Use a few simple optimizations to speed up stack copying:
      
      * Avoid making a copy of the cache.entries array or any of its elements.
      * Use a shift instead of a signed division in stackmapdata.
      * Change readvarint to return the number of bytes consumed
        rather than an updated slice.
      * Make some minor optimizations to readvarint to help the compiler.
      * Avoid called readvarint when the value fits in a single byte.
      
      The first and last optimizations are the most significant,
      although they all contribute a little.
      
      Add a benchmark for stack copying that includes lots of different
      functions in a recursive loop, to bust the cache.
      
      This might speed up other runtime operations as well;
      I only benchmarked stack copying.
      
      name                old time/op  new time/op  delta
      StackCopy-8         96.4ms ± 2%  82.7ms ± 1%  -14.24%  (p=0.000 n=20+19)
      StackCopyNoCache-8   167ms ± 1%   131ms ± 1%  -21.58%  (p=0.000 n=20+20)
      
      Change-Id: I13d5c455c65073c73b656acad86cf8e8e3c9807b
      Reviewed-on: https://go-review.googlesource.com/43150
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      aafd9640
    • Brad Fitzpatrick's avatar
      path, path/filepath: clarify and cross-reference packages · 2f7fbf88
      Brad Fitzpatrick authored
      The path package has a reference to the path/filepath package, so add
      a reverse reference.
      
      And clarify the path package doesn't do Windows paths.
      
      Fixes #20117
      
      Change-Id: I65c5ce24e600b32ea20c5821b744bd89f6aff98c
      Reviewed-on: https://go-review.googlesource.com/45653Reviewed-by: default avatarJaana Burcu Dogan <jbd@google.com>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      2f7fbf88
    • Austin Clements's avatar
      runtime: move pdesc into p · f4f01851
      Austin Clements authored
      There are currently two arrays indexed by P ID: allp and pdesc.
      Consolidate these by moving the pdesc fields into type p so they can
      be indexed off allp along with all other per-P state.
      
      For #15131.
      
      Change-Id: Ib6c4e6e7612281a1171ba4a0d62e52fd59e960b4
      Reviewed-on: https://go-review.googlesource.com/45572
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarRick Hudson <rlh@golang.org>
      f4f01851
    • Hiroshi Ioka's avatar
      go/printer: handle associated comments for CommentedNode · 0253299a
      Hiroshi Ioka authored
      Current CommentedNode cannot handle associated comments which satisfy
          node.End() < comment.Pos()
      
      This CL solves it.
      
      Fixes #20635
      
      Change-Id: I58e2e3703999bb38a6ce37112e986c4b1b2eace0
      Reviewed-on: https://go-review.googlesource.com/45292
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      0253299a
  2. 13 Jun, 2017 13 commits