1
0
mirror of https://github.com/golang/go synced 2024-11-05 17:16:10 -07:00
Commit Graph

1320 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