Wei Guangjing
350504559e
net: windows/amd64 port
...
R=rsc, alex.brainman
CC=golang-dev
https://golang.org/cl/3790044
2011-07-13 12:44:21 -07:00
Matthew Horsnell
932db13e93
debug/elf: Read ELF Program headers.
...
NewFile has been fixed to read ELF Program headers into the structs.
Added test coverage.
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4628062
2011-07-13 12:34:29 -07:00
Russ Cox
ceb4377556
A+C: Matthew Horsnell (individual CLA)
...
R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/4700044
2011-07-13 12:33:03 -07:00
Wei Guangjing
a6e60916c1
runtime: stdcall_raw stack 16byte align for Win64
...
R=alex.brainman, rsc
CC=golang-dev
https://golang.org/cl/4681049
2011-07-13 11:44:44 -07:00
Dmitriy Vyukov
86a659cad0
runtime: fix data race during Itab hash update/lookup
...
The data race is on newly published Itab nodes, which are
both unsafely published and unsafely acquired. It can
break on IA-32/Intel64 due to compiler optimizations
(most likely not an issue as of now) and on ARM due to
hardware memory access reorderings.
R=rsc
CC=golang-dev
https://golang.org/cl/4673055
2011-07-13 11:22:41 -07:00
Brad Fitzpatrick
dcdaeebdfb
docs: fix wrong it's -> its
...
R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/4702046
2011-07-13 10:54:51 -07:00
Sam Thorogood
e3a773479d
exp/regexp/syntax: add Prog.NumCap
...
R=rsc, r
CC=golang-dev
https://golang.org/cl/4662083
2011-07-13 10:15:00 -07:00
Robert Griesemer
4c986d86b1
exp/eval, exp/ogle: remove packages eval and ogle
...
An externally maintained version of exp/eval can
be found at: https://bitbucket.org/binet/go-eval/ .
R=golang-dev, r, rsc
CC=golang-dev
https://golang.org/cl/4695047
2011-07-13 09:40:53 -07:00
Bobby Powers
050d839df0
gob: register more slice types
...
Without explicitly registering slice types, gob fails to encode
map[string]interface{} instances where the value is a slice,
failing with a message such as:
gob: type not registered for interface: []string
Fixes #2065 .
R=golang-dev, gri, r
CC=golang-dev
https://golang.org/cl/4672056
2011-07-13 17:12:17 +10:00
Nigel Tao
d360e0213d
html: update section references in comments to the latest HTML5 spec.
...
R=r
CC=golang-dev
https://golang.org/cl/4699048
2011-07-13 16:53:02 +10:00
Rob Pike
9415cd1d79
C+A: Bobby Powers <bobbypowers@gmail.com>
...
R=golang-dev, dsymonds
CC=bobbypowers, golang-dev
https://golang.org/cl/4695050
2011-07-13 16:10:12 +10:00
Rob Pike
7aa1a1a64d
exp/template: doc and API changes suggested by rsc.
...
- template invocation is by string constant only.
- NewSet is gone.
- no global Funcs
- writer is now first arg to Execute
R=rsc, r
CC=golang-dev
https://golang.org/cl/4700043
2011-07-13 15:58:31 +10:00
Rob Pike
2e9388e321
exp/template: add Set.AddSet and Set.Union.
...
Document and test that Set.Parse can be called multiple times.
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4703044
2011-07-13 13:50:05 +10:00
Rob Pike
41efecf51c
exp/template: allow variables as template names.
...
Just an oversight it wasn't already there.
Thanks to islandberry@live.com for pointing out the omission.
R=golang-dev, dsymonds
CC=golang-dev, islandberry
https://golang.org/cl/4703043
2011-07-13 13:21:18 +10:00
Rob Pike
c1c8d46d20
go_tutorial: change the way it's generated.
...
No longer do we generate HTML from it; instead the input
file is already in HTML but has template invocations to
extract programs from other files.
Delete htmlgen, which is no longer needed.
Add tmpltohtml, which runs the templating code.
R=golang-dev, dsymonds, adg
CC=golang-dev
https://golang.org/cl/4699041
2011-07-13 13:20:05 +10:00
David Anderson
f1df07bf6a
5l, 6l, 8l: Add a PT_LOAD PHDR entry for the PHDR.
...
Per the TIS ELF spec, if a PHDR entry is present in the
program header table, it must be part of the memory image of
the program. Failure to do this makes elflint complain, and
causes some tools that manipulate ELF to crash.
R=iant, rsc
CC=dave, golang-dev
https://golang.org/cl/4650067
2011-07-12 17:49:55 -07:00
Robert Griesemer
75780f99f4
csv: fix spelling errors in comments
...
Fixes #2066 .
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4699045
2011-07-12 17:45:29 -07:00
Russ Cox
7318664c22
tag release.r58.1: adds OS X Lion support
...
R=adg, dsymonds
CC=golang-dev
https://golang.org/cl/4702043
2011-07-12 17:44:59 -07:00
Quan Yong Zhai
fe9991e8b2
runtime: replace runtime.mcpy with runtime.memmove
...
faster string operations, and more
tested on linux/386
runtime_test.BenchmarkSliceToString 642 532 -17.13%
runtime_test.BenchmarkStringToSlice 636 528 -16.98%
runtime_test.BenchmarkConcatString 1109 897 -19.12%
R=r, iant, rsc
CC=golang-dev
https://golang.org/cl/4674042
2011-07-12 17:30:40 -07:00
Andrew Gerrand
ba91dac3a9
doc: gofix io2010 demo programs
...
R=golang-dev, gri, r, agl
CC=golang-dev
https://golang.org/cl/4696046
2011-07-13 09:40:49 +10:00
Wei Guangjing
f340b3de5a
debug/pe: fixes ImportedSymbols for Win64.
...
R=golang-dev, alex.brainman
CC=golang-dev
https://golang.org/cl/4639086
2011-07-12 11:29:38 -07:00
Robert Hencke
67edf9cb87
gc: make size of struct{} and [0]byte 0 bytes
...
Fixes #1949 .
R=iant, rsc
CC=golang-dev
https://golang.org/cl/4634124
2011-07-12 11:12:06 -07:00
Dmitriy Vyukov
86e7323bdf
runtime: eliminate false sharing during stack growth
...
Remove static variable from runtime·oldstack().
Benchmark results on HP Z600 (2 x Xeon E5620, 8 HT cores, 2.40GHz)
are as follows (with CL 4657091 applied):
benchmark old ns/op new ns/op delta
BenchmarkStackGrowth 1183.00 1180.00 -0.25%
BenchmarkStackGrowth-2 1249.00 1211.00 -3.04%
BenchmarkStackGrowth-4 954.00 805.00 -15.62%
BenchmarkStackGrowth-8 701.00 683.00 -2.57%
BenchmarkStackGrowth-16 465.00 415.00 -10.75%
R=rsc
CC=golang-dev
https://golang.org/cl/4693042
2011-07-12 10:56:21 -07:00
Russ Cox
88e0c0517a
runtime: fix comment (lost in shuffle)
...
TBR=dvyukov
CC=golang-dev
https://golang.org/cl/4710041
2011-07-12 09:26:05 -07:00
Dmitriy Vyukov
c9152a8568
runtime: eliminate contention during stack allocation
...
Standard-sized stack frames use plain malloc/free
instead of centralized lock-protected FixAlloc.
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
BenchmarkStackGrowth 1045.00 949.00 -9.19%
BenchmarkStackGrowth-2 3450.00 800.00 -76.81%
BenchmarkStackGrowth-4 5076.00 513.00 -89.89%
BenchmarkStackGrowth-8 7805.00 471.00 -93.97%
BenchmarkStackGrowth-16 11751.00 321.00 -97.27%
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4657091
2011-07-12 09:24:32 -07:00
Dmitriy Vyukov
daaf29cf93
sync: improve RWMutex performance
...
The new implementation features wait-free
fast path for readers which significantly improves
performance/scalability on read-mostly workloads.
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
BenchmarkRWMutexUncontended 179.00 96.60 -46.03%
BenchmarkRWMutexUncontended-2 89.10 49.10 -44.89%
BenchmarkRWMutexUncontended-4 44.70 24.70 -44.74%
BenchmarkRWMutexUncontended-8 23.30 12.90 -44.64%
BenchmarkRWMutexUncontended-16 16.80 8.75 -47.92%
BenchmarkRWMutexWrite100 79.60 26.80 -66.33%
BenchmarkRWMutexWrite100-2 305.00 33.00 -89.18%
BenchmarkRWMutexWrite100-4 245.00 113.00 -53.88%
BenchmarkRWMutexWrite100-8 330.00 147.00 -55.45%
BenchmarkRWMutexWrite100-16 371.00 152.00 -59.03%
BenchmarkRWMutexWrite10 78.30 29.80 -61.94%
BenchmarkRWMutexWrite10-2 348.00 165.00 -52.59%
BenchmarkRWMutexWrite10-4 447.00 199.00 -55.48%
BenchmarkRWMutexWrite10-8 564.00 180.00 -68.09%
BenchmarkRWMutexWrite10-16 492.00 192.00 -60.98%
BenchmarkRWMutexWorkWrite100 1077.00 1037.00 -3.71%
BenchmarkRWMutexWorkWrite100-2 659.00 596.00 -9.56%
BenchmarkRWMutexWorkWrite100-4 509.00 361.00 -29.08%
BenchmarkRWMutexWorkWrite100-8 603.00 351.00 -41.79%
BenchmarkRWMutexWorkWrite100-16 750.00 607.00 -19.07%
BenchmarkRWMutexWorkWrite10 990.00 951.00 -3.94%
BenchmarkRWMutexWorkWrite10-2 1119.00 1070.00 -4.38%
BenchmarkRWMutexWorkWrite10-4 1300.00 1199.00 -7.77%
BenchmarkRWMutexWorkWrite10-8 1424.00 1291.00 -9.34%
BenchmarkRWMutexWorkWrite10-16 1981.00 1786.00 -9.84%
R=rsc
CC=golang-dev
https://golang.org/cl/4671051
2011-07-12 09:24:21 -07:00
Rob Pike
4c63129545
effective go: tweak the words about semicolons, parens in control structures,
...
and make and new.
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/4699043
2011-07-12 23:45:10 +10:00
Adam Langley
9f4c288c16
hash/crc32: add SSE4.2 support
...
Using the CRC32 instruction speeds up the Castagnoli computation by
about 20x on a modern Intel CPU.
R=rsc
CC=golang-dev
https://golang.org/cl/4650072
2011-07-12 09:29:24 -04:00
Alex Brainman
0f8678a747
go/build: include processing of .c files for cgo packages
...
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/4696041
2011-07-12 17:27:07 +10:00
Nigel Tao
851ded9660
image: remove superfluous if condition.
...
DrawMask already returns early if r.Empty().
R=r
CC=golang-dev
https://golang.org/cl/4703041
2011-07-12 17:02:55 +10:00
Nigel Tao
caaa6764fa
image: re-organize draw.go.
...
There are no behavioral changes, only some copy-and-pastes.
Before, drawFillOver was next to drawCopyOver.
After, drawFillOver is next to drawFillSrc, which is more similar to
drawFillOver than drawCopyOver is.
Similarly, drawCopyOver is now next to drawCopySrc, etc.
R=r
CC=golang-dev
https://golang.org/cl/4695045
2011-07-12 16:56:29 +10:00
Nigel Tao
8bd5089513
image: change Pix from []FooColor to []uint8.
...
Some benchmark numbers below. The image/draw fast-paths show dramatic
improvement, the generic slow-paths show a smaller slow-down.
BEFORE
png.BenchmarkEncodePaletted 200 8203800 ns/op 37.45 MB/s
png.BenchmarkEncodeRGBOpaque 100 26940440 ns/op 45.61 MB/s
png.BenchmarkEncodeRGBA 20 73821000 ns/op 16.65 MB/s
jpeg.BenchmarkEncodeRGBOpaque 50 35598640 ns/op 34.52 MB/s
draw.BenchmarkFillOver 500 4024226 ns/op
draw.BenchmarkFillSrc 10000 152736 ns/op
draw.BenchmarkCopyOver 500 3452824 ns/op
draw.BenchmarkCopySrc 50000 73218 ns/op
draw.BenchmarkNRGBAOver 500 3941234 ns/op
draw.BenchmarkNRGBASrc 1000 2484400 ns/op
draw.BenchmarkYCbCr 1000 2609005 ns/op
draw.BenchmarkGlyphOver 2000 1169575 ns/op
draw.BenchmarkRGBA 200 9031390 ns/op
draw.BenchmarkGenericOver 50 34636620 ns/op
draw.BenchmarkGenericMaskOver 100 16561150 ns/op
draw.BenchmarkGenericSrc 100 13873760 ns/op
draw.BenchmarkGenericMaskSrc 100 25198860 ns/op
AFTER
png.BenchmarkEncodePaletted 200 8206600 ns/op 37.43 MB/s
png.BenchmarkEncodeRGBOpaque 100 26129530 ns/op 47.03 MB/s
png.BenchmarkEncodeRGBA 20 75776750 ns/op 16.22 MB/s
jpeg.BenchmarkEncodeRGBOpaque 50 37192940 ns/op 33.04 MB/s
draw.BenchmarkFillOver 500 3008134 ns/op
draw.BenchmarkFillSrc 10000 154214 ns/op
draw.BenchmarkCopyOver 1000 2169988 ns/op
draw.BenchmarkCopySrc 50000 73095 ns/op
draw.BenchmarkNRGBAOver 1000 2491079 ns/op
draw.BenchmarkNRGBASrc 2000 1361244 ns/op
draw.BenchmarkYCbCr 1000 2554269 ns/op
draw.BenchmarkGlyphOver 2000 1042225 ns/op
draw.BenchmarkRGBA 100 10233340 ns/op
draw.BenchmarkGenericOver 50 38421560 ns/op
draw.BenchmarkGenericMaskOver 100 17521190 ns/op
draw.BenchmarkGenericSrc 100 16351200 ns/op
draw.BenchmarkGenericMaskSrc 100 26538190 ns/op
R=r
CC=golang-dev
https://golang.org/cl/4675076
2011-07-12 16:39:38 +10:00
Nigel Tao
6ec6f1ef62
image/draw: add benchmarks.
...
R=r
CC=golang-dev
https://golang.org/cl/4695043
2011-07-12 16:17:02 +10:00
Russ Cox
1002e82fff
doc: document r58.1
...
R=adg, dsymonds
CC=golang-dev
https://golang.org/cl/4700041
2011-07-12 01:39:09 -04:00
Dmitriy Vyukov
013ad89c9b
runtime: eliminate false sharing on runtime.goidgen
...
runtime.goidgen can be quite frequently modified and
shares cache line with the following variables,
it leads to false sharing.
50c6b0 b nfname
50c6b4 b nfunc
50c6b8 b nfunc$17
50c6bc b nhist$17
50c6c0 B runtime.checking
50c6c4 B runtime.gcwaiting
50c6c8 B runtime.goidgen
50c6cc B runtime.gomaxprocs
50c6d0 B runtime.panicking
50c6d4 B strconv.IntSize
50c6d8 B src/pkg/runtime/_xtest_.ss
50c6e0 B src/pkg/runtime/_xtest_.stop
50c6e8 b addrfree
50c6f0 b addrmem
50c6f8 b argv
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4673054
2011-07-12 01:25:14 -04:00
Dmitriy Vyukov
909f31872a
runtime: eliminate false sharing on random number generators
...
Use machine-local random number generator instead of
racy global ones.
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4674049
2011-07-12 01:23:58 -04:00
Dmitriy Vyukov
f9f21aa1fb
runtime: fix data race on runtime·maxstring
...
The data race can lead to erroneous output of
"[invalid string]" instead of a string.
R=golang-dev
CC=golang-dev
https://golang.org/cl/4678049
2011-07-12 01:21:06 -04:00
Alex Brainman
8ed9fc600c
6l: change default output name to 6.out.exe on windows
...
R=golang-dev, vcc.163
CC=golang-dev
https://golang.org/cl/4670049
2011-07-12 14:22:48 +10:00
Brad Fitzpatrick
ce3c3953be
http: support for periodic flushing in ReverseProxy
...
Fixes #2012
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4662091
2011-07-11 20:56:21 -07:00
Rob Pike
7c47741811
exp/template: make numbers adhere to Go's rules for ideal constants.
...
Without further type informatnion, 1.0 is a float and an integer
must fit in an int.
R=rsc
CC=golang-dev
https://golang.org/cl/4696042
2011-07-12 13:15:26 +10:00
Alex Brainman
05c89edcd3
go/build: make Nuke comment say what it does
...
R=rsc
CC=golang-dev
https://golang.org/cl/4697041
2011-07-12 13:08:22 +10:00
Andrew Gerrand
87d71a3815
codereview: fix for Mercurial 1.9
...
R=golang-dev, mirtchovski, mikioh.mikioh
CC=golang-dev
https://golang.org/cl/4686049
2011-07-11 22:58:40 -04:00
Yasuhiro Matsumoto
34bac8bcd4
doc: don't specify make target for working on windwos.
...
makehtml does not work on windows.
R=golang-dev, adg, rsc
CC=golang-dev
https://golang.org/cl/4675041
2011-07-11 20:02:32 -04:00
Andrew Gerrand
b4f0e8ffd3
undo CL 4675045 / 0e11e08951f7
...
Breaks Mercurial 1.8.3.
««« original CL description
codereview: fix for Mercurial 1.9
Fixes #2038 .
R=rsc, bobbypowers
CC=golang-dev
https://golang.org/cl/4675045
»»»
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4685055
2011-07-12 09:57:39 +10:00
Andrew Gerrand
762ea79057
codereview: fix for Mercurial 1.9
...
Fixes #2038 .
R=rsc, bobbypowers
CC=golang-dev
https://golang.org/cl/4675045
2011-07-12 09:36:46 +10:00
Brad Fitzpatrick
1722ec22cd
cgi: close stdout reader pipe when finished
...
This causes the child, if still writing, to get an error or
SIGPIPE and most likely exit so our subsequent wait can
finish.
A more guaranteed fix would be putting a time limit on the
child's overall execution, but this fixes the problem
I was having.
Fixes #2059
R=rsc
CC=golang-dev
https://golang.org/cl/4675081
2011-07-11 15:59:27 -07:00
Brad Fitzpatrick
d53385fd0c
os: don't permit Process.Signal after a successful Wait
...
R=dsymonds, rsc
CC=golang-dev
https://golang.org/cl/4689043
2011-07-11 15:47:42 -07:00
Brad Fitzpatrick
d1f4e0d14e
exec: closeAfterWait append bug
...
Wasn't actually eager closing the fds as a result of the
copy/paste bug. (GC was doing it instead)
R=rsc
CC=golang-dev
https://golang.org/cl/4671057
2011-07-11 14:46:46 -07:00
Evan Martin
2f69a73591
json: encode \r and \n in strings as e.g. "\n", not "\u000A"
...
This is allowed by the JSON spec and is shorter/easier to read.
R=golang-dev, bradfitz, rsc
CC=golang-dev
https://golang.org/cl/4678046
2011-07-11 07:31:08 -07:00
Brad Fitzpatrick
f19b24a182
strconv: handle [-+]Infinity in atof
...
This is the form as returned by Postgres, as well
as JavaScript.
I've tried and failed to find authorative docs online
about the proper string serialization, if any.
R=golang-dev, gri, r, r, rsc
CC=golang-dev
https://golang.org/cl/4650077
2011-07-11 07:25:45 -07:00