1. 17 Jul, 2013 1 commit
  2. 16 Jul, 2013 20 commits
  3. 15 Jul, 2013 8 commits
  4. 14 Jul, 2013 2 commits
  5. 13 Jul, 2013 3 commits
    • Russ Cox's avatar
      cmd/6l, cmd/8l: use one-byte XCHG forms when possible · aad4720b
      Russ Cox authored
      Pointed out by khr.
      
      R=ken2
      CC=golang-dev
      https://golang.org/cl/11145044
      aad4720b
    • Russ Cox's avatar
      encoding/json: add more tests for UTF-8 coercion · 4274d074
      Russ Cox authored
      Suggested by Rob in CL 11211045, but the mail arrived
      moments after hg submit completed.
      
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/11138045
      4274d074
    • Russ Cox's avatar
      cmd/go, testing: streamline direct use of test binaries · ccc45534
      Russ Cox authored
      Before:
      
              $ go test -c -cover fmt
              $ ./fmt.test -test.covermode=set
              PASS
              coverage: 65.1% of statements in strconv
              $
      
      After:
      
              $ go test -c -cover fmt
              $ ./fmt.test
              PASS
              coverage: 65.1% of statements in strconv
              $
      
      In addition to being cumbersome, the old flag didn't make sense:
      the cover mode cannot be changed after the binary has been built.
      
      Another useful effect of this CL is that if you happen to do
      
              $ go test -c -covermode=atomic fmt
      
      and then forget you did that and run benchmarks,
      the final line of the output (the coverage summary) reminds you
      that you are benchmarking with coverage enabled, which might
      not be what you want.
      
              $ ./fmt.test -test.bench .
              PASS
              BenchmarkSprintfEmpty	10000000	       217 ns/op
              BenchmarkSprintfString	 2000000	       755 ns/op
              BenchmarkSprintfInt	 2000000	       774 ns/op
              BenchmarkSprintfIntInt	 1000000	      1363 ns/op
              BenchmarkSprintfPrefixedInt	 1000000	      1501 ns/op
              BenchmarkSprintfFloat	 1000000	      1257 ns/op
              BenchmarkManyArgs	  500000	      5346 ns/op
              BenchmarkScanInts	    1000	   2562402 ns/op
              BenchmarkScanRecursiveInt	     500	   3189457 ns/op
              coverage: 91.4% of statements
              $
      
      As part of passing the new mode setting in via _testmain.go, merge
      the two registration mechanisms into one extensible mechanism
      (a struct).
      
      R=r
      CC=golang-dev
      https://golang.org/cl/11219043
      ccc45534
  6. 12 Jul, 2013 6 commits
    • Russ Cox's avatar
      undo CL 11161044 / ba455262a9db · 4419d7e5
      Russ Cox authored
      I want to think more carefully about this.
      
      We put this in because Marshal encoded named []byte but Unmarshal rejected them.
      And we noticed that Marshal's behavior was undocumented so we documented it.
      But I am starting to think the docs and Unmarshal were correct and Marshal's
      behavior was the problem.
      
      Rolling back to give us more time to think.
      
      ««« original CL description
      json: unmarshal types that are byte slices.
      
      The json package cheerfully would marshal
      
              type S struct {
                      IP net.IP
              }
      
      but would give an error when unmarshalling.  This change allows any
      type whose concrete type is a byte slice to be unmarshalled from a
      string.
      
      Fixes #5086.
      
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/11161044
      
      »»»
      
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/11042046
      4419d7e5
    • Russ Cox's avatar
      encoding/json: coerce invalid UTF-8 to valid UTF-8 during Marshal · 64054a40
      Russ Cox authored
      In practice, rejecting an entire structure due to a single invalid byte
      in a string is just too picky, and too hard to track down.
      Be consistent with the bulk of the standard library by converting
      invalid UTF-8 into UTF-8 with replacement runes.
      
      R=golang-dev, crawshaw
      CC=golang-dev
      https://golang.org/cl/11211045
      64054a40
    • Keith Randall's avatar
      cmd/dist: allow assembly code to use enumerated constants. · cfefe6a7
      Keith Randall authored
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/11056044
      cfefe6a7
    • Russ Cox's avatar
      cmd/5a, cmd/6a, cmd/8a: fix flag parsing · 8124a02c
      Russ Cox authored
      go tool 6a -$(unicode fffd) was crashing.
      
      Fixes #5878.
      
      R=ken2
      CC=golang-dev
      https://golang.org/cl/11208045
      8124a02c
    • Shenghou Ma's avatar
      run.bash: enlarge timeout of runtime tests · 0ce56e60
      Shenghou Ma authored
      Recently addition to runtime test makes it take very close to 720s
      of timeout limit on the netbsd-arm-qemu builder.
      
      R=golang-dev, go.peter.90, rsc
      CC=golang-dev
      https://golang.org/cl/10935043
      0ce56e60
    • Russ Cox's avatar
      cmd/5g, cmd/6g, cmd/8g: fix line number of caller of deferred func · 7e97d398
      Russ Cox authored
      Deferred functions are not run by a call instruction. They are run by
      the runtime editing registers to make the call start with a caller PC
      returning to a
              CALL deferreturn
      instruction.
      
      That instruction has always had the line number of the function's
      closing brace, but that instruction's line number is irrelevant.
      Stack traces show the line number of the instruction before the
      return PC, because normally that's what started the call. Not so here.
      The instruction before the CALL deferreturn could be almost anywhere
      in the function; it's unrelated and its line number is incorrect to show.
      
      Fix the line number by inserting a true hardware no-op with the right
      line number before the returned-to CALL instruction. That is, the deferred
      calls now appear to start with a caller PC returning to the second instruction
      in this sequence:
              NOP
              CALL deferreturn
      
      The traceback will show the line number of the NOP, which we've set
      to be the line number of the function's closing brace.
      
      The NOP here is not the usual pseudo-instruction, which would be
      elided by the linker. Instead it is the real hardware instruction:
      XCHG AX, AX on 386 and amd64, and AND.EQ R0, R0, R0 on ARM.
      
      Fixes #5856.
      
      R=ken2, ken
      CC=golang-dev
      https://golang.org/cl/11223043
      7e97d398