Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/build: gccgo builder for testing $GOROOT/test directory #46726

Open
mdempsky opened this issue Jun 13, 2021 · 2 comments
Open

x/build: gccgo builder for testing $GOROOT/test directory #46726

mdempsky opened this issue Jun 13, 2021 · 2 comments

Comments

@mdempsky
Copy link
Member

@mdempsky mdempsky commented Jun 13, 2021

The $GOROOT/test directory contains test files that are also tested by gccgo, but that we don't regularly test against gccgo. That means:

  1. @ianlancetaylor has to periodically spend a bunch of time updating tests for gccgo. E.g., these CLs span about 3 weeks from late Nov 2020 to mid Dec 2020: b94346e, d6abf29, a45e12f, 848dff6, 73e796c, 58768ae, bacb307, 6d2b335, ce61ccc, be10af7, 5a25a3f, 685a322, 731bb54,

  2. When updating existing tests, folks are scared to ever remove pattern alternatives from existing regexps for fear of breaking gccgo. For example, test/fixedbugs/issue11326.go has tests with 5 alternatives, even though we've only ever supported 3 type checkers (gc, gccgo, and go/types):

    var _ = 1e646456992 // ERROR "1e\+646456992 overflows float64|floating-point constant overflow|exponent too large|overflows float64|overflows"
    var _ = 1e64645699 // ERROR "1e\+64645699 overflows float64|floating-point constant overflow|exponent too large|overflows float64|overflows"
    var _ = 1e6464569 // ERROR "1e\+6464569 overflows float64|floating-point constant overflow|exponent too large|overflows float64|overflows"
    var _ = 1e646456 // ERROR "1e\+646456 overflows float64|floating-point constant overflow|exponent too large|overflows float64|overflows"
    var _ = 1e64645 // ERROR "1e\+64645 overflows float64|floating-point constant overflow|exponent too large|overflows float64|overflows"

    Additionally, the 5th alternative "overflows" is a substring of alternatives 1 and 4, so they needn't be included anymore.

I think both of these issues would be helped if we had a builder (and slowbot) that ran the $GOROOT/test tests in gccgo mode.

/cc @ianlancetaylor @golang/release

@gopherbot gopherbot added this to the Unreleased milestone Jun 13, 2021
@gopherbot gopherbot removed this from the Unreleased milestone Jun 13, 2021
@gopherbot gopherbot added this to the Gccgo milestone Jun 13, 2021
@ianlancetaylor
Copy link
Contributor

@ianlancetaylor ianlancetaylor commented Jun 13, 2021

I would support this but I'll note that many tests still do not pass with gccgo. I ran out of my self-determined time to work on updating the testsuite.

@mdempsky
Copy link
Member Author

@mdempsky mdempsky commented Jun 13, 2021

@ianlancetaylor Ack, I noticed that while re-triaging the types2 expected-failures list last night. (E.g., several of fixedbugs/issue7525*.go still ICE with gccgo.)

I'd be supportive of extending the types2 expected-failures mechanism to allow gccgo expected-failures and just checking in what we currently have as a baseline. That way we at least halt further backsliding.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants