Commit Graph

1470 Commits

Author SHA1 Message Date
Dmitriy Vyukov 3eede9be08 dashboard: improve graph view
Several changes as per Russ and Ian requests:

1. Fix almost broken ZoomIn/ZoomOut/Newer/Older with ability zoom in/out and move left/right w/o reloading (the 'explorer' attribute on graph).

2. Start the graph from the current release by default.

3. Allow to select the range of commits by specifying release range (e.g. go1.1 to go1.3 or go1.3 to tip).

4. Make it visually clear that you can select several benchmarks/metrics (replace select with a set of checkboxes).

5. Remove the "absolute" mode. Instead normalize all metrics to the start of the release (start becomes 1.0) and all subsequent changes are relative to it.

LGTM=adg
R=adg
CC=golang-codereviews, iant, rsc
https://golang.org/cl/159980043
2014-10-17 11:34:53 +04:00
Dmitriy Vyukov 4201ff03b5 dashboard: separate build and non-build metrics in perf dashboard
As per Ian request:

>> Let's clearly separate the build numbers from the runtime numbers.
>> The build numbers are interesting but there are many things that
>> affect them.  The runtime numbers are presumably stable.

LGTM=adg
R=adg
CC=golang-codereviews, iant, rsc
https://golang.org/cl/154440043
2014-10-17 11:34:27 +04:00
Dmitriy Vyukov a0cb59fbc3 dashboard: highlight positive changes
Initially both positive and negative changes had solid background (green and red).
Then we removed background of positive changes due to:
https://code.google.com/p/go/issues/detail?id=8624
However, Ian noted:

"I did intuitively understand that + was an increase and - was a
decrease.  I did not notice how the numbers were segregated between
the third and fourth columns.  Now that you point it out, it is
obvious.  It would be more obvious if the numbers in the fourth column
were highlighted in green."

Give positive changes green *border* (not background),
so they are still visually distinguishable from negative even in grayscale.
This is especially beneficial for perf detail view,
because currently it looks like everything is either
negative or neutral in that view (only red and black).

LGTM=adg
R=adg
CC=golang-codereviews, iant, rsc
https://golang.org/cl/159970043
2014-10-17 11:32:43 +04:00
David Symonds 26439e8d81 cmd/vet: return nil from importType if it fails.
This permits vet to not panic during init if fmt.a is unavailable.

LGTM=r
R=gri, r
CC=golang-codereviews
https://golang.org/cl/153590043
2014-10-15 16:56:09 +11:00
Rob Pike 9be0b38f5b cmd/vet: don't panic if import fails
Initializing the unused variable formatterType (it will be used soon) was
panicking if the import couldn't be done, but vet shouldn't be so fragile.

LGTM=gri
R=gri
CC=dsymonds, golang-codereviews
https://golang.org/cl/153480044
2014-10-14 12:55:46 -07:00
Alan Donovan b45b275b99 go/buildutil: use same logic as 'go' tool for pruning package search.
The previous logic would descend into (e.g.) .git repositories
and vendored packages with "_"-prefixed names.

Fixes golang/go#8907

LGTM=gri
R=gri
CC=golang-codereviews, shurcool
https://golang.org/cl/157800043
2014-10-14 12:57:00 -04:00
Alan Donovan efd8523ea7 go/loader: minor comment fix.
TBR=gri
R=gri
CC=golang-codereviews
https://golang.org/cl/157970043
2014-10-14 12:27:37 -04:00
Alan Donovan 4ada33969d go/buildutil: use a counting semaphore to limit the number of parallel calls to ReadDir
LGTM=gri
R=gri
CC=golang-codereviews
https://golang.org/cl/153430043
2014-10-13 17:47:43 -04:00
Hana Kim 13837d25ef godoc: exclude internal packages and cmd from packages page.
Internal packages are now only included with ?m=all

Fixes golang/go#8879

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/155910044
2014-10-13 18:47:02 +02:00
David Symonds 0513cb08b6 go.tools/imports: Permit fix_test.go to work pre-Go 1.4.
LGTM=iant
R=iant
CC=golang-codereviews
https://golang.org/cl/156980043
2014-10-13 08:44:37 +11:00
Daniel Morsing 70f0e2472d go.tools/oracle: consider calls to close a peer operation.
This makes it possible to find corresponding closes to receives and sends.

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/155260043
2014-10-12 15:08:28 +01:00
Chris Manghane cced8d21dd dashboard: add 32-bit gccgo builder; improve performance of gccgo builds on docker
This change adds a 32-bit builder for gccgo and fixes some specific
configuration problems with the docker image/coordinator to speed up builds.
The go builder running on the linux-x86-gccgo image has been modified to run
`make -j16` when building to reduce build times from ~60 minutes to ~10 minutes
and the coordinator has been modified to run the command `make check-go -j16`
to reduce testsuite run times from ~30 minutes to ~10 minutes.

LGTM=bradfitz
R=bradfitz
CC=adg, golang-codereviews
https://golang.org/cl/151530043
2014-10-09 14:04:49 -07:00
Robert Griesemer 2f1c768885 go/types: document default unsafe.Sizeof computation better
LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/155150043
2014-10-08 13:49:38 -07:00
Chris Manghane c066f3309e dashboard/builder: fix gccgo `git log` execution
LGTM=adg
R=bradfitz
CC=adg, golang-codereviews
https://golang.org/cl/149630043
2014-10-08 11:45:00 -07:00
Russ Cox 46e9d8e060 dashboard/app: ignore, try not to create partial Commits
It looks like the partial Commits are coming from the build breakages mails.
If you have commit A newer than commit B, then there are two code
paths depending on which reports its build result first.
For slow development, B finishes before A is committed, so when
A notices a failure it checks to see if B was okay.
That code path seems to be okay.
For submit of back-to-back changes, typically A finishes before B,
so when B notices an okay it checks to see if A failed.
That code path seems to zero the Commit for A while
trying to set its FailNotificationSent to true.
It does (did) succeed in setting FailNotificationSent to true,
it just zeroed everything else.

This CL adds code to refuse to do the datastore.Put to
update FailNotificationSent if the Commit info is incomplete.

It also tries to ignore Num=0 records, but that may not be
as important anymore.

LGTM=cmang
R=cmang
CC=golang-codereviews
https://golang.org/cl/154080043
2014-10-07 15:37:31 -04:00
Andrew Gerrand f463296c27 go.tools/dashboard/app: document special error string
TBR=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/152250043
2014-10-07 09:58:49 +11:00
Andrew Gerrand 491eb08564 go.tools/dashboard/watcher: commit watcher rewrite
LGTM=bradfitz
R=bradfitz, alex.brainman, dvyukov
CC=golang-codereviews
https://golang.org/cl/155730043
2014-10-06 16:32:41 +11:00
Andrew Gerrand fcf4a08452 go.tools/dashboard/app: return specific error string on commit not found
TBR=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/153070043
2014-10-06 16:28:27 +11:00
Andrew Gerrand 51be54e32f go.tools/dashboard/app: show main repo commits with no build results
The UI template iterates over ResultGoHashes to display the Commit
rows. This was done for the sub-repository build view, where it
only makes sense to show a row when there's build data for it.

However, in the main page UI we do want to see if a commit has hit
the dashboard but has not yet been built.

This change causes the dashboard to show the commit row even if
there are no build results for it yet.

LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/153010043
2014-10-04 14:18:41 +10:00
Andrew Gerrand 4fb5eee0bd go.tools/dashboard/builder: fix build
TBR=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/151370044
2014-10-04 08:43:04 +10:00
Andrew Gerrand fce07d6ae8 go.tools/dashboard/app: fix integration tests
They had been broken after a few recent changes.

LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/152150043
2014-10-04 08:33:52 +10:00
Andrew Gerrand d322540ca7 go.tools/dashboard/builder: make old commit watcher opt-in and exclusive
Only gccgo should be using this now, and hopefully not for too long.
Turn it off by default, and make it the only thing that happens
when it's switched on.

LGTM=bradfitz, cmang
R=bradfitz, cmang
CC=golang-codereviews
https://golang.org/cl/153940043
2014-10-04 08:26:17 +10:00
Andrew Gerrand 8f69c6b2df go.tools/dashboard/app: require version=2 for commit updates
This will prevent older, buggy builders from posting commits.

LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/153930043
2014-10-04 08:25:32 +10:00
Dmitri Shuralyov cccd43354a cmd/vet: fix bug where incorrect exit code was returned
Fixes golang/go#8792.

This is a simple change that fixes the issue. It may be desireable
to opt for a larger code change that makes this problem less likely
to be inadvertedly reintroduced in the future. For instance, a vetMain()
func can be used similar to gofmtMain(), or the os.Exit call can be
deferred.

LGTM=r
R=golang-codereviews, r
CC=golang-codereviews
https://golang.org/cl/150850043
2014-10-02 10:33:35 -07:00
Chris Manghane 59d8afa26b dashboard/env: install necessary headers for linux-386-clang
LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/147420044
2014-10-01 16:40:04 -07:00
Chris Manghane bcbfc883f4 dashboard: add linux-amd64-clang builder.
Fixes golang/go#8805.

LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/152790043
2014-10-01 11:57:02 -07:00
Robert Griesemer a7f9d5d4f8 go/types: use file not parse order for init order computation
The type-checker depended on (token.Pos) position information of
the presented files to determine source order. That information
is determined by the parse order of the files rather than the
order in which the files are presented to the type-checker.

Introduced an order number strictly determined by the file
order as presented to the type-checker and the AST structure
of each file; thus providing source order information even in
the absence of (token.Pos) position information.

Added test case (provided by adonovan).

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/151160043
2014-10-01 09:56:28 -07:00
Alan Donovan 4fd305d5dc go/types: remove surplus (obsolete) lines from test expectation.
Also add assertion that there are no surplus lines.

LGTM=gri
R=gri
CC=golang-codereviews
https://golang.org/cl/151890043
2014-09-30 12:12:40 -04:00
Chris Manghane 0e613cdb27 dashboard/env: optimize linux docker image size for gccgo
LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/141320043
2014-09-29 12:47:01 -07:00
Josh Bleecher Snyder b6c30b58fc go.tools/imports: recognize exports in cgo files
Fixes golang/go#8815.

LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/143660044
2014-09-29 12:46:11 -07:00
Josh Bleecher Snyder e62e5f9885 go.tools/cmd/vet: remove duplicate test file
In CL 145360043, I hg cp'd copylock.go to copylock_func.go instead of hg mv. Oops.

LGTM=r
R=r
CC=golang-codereviews
https://golang.org/cl/143660043
2014-09-26 15:09:18 -07:00
Brad Fitzpatrick 51805171bd dashboard: add Debian sid builder
Update golang/go#8382

LGTM=rsc
R=adg, rsc
CC=golang-codereviews
https://golang.org/cl/150090044
2014-09-26 15:02:51 -07:00
Brad Fitzpatrick aca3a63806 dashboard/coordinator: restore buildroot to /
So the optimization to avoid hg clone works again.  The
builder looks at buildroot+"goroot" for an hg clone repo. If
it finds it, it can just "hg pull" instead of a slow "hg
clone".

LGTM=cmang
R=cmang, proppy
CC=golang-codereviews
https://golang.org/cl/147960044
2014-09-26 12:21:08 -07:00
Robert Griesemer 6f764e19fa go/types: don't permit declarations in post statements
Plus better names for some internal objects.

Fixes golang/go#8804.

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/149080043
2014-09-25 21:36:45 -07:00
Brad Fitzpatrick 29d9ef959c dashboard: more robust commit handler, and allow modifications
LGTM=rsc, adg
R=golang-codereviews, rsc, adg
CC=dvyukov, golang-codereviews
https://golang.org/cl/136540044
2014-09-25 18:06:17 -07:00
Alan Donovan c80e5833f9 go/ssa/interp: fix fallout from recent runtime refactoring.
(It's not clear at what point a more robust solution would be worthwhile.)

LGTM=gri
R=gri
CC=golang-codereviews
https://golang.org/cl/142700043
2014-09-25 17:14:39 -04:00
Robert Griesemer 315249fc55 cmd/vet: provide access to externally defined types
Preliminaries for fixing issue 6212.

LGTM=r
R=r
CC=golang-codereviews
https://golang.org/cl/145370043
2014-09-24 13:54:50 -07:00
Alan Donovan 3fc6159fa3 refactor/rename: attempt to fix windows test, 2nd attempt.
Windows doesn't regard "/go/src" as an absolute path,
so we must explicitly define the virtual IsAbsPath method.

LGTM=gri
R=gri, sameer
CC=golang-codereviews
https://golang.org/cl/147100043
2014-09-24 16:38:46 -04:00
Alan Donovan a69ece7231 refactor/rename: attempt to fix windows build...
...by using buildutil.ContainingPackage instead of guessImportPath.
The former should be more portable.

(I meant to do this earlier, so this is also a nice cleanup.)

LGTM=gri
R=gri, sameer
CC=golang-codereviews
https://golang.org/cl/148050043
2014-09-24 16:18:58 -04:00
Brad Fitzpatrick 717118b6c8 dashboard: add builder with optimizations and inlining disabled
LGTM=josharian
R=josharian
CC=golang-codereviews
https://golang.org/cl/148060043
2014-09-24 12:54:59 -07:00
Josh Bleecher Snyder 2cd071c190 go.tools/cmd/vet: warn about copying locks in range statements
Fixes golang/go#8356.

LGTM=r
R=r, dsymonds
CC=golang-codereviews
https://golang.org/cl/145360043
2014-09-24 12:35:15 -07:00
Robert Griesemer 37dd89e3af go.tools/go/types: reduce spurious errors after missing identifiers
Fixes golang/go#8799.

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/143560043
2014-09-24 11:09:05 -07:00
Alex Brainman 9cde9bdbd1 go.tools/dashboard/builder: try to recreate workpath if already exists
Fixes golang/go#8714.

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/148010043
2014-09-24 12:59:42 +10:00
Brad Fitzpatrick e06c202657 dashboard: use correct hg template for parents
The 'parents' field is documented to be blank if there's only one
simple parent. We want 'p1node', which is the hex commit of the
first parent.

LGTM=adg
R=adg
CC=golang-codereviews
https://golang.org/cl/142530043
2014-09-23 14:56:02 -07:00
Alan Donovan e94ae77171 refactor: minor no-op fixes
- fix typos and mistakes in docstrings, usage message and comments.
- remove 'backup' parameter to rewriteFile

LGTM=sameer
R=sameer
CC=golang-codereviews
https://golang.org/cl/147980043
2014-09-23 15:17:49 -04:00
Brad Fitzpatrick f123f00fbc dashboard: add commit-only mode
Also add a added=true addition that I seemed to think was
previously missing.

Breaking this out of previous big CL.

LGTM=adg
R=adg
CC=golang-codereviews
https://golang.org/cl/146080043
2014-09-23 11:22:54 -07:00
Alan Donovan 74021b4175 cmd/gorename: a precise, type-aware renaming tool for Go identifiers.
See the usage message in main.go for orientation.

To the best of my knowledge, the tool implements all required
soundness checks, except:
- the dynamic behaviour of reflection is obviously undecidable.
- it rejects method renamings that change the "implements" relation.
  It should probably be more aggressive.
- actually it only checks the part of the "implements" relation
  needed for compilation.  Understanding the dynamic behaviour
  of interfaces is obviously undecidable.
- a couple of minor gaps are indicated by TODO comments.

Also:
- Emacs integration.
- tests of all safety checks and (some) successful rewrites.

LGTM=dominik.honnef, sameer
R=gri, sameer, dominik.honnef
CC=golang-codereviews
https://golang.org/cl/139150044
2014-09-23 10:23:04 -04:00
Alan Donovan aba8625c37 go.tools/go/buildutil: more utilities.
- ParseFile (core of go/loader's parseFiles(); also used by refactor/rename)
- ContainingPackage (core of Oracle's guessImportPath; also used by refactor/rename)
- Accessors for effective "methods" of build.Context:
  FileExists, OpenFile, IsAbsPath, JoinPath.

LGTM=sameer
R=dave, sameer
CC=golang-codereviews, gri
https://golang.org/cl/146120043
2014-09-23 10:20:48 -04:00
Alan Donovan c90cb9e042 refactor/satisfy: enumerate interface satisfaction constraints induced by Go syntax.
The type checker does not currently report the set of pairs of
types that are tested for assignability (though gri and I
agree that it should).  This information is useful for many
applications.  For example, refactoring tool needs to know the
minimal set of interface satisfaction constraints that must be
preserved during a refactoring.

This package is a stopgap measure to deduce the same
information using another pass.  Unlike go/types, it is not
robust against inputs containing type errors.

LGTM=sameer
R=gri, sameer
CC=golang-codereviews
https://golang.org/cl/136470043
2014-09-22 16:19:29 -04:00
Alan Donovan 897f6677ae refactor/lexical: understand the structure of the lexical environment.
The Uses, Defs and Scope information provided by go/types is
inadequate for answering "what if?" queries about the
structure of the lexical environment.

In this code, for example,

        var x int

        func f() {
                print(x)
                x := ""
                print(x)
        }

the two referring Idents x appear at the same lexical depth,
inside the function f's Scope object, yet they resolve to
different objects.

This package associates a lexical.Environment instance with
every reference to capture these differences.  Each
environment is a linked list of enclosing Blocks, and for each
block, a number indicating what prefix of its bindings are
visible.  (Zero for the first 'x' reference above, 1 for the
second.)

+ Smoke test over stdlib.

This functionality could be integrated with the type checker
in lieu of the not-so-useful types.Info.Scopes data, at little
extra cost in code or in running time/space.  We should talk
about that.

LGTM=sameer
R=gri, sameer
CC=golang-codereviews
https://golang.org/cl/143790043
2014-09-19 13:11:01 -04:00