1. 26 Feb, 2016 4 commits
    • Andrew Gerrand's avatar
      doc: add issue and pull request templates · 7b74921d
      Andrew Gerrand authored
      Fixes #14365
      
      Change-Id: I082329fe7a1e06c774a32e0e24e5c8736bb5a037
      Reviewed-on: https://go-review.googlesource.com/19877Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      7b74921d
    • Matthew Dempsky's avatar
      cmd/compile: simplify error sorting · a5b7a8d6
      Matthew Dempsky authored
      Errors have unique seq values (their index within the errors slice),
      so errcmp never needs to fallback to sorting by message text.
      Moreover, comparing by original index is exactly the purpose of using
      a stable sort algorithm (and sort.Stable was added in Go 1.2), so we
      really only need to compare by lineno.
      
      Change-Id: I7f534b72a05d899ae9788dc7ef0541dd92a8b578
      Reviewed-on: https://go-review.googlesource.com/19929
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      a5b7a8d6
    • Matthew Dempsky's avatar
      cmd/compile: rationalize (lex)?lineno handling · e0fa809f
      Matthew Dempsky authored
      Previously, many error messages inconsistantly used either lexlineno
      and lineno.  In general this works out okay because they're almost
      always the same.  The only exceptional case is after lexing a
      multi-line raw string literal, where lineno will be the line number of
      the opening quote and lexlineno is the line number of the closing
      quote.
      
      This CL makes the compiler's error message more consistent:
      
      - Lexer error messages related to invalid byte sequences (i.e., NUL
      bytes, bad UTF-8 sequences, and non-initial BOMs) are emitted at
      lexlineno (i.e., the source line that contains the invalid byte
      sequence).
      
      - All other error messages (notably the parser's "syntax errors") now
      use lineno.  The minor change from this is that bogus input like:
      
          package `
          bogus`
      
      will emit "syntax error: unexpected string literal, expecting name"
      error at line 1, instead of line 2.
      
      - Instead of maintaining prevlineno all the time, just record it
      when/where actually needed and not already available elsewhere (which
      turns out to be just one function).
      
      - Lastly, we remove the legacy "syntax error near ..." fallback in
      Yerror, now that the parser always emits more detailed syntax error
      messages.
      
      Change-Id: Iaf5f784223d0385fa3a5b09ef2b2ad447feab02f
      Reviewed-on: https://go-review.googlesource.com/19925Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      e0fa809f
    • Keith Randall's avatar
      runtime: avoid using REP prefix for IndexByte · 687abca1
      Keith Randall authored
      REP-prefixed instructions have a large startup cost.
      Avoid them like the plague.
      
      benchmark                  old ns/op     new ns/op     delta
      BenchmarkIndexByte10-8     22.4          5.34          -76.16%
      
      Fixes #13983
      
      Change-Id: I857e956e240fc9681d053f2584ccf24c1b272bb3
      Reviewed-on: https://go-review.googlesource.com/18703Reviewed-by: default avatarMinux Ma <minux@golang.org>
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      687abca1
  2. 25 Feb, 2016 27 commits
  3. 24 Feb, 2016 9 commits