1. 01 Mar, 2013 34 commits
  2. 28 Feb, 2013 6 commits
    • Rob Pike's avatar
      doc/articles/image_package.html: fix x/y mistake · 2145cd51
      Rob Pike authored
      Fixes #4942.
      
      R=golang-dev, adg
      CC=golang-dev
      https://golang.org/cl/7444047
      2145cd51
    • Robert Griesemer's avatar
      go/types: fix type-checking of shift expressions · 3a9fcc45
      Robert Griesemer authored
      Completely rethought shift expression type checking.
      Instead of attempting to type-check them eagerly, now
      delay the checking of untyped constant lhs in non-
      constant shifts until the final expression type
      becomes clear. Once it is clear, update the respective
      expression tree with the final (not untyped) type and
      check respective shift lhs' where necessary.
      
      This also cleans up another conundrum: How to report
      the type of untyped constants as it changes from
      untyped to typed. Now, Context.Expr is only called
      for an expresion x once x has received its final
      (not untyped) type (for constant initializers, the
      final type may still be untyped).
      
      With this CL all remaining std lib packages that
      did not typecheck due to shift errors pass now.
      
      TODO: There's a lot of residual stuff that needs
      to be cleaned up but with this CL all tests pass
      now.
      
      R=adonovan, axwalk
      CC=golang-dev
      https://golang.org/cl/7381052
      3a9fcc45
    • Dmitriy Vyukov's avatar
      runtime: refactor Syscall benchmark · 38d4d3c6
      Dmitriy Vyukov authored
      And add a benchmark where #goroutines>GOMAXPROCS,
      because it's the most interesting case.
      Current results on darwin/amd64, Intel Core 2 Duo 2.13 GHz, 2 cores:
      BenchmarkSyscall	100000000	        56.0 ns/op
      BenchmarkSyscall-2	50000000	        57.2 ns/op
      BenchmarkSyscallWork	10000000	       635 ns/op
      BenchmarkSyscallWork-2	10000000	       315 ns/op
      BenchmarkSyscallExcess	 1000000	      2698 ns/op
      BenchmarkSyscallExcess-2	 5000000	      1192 ns/op
      BenchmarkSyscallExcessWork	 1000000	      2832 ns/op
      BenchmarkSyscallExcessWork-2	 2000000	      1966 ns/op
      
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/7415044
      38d4d3c6
    • Dmitriy Vyukov's avatar
      runtime: add matrix multiplication benchmark · 72b09bd7
      Dmitriy Vyukov authored
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/7431047
      72b09bd7
    • Akshat Kumar's avatar
      os: Plan 9: allocate space for a string in Rename · bd889907
      Akshat Kumar authored
      The Name field of the stat structure is variable length
      and the marshalling code in package syscall requires
      a buf long enough to contain the Name as well as the
      static data. This change makes sure that the buffer in
      os.Rename is allocated with the appropriate length.
      
      R=rsc, rminnich, ality, r
      CC=golang-dev
      https://golang.org/cl/7453044
      bd889907
    • Russ Cox's avatar
      runtime/cgo: move common symbol overrides into 6c-compiled code · 5bffa3b8
      Russ Cox authored
      There are some function pointers declared by 6c in
      package runtime without initialization and then also
      declared in package runtime/cgo with initialization,
      so that if runtime/cgo is linked in, the function pointers
      are non-nil, and otherwise they are nil. We depend on
      this property for implementing non-essential cgo hooks
      in package runtime.
      
      The declarations in package runtime are 6c-compiled
      and end up in .6 files. The declarations in package runtime/cgo
      are gcc-compiled and end up in .o files. Since 6l links the .6
      and .o files together, this all works.
      
      However, when we switch to "external linking" mode,
      6l will not see the .o files, and it would be up to the host linker
      to resolve the two into a single initialized symbol.
      Not all host linkers will do this (in particular OS X gcc will not).
      
      To fix this, move the cgo declarations into 6c-compiled code,
      so that they end up in .6 files, so that 6l gets them no matter what.
      
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/7440045
      5bffa3b8