1. 18 Jul, 2018 26 commits
  2. 17 Jul, 2018 14 commits
    • Ian Lance Taylor's avatar
      cmd/go: search test imports when matching -coverpkg · f3cdc941
      Ian Lance Taylor authored
      Fixes #25093
      
      Change-Id: If283275e2b73621ade56d014e60c2d18199b366c
      Reviewed-on: https://go-review.googlesource.com/122555
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarBryan C. Mills <bcmills@google.com>
      f3cdc941
    • Rob Pike's avatar
      doc: improve the garbage collection discussion · 3a28a711
      Rob Pike authored
      Bring it up to date with recent terminology, mention new approaches
      such as in Rust, and link to the new blog post.
      
      Change-Id: I1d0b121e6f8347c3cf2c8ca0d8adc8285ce59ef1
      Reviewed-on: https://go-review.googlesource.com/124475Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      3a28a711
    • Austin Clements's avatar
      doc/go1.11: compiler and runtime release notes · 92e03bba
      Austin Clements authored
      Change-Id: I487bdf0c828d28b2122bd93934dc5a9a5dbc6a00
      Reviewed-on: https://go-review.googlesource.com/124517Reviewed-by: default avatarAustin Clements <austin@google.com>
      92e03bba
    • Austin Clements's avatar
      doc/go1.11: fix some typos · 61a04474
      Austin Clements authored
      Change-Id: I3c0cb9b56776d8cc78a96ef012385c31f9f0e146
      Reviewed-on: https://go-review.googlesource.com/124516Reviewed-by: default avatarAustin Clements <austin@google.com>
      61a04474
    • Mostyn Bramley-Moore's avatar
      path/filepath: make Walk example runnable in the playground · 94081192
      Mostyn Bramley-Moore authored
      Relates to #9679
      
      Change-Id: I68951f664d2a03812dae309c580c181869d8af21
      Reviewed-on: https://go-review.googlesource.com/122237
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      94081192
    • Filippo Valsorda's avatar
      doc: minor go1.11 changes · a80a7f0e
      Filippo Valsorda authored
      CL 124135 follow-ups.
      
      Change-Id: Ib7e2066bd2d18851561e03386709a1b42b50fcef
      Reviewed-on: https://go-review.googlesource.com/124136Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarAndrew Bonventre <andybons@golang.org>
      a80a7f0e
    • Frank Schroeder's avatar
      cmd/go: run git log with --no-show-signature · b9a764ff
      Frank Schroeder authored
      Git timestamp parsing is broken when fetching modules if the
      local git configuration has 'log.showsignature=true'.
      
      Fixes #26388
      
      Change-Id: I47f92381784072335a2a465de56092106c616108
      GitHub-Last-Rev: 96f988c0a2dd39a5747ec4a7bad05e7e8ee0d384
      GitHub-Pull-Request: golang/go#26389
      Reviewed-on: https://go-review.googlesource.com/123958Reviewed-by: default avatarDaniel Martí <mvdan@mvdan.cc>
      Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      b9a764ff
    • Steeve Morin's avatar
      cmd/cgo: update JNI's jobject to uintptr check for newer Android NDKs · 5419e7a0
      Steeve Morin authored
      In Android's NDK16, jobject is now declared as:
          #ifdef __cplusplus
          class _jobject {};
          typedef _jobject*       jobject;
          #else /* not __cplusplus */
          typedef void*           jobject;
          #endif
      
      This makes the jobject to uintptr check fail because it expects the
      following definition:
          struct _jobject;
          typedef struct _jobject *jobject;
      
      Update the type check to handle that new type definition in both C and
      C++ modes.
      
      Fixes #26213
      
      Change-Id: Ic36d4a5176526998d2d5e4e404f8943961141f7a
      GitHub-Last-Rev: 42037c3c584579c2b3281c25372b830e864e7aec
      GitHub-Pull-Request: golang/go#26221
      Reviewed-on: https://go-review.googlesource.com/122217
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      5419e7a0
    • Alberto Donizetti's avatar
      doc/go1.11: explain new vet typechecking behaviour in release notes · bccbf590
      Alberto Donizetti authored
      Since Go1.10, go test runs vet on the tests before executing them.
      
      Moreover, the vet tool typechecks the package under analysis with
      go/types before running. In Go1.10, a typechecking failure just caused
      a warning to be printed. In Go1.11, a typechecking failure will cause
      vet to exit with a fatal error (see Issue #21287).
      
      This means that starting with Go1.11, tests that don't typecheck will
      fail immediately. This would not normally be an issue, since a test
      that doesn't typecheck shouldn't even compile, and it should already
      be broken.
      
      Unfortunately, there's a bug in gc that makes it accept programs with
      unused variables inside a closure (Issue #3059). This means that a
      test with an unused variable inside a closure, that compiled and
      passed in Go1.10, will fail in the typechecking step of vet starting
      with Go1.11.
      
      Explain this in the 1.11 release notes.
      
      Fixes #26109
      
      Change-Id: I970c1033ab6bc985d8c64bd24f56e854af155f96
      Reviewed-on: https://go-review.googlesource.com/121455Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      bccbf590
    • Austin Clements's avatar
      Revert "runtime: fix lldb test after DWARF compression" · 57b5a71d
      Austin Clements authored
      This reverts commit c9930022.
      
      The original CL skipped the lldb test if it couldn't read compressed
      DWARF, but lldb can never read compressed DWARF, so this effectively
      disabled this test unconditionally.
      
      The previous commit disabled DWARF compression for this test, so the
      test now works on its own merits again. This CL reverts the change to
      skip the test so we don't simply mask lldb failures.
      
      Updates #25925.
      
      Change-Id: I3e1c787b658257b542c3c70807065dde9cfe05ee
      Reviewed-on: https://go-review.googlesource.com/124386
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      57b5a71d
    • Austin Clements's avatar
      runtime: disable compressed DWARF for lldb test · ff5b54d2
      Austin Clements authored
      lldb doesn't support compressed DWARF, so right now we're just always
      skipping the lldb test. This CL makes the test run again by disabling
      compressed DWARF just for this test.
      
      Updates #25925.
      
      Change-Id: Ib9ddc442305fe6d37060d48f36bc4458b6fd8c86
      Reviewed-on: https://go-review.googlesource.com/124385
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      ff5b54d2
    • Michael Munday's avatar
      cmd/compile: keep autos if their address reaches a control value · 1546ab5a
      Michael Munday authored
      Autos must be kept if their address reaches the control value of a
      block. We didn't see this before because it is rare for an auto's
      address to reach a control value without also reaching a phi or
      being written to memory. We can probably optimize away the
      comparisons that lead to this scenario since autos cannot alias
      with pointers from elsewhere, however for now we take the
      conservative approach and just ensure the auto is properly
      initialised if its address reaches a control value.
      
      Fixes #26407.
      
      Change-Id: I02265793f010a9e001c3e1a5397c290c6769d4de
      Reviewed-on: https://go-review.googlesource.com/124335Reviewed-by: default avatarDavid Chase <drchase@google.com>
      1546ab5a
    • Russ Cox's avatar
      cmd/go: add new test script facility · 5890e25b
      Russ Cox authored
      The original cmd/go tests were tiny shell scripts
      written against a library of shell functions.
      They were okay to write but difficult to run:
      you couldn't select individual tests (with -run)
      they didn't run on Windows, they were slow, and so on.
      
      CL 10464 introduced go_test.go's testgo framework
      and later CLs translated the test shell script over to
      individual go tests. This let us run tests selectively,
      run tests on Windows, run tests in parallel, isolate
      different tests, and so on. It was a big advance.
      
      The tests had always been awkward to write.
      Here was the first test in test.bash:
      
      	TEST 'file:line in error messages'
      	# Test that error messages have file:line information at beginning of
      	# the line. Also test issue 4917: that the error is on stderr.
      	d=$(TMPDIR=/var/tmp mktemp -d -t testgoXXX)
      	fn=$d/err.go
      	echo "package main" > $fn
      	echo 'import "bar"' >> $fn
      	./testgo run $fn 2>$d/err.out || true
      	if ! grep -q "^$fn:" $d/err.out; then
      		echo "missing file:line in error message"
      		cat $d/err.out
      		ok=false
      	fi
      	rm -r $d
      
      The final Go version of this test was:
      
      	func TestFileLineInErrorMessages(t *testing.T) {
      		tg := testgo(t)
      		defer tg.cleanup()
      		tg.parallel()
      		tg.tempFile("err.go", `package main; import "bar"`)
      		path := tg.path("err.go")
      		tg.runFail("run", path)
      		shortPath := path
      		if rel, err := filepath.Rel(tg.pwd(), path); err == nil && len(rel) < len(path) {
      			shortPath = rel
      		}
      		tg.grepStderr("^"+regexp.QuoteMeta(shortPath)+":", "missing file:line in error message")
      	}
      
      It's better but still quite difficult to skim.
      
      This CL introduces a new facility meant as a successor to the testgo
      approach that brings back the style of writing tests as little scripts,
      but they are now scripts in a built-for-purpose shell-like language,
      not bash itself. In this new form, the test above is a single file,
      testdata/script/fileline.txt:
      
      	# look for short, relative file:line in error message
      	! go run ../../gopath/x/y/z/err.go
      	stderr ^..[\\/]x[\\/]y[\\/]z[\\/]err.go:
      
      	-- ../x/y/z/err.go --
      	package main; import "bar"
      
      The file is a txtar text archive (see CL 123359) in which the leading comment
      is the test script and the files are the initial state of the temporary file
      system where the script runs.
      
      Each script runs as a subtest, so that they can still be selected individually.
      
      The scripts are kept isolated from each other by default,
      so all script subtests are treated as parallel tests, for the
      testing package to run in parallel. Even for the 15 tests in
      this CL, that cuts the time for TestScript from 5.5s to 2.5s.
      
      The scripts do not have access to the cmd/go source directory,
      nor to cmd/go/testdata, so they are prevented from creating temporary
      files in those places or modifying existing ones. (Many existing tests
      scribble in testdata, unfortunately, especially testdata/pkg when
      they run builds with GOPATH=testdata.)
      
      This CL introduces the script facility and converts 15 tests.
      The txtar archive form will allow us to delete the large trees of trivial
      files in testdata; a few are deleted in this CL.
      
      See testdata/script/README for details and a larger conversion example.
      
      As part of converting testdata/script/test_badtest.txt,
      I discovered that 'go test' was incorrectly printing a FAIL line
      to stderr (not stdout) in one corner case. This CL fixes that
      to keep the test passing.
      
      Future CLs will convert more tests.
      
      Change-Id: I11aa9e18dd2d4c7dcd8e310dbdc6a1ea5f7e54c1
      Reviewed-on: https://go-review.googlesource.com/123577
      Run-TryBot: Russ Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      5890e25b
    • Rob Pike's avatar
      doc: update Usage section of the FAQ · b59b42ce
      Rob Pike authored
      This is close to a complete rewrite, as the content was pretty old.
      
      The CL includes links to the Wiki for information about companies
      using Go, a new section about IDEs and editors¹, and a restatement
      of the foreign function interface story. It also modernizes and
      expands a little on the use of Go inside Google.
      
      ¹ Ed is the standard editor.
      
      Change-Id: I5e54aafa53d00d86297b2691960a376b40f6225b
      Reviewed-on: https://go-review.googlesource.com/123922Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      b59b42ce