Project

General

Profile

Actions

Misc #19353

closed

Drop gcc <= 6 and clang <= 9

Added by shyouhei (Shyouhei Urabe) about 1 year ago. Updated 10 months ago.

Status:
Closed
Assignee:
-
[ruby-core:111899]

Description

We test those old compilers using Ubuntu bionic. This OS is reaching its EOL.
Making them available would become harder.

I would like to drop supporting them. Any opinions?


Related issues 1 (1 open0 closed)

Related to Ruby master - Misc #20170: Drop support for GCC < 11OpenActions

Updated by jeremyevans0 (Jeremy Evans) about 1 year ago

OpenBSD/sparc64 uses gcc 4.2.1 (last GPLv2 version) as the system compiler. The sparc64 backend for clang is not yet mature (last I checked), so this would make it so Ruby 3.3+ would be unlikely to be supported on OpenBSD/sparc64 (at least, until the clang sparc64 backend matures). I would like to keep support for gcc 4.2.1 if possible, but I certainly understand if support has to be dropped.

Updated by eightbitraptor (Matthew Valentine-House) about 1 year ago

I recently encountered a CI failure when testing against C++98 due to the lack of variadic macros. internal/gc.h states that

 * @note       To  ruby-core:  remember  that   this  header  can  be  possibly
 *             recursively included  from extension  libraries written  in C++.
 *             Do not  expect for  instance `__VA_ARGS__` is  always available.
 *             We assume C99  for ruby itself but we don't  assume languages of
 *             extension libraries.  They could be written in C++98.

If we're assuming that Ruby itself targets C99, does this mean that dropping GCC6 would allow us to relax the testing requirement for C++98? 6.0 is the last version that defaults to C++98 according to this documentation

Updated by nobu (Nobuyoshi Nakada) about 1 year ago

eightbitraptor (Matthew Valentine-House) wrote in #note-2:

If we're assuming that Ruby itself targets C99, does this mean that dropping GCC6 would allow us to relax the testing requirement for C++98? 6.0 is the last version that defaults to C++98 according to this documentation

I think dropping gcc 6 and dropping C++98 are different things.

Updated by jeremyevans0 (Jeremy Evans) about 1 year ago

jeremyevans0 (Jeremy Evans) wrote in #note-1:

OpenBSD/sparc64 uses gcc 4.2.1 (last GPLv2 version) as the system compiler. The sparc64 backend for clang is not yet mature (last I checked), so this would make it so Ruby 3.3+ would be unlikely to be supported on OpenBSD/sparc64 (at least, until the clang sparc64 backend matures). I would like to keep support for gcc 4.2.1 if possible, but I certainly understand if support has to be dropped.

Since writing this, we've found out that we can compile Ruby 3.2 on OpenBSD/sparc64 using the system compiler (gcc 4.2.1), but compiling gems with C extensions fails with the system compiler and we have to use an ports compiler (gcc 8.x I think). This wasn't the case for Ruby 3.1. Considering this, I withdraw my objection to dropping gcc < 6 support, since we can switch to compiling Ruby itself with the ports compiler on OpenBSD/sparc64.

Actions #5

Updated by shyouhei (Shyouhei Urabe) 10 months ago

  • Status changed from Open to Closed

Applied in changeset git|27a21ad201b04f9af6c206836b4c7543fb69a1e7.


give up checking old compilers

These old compilers needed old OSes, which are getting EODed. We
cannot maintain healthy binary of them (building compilers on our
own is quite haed). Let us just retire them. Fixes [Bug #19353]

Actions #6

Updated by shyouhei (Shyouhei Urabe) 2 months ago

  • Related to Misc #20170: Drop support for GCC < 11 added
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0