1. 07 Nov, 2011 1 commit
  2. 02 Nov, 2011 3 commits
  3. 31 Oct, 2011 1 commit
    • Luuk van Dijk's avatar
      gc: clean up printing. · 50110c9f
      Luuk van Dijk authored
      Got rid of all the magic mystery globals. Now
      for %N, %T, and %S, the flags +,- and # set a sticky
      debug, sym and export mode, only visible in the new fmt.c.
      Default is error mode. Handle h and l flags consistently with
      the least side effects, so we can now change
      things without worrying about unrelated things
      breaking.
      
      fixes #2361
      
      R=rsc
      CC=golang-dev
      https://golang.org/cl/5316043
      50110c9f
  4. 26 Oct, 2011 1 commit
  5. 18 Oct, 2011 2 commits
  6. 17 Oct, 2011 1 commit
  7. 13 Oct, 2011 1 commit
  8. 08 Oct, 2011 1 commit
  9. 07 Sep, 2011 1 commit
    • Russ Cox's avatar
      gc: add -p flag to catch import cycles earlier · 1e480cd1
      Russ Cox authored
      The linker would catch them if gc succeeded,
      but too often the cycle manifests as making the
      current package and the imported copy of itself
      appear as different packages, which result in
      type signature mismatches that confuse users.
      
      As a crutch, add the -p flag to say 'if you see an
      import of this package, give up early'.  Results in
      messages like (during gotest in sort):
      
      export_test.go:7: import "sort" while compiling that package (import cycle)
      export_test.go:7: import "container/heap": package depends on "sort" (import cycle)
      
      Fixes #2042.
      
      R=ken
      CC=bradfitz, dsymonds, golang-dev
      https://golang.org/cl/4972057
      1e480cd1
  10. 06 Sep, 2011 1 commit
    • Russ Cox's avatar
      gc: unify stack frame layout · 5ddf6255
      Russ Cox authored
      allocparams + tempname + compactframe
      all knew about how to place stack variables.
      
      Now only compactframe, renamed to allocauto,
      does the work.  Until the last minute, each PAUTO
      variable is in its own space and has xoffset == 0.
      
      This might break 5g.  I get failures in concurrent
      code running under qemu and I can't tell whether
      it's 5g's fault or qemu's.  We'll see what the real
      ARM builders say.
      
      R=ken2
      CC=golang-dev
      https://golang.org/cl/4973057
      5ddf6255
  11. 02 Sep, 2011 1 commit
  12. 01 Sep, 2011 1 commit
    • Russ Cox's avatar
      gc: fix label recursion bugs · 60d47101
      Russ Cox authored
      Was keeping a pointer to the labeled statement in n->right,
      which meant that generic traversals of the tree visited it twice.
      That combined with aggressive flattening of the block
      structure when possible during parsing meant that
      the kinds of label: code label: code label: code sequences
      generated by yacc were giving the recursion 2ⁿ paths
      through the program.
      
      Fixes #2212.
      
      R=lvd
      CC=golang-dev
      https://golang.org/cl/4960050
      60d47101
  13. 31 Aug, 2011 1 commit
    • Russ Cox's avatar
      gc: make static initialization more static · 335da67e
      Russ Cox authored
      Does as much as possible in data layout instead
      of during the init function.
      
      Handles var x = y; var y = z as a special case too,
      because it is so prevalent in package unicode
      (var Greek = _Greek; var _Greek = []...).
      
      Introduces InitPlan description of initialized data
      so that it can be traversed multiple times (for example,
      in the copy handler).
      
      Cuts package unicode's init function size by 8x.
      All that remains there is map initialization, which
      is on the chopping block too.
      
      Fixes sinit.go test case.
      
      Aggregate DATA instructions at end of object file.
      
      Checkpoint.  More to come.
      
      R=ken2
      CC=golang-dev
      https://golang.org/cl/4969051
      335da67e
  14. 30 Aug, 2011 1 commit
  15. 29 Aug, 2011 1 commit
    • Lucio De Re's avatar
      gc: fix build on Plan 9 · b3cc4897
      Lucio De Re authored
      gc/bits.c
      . improved format with associated cast;
      gc/closure.c
      gc/dcl.c
      gc/range.c
      gc/reflect.c
      gc/sinit.c
      . dropped unnecessary assignments;
      gc/gen.c
      . dropped unnecessary assignment;
      . added static qualifier to local function definition;
      gc/go.h
      . added varargck pragmas;
      gc/lex.c
      . used {} instead of ; in if statement to suppress warning;
      . replaced exit(0) with exits(0);
      . added compilation conditions for SIGBUS/SIGSEGV;
      . dropped unnecessary assignment;
      gc/mparith2.c
      . dropped four unnecessary assignments/initialisations;
      gc/obj.c
      . added type cast to local pointer;
      gc/pgen.c
      . added cast and related print format;
      gc/subr.c
      . replaced exit(1) with exits("error");
      . replaced unlink() with remove();
      . renamed local cistrmp() as ucistrmp() to remove conflict with
        Plan 9 function by the same name;
      gc/swt.c
      . added braces instead of ; as empty statment;
      gc/typecheck.c
      . added static qualifier to local function definition;
      . dropped unnecessary assignments;
      gc/walk.c
      . dropped unne...
      b3cc4897
  16. 28 Aug, 2011 1 commit
    • Russ Cox's avatar
      gc: tweak and enable escape analysis · db5f9da4
      Russ Cox authored
      -s now means *disable* escape analysis.
      
      Fix escape leaks for struct/slice/map literals.
      Add ... tracking.
      Rewrite new(T) and slice literal into stack allocation when safe.
      
      Add annotations to reflect.
      Reflect is too chummy with the compiler,
      so changes like these affect it more than they should.
      
      R=lvd, dave, gustavo
      CC=golang-dev
      https://golang.org/cl/4954043
      db5f9da4
  17. 25 Aug, 2011 1 commit
    • Russ Cox's avatar
      gc: shuffle #includes · 61f84a2c
      Russ Cox authored
      #include "go.h" (or "gg.h")
      
      becomes
      
      #include <u.h>
      #include <libc.h>
      #include "go.h"
      
      so that go.y can #include <stdio.h>
      after <u.h> but before "go.h".
      This is necessary on Plan 9.
      
      R=ken2
      CC=golang-dev
      https://golang.org/cl/4971041
      61f84a2c
  18. 24 Aug, 2011 1 commit
  19. 08 Aug, 2011 1 commit
    • Dmitriy Vyukov's avatar
      runtime: add more specialized type algorithms · 54e9406f
      Dmitriy Vyukov authored
      The change adds specialized type algorithms
      for slices and types of size 8/16/32/64/128.
      It significantly accelerates chan and map operations
      for most builtin types as well as user structs.
      
      benchmark                   old,ns/op   new,ns/op
      BenchmarkChanUncontended          226          94
      (on Intel Xeon E5620, 2.4GHz, Linux 64 bit)
      
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/4815087
      54e9406f
  20. 27 Jul, 2011 3 commits
  21. 26 Jul, 2011 1 commit
  22. 25 Jul, 2011 1 commit
  23. 21 Jul, 2011 2 commits
    • Russ Cox's avatar
      gc: select functions are no longer special · 22853098
      Russ Cox authored
      R=ken2
      CC=golang-dev
      https://golang.org/cl/4794049
      22853098
    • Dmitriy Vyukov's avatar
      runtime: faster select · 6b2ec065
      Dmitriy Vyukov authored
      Make selectsend() accept pointer to the element,
      it makes it possible to make Scase fixed-size
      and allocate/free Select, all Scase's and all SudoG at once.
      As a consequence SudoG freelist die out.
      
      benchmark                       old,ns/op  new,ns/op
      BenchmarkSelectUncontended	     1080        558
      BenchmarkSelectUncontended-2	      675        264
      BenchmarkSelectUncontended-4	      459        205
      BenchmarkSelectContended	     1086        560
      BenchmarkSelectContended-2	     1775       1672
      BenchmarkSelectContended-4	     2668       2149
      (on Intel Q6600, 4 cores, 2.4GHz)
      
      benchmark                       old ns/op    new ns/op    delta
      BenchmarkSelectUncontended         517.00       326.00  -36.94%
      BenchmarkSelectUncontended-2       281.00       166.00  -40.93%
      BenchmarkSelectUncontended-4       250.00        83.10  -66.76%
      BenchmarkSelectUncontended-8       107.00        47.40  -55.70%
      BenchmarkSelectUncontended-16       67.80        41.30  -39.09%
      BenchmarkSelectContended           513.00       325.00  -36.65%
      BenchmarkSelectContended-2         699.00       628.00  -10.16%
      BenchmarkSelectContended-4        1085.00      1092.00   +0.65%
      BenchmarkSelectContended-8        3253.00      2477.00  -23.85%
      BenchmarkSelectContended-16       5313.00      5116.00   -3.71%
      (on Intel E5620, 8 HT cores, 2.4 GHz)
      
      R=rsc, ken
      CC=golang-dev
      https://golang.org/cl/4811041
      6b2ec065
  24. 27 Jun, 2011 1 commit
  25. 17 Jun, 2011 1 commit
  26. 16 Jun, 2011 1 commit
  27. 14 Jun, 2011 1 commit
  28. 09 Jun, 2011 1 commit
  29. 03 Jun, 2011 1 commit
  30. 02 Jun, 2011 1 commit
  31. 01 Jun, 2011 1 commit
  32. 31 May, 2011 2 commits
  33. 28 Apr, 2011 1 commit