In the crash stack trace race cgocall() calls endcgo(),
this means that m->racecall is wrong.
Indeed this can happen is a goroutine is rescheduled to another M
during race call.
Disable preemption for race calls.
Fixes#6155.
R=golang-dev, rsc, cshapiro
CC=golang-dev
https://golang.org/cl/12866045
Before this CL, the import stack was a) not printed and b) overwritten later
in the build, destroying the information about the cycle. This CL fixes both.
I made time depend on os (os already depends on time) and with this CL the error is:
/Users/r/go/src/pkg/fmt/print.go:10:2: import cycle not allowed
package code.google.com/p/XXX/YYY:
imports fmt
imports os
imports time
imports os
Doesn't give line numbers for the actual imports, as requested in the bug, but
I don't believe that's important.
Fixes#4292.
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/13100043
syntax/*: update messages
sliceerr3.go: bizarre new error fixed by deleting a space.
I could have sworn I ran all.bash before submitting the CL that triggered these.
TBR=golang-dev@googlegroups.com
R=golang-dev
CC=golang-dev
https://golang.org/cl/12812044
Given
if (i == 0)
x++
The old message was
x.go:6: syntax error: unexpected semicolon or newline before {
Now we see
x.go:6: syntax error: missing { after if clause
Fixes#5687
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/12822045
Update #5305.
This handles the case where the nil pointers are inside a slice.
A top-level nil pointer is harder, maybe fundamentally broken by gob's model.
Thinking required.
However, a slice is the important case since people don't expect to be sending
top-level nils much, but they can arise easily in slices.
R=golang-dev, josharian, adg
CC=golang-dev
https://golang.org/cl/13042044
The shell's -e doesn't work across "eval"; need to error-check by hand.
The recent spate of Darwin build failures pointed out that if the first
run of cmd/dist fails, we keep going. We shouldn't.
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/13098043
This might fix the mkdtemp problem on the darwin builders if they
have TMPDIR set to a path ending in a slash; at worse this will
result in cleaner path names.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/13097043
The tar/archive code from golang has a problem with linknames with length >
100. A pax header is added but the original header still written with a too
long field length.
As it is clear that pax support is incomplete I have added missing
implementation parts.
This commit contains code from the golang project in the folder tar/archiv.
The following pax header records are now automatically written:
- gname)
- linkpath
- path
- uname
The following fields can be written with PAX, but the default is to use the
star binary extension.
- gid (value > 2097151)
- size (value > 8589934591)
- uid (value > 2097151)
The string fields are written when the value is longer as the field or if the
string contains a char that is not encodable as 7-bit ASCII value.
The change was tested against a current ubuntu-cloud image tarball comparing
the compressed result.
+ added some automated tests for the new functionality.
Fixes#6056.
R=dsymonds
CC=golang-dev
https://golang.org/cl/12561043
The Darwin builders are all failing here but strerror doesn't provide context.
R=golang-dev, bradfitz, adg
CC=golang-dev
https://golang.org/cl/13095043
The limit is 500. There is no way to change it.
This primarily affects name resolution.
If a million goroutines try to resolve DNS names,
only 500 will get to execute cgo calls at a time.
But in return the operating system will not crash.
Fixes#5625.
R=golang-dev, dan.kortschak, r, dvyukov
CC=bradfitz, golang-dev
https://golang.org/cl/13038043
Actually working to stay within the limit could cause subtle deadlocks.
Crashing avoids the subtlety.
Fixes#4056.
R=golang-dev, r, dvyukov
CC=golang-dev
https://golang.org/cl/13037043
When the new call site-specific frame bitmaps are available,
we can cut the zeroing to just those values that need it due
to scope escaping.
R=cshapiro, cshapiro
CC=golang-dev
https://golang.org/cl/13045043
When identifying structs or interfaces we really want to know
their makeup, not just their name.
R=adonovan
CC=golang-dev
https://golang.org/cl/13042043
Fixes#6107.
race: output goroutine 1 as main goroutine
Fixes#6130.
race: option to abort program on first detected error
R=golang-dev, mikioh.mikioh
CC=golang-dev
https://golang.org/cl/12968044
Jumps to the same file will use the original buffer, not the
coverage buffer. Making it work for the coverage buffer isn't
worth the trouble, especially because it would break as soon as
you jump to a different file and back.
Use error instead of message so it actually terminates
R=adonovan
CC=golang-dev
https://golang.org/cl/13041043
When the packages the tested package depends on don't build,
we weren't getting out early. Added a simple check for a successful
build to an existing early out.
There may be other ways that double compilation arises, but
this fixes the one listed in the issue.
Fixes#5679
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/13036043
The goal is to stop only those programs that would keep
going and run the machine out of memory, but before they do that.
1 GB on 64-bit, 250 MB on 32-bit.
That seems implausibly large, and it can be adjusted.
Fixes#2556.
Fixes#4494.
Fixes#5173.
R=khr, r, dvyukov
CC=golang-dev
https://golang.org/cl/12541052
Rows.Close.
Previously, callers that followed the example code (but not call
rows.Close after "for rows.Next() { ... }") could leak statements if
the driver returned an error other than io.EOF.
R=bradfitz, alex.brainman
CC=golang-dev, rsc
https://golang.org/cl/12677050