본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

고(Go) 1.17 출시··· “언어 및 컴파일러 개선”

support 게시글 작성 시각 2021-08-19 12:47:11 게시글 조회수 4260

2021.08.19.
ⓒCIO Korea / Paul Krill | InfoWorld

 

구글에서 개발한 오픈소스 프로그래밍 언어 ‘고(GO)’의 최신 버전이 8월 16일(현지 시각) 프로덕션 릴리즈로 출시됐다. 
‘고 1.17(Go 1.17)’ 릴리즈 노트에 따르면 unsafe.Pointer 안전 규칙을 준수하는 코드 작성 간소화를 포함해 언어와 관련한 3가지 작은 개선사항이 있다. 다음과 같다. 

• 슬라이스에서 배열 포인터로의 변환: s 유형의 표현식 []T는 이제 배열 포인터 유형 *[N]T로 변환될 수 있다. 만약 이러한 변환의 결과가 a라면 범위에 있는 해당 인덱스는 동일한 기본 요소를 참조한다(&a[i] == &s[i] for 0 <= i < N). 단 if len(s)이 N보다 작으면 변환 오류가 발생한다. 

• unsafe.Add: unsafe.Add(ptr, len)는 ptr에 len을 추가하고, 업데이트된 포인터 unsafe.Pointer(uintptr(ptr) + uintptr(len))를 반환한다. 

• unsafe.Slice: ptr 유형의 표현식 *T에서 unsafe.Slice(ptr, len)는 기본 배열이 ptr에서 시작하고, 길이와 용량이 len인 유형 []T의 슬라이스를 반환한다. 

고 1.17에서 컴파일러는 스택 대신 레지스터를 사용하여 함수 인수와 결과를 패싱하는 새로운 방법을 구축했다. 이 기능은 64-비트 x86 아키텍처의 리눅스, 맥OS, 윈도우에서 사용할 수 있다.

개발팀에 의하면 벤치마크 결과 약 5%의 성능 향상과 2%가량의 바이너리 크기 감소가 나타났다. 이 변경사항은 안전한 고(GO) 코드의 기능에는 영향을 미치지 않는다. 
(후략)

 

[원문 기사 : https://www.ciokorea.com/news/205164 ]

 

※ 본 내용은 한국아이디지(주) (https://www.idg.co.kr/)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒ 2020 International Data Group. 무단전재 및 재배포 금지. 

맨 위로
맨 위로