1. 24 Oct, 2017 17 commits
    • Brian Kessler's avatar
      math/big: implement Lehmer's GCD algorithm · 1643d4f3
      Brian Kessler authored
      Updates #15833
      
      Lehmer's GCD algorithm uses single precision calculations
      to simulate several steps of multiple precision calculations
      in Euclid's GCD algorithm which leads to a considerable
      speed up.  This implementation uses Collins' simplified
      testing condition on the single digit cosequences which
      requires only one quotient and avoids any possibility of
      overflow.
      
      name                          old time/op  new time/op  delta
      GCD10x10/WithoutXY-4          1.82µs ±24%  0.28µs ± 6%  -84.40%  (p=0.008 n=5+5)
      GCD10x10/WithXY-4             1.69µs ± 6%  1.71µs ± 6%     ~     (p=0.595 n=5+5)
      GCD10x100/WithoutXY-4         1.87µs ± 2%  0.56µs ± 4%  -70.13%  (p=0.008 n=5+5)
      GCD10x100/WithXY-4            2.61µs ± 2%  2.65µs ± 4%     ~     (p=0.635 n=5+5)
      GCD10x1000/WithoutXY-4        2.75µs ± 2%  1.48µs ± 1%  -46.06%  (p=0.008 n=5+5)
      GCD10x1000/WithXY-4           5.29µs ± 2%  5.25µs ± 2%     ~     (p=0.548 n=5+5)
      GCD10x10000/WithoutXY-4       10.7µs ± 2%  10.3µs ± 0%   -4.38%  (p=0.008 n=5+5)
      GCD10x10000/WithXY-4          22.3µs ± 6%  22.1µs ± 1%     ~     (p=1.000 n=5+5)
      GCD10x100000/WithoutXY-4      93.7µs ± 2%  99.4µs ± 2%   +6.09%  (p=0.008 n=5+5)
      GCD10x100000/WithXY-4          196µs ± 2%   199µs ± 2%     ~     (p=0.222 n=5+5)
      GCD100x100/WithoutXY-4        10.1µs ± 2%   2.5µs ± 2%  -74.84%  (p=0.008 n=5+5)
      GCD100x100/WithXY-4           21.4µs ± 2%  21.3µs ± 7%     ~     (p=0.548 n=5+5)
      GCD100x1000/WithoutXY-4       11.3µs ± 2%   4.4µs ± 4%  -60.87%  (p=0.008 n=5+5)
      GCD100x1000/WithXY-4          24.7µs ± 3%  23.9µs ± 1%     ~     (p=0.056 n=5+5)
      GCD100x10000/WithoutXY-4      26.6µs ± 1%  20.0µs ± 2%  -24.82%  (p=0.008 n=5+5)
      GCD100x10000/WithXY-4         78.7µs ± 2%  78.2µs ± 2%     ~     (p=0.690 n=5+5)
      GCD100x100000/WithoutXY-4      174µs ± 2%   171µs ± 1%     ~     (p=0.056 n=5+5)
      GCD100x100000/WithXY-4         563µs ± 4%   561µs ± 2%     ~     (p=1.000 n=5+5)
      GCD1000x1000/WithoutXY-4       120µs ± 5%    29µs ± 3%  -75.71%  (p=0.008 n=5+5)
      GCD1000x1000/WithXY-4          355µs ± 4%   358µs ± 2%     ~     (p=0.841 n=5+5)
      GCD1000x10000/WithoutXY-4      140µs ± 2%    49µs ± 2%  -65.07%  (p=0.008 n=5+5)
      GCD1000x10000/WithXY-4         626µs ± 3%   628µs ± 9%     ~     (p=0.690 n=5+5)
      GCD1000x100000/WithoutXY-4     340µs ± 4%   259µs ± 6%  -23.79%  (p=0.008 n=5+5)
      GCD1000x100000/WithXY-4       3.76ms ± 4%  3.82ms ± 5%     ~     (p=0.310 n=5+5)
      GCD10000x10000/WithoutXY-4    3.11ms ± 3%  0.54ms ± 2%  -82.74%  (p=0.008 n=5+5)
      GCD10000x10000/WithXY-4       7.96ms ± 3%  7.69ms ± 3%     ~     (p=0.151 n=5+5)
      GCD10000x100000/WithoutXY-4   3.88ms ± 1%  1.27ms ± 2%  -67.21%  (p=0.008 n=5+5)
      GCD10000x100000/WithXY-4      38.1ms ± 2%  38.8ms ± 1%     ~     (p=0.095 n=5+5)
      GCD100000x100000/WithoutXY-4   208ms ± 1%    25ms ± 4%  -88.07%  (p=0.008 n=5+5)
      GCD100000x100000/WithXY-4      533ms ± 5%   525ms ± 4%     ~     (p=0.548 n=5+5)
      
      Change-Id: Ic1e007eb807b93e75f4752e968e98c1f0cb90e43
      Reviewed-on: https://go-review.googlesource.com/59450
      Run-TryBot: Robert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      1643d4f3
    • Mark Pulford's avatar
      math: add RoundToEven function · a5c44f3e
      Mark Pulford authored
      Rounding ties to even is statistically useful for some applications.
      This implementation completes IEEE float64 rounding mode support (in
      addition to Round, Ceil, Floor, Trunc).
      
      This function avoids subtle faults found in ad-hoc implementations, and
      is simple enough to be inlined by the compiler.
      
      Fixes #21748
      
      Change-Id: I09415df2e42435f9e7dabe3bdc0148e9b9ebd609
      Reviewed-on: https://go-review.googlesource.com/61211Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      Run-TryBot: Robert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      a5c44f3e
    • Matthew Dempsky's avatar
      cmd/compile: refactor method expression detection · fcd32885
      Matthew Dempsky authored
      Eliminates lots of ad hoc code for recognizing the same thing in
      different ways.
      
      Passes toolstash-check.
      
      Change-Id: Ic0bb005308e96331b4ef30f455b860e476725b61
      Reviewed-on: https://go-review.googlesource.com/73190
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      fcd32885
    • Daniel Theophanes's avatar
      database/sql: add driver.ResetSessioner and add pool support · 6a223b82
      Daniel Theophanes authored
      A single database connection ususally maps to a single session.
      A connection pool is logically also a session pool. Most
      sessions have a way to reset the session state which is desirable
      to prevent one bad query from poisoning another later query with
      temp table name conflicts or other persistent session resources.
      
      It also lets drivers provide users with better error messages from
      queryies when the underlying transport or query method fails.
      Internally the driver connection should now be marked as bad, but
      return the actual connection. When ResetSession is called on the
      connection it should return driver.ErrBadConn to remove it from
      the connection pool. Previously drivers had to choose between
      meaningful error messages or poisoning the connection pool.
      
      Lastly update TestPoolExhaustOnCancel from relying on a
      WAIT query fixing a flaky timeout issue exposed by this
      change.
      
      Fixes #22049
      Fixes #20807
      
      Change-Id: I2b5df6d954a38d0ad93bf1922ec16e74c827274c
      Reviewed-on: https://go-review.googlesource.com/73033
      Run-TryBot: Daniel Theophanes <kardianos@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      6a223b82
    • Matthew Dempsky's avatar
      cmd/internal/obj/x86: move MOV->XOR rewriting into compiler · a5868a47
      Matthew Dempsky authored
      Fixes #20986.
      
      Change-Id: Ic3cf5c0ab260f259ecff7b92cfdf5f4ae432aef3
      Reviewed-on: https://go-review.googlesource.com/73072
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      a5868a47
    • Heschi Kreinick's avatar
      cmd/compile/internal/ssa: use reverse postorder traversal · 73f1a1a1
      Heschi Kreinick authored
      Instead of the hand-written control flow analysis in debug info
      generation, use a reverse postorder traversal, which is basically the
      same thing. It should be slightly faster.
      
      More importantly, the previous version simply gave up in the case of
      non-reducible functions, and produced output that caused a later stage
      to crash. It turns out that there's a non-reducible function in
      compress/flate, so that wasn't a theoretical issue.
      
      With this change, all blocks will be visited, even for non-reducible
      functions.
      
      Change-Id: Id47536764ee93203c6b4105a1a3013fe3265aa12
      Reviewed-on: https://go-review.googlesource.com/73110
      Run-TryBot: Heschi Kreinick <heschi@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarDavid Chase <drchase@google.com>
      73f1a1a1
    • Nils Larsgård's avatar
      mime/multipart: permit empty file name · 81ec7256
      Nils Larsgård authored
      Fixes #19183
      
      Change-Id: I11502d855f5b521b03ed7a63a990cca2d0ed4083
      Reviewed-on: https://go-review.googlesource.com/70931Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      81ec7256
    • Russ Cox's avatar
      Revert "database/sql: add driver.ResetSessioner and add pool support" · 3b9d947b
      Russ Cox authored
      This reverts commit 2620ac3a.
      
      Reason for revert: broke all the builds.
      
      Change-Id: I26fc09a13f5f80fa708de66c843442ff9d934694
      Reviewed-on: https://go-review.googlesource.com/73050Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      3b9d947b
    • Than McIntosh's avatar
      cmd/compile: fix problem with non-decomposed vars · 8c58900a
      Than McIntosh authored
      Fix a bug introduced in patch 2 of
      https://go-review.googlesource.com/72630 (sense of a map
      lookup test was accidentally flipped).
      
      Change-Id: Icc6096ee50be4605fa7542b9fd855c13b8aff090
      Reviewed-on: https://go-review.googlesource.com/72850
      Run-TryBot: Than McIntosh <thanm@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarHeschi Kreinick <heschi@google.com>
      8c58900a
    • Daniel Theophanes's avatar
      database/sql: add driver.ResetSessioner and add pool support · 2620ac3a
      Daniel Theophanes authored
      A single database connection ususally maps to a single session.
      A connection pool is logically also a session pool. Most
      sessions have a way to reset the session state which is desirable
      to prevent one bad query from poisoning another later query with
      temp table name conflicts or other persistent session resources.
      
      It also lets drivers provide users with better error messages from
      queryies when the underlying transport or query method fails.
      Internally the driver connection should now be marked as bad, but
      return the actual connection. When ResetSession is called on the
      connection it should return driver.ErrBadConn to remove it from
      the connection pool. Previously drivers had to choose between
      meaningful error messages or poisoning the connection pool.
      
      Lastly update TestPoolExhaustOnCancel from relying on a
      WAIT query fixing a flaky timeout issue exposed by this
      change.
      
      Fixes #22049
      Fixes #20807
      
      Change-Id: Idffa1a7ca9ccfe633257c4a3ae299b864f46c5b6
      Reviewed-on: https://go-review.googlesource.com/67630Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      2620ac3a
    • Daniel Theophanes's avatar
      database/sql: allow drivers to only implement Context variants · 53271482
      Daniel Theophanes authored
      Drivers shouldn't need to implement both Queryer and QueryerContext,
      they should just implement QueryerContext. Same with Execer and
      ExecerContext. This CL tests for QueryContext and ExecerContext
      first so drivers do not need to implement Queryer and Execer
      with an empty definition.
      
      Fixes #21663
      
      Change-Id: Ifbaa71da669f4bc60f8da8c41a04a4afed699a9f
      Reviewed-on: https://go-review.googlesource.com/65733Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      53271482
    • rust's avatar
      cmd/link/internal/ld: modify -pagezero_size to please iTunes Connect validation for iOS. · 89a7adf8
      rust authored
      This change modifies go to create iOS arm64 binaries that pass iTunes
      upload validation. Tested with xcode 9.0.1 macOS 10.13.
      
      Fixes #22402.
      
      Change-Id: I3f14c6ac85065e2da88d06edc8682947f6f1cd47
      Reviewed-on: https://go-review.googlesource.com/72730Reviewed-by: default avatarDavid Crawshaw <crawshaw@golang.org>
      89a7adf8
    • Marcel van Lohuizen's avatar
      unicode: update to Unicode 10.0.0 · 2fd95497
      Marcel van Lohuizen authored
      Also includes all derived values as well as
      vendored packages.
      
      Generated by running
          UNICODE_VERSION=10.0.0 go generate
      in golang.org/x/text
      
      and modified by hand to add the tests and
      entries in next.txt for new script and properties.
      
      Closes Issue #21471
      
      Change-Id: I1d10ee3887bd1fd3d5a756ee0d04bd6ec2814ba1
      Reviewed-on: https://go-review.googlesource.com/63953
      Run-TryBot: Marcel van Lohuizen <mpvl@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAndrew Bonventre <andybons@golang.org>
      2fd95497
    • Joe Tsai's avatar
      encoding/csv: update ErrQuote message · 8c532f5f
      Joe Tsai authored
      The ErrQuote variable is only returned when a parsing error
      occurs within a quoted string. Make that clear in the message.
      
      Change-Id: I06ad5a9edb41afedde193c4f8b93551bb8342bbb
      Reviewed-on: https://go-review.googlesource.com/72794Reviewed-by: default avatarAvelino <t@avelino.xxx>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      8c532f5f
    • Joe Tsai's avatar
      encoding/csv: fix error documentation · 744da649
      Joe Tsai authored
      We should be referring to ParseError.Err, which is the underlying error,
      not ParseError.Error, which is the error method.
      
      Change-Id: Ic3cef5ecbe1ada5fa14b9573222f29da8fc9a8d5
      Reviewed-on: https://go-review.googlesource.com/72450Reviewed-by: default avatarTim Cooper <tim.cooper@layeh.com>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      744da649
    • Alex Brainman's avatar
      runtime: make errno positive in netpollopen · 4a0dcc2d
      Alex Brainman authored
      Make netpollopen return what Windows GetLastError API returns.
      It is probably copy / paste error from long time ago.
      
      Change-Id: I28f78718c15fef3e8b5f5d11a259533d7e9c6185
      Reviewed-on: https://go-review.googlesource.com/72592Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      4a0dcc2d
    • Matthew Dempsky's avatar
      cmd/compile: silence unnecessary unsafe error · efa9efe8
      Matthew Dempsky authored
      If n.Type==nil after typechecking, then we should have already
      reported a more useful error somewhere else. Just return 0 in
      evalunsafe without trying to do anything else that's likely to cause
      problems.
      
      Also, further split out issue7525.go into more test files, because
      cmd/compile reports at most one typechecking loop per compilation
      unit.
      
      Fixes #22351.
      
      Change-Id: I3ebf505f72c48fcbfef5ec915606224406026597
      Reviewed-on: https://go-review.googlesource.com/72251
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarDaniel Martí <mvdan@mvdan.cc>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      efa9efe8
  2. 23 Oct, 2017 5 commits
  3. 22 Oct, 2017 2 commits
  4. 21 Oct, 2017 7 commits
  5. 20 Oct, 2017 9 commits
    • Tim Cooper's avatar
      encoding/hex: add NewEncoder, NewDecoder · 6db4950d
      Tim Cooper authored
      NewEncoder returns an io.Writer that writes all incoming bytes as
      hexadecimal characters to the underlying io.Writer. NewDecoder returns an
      io.Reader that does the inverse.
      
      Fixes #21590
      
      Change-Id: Iebe0813faf365b42598f19a9aa41768f571dc0a8
      Reviewed-on: https://go-review.googlesource.com/70210Reviewed-by: default avatarJoe Tsai <thebrokentoaster@gmail.com>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      6db4950d
    • David Crawshaw's avatar
      cmd/link: move Iself global to ctxt · d05f82a1
      David Crawshaw authored
      For #22095
      
      Change-Id: Iba3dffc782cecc15ea0e90a971a2734729984945
      Reviewed-on: https://go-review.googlesource.com/70834
      Run-TryBot: David Crawshaw <crawshaw@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      d05f82a1
    • David Crawshaw's avatar
      cmd/link: move FlagLinkshared global to ctxt · 6738c494
      David Crawshaw authored
      For #22095
      
      Change-Id: Ica6b3391541fe5a0355620d7c4a5107cf53eee82
      Reviewed-on: https://go-review.googlesource.com/70833
      Run-TryBot: David Crawshaw <crawshaw@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarDaniel Martí <mvdan@mvdan.cc>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      6738c494
    • Joe Tsai's avatar
      encoding/csv: simplify and optimize Reader · 89ccfe49
      Joe Tsai authored
      The Reader implementation is slow because it operates on a rune-by-rune
      basis via bufio.Reader.ReadRune. We speed this up by operating on entire
      lines that we read from bufio.Reader.ReadSlice.
      
      In order to ensure that we read the full line, we augment ReadSlice
      in our Reader.readLine method to automatically expand the slice if
      bufio.ErrBufferFull is every hit.
      
      This change happens to fix #19410 because it no longer relies on
      rune-by-rune parsing and only searches for the relevant delimiter rune.
      
      In order to keep column accounting simple and consistent, this change
      reverts parts of CL 52830.
      
      This CL is an alternative to CL 36270 and builds on some of the ideas
      from that change by Diogo Pinela.
      
      name                                     old time/op    new time/op    delta
      Read-8                                   3.12µs ± 1%    2.54µs ± 2%  -18.76%   (p=0.000 n=10+9)
      ReadWithFieldsPerRecord-8                3.12µs ± 1%    2.53µs ± 1%  -18.91%    (p=0.000 n=9+9)
      ReadWithoutFieldsPerRecord-8             3.13µs ± 0%    2.57µs ± 3%  -18.07%  (p=0.000 n=10+10)
      ReadLargeFields-8                        52.3µs ± 1%     5.3µs ± 2%  -89.93%   (p=0.000 n=10+9)
      ReadReuseRecord-8                        2.05µs ± 1%    1.40µs ± 1%  -31.48%   (p=0.000 n=10+9)
      ReadReuseRecordWithFieldsPerRecord-8     2.05µs ± 1%    1.41µs ± 0%  -31.03%   (p=0.000 n=10+9)
      ReadReuseRecordWithoutFieldsPerRecord-8  2.06µs ± 1%    1.40µs ± 1%  -31.70%   (p=0.000 n=9+10)
      ReadReuseRecordLargeFields-8             50.9µs ± 0%     4.1µs ± 3%  -92.01%  (p=0.000 n=10+10)
      
      name                                     old alloc/op   new alloc/op
      Read-8                                       664B ± 0%      664B ± 0%
      ReadWithFieldsPerRecord-8                    664B ± 0%      664B ± 0%
      ReadWithoutFieldsPerRecord-8                 664B ± 0%      664B ± 0%
      ReadLargeFields-8                          3.94kB ± 0%    3.94kB ± 0%
      ReadReuseRecord-8                           24.0B ± 0%     24.0B ± 0%
      ReadReuseRecordWithFieldsPerRecord-8        24.0B ± 0%     24.0B ± 0%
      ReadReuseRecordWithoutFieldsPerRecord-8     24.0B ± 0%     24.0B ± 0%
      ReadReuseRecordLargeFields-8               2.98kB ± 0%    2.98kB ± 0%
      
      name                                     old allocs/op  new allocs/op
      Read-8                                       18.0 ± 0%      18.0 ± 0%
      ReadWithFieldsPerRecord-8                    18.0 ± 0%      18.0 ± 0%
      ReadWithoutFieldsPerRecord-8                 18.0 ± 0%      18.0 ± 0%
      ReadLargeFields-8                            24.0 ± 0%      24.0 ± 0%
      ReadReuseRecord-8                            8.00 ± 0%      8.00 ± 0%
      ReadReuseRecordWithFieldsPerRecord-8         8.00 ± 0%      8.00 ± 0%
      ReadReuseRecordWithoutFieldsPerRecord-8      8.00 ± 0%      8.00 ± 0%
      ReadReuseRecordLargeFields-8                 12.0 ± 0%      12.0 ± 0%
      
      Updates #22352
      Updates #19019
      Fixes #16791
      Fixes #19410
      
      Change-Id: I31c27cfcc56880e6abac262f36c947179b550bbf
      Reviewed-on: https://go-review.googlesource.com/72150Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      89ccfe49
    • Ian Lance Taylor's avatar
      runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write · 23aad448
      Ian Lance Taylor authored
      On systems that use kqueue, we always register descriptors for both
      EVFILT_READ and EVFILT_WRITE. On at least FreeBSD and OpenBSD, when
      the write end of a pipe is registered for EVFILT_READ and EVFILT_WRITE
      events, and the read end of the pipe is closed, kqueue reports an
      EVFILT_READ event with EV_EOF set, but does not report an EVFILT_WRITE
      event. Since the write to the pipe is waiting for an EVFILT_WRITE
      event, closing the read end of a pipe can cause the write end to hang
      rather than attempt another write which will fail with EPIPE.
      
      Fix this by treating EVFILT_READ with EV_EOF set as making both reads
      and writes ready to proceed.
      
      The real test for this is in CL 71770, which tests using various
      timeouts with pipes.
      
      Updates #22114
      
      Change-Id: Ib23fbaaddbccd8eee77bdf18f27a7f0aa50e2742
      Reviewed-on: https://go-review.googlesource.com/71973Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      23aad448
    • Matthew Dempsky's avatar
      cmd/compile: prevent inlining go:yeswritebarrierrec functions · 4e64ee42
      Matthew Dempsky authored
      Fixes #22342.
      
      Change-Id: Ic942162e98dce5749e381a31d58b0bf16c7d6f98
      Reviewed-on: https://go-review.googlesource.com/72132
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      4e64ee42
    • Cherry Zhang's avatar
      cmd/compile: skip runtime.nextFreeFast inlining test on MIPS64x · 5c18a3ca
      Cherry Zhang authored
      Since inlining budget calculation is fixed in CL 70151
      runtime.nextFreeFast is no longer inlineable on MIPS64x because
      it does not support Ctz64 as intrinsic. Skip the test.
      
      Updates #22239.
      
      Change-Id: Id00d55628ddb4b48d27aebfa10377a896765d569
      Reviewed-on: https://go-review.googlesource.com/72271
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      5c18a3ca
    • Russ Cox's avatar
      cmd/go: delete ETXTBSY hack that is no longer needed · 7dcf406c
      Russ Cox authored
      This hack existed because cmd/go used to install (write) and then run
      cmd/cgo in the same invocation, and writing and then running a program
      is a no-no in modern multithreaded Unix programs (see #22315).
      
      As of CL 68338, cmd/go no longer installs any programs that it then
      tries to use. It never did this for any program other than cgo, and
      CL 68338 removed that special case for cgo.
      
      Now this special case, added for #3001 long ago, can be removed too.
      
      Change-Id: I338f1f8665e9aca823e33ef7dda9d19f665e4281
      Reviewed-on: https://go-review.googlesource.com/71571
      Run-TryBot: Russ Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      7dcf406c
    • Russ Cox's avatar
      cmd/go/internal/work: factor build.go into multiple files · 08362246
      Russ Cox authored
      build.go - commands and misc helpers
      action.go - action graph construction
      exec.go - action graph execution
      gc.go - gc toolchain
      gccgo.go - gccgo toolchain
      
      Change-Id: I39b6e2490ac05334c2321e9ad88df694a6efa82f
      Reviewed-on: https://go-review.googlesource.com/70671
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: default avatarDavid Crawshaw <crawshaw@golang.org>
      08362246