]> Cypherpunks.ru repositories - gostls13.git/commit
sort: simplify bootstrap
authorRuss Cox <rsc@golang.org>
Tue, 30 Apr 2019 19:23:14 +0000 (15:23 -0400)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 2 May 2019 20:30:31 +0000 (20:30 +0000)
commit0a338f75d4c64ba72cf586a28ec1a674c8b4bb77
treefb096f1073d09a1a8c38aade73acb2b2e10170ba
parentd2765de863355f8ae6e4354ae64c2099cd850382
sort: simplify bootstrap

We compile package sort as part of the compiler bootstrap,
to make sure the compiler uses a consistent sort algorithm
no matter what version of Go it is compiled against.
(This matters for elements that compare "equal" but are distinguishable.)

Package sort was compiled in such a way as to disallow
sort.Slice entirely during bootstrap (at least with some compilers),
while cmd/internal/obj was compiled in such a way as to
make obj.SortSlice available to all compilers, precisely because
sort.Slice was not. This is all highly confusing.
Simplify by making sort.Slice available all the time.

Followup to CL 169137 and #30440
(and also CL 40114 and CL 73951).

Change-Id: I127f4e02d6c71392805d256c3a90ef7c51f9ba0c
Reviewed-on: https://go-review.googlesource.com/c/go/+/174525
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
13 files changed:
src/cmd/compile/internal/gc/iexport.go
src/cmd/compile/internal/gc/main.go
src/cmd/compile/internal/gc/obj.go
src/cmd/compile/internal/gc/pgen.go
src/cmd/compile/internal/types/sym_test.go
src/cmd/internal/obj/bootstrap.go [deleted file]
src/cmd/internal/obj/objfile.go
src/go/build/deps_test.go
src/sort/slice.go
src/sort/slice_go113.go [new file with mode: 0644]
src/sort/slice_go14.go [new file with mode: 0644]
src/sort/slice_go18.go [moved from src/cmd/internal/obj/sort.go with 55% similarity]
src/sort/slice_pre113.go [deleted file]