4.11. 컴파일러 및 개발 도구
새 모듈 스트림: swig:4.1
RHEL 8.8에는 새로운 모듈 스트림인 swig:4.1
로 사용할 수 있는 SWIG(Simplified Wrapper and Interface Generator) 버전 4.1이 도입되었습니다.
RHEL 8.4에서 릴리스된 SWIG 4.0
과 비교, SWIG 4.1
:
-
Node.js
버전 12에서 18까지의 지원을 추가하고 6 개 미만의Node.js
버전을 지원하지 않습니다. -
PHP 8
에 대한 지원을 추가합니다. -
PHP
래핑은PHP
C API를 통해 전적으로 처리되며 더 이상 기본적으로.php
래퍼를 생성하지 않습니다. -
Perl 5.8.0
이상 버전만 지원합니다. -
Python
버전 3.9에 대한 지원이 3.11에 추가되었습니다. -
Python 3.3
이상Python 3
버전 및Python 2.7
만 지원합니다. -
Python
의 다양한 메모리 누수에 대한 수정 사항을 제공합니다 - 생성된 코드. - C99, C++11, C++14 및 C++17 표준에 대한 지원을 개선하고 C++20 표준 구현을 시작합니다.
-
C++
std::unique_ptr
포인터 클래스에 대한 지원을 추가합니다. - C++ 템플릿 처리 시 몇 가지 개선 사항이 포함되어 있습니다.
- 다양한 경우 C++ 선언 사용을 수정합니다.
swig:4.1
모듈 스트림을 설치하려면 다음을 사용합니다.
# yum module install swig:4.1
이전 swig
모듈 스트림에서 업그레이드하려면 이후 스트림으로 전환 을 참조하십시오.
swig
모듈 스트림의 지원 기간에 대한 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클을 참조하십시오.
새로운 모듈 스트림: j Galaxyb:4
RHEL 8.8에서는 Jakarta XML Binding (JAXB) 4를 새로운 jvnc b:4
모듈 스트림으로 도입했습니다. CloudEventB는 개발자가 Java 클래스를 XML 표현에 매핑할 수 있도록 하는 프레임워크입니다.
j Galaxy b:4
모듈 스트림을 설치하려면 다음을 사용합니다.
# yum module install jaxb:4
Bugzilla:2055539
GCC Toolset 12 업데이트
GCC Toolset 12는 최신 버전의 개발 도구를 제공하는 컴파일러 도구 세트입니다. AppStream
리포지토리에서 소프트웨어 컬렉션 형태로 애플리케이션 스트림으로 사용할 수 있습니다.
RHEL 8.8에 도입된 주요 변경 사항은 다음과 같습니다.
- GCC 컴파일러가 12.2.1 버전으로 업데이트되었으며 업스트림 GCC에서 사용할 수 있는 많은 버그 수정 및 개선 사항을 제공합니다.
-
Annobin
이 버전 11.08로 업데이트되었습니다.
다음 툴 및 버전은 GCC Toolset 12에서 제공합니다.
툴 | 버전 |
---|---|
GCC | 12.2.1 |
GDB | 11.2 |
binutils | 2.38 |
dwz | 0.14 |
annobin | 11.08 |
GCC Toolset 12를 설치하려면 root로 다음 명령을 실행합니다.
# yum install gcc-toolset-12
GCC Toolset 12에서 도구를 실행하려면 다음을 수행하십시오.
$ scl enable gcc-toolset-12 tool
GCC Toolset 12의 툴 버전이 다음 툴의 시스템 버전을 재정의하는 쉘 세션을 실행하려면 다음을 수행하십시오.
$ scl enable gcc-toolset-12 bash
자세한 내용은 GCC Toolset 12 를 참조하십시오.
glibc
에 추가된 보안 개선 사항
SafeLinking
기능이 glibc
에 추가되었습니다. 결과적으로 allocator의 스레드 로컬 캐시를 포함하여 특정 단일 링크 목록 손상에 대한 malloc
제품군의 보호 기능이 향상됩니다.
glibc
동적 로더 알고리즘 개선
공유 오브젝트를 처리하기 위한 glibc
동적 로더의 O(n3) 알고리즘은 공유 오브젝트 종속 항목이 중첩될 때 애플리케이션 시작 속도가 느려지고 종료 시간이 발생할 수 있습니다. 이번 업데이트를 통해 DFS(depth-first search)를 사용하도록 동적 로더 알고리즘이 개선되었습니다. 결과적으로 공유 개체 종속성이 중첩되는 경우 애플리케이션 시작 및 종료 시간이 크게 향상됩니다.
glibc
런타임 튜닝 가능 glibc.rtld.dynamic_sort
를 사용하여 동적 로더의 O(n3) 알고리즘을 선택할 수 있습니다. 튜닝 가능 항목의 기본값은 새 DFS 알고리즘을 나타내는 2입니다. 호환성을 위해 이전 O(n3) 알고리즘을 선택하려면 튜닝 가능 항목을 1로 설정합니다.
# GLIBC_TUNABLES=glibc.rtld.dynamic_sort=1 # export GLIBC_TUNABLES
Bugzilla:1159809
LLVM Toolset 버전 15.0.7로 업데이트
LLVM Toolset이 15.0.7 버전으로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.
-
-Wimplicit-function-declaration
및-Wimplicit-int
경고는 기본적으로 C99 이상에서 활성화됩니다. 이러한 경고는 Clang 16 이상에서 기본적으로 오류가 발생합니다.
rust Toolset 버전 1.66.1로 다시 시작
Rust Toolset이 1.66.1 버전으로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.
-
thread::scope
API는 새로 생성된 스레드에서 로컬 변수를 안전하게 임대할 수 있는 어휘 범위를 생성하며, 해당 스레드는 범위가 종료되기 전에 모두 종료되도록 합니다. -
hint::black_box
API는 컴파일러 최적화에 장벽을 추가하여, 그렇지 않으면 최적화될 수 있는 벤치마크에서 동작을 유지하는 데 유용합니다. -
이제
.await
키워드는IntoFuture
특성을 사용한 변환을 수행하며, 이는IntoIterator
간의 관계와 유사합니다. - GAT(Generic associated types)를 사용하면 일반 매개변수로 형식 별칭을 포함할 수 있으므로 유형과 수명 모두에서 새로운 추상화를 사용할 수 있습니다.
-
새로운
let
-else
문을 사용하면 조건부 패턴 일치를 사용하여 로컬 변수를 바인딩하고, 패턴이 일치하지 않을 때 디버지다른
블록을 실행할 수 있습니다. -
레이블 블록에서는
break
문을 사용하여 선택적으로 표현식 값을 포함하여 블록의 끝으로 이동할 수 있습니다. -
rust-analyzer
는 많은 편집기에서 Rust 지원을 가능하게 하는 새로운 언어 서버 프로토콜 구현입니다. 이렇게 하면 이전rls
패키지가 교체되지만rust-analyzer
로 마이그레이션하도록 편집기 구성을 조정해야 할 수 있습니다. -
grarb
.toml
에서 종속성을 제거하기 위한 새로운 10.0.0.1remove
하위 명령이 있습니다.
Go Toolset rebased to 버전 1.19.4
Go Toolset 버전이 1.19.4로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.
다음 패키지에 대한 보안 수정:
-
crypto/tls
-
MIME/multipart
-
net/http
-
path/filepath
-
다음의 버그 수정:
-
Go
명령 - 링커
- 런타임
-
crypto/x509
패키지 -
net/http
패키지 -
시간
패키지
-
Bugzilla:2174430
이제 tzdata
패키지에 /usr/share/zoneinfo/leap-seconds.list
파일이 포함됩니다.
이전에는 tzdata
패키지에서 /usr/share/zoneinfo/leapseconds
파일만 제공했습니다. 일부 애플리케이션은 /usr/share/zoneinfo/leap-seconds.list
파일에서 제공하는 대체 형식에 의존하여 결과적으로 오류가 발생합니다.
이번 업데이트를 통해 이제 tzdata
패키지에 두 형식의 형식을 사용하는 애플리케이션을 지원하는 두 파일이 모두 포함되어 있습니다.