1. 02 Nov, 2012 11 commits
    • Rob Pike's avatar
      sort: make return value for 'not found' clearer in docs · 20548b15
      Rob Pike authored
      It was well-defined but easy to miss that the return value for
      "not found" is len(input) not -1 as many expect.
      
      Fixes #4205.
      
      R=golang-dev, dsymonds
      CC=golang-dev
      https://golang.org/cl/6820080
      20548b15
    • Rémy Oudompheng's avatar
      cmd/gc: instrument blocks for race detection. · c46f1f40
      Rémy Oudompheng authored
      It happens that blocks are used for function calls in a
      quite low-level way so they cannot be instrumented as
      usual.
      
      Blocks are also used for inlined functions.
      
      R=golang-dev, rsc, dvyukov
      CC=golang-dev
      https://golang.org/cl/6821068
      c46f1f40
    • Dmitriy Vyukov's avatar
      net/http: fix data race in test · 600de1fb
      Dmitriy Vyukov authored
      The issue is that server still sends body,
      when client closes the fd.
      Fixes #4329.
      
      R=golang-dev, dave, rsc
      CC=golang-dev
      https://golang.org/cl/6822072
      600de1fb
    • Shenghou Ma's avatar
      runtime/cgo, go/build: cgo support for FreeBSD/ARM · 31f8b07e
      Shenghou Ma authored
      This is the last CL for FreeBSD/ARM support.
      Also update cmd/ld/doc.go for 5l support of -Hfreebsd.
      
      R=rsc
      CC=golang-dev
      https://golang.org/cl/6650051
      31f8b07e
    • Jeff R. Allen's avatar
      misc/benchcmp: show memory statistics, when available · d5449eaf
      Jeff R. Allen authored
      R=minux.ma, dave, extraterrestrial.neighbour, rsc
      CC=golang-dev
      https://golang.org/cl/6587069
      d5449eaf
    • Alex Brainman's avatar
      net: add missing locking in windows Shutdown · 90d959be
      Alex Brainman authored
      R=golang-dev, bradfitz
      CC=golang-dev
      https://golang.org/cl/6811069
      90d959be
    • Rémy Oudompheng's avatar
      cmd/5g, cmd/6g: fix out of registers with array indexing. · 0b2353ed
      Rémy Oudompheng authored
      Compiling expressions like:
          s[s[s[s[s[s[s[s[s[s[s[s[i]]]]]]]]]]]]
      make 5g and 6g run out of registers. Such expressions can arise
      if a slice is used to represent a permutation and the user wants
      to iterate it.
      
      This is due to the usual problem of allocating registers before
      going down the expression tree, instead of allocating them in a
      postfix way.
      
      The functions cgenr and agenr (that generate a value to a newly
      allocated register instead of an existing location), are either
      introduced or modified when they already existed to allocate
      the new register as late as possible, and sudoaddable is disabled
      for OINDEX nodes so that igen/agenr is used instead.
      
      Update #4207.
      
      R=dave, daniel.morsing, rsc
      CC=golang-dev
      https://golang.org/cl/6733055
      0b2353ed
    • Nigel Tao's avatar
      d659633a
    • Oling Cat's avatar
      spec: we're now at Unicode 6.2.0 · 002103f5
      Oling Cat authored
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/6818083
      002103f5
    • Russ Cox's avatar
      cmd/gc, cmd/ld: struct field tracking · 3d40062c
      Russ Cox authored
      This is an experiment in static analysis of Go programs
      to understand which struct fields a program might use.
      It is not part of the Go language specification, it must
      be enabled explicitly when building the toolchain,
      and it may be removed at any time.
      
      After building the toolchain with GOEXPERIMENT=fieldtrack,
      a specific field can be marked for tracking by including
      `go:"track"` in the field tag:
      
              package pkg
      
              type T struct {
                      F int `go:"track"`
                      G int // untracked
              }
      
      To simplify usage, only named struct types can have
      tracked fields, and only exported fields can be tracked.
      
      The implementation works by making each function begin
      with a sequence of no-op USEFIELD instructions declaring
      which tracked fields are accessed by a specific function.
      After the linker's dead code elimination removes unused
      functions, the fields referred to by the remaining
      USEFIELD instructions are the ones reported as used by
      the binary.
      
      The -k option to the linker specifies the fully qualified
      symbol name (such as my/pkg.list) of a string variable that
      should be initialized with the field tracking information
      for the program. The field tracking string is a sequence
      of lines, each terminated by a \n and describing a single
      tracked field referred to by the program. Each line is made
      up of one or more tab-separated fields. The first field is
      the name of the tracked field, fully qualified, as in
      "my/pkg.T.F". Subsequent fields give a shortest path of
      reverse references from that field to a global variable or
      function, corresponding to one way in which the program
      might reach that field.
      
      A common source of false positives in field tracking is
      types with large method sets, because a reference to the
      type descriptor carries with it references to all methods.
      To address this problem, the CL also introduces a comment
      annotation
      
              //go:nointerface
      
      that marks an upcoming method declaration as unavailable
      for use in satisfying interfaces, both statically and
      dynamically. Such a method is also invisible to package
      reflect.
      
      Again, all of this is disabled by default. It only turns on
      if you have GOEXPERIMENT=fieldtrack set during make.bash.
      
      R=iant, ken
      CC=golang-dev
      https://golang.org/cl/6749064
      3d40062c
    • Alex Brainman's avatar
      net: use better error messages on windows · 84e20465
      Alex Brainman authored
      Fixes #4320.
      
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/6810064
      84e20465
  2. 01 Nov, 2012 29 commits