스틸 뱅크 Common Lisp 2.6.7 릴리스 노트

스틸 뱅크 Common Lisp 2.6.7 릴리스 노트

SBCL 2.6.7 릴리스 개요

SBCL 2.6.7은 SB-MANUAL 컨트리뷰트를 도입하고, SIMD 지원을 확장하며, 여러 버그를 해결하고 컴파일러를 추가합니다.

새로운 컨트리뷰트: SB-MANUAL

SB-MANUAL은 섹션 정의의 docstring에 SBCL 매뉴얼을 제공하여 Slime의 M-.을 통해 대화형 탐색이나 MGL-PAX 라이브러리로 브라우징을 가능하게 합니다; 대체 렌더링은 https://fixnum.com/에서 이용할 수 있습니다.

플랫폼 지원 향상

SB-SIMD는 이제 ARM64를 지원하며, X86-64에서 AVX512 명령어가 지원되고, 두 아키텍처 모두에 추가 SIMD 지원이 추가되었습니다; ARM64에서의 SAP-REF-N 오컴파일이 수정되었고, MIPS와 LoongArch에서 루프 없이 원시 타입에 대한 INTEGER-LENGTH가 구현되었습니다.

버그 수정

READ-SUPPRESS가 T로 설정된 상태에서 READing은 더 이상 내부 기능 누수에 대한 경고를 출력하지 않습니다; 조건부 알려진 비시퀀스 인수를 가진 CONCATENATE 컴파일 시 컴파일러 타입 오류가 수정되었습니다; (EQL ) 타입은 이제 타입 시스템에서 숫자로 취급됩니다; LOG에 대한 조용한(비시그널링) NaN 입력 처리가 개선되었습니다; MULTIPLE-VALUE-CALL 오컴파일이 해결되었습니다.

최적화

상수 복소수를 로컬 함수에 전달할 때 컨스 없이 수행할 수 있습니다; 사용 가능한 경우 향상된 SIMD 루틴이 UTF-8 변환에 사용됩니다; COUNT의 컴파일러 변환은 더 다양한 키워드 인수에 적용됩니다; SB-ALIEN:DEREF에서 최소 하나 이상의 중복 명령어가 제거되었습니다; 컴파일러의 스파세트 구현이 실제 워크로드에서 더 나은 성능을 위해 조정되었습니다.

문서 업데이트

매뉴얼은 이제 SB-MANUAL:@FOREIGN-FUNCTION-INTERFACE에서 배열이 행 주요(열 주요가 아님)라고 올바르게 명시합니다; 내부적으로 docstring은 Markdown의 하위 집합을 따르지만 DOCUMENTATION은 일부 마크업을 제거합니다; 선언을 위한 별도 인덱스가 추가되었습니다; 많은 오타와 타입세팅 문제가 수정되었습니다.

커뮤니티 토론

한 댓글 작성자는 SIMD 추가 사항을 언급하며 다음과 같이 물었습니다: "누가 SBCL에서 SIMD가 어떻게 작동하는지 아십니까? 이것은 코드젠 레이어에 있습니까? 즉, 자동 벡터화하거나 이와 유사한 작업을 할 수 있습니까? 아니면 이러한 인트린시크를 명시적으로 요청해야 합니까?" 릴리스 노트는 ARM64와 AVX512에 대한 SB-SIMD 컨트리뷰트 지원을 설명하며, 이 기능이 자동 벡터화가 아닌 컨트리뷰트를 통해 제공됨을 나타냅니다.

Sources