- 17 Sep, 2013 9 commits
-
-
Russ Cox authored
This eliminates ~75% of the nil checks being emitted, on all architectures. We can do better, but we need a bit more general support from the compiler, and I don't want to do that so close to Go 1.2. What's here is simple but effective and safe. A few small code generation cleanups were required to make the analysis consistent on all systems about which nil checks are omitted, at least in the test. Fixes #6019. R=ken2 CC=golang-dev https://golang.org/cl/13334052
-
Adam Langley authored
47ec7a68b1a2 added support for ECDSA ciphersuites but didn't alter the cipher suite selection to take that into account. Thus Go servers could try and select an ECDSA cipher suite while only having an RSA certificate, leading to connection failures. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/13239053
-
Ian Lance Taylor authored
In particular document that the Go tool will look for certain file extensions and compile with them with either the C or the C++ compiler. Fixes #6393. R=golang-dev, r CC=golang-dev https://golang.org/cl/13733043
-
Josh Bleecher Snyder authored
The root cause of the panic reported in https://code.google.com/p/go/issues/detail?id=5980 is that parse's Tree.Text wasn't being copied during the clone. Fix this by adding and using a Copy method for parse.Tree. Fixes #5980. R=golang-dev, r CC=golang-dev https://golang.org/cl/12420044
-
Dave Cheney authored
Update #5764 Like Tribbles, the more you kill, the more spring up in their place. R=rsc CC=golang-dev https://golang.org/cl/13324049
-
Carl Shapiro authored
This interface is required to use the PCDATA interface implemented in Go 1.2. While initially entirely private, the FUNCDATA side of the interface has been made public. This change completes the FUNCDATA/PCDATA interface. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/13735043
-
Rémy Oudompheng authored
A new transformation during walk turns append calls into a combination of growslice and memmove. benchmark old ns/op new ns/op delta BenchmarkAppend 141 141 +0.00% BenchmarkAppend1Byte 18 11 -39.56% BenchmarkAppend4Bytes 19 10 -42.63% BenchmarkAppend7Bytes 18 10 -42.16% BenchmarkAppend8Bytes 18 10 -40.44% BenchmarkAppend15Bytes 19 11 -41.67% BenchmarkAppend16Bytes 19 11 -41.97% BenchmarkAppend32Bytes 23 14 -38.82% BenchmarkAppendStr1Byte 14 10 -23.78% BenchmarkAppendStr4Bytes 14 11 -21.13% BenchmarkAppendStr8Bytes 14 10 -25.17% BenchmarkAppendStr16Bytes 19 11 -41.45% BenchmarkAppendStr32Bytes 18 14 -19.44% BenchmarkAppendSpecialCase 62 63 +1.77% R=golang-dev, khr, cshapiro, rsc, dave CC=golang-dev https://golang.org/cl/12815046
-
Russ Cox authored
Hide container symbols like text and etext so that the individual pieces inside are shown instead. For example, if text and main.init have the same address, it was a toss-up which name was printed. R=golang-dev, iant CC=golang-dev https://golang.org/cl/13722046
-
Russ Cox authored
The code for call site-specific pointer bitmaps was not ready in time, but the zeroing required without it is too expensive to use by default. We will have to wait for precise collection of stack frames until Go 1.3. The precise collection can be re-enabled by GOEXPERIMENT=precisestack ./all.bash but that will not be the default for a Go 1.2 build. Fixes #6087. R=golang-dev, jeremyjackins, dan.kortschak, r CC=golang-dev https://golang.org/cl/13677045
-
- 16 Sep, 2013 24 commits
-
-
Rob Pike authored
Fixes #5725. R=golang-dev, iant CC=golang-dev https://golang.org/cl/13705044
-
Rob Pike authored
Make the break example slightly more interesting Update #5725 Effective Go will be updated in a separate CL. R=golang-dev, iant CC=golang-dev https://golang.org/cl/13368054
-
Adam Langley authored
With TLS 1.2, when sending client certificates the code was omitting the new (in TLS 1.2) signature and hash fields. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/13413050
-
Ian Lance Taylor authored
All these features have in fact been implemented. R=rsc CC=golang-dev https://golang.org/cl/13419049
-
Russ Cox authored
Fixes #6395. R=ken2 CC=golang-dev https://golang.org/cl/13470046
-
Russ Cox authored
The uint64 divide function calls _mul64x32 to do a 64x32-bit multiply and then compares the result against the 64-bit numerator. If the result is bigger than the numerator, must use the slow path. Unfortunately, the 64x32 produces a 96-bit product, and only the low 64 bits were being used in the comparison. Return all 96 bits, the bottom 64 via the original uint64* pointer, and the top 32 as the function's return value. Fixes 386 build (broken by ARM division tests). R=golang-dev, iant CC=golang-dev https://golang.org/cl/13722044
-
Russ Cox authored
Fixes #6399. R=ken2 CC=golang-dev https://golang.org/cl/13253055
-
Russ Cox authored
TBR=golang-dev CC=golang-dev https://golang.org/cl/13720044
-
Russ Cox authored
TBR=golang-dev CC=golang-dev https://golang.org/cl/13700045
-
Russ Cox authored
This CL is required for all.bat to work out of the box on my Windows 8 laptop. These tests either require the firewall to be turned off or require the user to be in the Administrators group. I don't know which. Alex may follow up with a refinement of the test to allow them to run if the user is in the Administrators group. Fixes #6392. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/13421049
-
Russ Cox authored
Because we can, and because it otherwise might crash the program if we think we're out of memory. Fixes #6390. R=golang-dev, iant, minux.ma CC=golang-dev https://golang.org/cl/13345048
-
Russ Cox authored
The implementation of division in the 5 toolchain is a bit too magical. Hide the magic from the traceback routines. Also add a test for the results of the software divide routine. Fixes #5805. R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/13239052
-
Russ Cox authored
The kernel implementation of the fast system call path, the one invoked by the SYSCALL instruction, is broken for restarting system calls. A C program demonstrating this is below. Change the system calls to use INT $0x80 instead, because that (perhaps slightly slower) system call path actually works. I filed http://www.freebsd.org/cgi/query-pr.cgi?pr=182161. The C program demonstrating that it is FreeBSD's fault is below. It reports the same "Bad address" failures from wait. #include <sys/time.h> #include <sys/signal.h> #include <pthread.h> #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <string.h> static void handler(int); static void* looper(void*); int main(void) { int i; struct sigaction sa; pthread_cond_t cond; pthread_mutex_t mu; memset(&sa, 0, sizeof sa); sa.sa_handler = handler; sa.sa_flags = SA_RESTART; memset(&sa.sa_mask, 0xff, sizeof sa.sa_mask); sigaction(SIGCHLD, &sa, 0); for(i=0; i<2; i++) pthread_create(0, 0, looper, 0); pthread_mutex_init(&mu, 0); pthread_mutex_lock(&mu); pthread_cond_init(&cond, 0); for(;;) pthread_cond_wait(&cond, &mu); return 0; } static void handler(int sig) { } int mywait4(int pid, int *stat, int options, struct rusage *rusage) { int result; asm("movq %%rcx, %%r10; syscall" : "=a" (result) : "a" (7), "D" (pid), "S" (stat), "d" (options), "c" (rusage)); } static void* looper(void *v) { int pid, stat, out; struct rusage rusage; for(;;) { if((pid = fork()) == 0) _exit(0); out = mywait4(pid, &stat, 0, &rusage); if(out != pid) { printf("wait4 returned %d\n", out); } } } Fixes #6372. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/13582047
-
Rob Pike authored
Fixes #6312. R=golang-dev, dave CC=golang-dev https://golang.org/cl/13391049
-
Han-Wen Nienhuys authored
Fixes #6367. R=rsc, r CC=golang-dev https://golang.org/cl/13395047
-
Nigel Tao authored
http://golang.org/doc/go1.1#new_packages R=r CC=golang-dev https://golang.org/cl/13368053
-
Rob Pike authored
The -S flag reports symbol size, but is missing from the usage message. R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/13660046
-
Andrew Gerrand authored
Remove "References" section. Remove most articles and redirect to blog.golang.org. Move /ref/spec and /ref/mem to /doc/spec and /doc/mem. Remove duplicate links from the remaining "Documents", "The Project", and "Help" pages. Defer to the wiki for more links and community content. Update command reference and mention cover tool. Add "Pop-out" text to the front page. Pick one of four videos at random to feature on the front page. Fixes #2547. Fixes #5561. Fixes #6321. R=r, dominik.honnef CC=golang-dev https://golang.org/cl/13724043
-
Rob Pike authored
Document the semantic changes within the gc toolchain. Also delete the mention of unbalanced right delims in template That change was rolled back. Absent typos, things we've forgotten, and new things that happen, the release notes are ready. R=golang-dev, adg, dominik.honnef CC=golang-dev https://golang.org/cl/13368052
-
Andrew Gerrand authored
R=golang-dev, r CC=golang-dev https://golang.org/cl/13634044
-
Andrew Gerrand authored
Fixes #5821. R=golang-dev, kamil.kisiel CC=golang-dev https://golang.org/cl/13720043
-
Andrew Gerrand authored
R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/13721043
-
Rob Pike authored
Everything is done except compiler changes and additional platforms, if any. R=golang-dev, dominik.honnef, adg CC=golang-dev https://golang.org/cl/13484045
-
Rob Pike authored
Previously, fields of type chan or func caused an error. Now we just treat them like unexported fields and ignore them. This makes it easier to guarantee long-term compatibilty since a substructure from another package cannot break gob encoding by adding a func or chan field. Fixes #6071 R=golang-dev, rsc CC=golang-dev https://golang.org/cl/13693043
-
- 15 Sep, 2013 4 commits
-
-
Russ Cox authored
The test 'gp == m->curg' is not valid on Windows, because the goroutine being profiled is not from the current m. TBR=golang-dev CC=golang-dev https://golang.org/cl/13718043
-
Russ Cox authored
Fixes #6369. R=dsymonds, r CC=golang-dev https://golang.org/cl/13708043
-
Russ Cox authored
Fixes #5626. R=golang-dev, dominik.honnef CC=golang-dev https://golang.org/cl/13702043
-
Rob Pike authored
Just an oversight they were missing. Fixes #6387 R=golang-dev, dominik.honnef, rsc CC=golang-dev https://golang.org/cl/13715043
-
- 14 Sep, 2013 1 commit
-
-
Rémy Oudompheng authored
Fake types describing the internal structure of hashmaps are generated for use by precise GC. Generating hash and eq functions for these fake types slows down the build and wastes space: the go tool binary size is 13MB instead of 12MB, and the package size on amd64 is 48.7MB instead of 45.3MB. R=golang-dev, daniel.morsing, r, khr, rsc, iant CC=golang-dev https://golang.org/cl/13698043
-
- 13 Sep, 2013 2 commits
-
-
Russ Cox authored
(StdinPipe was taken care of by CL 13329043.) Fixes #6008. R=golang-dev, iant CC=golang-dev https://golang.org/cl/13606046
-
Russ Cox authored
Because profiling signals can arrive at any time, we must handle the case where a profiling signal arrives halfway through a goroutine switch. Luckily, although there is much to think through, very little needs to change. Fixes #6000. Fixes #6015. R=golang-dev, dvyukov CC=golang-dev https://golang.org/cl/13421048
-