본문 바로가기

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

공개SW 소식

고 언어 1.17 베타 버전 출시··· 코드 단순화 및 컴파일러 향상에 초점

support 게시글 작성 시각 2021-06-16 15:18:13 게시글 조회수 4660

2021.06.15.
ⓒCIO Korea / Matt Asay | InfoWorld

 

구글이 개발한 오픈소스 프로그래밍 언어 고(G)의 차기 릴리스인 고 1.17이 베타 버전으로 출시됐다. 보안을 위해 코드를 단순화하고, 함수 인수(function argument) 전달에 초점을 맞추는 등의 변화가 이뤄졌다.

지난 10일 출시된 이번 베타 버전의 프로덕션 릴리스는 8월로 예정돼 있다. 릴리스 노트에 따르면 고 언어에 3가지의 작은 개선이 있을 예정이다. 코드 작성을 단순화해 unsafe.Pointer의 안전 규칙에 순응할 수 있도록 하기 위함이다. 주요 개선점은 다음과 같다.
 
타입 [ ]T의 s 표현 방식이 배열 포인터인 타입 *[N]T로 전환된다. 만약 그러한 전환의 결과가 a라면, 범위 내의 상응 인덱스가 동일한 기저 요소를 참조한다: &a[i] == &s[i] for 0 <= i < N. if len(s) 가 N보다 적을 경우, 이 전환에 패닉(panic)이 이뤄진다.
 
unsafe.Add: unsafe.Add(ptr, len)는 len을 ptr에 추가하고 업데이트된 포인터인 unsafe.Pointer(uintptr(ptr) + uintptr(len))를 돌려보낸다. 
 
unsafe.Slice: 타입 *T의 ptr 표현의 경우, unsafe.Slice(ptr, len)는 타입 []T의 슬라이스를 돌려보낸다. 타입 []T의 기저 어레이는 ptr에서 시작되며 그것의 길이와 용량은 len이다. 

고 1.17은 스택보다는 레지스터를 사용해 함수 인수와 결과를 전달하는 새 방식을 도입한다. 64비트 x86 아키텍처 기반 리눅스, 맥OS, 윈도우에서 적용된다. 벤치마킹 결과, 약 5%의 성능 향상과 약 2%의 바이너리 사이즈 감소가 이뤄졌다고 구글은 밝혔다. 이 변경사항은 고 코드의 기능성에는 영향을 미치지 않지만, 호환성 가이드라인 외부의 코드에는 미미한 영향을 미칠 수 있다.

또한 컴파일러를 사용하면, 클로저가 들어있는 함수들이 인라인(inline)될 수 있다.
(후략)

 

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

 

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

맨 위로
맨 위로