- 24 Dec, 2012 4 commits
-
-
Marcel van Lohuizen authored
Motivations: - Simpler UI. Previous API proved a bit awkward for practical purposes. - Iter is often used in cases where one want to be able to bail out early. The old implementaton had too much look-ahead to be efficient. Disadvantages: - ASCII performance is bad. This is unavoidable for tiny iterations. Example is included to show how to work around this. Description: Iter now iterates per boundary/segment. It returns a slice of bytes that either points to the input bytes, the internal decomposition strings, or the small internal buffer that each iterator has. In many cases, copying bytes is avoided. The method Seek was added to support jumping around the input without having to reinitialize. Details: - Table adjustments: some decompositions exist of multiple segments. Decompositions that are of this type are now marked so that Iter can handle them separately. - The old iterator had a different next function for different normal forms that was assigned to a function pointer called by Next. The new iterator uses this mechanism to switch between different modes for handling different type of input as well. This greatly improves performance for Hangul and ASCII. It is also used for multi-segment decompositions. - input is now a struct of sting and []byte, instead of an interface. This simplifies optimizing the ASCII case. R=rsc CC=golang-dev https://golang.org/cl/6873072
-
Marcel van Lohuizen authored
the need to decompose characters for the majority of cases. This considerably speeds up collation while increasing the table size minimally. To detect non-normalized strings, rather than relying on exp/norm, the table now includes CCC information. The inclusion of this information does not increase table size. DETAILS - Raw collation elements are now a struct that includes the CCC, rather than a slice of ints. - Builder now ensures that NFD and NFC counterparts are included in the table. This also fixes a bug for Korean which is responsible for most of the growth of the table size. - As there is no more normalization step, code should now handle both strings and byte slices as input. Introduced source type to facilitate this. NOTES - This change does not handle normalization correctly entirely for contractions. This causes a few failures with the regtest. table_test.go contains a few uncommented tests that can be enabled once this is fixed. The easiest is to fix this once we have the new norm.Iter. - Removed a test cases in table_test that covers cases that are now guaranteed to not exist. R=rsc, mpvl CC=golang-dev https://golang.org/cl/6971044
-
Dmitriy Vyukov authored
Currently it silently "succeeds" saying that it run 0 tests if there are compilations errors. With this change it fails and outputs the compilation error. R=golang-dev, remyoudompheng CC=golang-dev https://golang.org/cl/7002058
-
Rémy Oudompheng authored
Fixes #4578. R=dvyukov, golang-dev CC=golang-dev https://golang.org/cl/7005050
-
- 23 Dec, 2012 2 commits
-
-
Shenghou Ma authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7000045
-
Brad Fitzpatrick authored
NO_PROXY="example.com" should match "foo.example.com", just the same as NO_PROXY=".example.com". This is what curl and Python do. Fixes #4574 R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7005049
-
- 22 Dec, 2012 27 commits
-
-
Russ Cox authored
Not programming in Go anymore: have to clear fields in local variables. R=ken2 CC=golang-dev https://golang.org/cl/7002053
-
Russ Cox authored
Fixes #4070. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7004050
-
Russ Cox authored
Before this CL, defining the variable worked fine, but then when the implicit package-level init func was created, that caused a name collision and a confusing error about the redeclaration. Also add a test for issue 3705 (func init() needs body). Fixes #4517. R=ken2 CC=golang-dev https://golang.org/cl/7008045
-
Russ Cox authored
R=remyoudompheng CC=golang-dev https://golang.org/cl/7002052
-
Russ Cox authored
An error during the compilation can be more precise than an error at link time. For 'func init', the error happens always: you can't forward declare an init func because the name gets mangled. For other funcs, the error happens only with the special (and never used by hand) -= flag, which tells 6g the package is pure go. The go command now passes -= for pure Go packages. Fixes #3705. R=ken2 CC=golang-dev https://golang.org/cl/6996054
-
Russ Cox authored
Ordinary variable load was assumed to be not worth saving, but not if one of the function calls later might change its value. Fixes #4313. R=ken2 CC=golang-dev https://golang.org/cl/6997047
-
Russ Cox authored
The array skips the first TOKSTART entries. Fixes #4410. R=golang-dev, ken2, ken CC=golang-dev https://golang.org/cl/6999054
-
Russ Cox authored
Fixes #3996. R=ken2 CC=golang-dev https://golang.org/cl/7001052
-
Russ Cox authored
When we release memory to the OS, if the OS doesn't want us to release it (for example, because the program executed mlockall(MCL_FUTURE)), madvise will fail. Ignore the failure instead of crashing. Fixes #3435. R=ken2 CC=golang-dev https://golang.org/cl/6998052
-
Russ Cox authored
benchmark old ns/op new ns/op delta BenchmarkDefer 165 113 -31.52% BenchmarkDefer10 155 103 -33.55% BenchmarkDeferMany 216 158 -26.85% benchmark old allocs new allocs delta BenchmarkDefer 1 0 -100.00% BenchmarkDefer10 1 0 -100.00% BenchmarkDeferMany 1 0 -100.00% benchmark old bytes new bytes delta BenchmarkDefer 64 0 -100.00% BenchmarkDefer10 64 0 -100.00% BenchmarkDeferMany 64 66 3.12% Fixes #2364. R=ken2 CC=golang-dev https://golang.org/cl/7001051
-
Shenghou Ma authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6971048
-
Emil Hessman authored
Close the read side of the pipe. Fixes #4551. R=rsc CC=golang-dev https://golang.org/cl/6962049
-
Stéphane Travostino authored
Fixes #3887. R=golang-dev, daniel.morsing, remyoudompheng, rsc CC=golang-dev https://golang.org/cl/6997045
-
Russ Cox authored
Fixes #4581. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7000052
-
Rick Arnold authored
Any flag.Value that has an IsBoolFlag method that returns true will be treated as a bool flag type during parsing. Fixes #4262. R=bradfitz, rsc CC=golang-dev https://golang.org/cl/6944064
-
Rémy Oudompheng authored
The patch makes the compile user an ordinary package-local symbol for the name of embedded fields of builtin type. This is incompatible with the fix delivered for issue 2687 (revision 3c060add43fb) but fixes it in a different way, because the explicit symbol on the field makes the typechecker able to find it in lookdot. Fixes #3552. R=lvd, rsc, daniel.morsing CC=golang-dev https://golang.org/cl/6866047
-
Rémy Oudompheng authored
The typechecking code was doing an extra, unnecessary indirection. Fixes #4458. R=golang-dev, daniel.morsing, rsc CC=golang-dev https://golang.org/cl/6998051
-
Daniel Morsing authored
Fixes #4470. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6949073
-
Russ Cox authored
Replacement for GOEXPERIMENT=zerostack, easier to use. Does not require a separate toolchain. R=ken2 CC=golang-dev https://golang.org/cl/6996051
-
Russ Cox authored
remove zerostack compiler experiment; will do at link time instead ««« original CL description cmd/gc: add GOEXPERIMENT=zerostack to clear stack on function entry This is expensive but it might be useful in cases where people are suffering from false positives during garbage collection and are willing to trade the CPU time for getting rid of the false positives. On the other hand it only eliminates false positives caused by other function calls, not false positives caused by dead temporaries stored in the current function call. The 5g/6g/8g changes were pulled out of the history, from the last time we needed to do this (to work around a goto bug). The code in go.h, lex.c, pgen.c is new but tiny. R=ken2 CC=golang-dev https://golang.org/cl/6938073 »»» R=ken2 CC=golang-dev https://golang.org/cl/7002051
-
Erik St. Martin authored
When using subexpressions ($1) as replacements, when they either don't exist or values weren't found causes a panic. This patch ensures that the match location isn't -1, to prevent out of bounds errors. Fixes #3816. R=franciscossouza, rsc CC=golang-dev https://golang.org/cl/6931049
-
Russ Cox authored
Generated by addca. R=gobot CC=golang-dev https://golang.org/cl/7007051
-
Adam Langley authored
EDE2 is a rare DES mode that can be implemented with crypto/des, but it's somewhat non-obvious so this CL adds an example of doing so. Fixes #3537. R=golang-dev, adg CC=golang-dev https://golang.org/cl/6721056
-
Russ Cox authored
Fixes #4579. R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/7000051
-
Russ Cox authored
Fixes #4562. R=ken2 CC=golang-dev https://golang.org/cl/7008044
-
Chris Jones authored
Fixes #3559. This makes Marshal handle fields marked ",any" instead of ignoring them. That makes Marshal more symmetrical with Unmarshal, which seems to have been a design goal. Note some test cases were changed, because this patch changes marshalling behavior. I think the previous behavior was buggy, but there's still a backward-compatibility question to consider. R=rsc CC=golang-dev, n13m3y3r https://golang.org/cl/6938068
-
Mikio Hara authored
R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/7003049
-
- 21 Dec, 2012 7 commits
-
-
Rémy Oudompheng authored
Also restore the smallintconst case for binary ops. Fixes #3835. R=daniel.morsing, rsc CC=golang-dev https://golang.org/cl/6999043
-
Dave Cheney authored
Most benchmarks are within the 3% margin of error. This code path is quite common in the fmt package. linux/arm, Freescale iMX.53 (cortex-a8) fmt: benchmark old ns/op new ns/op delta BenchmarkSprintfEmpty 925 785 -15.14% BenchmarkSprintfString 5050 5039 -0.22% BenchmarkSprintfInt 4425 4406 -0.43% BenchmarkSprintfIntInt 5802 5762 -0.69% BenchmarkSprintfPrefixedInt 7029 6541 -6.94% BenchmarkSprintfFloat 10278 10083 -1.90% BenchmarkManyArgs 18558 17606 -5.13% BenchmarkScanInts 15592690 15415360 -1.14% BenchmarkScanRecursiveInt 25155020 25050900 -0.41% R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6921056
-
Robert Griesemer authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6996046
-
Rémy Oudompheng authored
Taken from upstream pprof. Fixes #4564. R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/6952045
-
Rémy Oudompheng authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6997043
-
Shenghou Ma authored
Fixes #4557. R=dave, rsc CC=golang-dev https://golang.org/cl/6946078
-
Dmitriy Vyukov authored
This disables checks for limited address space and unlimited stack. They are not required for Go. Fixes #4577. R=golang-dev, iant CC=golang-dev, kamil.kisiel, minux.ma https://golang.org/cl/7003045
-