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
Labels
Builders x/build issues (builders, bots, dashboards) FeatureRequest NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@mdempsky
Copy link
Member

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

@mdempsky mdempsky added Builders x/build issues (builders, bots, dashboards) FeatureRequest labels Jun 13, 2021
@gopherbot gopherbot modified the milestones: Unreleased, Gccgo Jun 13, 2021
@ianlancetaylor
Copy link
Contributor

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

@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.

@cagedmantis cagedmantis added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Jun 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Builders x/build issues (builders, bots, dashboards) FeatureRequest NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
None yet
Development

No branches or pull requests

4 participants