- 29 Jul, 2014 3 commits
-
-
Dmitriy Vyukov authored
Implement the design described in: https://docs.google.com/document/d/1v4Oqa0WwHunqlb8C3ObL_uNQw3DfSY-ztoA-4wWbKcg/pub Summary of the changes: GC uses "2-bits per word" pointer type info embed directly into bitmap. Scanning of stacks/data/heap is unified. The old spans types go away. Compiler generates "sparse" 4-bits type info for GC (directly for GC bitmap). Linker generates "dense" 2-bits type info for data/bss (the same as stacks use). Summary of results: -1680 lines of code total (-1000+ in mgc0.c only) -25% memory consumption -3-7% binary size -15% GC pause reduction -7% run time reduction LGTM=khr R=golang-codereviews, rsc, christoph, khr CC=golang-codereviews, rlh https://golang.org/cl/106260045
-
Rui Ueyama authored
benchmark old ns/op new ns/op delta BenchmarkPaeth 5.06 6.02 +18.97% BenchmarkDecodeGray 1010551 956911 -5.31% BenchmarkDecodeNRGBAGradient 3877813 3754160 -3.19% BenchmarkDecodeNRGBAOpaque 3194058 3079094 -3.60% BenchmarkDecodePaletted 699243 700211 +0.14% BenchmarkDecodeRGB 2835733 2692120 -5.06% BenchmarkDecodeInterlacing 3651805 3563124 -2.43% BenchmarkEncodeGray 4399183 4404113 +0.11% BenchmarkEncodeNRGBOpaque 13323627 13306485 -0.13% BenchmarkEncodeNRGBA 15840092 15751188 -0.56% BenchmarkEncodePaletted 4396622 4404373 +0.18% BenchmarkEncodeRGBOpaque 13320475 13279189 -0.31% BenchmarkEncodeRGBA 36898392 36781002 -0.32% LGTM=nigeltao R=nigeltao CC=golang-codereviews https://golang.org/cl/117290043
-
Rob Pike authored
Because the reference time is the reference time but beginners seem to think otherwise, make it clearer you can't choose the reference time. LGTM=josharian, dave R=golang-codereviews, josharian, dave CC=golang-codereviews https://golang.org/cl/117250044
-
- 28 Jul, 2014 4 commits
-
-
Adam Langley authored
This change causes a TLS client and server to verify that received elliptic curve points are on the expected curve. This isn't actually necessary in the Go TLS stack, but Watson Ladd has convinced me that it's worthwhile because it's pretty cheap and it removes the possibility that some change in the future (e.g. tls-unique) will depend on it without the author checking that precondition. LGTM=bradfitz R=bradfitz CC=golang-codereviews https://golang.org/cl/115290046
-
Adam Langley authored
ASN.1 elements can be optional, and can have a default value. Traditionally, Go has omitted elements that are optional and that have the zero value. I believe that's a bug (see [1]). This change causes an optional element with a default value to only be omitted when it has that default value. The previous behaviour of omitting optional, zero elements with no default is retained because it's used quite a lot and will break things if changed. [1] https://groups.google.com/d/msg/Golang-nuts/9Ss6o9CW-Yo/KL_V7hFlyOAJ Fixes #7780. R=bradfitz LGTM=bradfitz R=golang-codereviews, bradfitz, rsc CC=golang-codereviews, r https://golang.org/cl/86960045
-
Asim Shankar authored
R=golang-codereviews, bradfitz, agl CC=golang-codereviews https://golang.org/cl/117180043
-
Brad Fitzpatrick authored
Fixes #8367 LGTM=adg R=adg CC=golang-codereviews https://golang.org/cl/116300044
-
- 26 Jul, 2014 5 commits
-
-
Shenghou Ma authored
While we're here, make it lookup the tlsfallback symbol only once. LGTM=crawshaw R=golang-codereviews, crawshaw, dave CC=golang-codereviews https://golang.org/cl/107430044
-
Shenghou Ma authored
It is already called by linknew(). LGTM=dave R=rsc, dave CC=golang-codereviews https://golang.org/cl/120760043
-
Shenghou Ma authored
LGTM=bradfitz, dave R=rsc, bradfitz, dave CC=golang-codereviews https://golang.org/cl/115070043
-
Shenghou Ma authored
LGTM=dave R=rsc, dave CC=golang-codereviews https://golang.org/cl/116330043
-
Shenghou Ma authored
Unused. cmd/dist will generate enams as liblink/anames[568].c. LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/119940043
-
- 25 Jul, 2014 5 commits
-
-
Keith Randall authored
LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/116320043
-
Bobby Powers authored
glibc devs have apparently decided _BSD_SOURCE will be deprecated on Linux, and issue a preprocessor warning if declaring _BSD_SOURCE without _DEFAULT_SOURCE. https://sourceware.org/glibc/wiki/Release/2.20 Fixes #8397. LGTM=iant R=dave, gobot, iant CC=golang-codereviews https://golang.org/cl/112530043
-
Bobby Powers authored
selv is created with temp() which calls tempname, which marks the new n with EscNever, so there is no need to explicitly set EscNone on the select descriptor. Fixes #8396. LGTM=dvyukov R=golang-codereviews, dave, dvyukov CC=golang-codereviews https://golang.org/cl/112520043
-
Alex Brainman authored
LGTM=chines R=chines CC=golang-codereviews https://golang.org/cl/118160044
-
Andrew Gerrand authored
golang.org now serves HTTPS with a valid cert, so it's reasonable that users should click through to the HTTPS versions of *.golang.org and other known sites. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/112650043
-
- 24 Jul, 2014 4 commits
-
-
Mathieu Lonjaret authored
LGTM=minux R=golang-codereviews, minux CC=golang-codereviews https://golang.org/cl/120150043
-
Keith Randall authored
Sweepone may be running while a new span is allocating. It must not see the state updated while the sweepgen is unset. Fixes #8399 LGTM=dvyukov R=golang-codereviews, dvyukov CC=golang-codereviews https://golang.org/cl/118050043
-
David du Colombier authored
Following CL 68150047, the goos and goarch variables are not currently set when the GOOS and GOARCH environment variables are not set. This made the content of the build tag to be ignored in this case. This CL sets goos and goarch to runtime.GOOS and runtime.GOARCH when the GOOS and GOARCH environments variables are not set. LGTM=aram, bradfitz R=golang-codereviews, aram, gobot, rsc, dave, bradfitz CC=golang-codereviews, rsc https://golang.org/cl/112490043
-
Brad Fitzpatrick authored
LGTM=josharian, adg R=golang-codereviews, josharian, adg CC=golang-codereviews https://golang.org/cl/119110043
-
- 23 Jul, 2014 9 commits
-
-
ChaiShushan authored
LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/117060043
-
Dmitriy Vyukov authored
This is bad for 2 reasons: 1. if the code under lock ever grows stack, it will deadlock as stack growing acquires mheap lock. 2. It currently deadlocks with SetCPUProfileRate: scavenger locks mheap, receives prof signal and tries to lock prof lock; meanwhile SetCPUProfileRate locks prof lock and tries to grow stack (presumably in runtime.unlock->futexwakeup). Boom. Let's assume that it Fixes #8407. LGTM=rsc R=golang-codereviews, rsc CC=golang-codereviews, khr https://golang.org/cl/112640043
-
Dmitriy Vyukov authored
With cl/112640043 TestCgoDeadlockCrash episodically print: unexpected return pc for runtime.newstackcall After adding debug output I see the following trace: runtime: unexpected return pc for runtime.newstackcall called from 0xc208011b00 runtime.throw(0x414da86) src/pkg/runtime/panic.c:523 +0x77 runtime.gentraceback(0x40165fc, 0xba440c28, 0x0, 0xc208d15200, 0xc200000000, 0xc208ddfd20, 0x20, 0x0, 0x0, 0x300) src/pkg/runtime/traceback_x86.c:185 +0xca4 runtime.callers(0x1, 0xc208ddfd20, 0x20) src/pkg/runtime/traceback_x86.c:438 +0x98 mcommoninit(0xc208ddfc00) src/pkg/runtime/proc.c:369 +0x5c runtime.allocm(0xc208052000) src/pkg/runtime/proc.c:686 +0xa6 newm(0x4017850, 0xc208052000) src/pkg/runtime/proc.c:933 +0x27 startm(0xc208052000, 0x100000001) src/pkg/runtime/proc.c:1011 +0xba wakep() src/pkg/runtime/proc.c:1071 +0x57 resetspinning() src/pkg/runtime/proc.c:1297 +0xa1 schedule() src/pkg/runtime/proc.c:1366 +0x14b runtime.gosched0(0xc20808e240) src/pkg/runtime/proc.c:1465 +0x5b runtime.newstack() src/pkg/runtime/stack.c:891 +0x44d runtime: unexpected return pc for runtime.newstackcall called from 0xc208011b00 runtime.newstackcall(0x4000cbd, 0x4000b80) src/pkg/runtime/asm_amd64.s:278 +0x6f I suspect that it can happen on any stack split. So don't unwind g0 stack. Also, that comment is lying -- we can traceback w/o mcache, CPU profiler does that. LGTM=rsc R=golang-codereviews CC=golang-codereviews, khr, rsc https://golang.org/cl/120040043
-
Russ Cox authored
There are fields in the Addr that do not matter for the purpose of deciding that the same word is already in the current literal pool. Copy only the fields that do matter. This came up when comparing against the Go version because the way it is invoked doesn't copy a few fields (like node) that are never directly used by liblink itself. Also remove a stray print that is not well-defined in the new liblink. (Cannot use %D outside of %P, because %D needs the outer Prog*.) LGTM=minux R=minux CC=golang-codereviews https://golang.org/cl/119000043
-
Russ Cox authored
This matches Go's fmt.Printf instead of ANSI C's dumb rules. It makes the -S output from C liblink match Go's liblink. LGTM=minux R=minux CC=golang-codereviews https://golang.org/cl/112600043
-
Dmitriy Vyukov authored
They do not, but pretend that they do. The immediate need is that it breaks the new GC because these are weird symbols as if with pointers but not necessary pointer aligned. LGTM=rsc R=golang-codereviews, dave, josharian, khr, rsc CC=golang-codereviews, iant, khr, rlh https://golang.org/cl/116060043
-
Alex Brainman authored
R=golang-codereviews CC=golang-codereviews https://golang.org/cl/111560043
-
Russ Cox authored
I've found this very useful for generating good test case lists for -short mode for the disassemblers. Fixes #7959. LGTM=r R=r CC=golang-codereviews https://golang.org/cl/98150043
-
Alex Brainman authored
Fixes #8398. LGTM=chines R=golang-codereviews, chines, josharian CC=golang-codereviews https://golang.org/cl/114140043
-
- 22 Jul, 2014 7 commits
-
-
Dave Cheney authored
As pointed out by Elias Naur, the convention for Go runtime functions means this function should be named gothrow. Discussion: https://golang.org/cl/115860045/#msg6 LGTM=dvyukov R=golang-codereviews, dvyukov CC=golang-codereviews https://golang.org/cl/118120043
-
Dmitriy Vyukov authored
Currently they are scanned conservatively. But there is no reason to scan them. C world must not contain pointers into Go heap. Moreover, we don't have enough information to emit write barriers nor update pointers there in future. The immediate need is that it breaks the new GC because these are weird symbols as if with pointers but not necessary pointer aligned. LGTM=rsc R=golang-codereviews, rlh, rsc CC=golang-codereviews, iant, khr https://golang.org/cl/117000043
-
Keith Randall authored
CL 117950044 updates vet to fix LEA* issue. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/112440043
-
Keith Randall authored
In the runtime, we want to control where allocations happen. In particular, we don't want the code implementing malloc to itself trigger a malloc. This change prevents the compiler from inserting mallocs on our behalf (due to escaping declarations). This check does not trigger on the current runtime code. Note: Composite literals are still allowed. LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/105280047
-
Keith Randall authored
So we can tell from a binary which version of Go built it. LGTM=minux, rsc R=golang-codereviews, minux, khr, rsc, dave CC=golang-codereviews https://golang.org/cl/117040043
-
David Symonds authored
LGTM=dave R=rsc, dave CC=golang-codereviews https://golang.org/cl/112420044
-
David Symonds authored
This is more useful than panicking, since otherwise every caller needs to do the length check before calling; some will forget, and have a potential submarine crasher as a result. Other implementations of this functionality do a length check. This is backward compatible, except if someone has written code that relies on this panicking with different length args. However, that was not the case before Go 1.3 either. Updates #7304. LGTM=agl R=agl, minux, hanwen CC=golang-codereviews https://golang.org/cl/118750043
-
- 21 Jul, 2014 3 commits
-
-
Dmitriy Vyukov authored
In both cases we lie to malloc about the actual size that we need. In panic we ask for less memory than we are going to use. In slice we ask for more memory than we are going to use (potentially asking for a fractional number of elements). This breaks the new GC. LGTM=khr R=golang-codereviews, dave, khr CC=golang-codereviews, rsc https://golang.org/cl/116940043
-
Dmitriy Vyukov authored
LGTM=khr R=golang-codereviews, dave, khr CC=golang-codereviews, rsc https://golang.org/cl/116950043
-
Russ Cox authored
Rewrite gotos that violate Go's stricter rules. Use uchar* instead of char* in a few places that aren't strings. Remove dead opcross code from asm5.c. Declare regstr (in both list6 and list8) static. LGTM=minux, dave R=minux, dave CC=golang-codereviews https://golang.org/cl/113230043
-