기타 Lobsters · 1일 전

더 이상 얼랭 소스로 변환 안 한다는 신흥 언어 글림 근황

핵심 요약
  • 글림(Gleam) v1.19.0에서 얼랭 소스 코드 대신 얼랭 컴파일러의 중간 표현인 'abstract forms'를 직접 생성하도록 코드 생성기가 전면 개편되었습니다.
  • 얼랭 컴파일러 전반부를 건너뛰어 빌드 속도가 대폭 빨라졌으며, 에러 발생 시 원본 글림 코드의 줄 번호가 정확히 찍히도록 개선되었습니다.
  • 개발진은 가상머신 변경 부담과 최적화 유지보수를 고려해 BEAM 바이트코드 직생성 대신 지속 가능한 중간 표현 방식을 택했다고 밝혔습니다.
요약 타입 세이프 함수형 프로그래밍 언어인 글림(Gleam)이 v1.19.0 업데이트를 통해 기존 얼랭(Erlang) 소스 코드 생성 방식을 완전히 폐기했다고 발표했습니다. 이번 작업은 기아코모 카발리에리(Giacomo Cavalieri)의 주도로 코드 생성기를 전면 재작성하면서 이뤄졌으며, 이제는 얼랭 소스 대신 얼랭 컴파일러의 중간 표현(IR)인 'Erlang abstract forms'를 직접 생성해 출력합니다. 기존에는 글림 코드가 얼랭 텍스트 소스 코드로 변환된 후 얼랭 컴파일러의 토크나이저와 파서를 거쳐야 했습니다. 하지만 바이너리 인코딩을 지원하는 추상 구문 트리 형태의 중간 표현을 직접 생성함으로써 컴파일러 전반부 과정을 건너뛰고 바로 로드할 수 있게 되었습니다. 이로 인해 빌드 성능이 대폭 향상되었을 뿐 아니라, BEAM 가상머신의 크래시 리포트 및 스택 트레이스에서 표시되는 줄 번호 메타데이터가 임시 얼랭 소스가 아닌 실제 원본 글림 소스 코드 위치와 완벽하게 일치하도록 개선되었습니다. 또한 개발진은 이를 통해 앞으로 디버거 지원 가능성이 열렸고, 글림을 단순한 소스 변환기(트랜스파일러)로 비하하던 시선에서도 완전히 벗어나게 되었다고 설명했습니다. 한편 BEAM 바이트코드를 직접 생성하지 않고 얼랭 추상 형태를 타깃으로 삼은 이유에 대해, 개발진은 가상머신 릴리스마다 변경되는 바이트코드 규격을 계속 추적하고 수십 년간 쌓인 얼랭 컴파일러의 최적화를 밑바닥부터 재현하는 것은 기업 지원이 없는 커뮤니티 프로젝트로서 리소스상 지속 가능하지 않기 때문이라고 밝혔습니다.
Sponsored · 광고