- 29 Jun, 2011 1 commit
-
-
Mikio Hara authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/4629082
-
- 28 Jun, 2011 16 commits
-
-
Gustavo Niemeyer authored
The gosymtab and gopclntab sections were pointing to the proper data, but that data was already owned by the rodata section. Some ELF references explicitly prohibit multiple sections from owning the same data, and strip behaves accordingly. The data for these sections was moved to after rodata, and the gosymtab and gopclntab sections now own their respective ranges. This change makes strip happy both with and without -s being provided at link time. Note that it won't remove these sections because they are still allocated, and that's by design since they are necessary at runtime for generating proper backtraces and similar introspection operations. Unlike the previous behavior, -s will now maintain zero-sized gosymtab and gopclntab sections. This makes the implementation slightly cleaner. Fixes #1242. NOTE: Tested on Linux amd64/386/arm only. R=ality, rsc CC=golang-dev https://golang.org/cl/4639077
-
Russ Cox authored
R=ken2 CC=golang-dev https://golang.org/cl/4626081
-
Dmitriy Vyukov authored
1. The implementation uses distributed hash table of waitlists instead of a centralized one. It significantly improves scalability for uncontended semaphores. 2. The implementation provides wait-free fast-path for signalers. 3. The implementation uses less locks (1 lock/unlock instead of 5 for Semacquire). 4. runtime·ready() call is moved out of critical section. 5. Semacquire() does not call semwake(). Benchmark results on HP Z600 (2 x Xeon E5620, 8 HT cores, 2.40GHz) are as follows: benchmark old ns/op new ns/op delta runtime_test.BenchmarkSemaUncontended 58.20 36.30 -37.63% runtime_test.BenchmarkSemaUncontended-2 199.00 18.30 -90.80% runtime_test.BenchmarkSemaUncontended-4 327.00 9.20 -97.19% runtime_test.BenchmarkSemaUncontended-8 491.00 5.32 -98.92% runtime_test.BenchmarkSemaUncontended-16 946.00 4.18 -99.56% runtime_test.BenchmarkSemaSyntNonblock 59.00 36.80 -37.63% runtime_test.BenchmarkSemaSyntNonblock-2 167.00 138.00 -17.37% runtime_test.BenchmarkSemaSyntNonblock-4 333.00 129.00 -61.26% runtime_test.BenchmarkSemaSyntNonblock-8 464.00 130.00 -71.98% runtime_test.BenchmarkSemaSyntNonblock-16 1015.00 136.00 -86.60% runtime_test.BenchmarkSemaSyntBlock 58.80 36.70 -37.59% runtime_test.BenchmarkSemaSyntBlock-2 294.00 149.00 -49.32% runtime_test.BenchmarkSemaSyntBlock-4 333.00 177.00 -46.85% runtime_test.BenchmarkSemaSyntBlock-8 471.00 221.00 -53.08% runtime_test.BenchmarkSemaSyntBlock-16 990.00 227.00 -77.07% runtime_test.BenchmarkSemaWorkNonblock 829.00 832.00 +0.36% runtime_test.BenchmarkSemaWorkNonblock-2 425.00 419.00 -1.41% runtime_test.BenchmarkSemaWorkNonblock-4 308.00 220.00 -28.57% runtime_test.BenchmarkSemaWorkNonblock-8 394.00 147.00 -62.69% runtime_test.BenchmarkSemaWorkNonblock-16 1510.00 149.00 -90.13% runtime_test.BenchmarkSemaWorkBlock 828.00 813.00 -1.81% runtime_test.BenchmarkSemaWorkBlock-2 428.00 436.00 +1.87% runtime_test.BenchmarkSemaWorkBlock-4 232.00 219.00 -5.60% runtime_test.BenchmarkSemaWorkBlock-8 392.00 251.00 -35.97% runtime_test.BenchmarkSemaWorkBlock-16 1524.00 298.00 -80.45% sync_test.BenchmarkMutexUncontended 24.10 24.00 -0.41% sync_test.BenchmarkMutexUncontended-2 12.00 12.00 +0.00% sync_test.BenchmarkMutexUncontended-4 6.25 6.17 -1.28% sync_test.BenchmarkMutexUncontended-8 3.43 3.34 -2.62% sync_test.BenchmarkMutexUncontended-16 2.34 2.32 -0.85% sync_test.BenchmarkMutex 24.70 24.70 +0.00% sync_test.BenchmarkMutex-2 208.00 99.50 -52.16% sync_test.BenchmarkMutex-4 2744.00 256.00 -90.67% sync_test.BenchmarkMutex-8 5137.00 556.00 -89.18% sync_test.BenchmarkMutex-16 5368.00 1284.00 -76.08% sync_test.BenchmarkMutexSlack 24.70 25.00 +1.21% sync_test.BenchmarkMutexSlack-2 1094.00 186.00 -83.00% sync_test.BenchmarkMutexSlack-4 3430.00 402.00 -88.28% sync_test.BenchmarkMutexSlack-8 5051.00 1066.00 -78.90% sync_test.BenchmarkMutexSlack-16 6806.00 1363.00 -79.97% sync_test.BenchmarkMutexWork 793.00 792.00 -0.13% sync_test.BenchmarkMutexWork-2 398.00 398.00 +0.00% sync_test.BenchmarkMutexWork-4 1441.00 308.00 -78.63% sync_test.BenchmarkMutexWork-8 8532.00 847.00 -90.07% sync_test.BenchmarkMutexWork-16 8225.00 2760.00 -66.44% sync_test.BenchmarkMutexWorkSlack 793.00 793.00 +0.00% sync_test.BenchmarkMutexWorkSlack-2 418.00 414.00 -0.96% sync_test.BenchmarkMutexWorkSlack-4 4481.00 480.00 -89.29% sync_test.BenchmarkMutexWorkSlack-8 6317.00 1598.00 -74.70% sync_test.BenchmarkMutexWorkSlack-16 9111.00 3038.00 -66.66% R=rsc CC=golang-dev https://golang.org/cl/4631059
-
Brad Fitzpatrick authored
The public godoc looked confused. I imagine these were written before current conventions were established. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/4662060
-
Albert Strasheim authored
R=rsc, iant, dvyukov CC=golang-dev https://golang.org/cl/4643057
-
Dmitriy Vyukov authored
R=rsc CC=golang-dev https://golang.org/cl/4625065
-
Dmitriy Vyukov authored
The implementation does not grab the lock, if Once is already initalized. Benchmark results on HP Z600 (2 x Xeon E5620, 8 HT cores, 2.40GHz) are as follows: benchmark old ns/op new ns/op delta sync_test.BenchmarkOnce 187.00 14.00 -92.51% sync_test.BenchmarkOnce-2 909.00 21.40 -97.65% sync_test.BenchmarkOnce-4 3684.00 20.90 -99.43% sync_test.BenchmarkOnce-8 5987.00 23.00 -99.62% sync_test.BenchmarkOnce-16 5051.00 21.60 -99.57% R=bradfitz, rsc CC=golang-dev https://golang.org/cl/4641066
-
Rob Pike authored
including evaluation up the data tree (in this code all fields must be in dot itself), plus more control structure, but the basics are in place. R=rsc, r CC=golang-dev https://golang.org/cl/4665041
-
Dmitriy Vyukov authored
For both contended and uncontended case: - support arbitrary number of cpus (not just 2) - dynamic load balancing (improves stability) - periodic execution of Gosched() to work around non-preemptiviness For uncontended case eliminates possible false-sharing. For contended case includes additional variation with some amount of local work between mutex operations. R=r, rsc CC=golang-dev https://golang.org/cl/4634093
-
Evan Shaw authored
This avoids allocation when writing to bytes.Buffers and bufio.Writers, for example. R=golang-dev, rsc, r, consalus, r CC=golang-dev https://golang.org/cl/4625068
-
Andrew Gerrand authored
R=golang-dev, gri, bradfitz CC=golang-dev https://golang.org/cl/4634050
-
Brad Fitzpatrick authored
Against the spec, but appear in the wild. Fixes #1966 R=golang-dev, adg CC=golang-dev https://golang.org/cl/4662059
-
Russ Cox authored
Also fix \x{123} parsing. R=r CC=golang-dev https://golang.org/cl/4632052
-
Alex Brainman authored
R=rsc CC=golang-dev, vcc.163 https://golang.org/cl/4627071
-
Russ Cox authored
#pragma varargck countpos f 1 says that the first argument to f is the count of variadic arguments that follow. #pragma varargck type f t says that t is one of the allowed types for a variadic argument to f. (can be repeated) combined, these can be used to check the runtime.stdcall functions in the windows port or in any other port that needs a vararg list of uintptrs even on a 64-bit platform (where it is very easy to pass a less-than-uintptr in the ...). demo: typedef unsigned int uintptr; #pragma varargck countpos f 1 #pragma varargck type f uintptr #pragma varargck type f void* int f(int count, ...); void *v; char *p; void main(void) { f(1, v); // ok f(1, main); // ok f(1, p); // ok f(2, v, v); // ok f(2, v); // found 1 argument after count 2 f(1, 'a'); // invalid type INT in call to f f(1, 0); // invalid type INT in call to f } R=ken, r, alex.brainman CC=golang-dev https://golang.org/cl/4634103
-
Rob Pike authored
It was working too hard. R=golang-dev, adg CC=golang-dev https://golang.org/cl/4639081
-
- 27 Jun, 2011 21 commits
-
-
Russ Cox authored
R=r, sam.thorogood, kevlar CC=golang-dev, rsc https://golang.org/cl/4636046
-
Rob Pike authored
Change the signature of Split to have no count, assuming a full split, and rename the existing Split with a count to SplitN. Do the same to package bytes. Add a gofix module. R=adg, dsymonds, alex.brainman, rsc CC=golang-dev https://golang.org/cl/4661051
-
Ken Rockot authored
These are the relevant changes to exec_unix.go now that mkerrors.sh outputs have been updated. R=rsc CC=golang-dev https://golang.org/cl/4648064
-
Kyle Lemons authored
I have written up a Marshal and MarshalIndent pair that should closely reflect the way that Unmarshal works. I would love feedback on making this code more accessible and efficient... I haven't used reflecton on this scale before, so there is probably a lot of work that can be done on that. Some potentially controversial things: - All tag names are lower-cased by default. - Zero-valued struct values are skipped. - No namespace prefix (o:tag, etc) mechanism is supplied. - You are allowed to marshal non-struct values (even though unmarshal cannot handle them). - A tag for a non-XMLName struct field that isn't "attr", "chardata", or "innerxml" is used as the name of the tag. This could wreak havoc if you try to marshal a protobuf struct. - The "innerxml" and "chardata" are inserted verbatim. If you try to marshal something straight from unmarshal, the results could be unexpected (remove "innerxml" support from Marshal would be one possible solution). R=rsc CC=golang-dev https://golang.org/cl/4539082
-
Russ Cox authored
R=golang-dev, bradfitz, r CC=golang-dev https://golang.org/cl/4634101
-
Brad Fitzpatrick authored
Fixes #2011 R=golang-dev, rsc CC=golang-dev https://golang.org/cl/4667043
-
Russ Cox authored
R=dvyukov, r CC=golang-dev https://golang.org/cl/4657053
-
Russ Cox authored
Fixes #2006. R=ken2 CC=golang-dev https://golang.org/cl/4643056
-
Brad Fitzpatrick authored
Permits serving from virtual filesystems, such as files linked into a binary, or from a zip file. Also adds a gofix for: http.FileServer(root, prefix) -> http.StripPrefix(prefix, http.FileServer(http.Dir(root))) R=r, rsc, gri, adg, dsymonds, r, gri CC=golang-dev https://golang.org/cl/4629047
-
Graham Miller authored
Reader previously had cached an error from the underlying reader and would return it on every subsequent call to Read. The Reader will now return the error only once, and subsequent calls will result in a new Read call to the underlying Reader. Fixes #1934. R=bradfitz, rogpeppe, rsc CC=golang-dev https://golang.org/cl/4528133
-
Dmitriy Vyukov authored
R=r, rsc CC=golang-dev https://golang.org/cl/4650054
-
Lucio De Re authored
8a/a.h: . Removed <u.h> and <libc.h> includes as they work better in "a.y". . Made definition of EOF conditional as it's defined in the Plan 9 header files, but not elsewhere. 8a/a.y: . Added <u.h> and <libc.h> because <stdio.h> in Plan 9 needs them. Sequence <u.h>, <stdio.h>, <libc.h> recommended by RSC. 8a/lex.c: . Added <u.h> and <libc.h> as now needed by "a.h". . Dropped <ctype.h>. cc/lexbody: . exit() -> exits(). . Dropped unwanted incrementation. cc/macbody: . Adjusted a few format specifications. R=rsc CC=golang-dev https://golang.org/cl/4644047
-
Anthony Martin authored
R=rsc, n13m3y3r, gustavo CC=golang-dev https://golang.org/cl/4661050
-
Russ Cox authored
R=golang-dev, bradfitz, go.peter.90 CC=golang-dev https://golang.org/cl/4627068
-
Brad Fitzpatrick authored
R=rsc CC=golang-dev https://golang.org/cl/4626067
-
Russ Cox authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/4627067
-
Brad Fitzpatrick authored
Previously we were snapshotting the TLS state into *Request before we did the HTTP ReadRequest, the first Read of which triggered the TLS handshake implicitly. Fixes #1956 R=golang-dev, rsc CC=agl, golang-dev https://golang.org/cl/4630072
-
Dmitriy Vyukov authored
-test.benchtime allows to specify benchmark execution time. -test.cpu allows to execute tests/benchmarks for several values of GOMAXPROCS. R=r, r, rsc CC=golang-dev https://golang.org/cl/4662046
-
Russ Cox authored
build runs with chmod 0 /bin/ed now R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/4635071
-
Russ Cox authored
did darwin on mac with older, not broken xcode. did linux arm by copying diffs from linux 386. did freebsd amd64 by copying diffs from freebsd 386. R=golang-dev, r, mikioh.mikioh CC=golang-dev https://golang.org/cl/4629067
-
Dmitry Chestnykh authored
Documentation mentioned the obsolete package "crypto/block", which has been replaced with "crypto/cipher". R=golang-dev, agl CC=golang-dev https://golang.org/cl/4654064
-
- 26 Jun, 2011 1 commit
-
-
Robert Hencke authored
Fixes #1970. R=rsc, r CC=golang-dev https://golang.org/cl/4650050
-
- 25 Jun, 2011 1 commit
-
-
Robert Hencke authored
Fixes #1969. R=gri, rsc, r CC=golang-dev https://golang.org/cl/4634076
-