git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/3] ci: avoid bare "gcc" for osx-gcc job

From
Jeff King <peff@peff.net>
Date
May 10, 2024, 22:02 UTC
Message-ID
<20240510220228.GA1962678@coredump.intra.peff.net>
In-Reply-To
<CAO_smVhE25ZQqc1f_fx9oPX-kH8SHxwEc=mqOAi-xQ91+pF1CA@mail.gmail.com>
On Fri, May 10, 2024 at 01:32:15PM -0700, Kyle Lippincott wrote:
Show 15 quoted lines
> On Thu, May 9, 2024 at 9:24 AM Jeff King <peff@peff.net> wrote:
> >
> > On macOS, a bare "gcc" (without a version) will invoke a wrapper for
> > clang, not actual gcc. Even when gcc is installed via homebrew, that
> > only provides version-specific links in /usr/local/bin (like "gcc-13"),
> > and never a version-agnostic "gcc" wrapper.
> >
> > As far as I can tell, this has been the case for a long time, and this
> > osx-gcc job has largely been doing nothing.
> 
> If it's been doing nothing (which I interpreted as "it's doing the
> same thing as osx-clang"), and we've not noticed any issues with that,
> do we need the job at all? Should we just rely on clang and not test
> with gcc on macOS, since it's not a compiler that's provided by the
> platform anymore?

Your interpretation is correct; it was just doing the same thing as osx-clang. As I said earlier, I'd be fine with just dropping it. It's possible that there is value in testing there with gcc (that we've been missing out on), but to know that we'd have to understand the original reasons it was added.

Looks like it came from 889cacb689 (ci: configure GitHub Actions for CI/PR, 2020-04-11), but that was just porting from the Azure pipelines config. That system got its osx_gcc job from 27be78173d (Add a build definition for Azure DevOps, 2019-01-29), but that in turn was just porting the Travis config. The Travis job came from 522354d70f (Add Travis CI support, 2015-11-27), and there's no specific rationale given. But it used a build matrix of (os, compiler), so we got all four of {linux,osx}-{gcc,clang}. So it mostly seems like "more is better" and that was the easiest way to define it.

I do think there's value in testing with both clang and gcc in general[1]. And there is _some_ code which is compiled only on macos and not elsewhere. So this would be our only chance for gcc to see it. But it seems like a pretty small return for an entire parallel job. Especially as I do not think it has uncovered anything interesting in the past (even when it was working).

-Peff
[1] Another quirk is that we run the whole test suite for both
    compilers, which is probably overkill. The main value in comparing
    gcc vs clang is that we don't use any constructs that the compiler
    complains about. It's _possible_ for there to be a construct that
    the compiler does not notice but which causes a runtime difference
    (say, undefined behavior which happens to work out on one compiler),
    but I think we're again hitting diminishing returns.
Previous: Junio C HamanoNext: Junio C Hamano
Message 8 of 31 in “un-breaking osx-gcc ci job”
  1. 0/3 un-breaking osx-gcc ci jobJeff King, May 9, 2024
  2. 1/3 ci: drop mention of BREW_INSTALL_PACKAGES variableJeff King, May 9, 2024
  3. 2/3 ci: avoid bare "gcc" for osx-gcc jobJeff King, May 9, 2024
  4. Patrick SteinhardtMay 10, 2024
  5. Jeff KingMay 10, 2024
  6. Kyle LippincottMay 10, 2024
  7. Junio C HamanoMay 10, 2024
  8. Jeff KingMay 10, 2024
  9. Junio C HamanoMay 10, 2024
  10. Patrick SteinhardtMay 11, 2024
  11. Jeff KingMay 16, 2024
  12. Jeff KingMay 16, 2024
  13. Patrick SteinhardtMay 16, 2024
  14. Jeff KingMay 17, 2024
  15. Patrick SteinhardtMay 17, 2024
  16. Junio C HamanoMay 17, 2024
  17. Jeff KingMay 23, 2024
  18. Junio C HamanoMay 23, 2024
  19. 3/3 ci: stop installing "gcc-13" for osx-gccJeff King, May 9, 2024
  20. Patrick SteinhardtMay 10, 2024
  21. Jeff KingMay 10, 2024
  22. Patrick SteinhardtMay 11, 2024
  23. Patrick SteinhardtMay 16, 2024
  24. Jeff KingMay 17, 2024
  25. Patrick SteinhardtMay 17, 2024
  26. Patrick SteinhardtMay 17, 2024
  27. PhilipMay 26, 2024
  28. Junio C HamanoMay 26, 2024
  29. Patrick SteinhardtMay 27, 2024
  30. Jeff KingMay 29, 2024
  31. Junio C HamanoMay 9, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.