- 26 Sep, 2012 3 commits
-
-
Robert Griesemer authored
Mostly minor changes to match the new definitions in types.go and const.go. R=rsc, r CC=golang-dev https://golang.org/cl/6506101
-
Robert Griesemer authored
This code relies on some functions that are not yet in staging, but it get's harder to keep all this in sync in a piece-meal fashion. R=rsc CC=golang-dev https://golang.org/cl/6492124
-
Robert Griesemer authored
More pieces of the typechecker code: - Operands are temporary objects representing an expressions's type and value (for constants). An operand is the equivalent of an "attribute" in attribute grammars except that it's not stored but only passed around during type checking. - Constant operations are implemented in const.go. Constants are represented as bool (booleans), int64 and *big.Int (integers), *big.Rat (floats), complex (complex numbers), and string (strings). - Error reporting is consolidated in errors.go. Only the first dozen of lines is new code, the rest of the file contains the exprString and typeString functions formerly in two separate files (which have been removed). This is a replacement CL for 6492101 (which was created without proper use of hg). R=rsc, r CC=golang-dev https://golang.org/cl/6500114
-
- 25 Sep, 2012 8 commits
-
-
Christian Himpel authored
Fixes #4152. R=bradfitz CC=golang-dev https://golang.org/cl/6570045
-
Alex Brainman authored
Fixes #4147. R=golang-dev, r CC=golang-dev https://golang.org/cl/6569050
-
Shenghou Ma authored
file old_size new_size base@c1ce95068533 bin/go 14717392 6287824 5918236 this huge size difference is due to GC data for runtime.mheap (NOPTR dataflag is not obeyed). R=rsc, dave CC=golang-dev https://golang.org/cl/6547051
-
Rob Pike authored
R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/6564046
-
Russ Cox authored
Remove VERSION, which was forcing version to 'devel'. Old: $ go version go version devel New: $ go version go version devel +0a3866d6cc6b Mon Sep 24 20:08:05 2012 -0400 The date and time (and time zone) is that of the most recent commit, not the time of the build itself. With some effort we could normalize the zone, but I don't think it's worth the effort (more C coding, since Mercurial is unhelpful). R=r, dsymonds CC=golang-dev https://golang.org/cl/6569049
-
Russ Cox authored
The assembly offsets were converted mechanically using code.google.com/p/rsc/cmd/asmlint. The instruction changes were done by hand. Fixes #2188. R=iant, r, bradfitz, remyoudompheng CC=golang-dev https://golang.org/cl/6550058
-
Jan Ziak authored
R=rsc CC=golang-dev https://golang.org/cl/6554060
-
Russ Cox authored
Fixes #1765. R=iant, r, daniel.morsing, minux.ma, bradfitz, rogpeppe, remyoudompheng CC=golang-dev https://golang.org/cl/6554067
-
- 24 Sep, 2012 29 commits
-
-
Mikio Hara authored
Both methods allow to access the IP ancillary data through socket control messages. This CL is required for CL 6482044; go.net/ipv4: new package. R=rsc, r, dave CC=golang-dev https://golang.org/cl/6426047
-
Rémy Oudompheng authored
R=golang-dev, rsc, dave CC=golang-dev https://golang.org/cl/6569044
-
Rémy Oudompheng authored
Apart from reducing the number of LEAL/LEAQ instructions by about 30%, it gives 8g easier registerization in several cases, for example in strconv. Performance with 6g is not affected. Before (386): src/pkg/strconv/decimal.go:22 TEXT (*decimal).String+0(SB),$240-12 src/pkg/strconv/extfloat.go:540 TEXT (*extFloat).ShortestDecimal+0(SB),$584-20 After (386): src/pkg/strconv/decimal.go:22 TEXT (*decimal).String+0(SB),$196-12 src/pkg/strconv/extfloat.go:540 TEXT (*extFloat).ShortestDecimal+0(SB),$420-20 Benchmarks with GOARCH=386 (on a Core 2). benchmark old ns/op new ns/op delta BenchmarkBinaryTree17 7110191000 7079644000 -0.43% BenchmarkFannkuch11 7769274000 7766514000 -0.04% BenchmarkGobDecode 33454820 34755400 +3.89% BenchmarkGobEncode 11675710 11007050 -5.73% BenchmarkGzip 2013519000 1593855000 -20.84% BenchmarkGunzip 253368200 242667600 -4.22% BenchmarkJSONEncode 152443900 120763400 -20.78% BenchmarkJSONDecode 304112800 247461800 -18.63% BenchmarkMandelbrot200 29245520 29240490 -0.02% BenchmarkParse 8484105 8088660 -4.66% BenchmarkRevcomp 2695688000 2841263000 +5.40% BenchmarkTemplate 363759800 277271200 -23.78% benchmark old ns/op new ns/op delta BenchmarkAtof64Decimal 127 129 +1.57% BenchmarkAtof64Float 166 164 -1.20% BenchmarkAtof64FloatExp 308 300 -2.60% BenchmarkAtof64Big 584 571 -2.23% BenchmarkAppendFloatDecimal 440 430 -2.27% BenchmarkAppendFloat 995 776 -22.01% BenchmarkAppendFloatExp 897 746 -16.83% BenchmarkAppendFloatNegExp 900 752 -16.44% BenchmarkAppendFloatBig 1528 1228 -19.63% BenchmarkAppendFloat32Integer 443 453 +2.26% BenchmarkAppendFloat32ExactFraction 812 661 -18.60% BenchmarkAppendFloat32Point 1002 773 -22.85% BenchmarkAppendFloat32Exp 858 725 -15.50% BenchmarkAppendFloat32NegExp 848 728 -14.15% BenchmarkAppendFloat64Fixed1 447 431 -3.58% BenchmarkAppendFloat64Fixed2 480 462 -3.75% BenchmarkAppendFloat64Fixed3 461 457 -0.87% BenchmarkAppendFloat64Fixed4 509 484 -4.91% Update #1914. R=rsc, nigeltao CC=golang-dev, remy https://golang.org/cl/6494107
-
Adam Langley authored
Session resumption saves a round trip and removes the need to perform the public-key operations of a TLS handshake when both the client and server support it (which is true of Firefox and Chrome, at least). R=golang-dev, bradfitz, rsc CC=golang-dev https://golang.org/cl/6555051
-
Francesc Campoy authored
Fixes #4080. R=rsc, adg CC=golang-dev https://golang.org/cl/6553068
-
Russ Cox authored
Was not handling &x.y[0] and &x.y.z correctly where y is an array or struct-valued field (not a pointer). R=ken2 CC=golang-dev https://golang.org/cl/6551059
-
Russ Cox authored
Update #3953. R=bradfitz, campoy CC=golang-dev https://golang.org/cl/6543068
-
Rémy Oudompheng authored
Comparisons used to create temporaries for arguments even if they were already variables or addressable. Removing the extra ones reduces pressure on regopt. benchmark old ns/op new ns/op delta BenchmarkGobDecode 50787620 49908980 -1.73% BenchmarkGobEncode 19870190 19473030 -2.00% BenchmarkGzip 3214321000 3067929000 -4.55% BenchmarkGunzip 496792800 465828600 -6.23% BenchmarkJSONEncode 232524800 263864400 +13.48% BenchmarkJSONDecode 622038400 506600600 -18.56% BenchmarkMandelbrot200 23937310 45913060 +91.81% BenchmarkParse 14364450 13997010 -2.56% BenchmarkRevcomp 6919028000 6480009000 -6.35% BenchmarkTemplate 594458800 539528200 -9.24% benchmark old MB/s new MB/s speedup BenchmarkGobDecode 15.11 15.38 1.02x BenchmarkGobEncode 38.63 39.42 1.02x BenchmarkGzip 6.04 6.33 1.05x BenchmarkGunzip 39.06 41.66 1.07x BenchmarkJSONEncode 8.35 7.35 0.88x BenchmarkJSONDecode 3.12 3.83 1.23x BenchmarkParse 4.03 4.14 1.03x BenchmarkRevcomp 36.73 39.22 1.07x BenchmarkTemplate 3.26 3.60 1.10x R=mtj, daniel.morsing, rsc CC=golang-dev https://golang.org/cl/6547064
-
Eric Roshan-Eisner authored
R=rsc, nigeltao, dave, bradfitz, r, rogpeppe CC=golang-dev https://golang.org/cl/6497084
-
Russ Cox authored
This CL makes the compiler understand that the type of the len or cap of a map, slice, or string is 'int', not 'int32'. It does not change the meaning of int, but it should make the eventual change of the meaning of int in 6g a bit smoother. Update #2188. R=ken, dave, remyoudompheng CC=golang-dev https://golang.org/cl/6542059
-
Russ Cox authored
Use explicit IntSize constant instead of 4. This CL does not change the meaning of int, but it should make the eventual change of the meaning of int on amd64 a bit smoother. Update #2188. R=ken, dave CC=golang-dev https://golang.org/cl/6554076
-
Russ Cox authored
This CL makes the size of an int controlled by a variable in cgo instead of hard-coding 4 (or 32 bits) in various places. Update #2188. R=iant, r, dave CC=golang-dev https://golang.org/cl/6548061
-
Russ Cox authored
In a few places, the existing cgo tests assume that a Go int is the same as a C int. Making int 64 bits wide on 64-bit platforms violates this assumption. Change that code to assume that Go int32 and C int are the same instead. That's still not great, but it's better, and I am unaware of any systems we run on where it is not true. Update #2188. R=iant, r CC=golang-dev https://golang.org/cl/6552064
-
Russ Cox authored
This CL makes the runtime understand that the type of the len or cap of a map, slice, or string is 'int', not 'int32', and it is also careful to distinguish between function arguments and results of type 'int' vs type 'int32'. In the runtime, the new typedefs 'intgo' and 'uintgo' refer to Go int and uint. The C types int and uint continue to be unavailable (cause intentional compile errors). This CL does not change the meaning of int, but it should make the eventual change of the meaning of int on amd64 a bit smoother. Update #2188. R=iant, r, dave, remyoudompheng CC=golang-dev https://golang.org/cl/6551067
-
Rémy Oudompheng authored
R=golang-dev, rsc CC=golang-dev, remy https://golang.org/cl/6554062
-
Russ Cox authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6553067
-
Andrew Gerrand authored
R=rsc CC=golang-dev https://golang.org/cl/6543069
-
Russ Cox authored
Fixes #4143. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6541064
-
Brad Fitzpatrick authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6541062
-
Russ Cox authored
Was describing an old implementation. R=ken2 CC=golang-dev https://golang.org/cl/6553066
-
Akshat Kumar authored
Using offsets from Tos is cumbersome and we've had problems in the past. Since it's only being used to grab the PID, we'll just get that from the default TLS instead. R=rsc, rminnich, npe CC=golang-dev https://golang.org/cl/6543049
-
Russ Cox authored
Pointed out by James Chalfant after submit of CL 65000655. TBR=golang-dev CC=golang-dev https://golang.org/cl/6543067
-
Russ Cox authored
The code was assuming that int = 32 bits. Don't. Update #2188. R=agl CC=golang-dev https://golang.org/cl/6543063
-
Nigel Tao authored
I'm not exactly sure why there's a performance gain, but it seems like an easy win. Maybe it's a cache line thing. Maybe it's that unsafe.Sizeof(decompressor{}) drops to below unmappedzero, so that checkref/checkoffset don't need to insert TESTB instructions. Maybe it's less noise for the conservative garbage collector. Maybe it's something else. compress/flate benchmarks: BenchmarkDecodeDigitsSpeed1e4 378628 349906 -7.59% BenchmarkDecodeDigitsSpeed1e5 3481976 3204898 -7.96% BenchmarkDecodeDigitsSpeed1e6 34419500 31750660 -7.75% BenchmarkDecodeDigitsDefault1e4 362317 335562 -7.38% BenchmarkDecodeDigitsDefault1e5 3290032 3107624 -5.54% BenchmarkDecodeDigitsDefault1e6 30542540 28937480 -5.26% BenchmarkDecodeDigitsCompress1e4 362803 335158 -7.62% BenchmarkDecodeDigitsCompress1e5 3294512 3114526 -5.46% BenchmarkDecodeDigitsCompress1e6 30514940 28927090 -5.20% BenchmarkDecodeTwainSpeed1e4 412818 389521 -5.64% BenchmarkDecodeTwainSpeed1e5 3475780 3288908 -5.38% BenchmarkDecodeTwainSpeed1e6 33629640 31931420 -5.05% BenchmarkDecodeTwainDefault1e4 369736 348850 -5.65% BenchmarkDecodeTwainDefault1e5 2861050 2721383 -4.88% BenchmarkDecodeTwainDefault1e6 27120120 25862050 -4.64% BenchmarkDecodeTwainCompress1e4 372057 350822 -5.71% BenchmarkDecodeTwainCompress1e5 2855109 2718664 -4.78% BenchmarkDecodeTwainCompress1e6 26987010 26336030 -2.41% image/png benchmarks: BenchmarkDecodeGray 1841839 1802251 -2.15% BenchmarkDecodeNRGBAGradient 7115318 6933280 -2.56% BenchmarkDecodeNRGBAOpaque 6135892 6013284 -2.00% BenchmarkDecodePaletted 1153313 1114302 -3.38% BenchmarkDecodeRGB 5619404 5511190 -1.93% R=rsc, r CC=golang-dev https://golang.org/cl/6533048
-
Marcel van Lohuizen authored
various implementation of collation. The tool provides commands for soring, regressing one implementation against another, and benchmarking. Currently it includes collation implementations for the Go collator, ICU, and one using Darwin's CoreFoundation framework. To avoid building this tool in the default build, the colcmp tag has been added to all files. This allows other tools/colcmp in this directory (e.g. it may make sense to move maketables here) to be put in this directory as well. R=r, rsc, mpvl CC=golang-dev https://golang.org/cl/6496118
-
Russ Cox authored
Minor tweaks to avoid assuming that int is always 32 bits. Update #2188. R=golang-dev, r CC=golang-dev https://golang.org/cl/6553062
-
Russ Cox authored
Can tell this doesn't get run very often, but it is still important for when you've broken everything else. R=golang-dev, r CC=golang-dev https://golang.org/cl/6547065
-
Russ Cox authored
This CL fixes code that incorrectly assumes that int is 32 bits wide. Specifically, the socketpair system call expects a pointer to a pair of int32s, not a pair of ints. Fix this inside the wrappers without changing the APIs. Update #2188. R=golang-dev, r CC=golang-dev https://golang.org/cl/6552063
-
Rob Pike authored
Change the grammar so that field access is a proper operator. This introduces a new node, ChainNode, into the public (but actually internal) API of text/template/parse. For compatibility, we only use the new node type for the specific construct, which was not parseable before. Therefore this should be backward-compatible. Before, .X.Y was a token in the lexer; this CL breaks it out into .Y applied to .X. But for compatibility we mush them back together before delivering. One day we might remove that hack; it's the simple TODO in parse.go/operand. This change also provides grammatical distinction between f and (f) which might permit function values later, but not now. Fixes #3999. R=golang-dev, dsymonds, gri, rsc, mikesamuel CC=golang-dev https://golang.org/cl/6494119
-