루비 2.6.0 릴리스

작성자: naruse (2018-12-25)
번역자: shia

루비 2.6.0의 릴리스를 알리게 되어 기쁩니다.

이는 여러 새 기능과 기능 향상을 포함하며, 주목할 만한 것은 아래와 같습니다.

  • 새로운 JIT 컴파일러.
  • RubyVM::AbstractSyntaxTree 모듈.
JIT [Experimental]

루비 2.6은 JIT(Just-in-time) 컴파일러의 첫 구현체를 포함합니다.

JIT 컴파일러는 루비 프로그램의 실행 성능을 향상시키는 것이 목적입니다. 다른 언어의 일반적인 JIT 컴파일러와는 다르게, 루비의 JIT 컴파일러는 C 코드를 디스크에 출력한 뒤, 일반적인 C 컴파일러 프로세스를 사용해 네이티브 코드를 생성하도록 합니다. Vladimir Makarov가 작성한 MJIT 구조를 참고하세요.

JIT 컴파일을 사용하려면 --jit 옵션을 커맨드라인이나 $RUBYOPT 환경 변수에 지정합니다. --jit-verbose=1을 지정하면 실행 중인 JIT 컴파일의 추가적인 정보를 출력합니다. 다른 옵션에 대해서는 ruby --help문서를 확인하세요.

현재 JIT 컴파일러는 루비가 gcc나 clang, Microsoft VC++로 빌드되었으며, 해당 컴파일러가 런타임에서 사용 가능한 경우에만 이용할 수 있습니다.

2.6.0에서는 Optcarrot이라는 CPU 성능을 요구하는 벤치마크에서 루비 2.5에 비해 1.7배의 성능 향상을 이루었습니다. 하지만 여전히 실험적인 기능이며 Rails 애플리케이션 같은 메모리를 요구하는 작업에서는 이득이 없을 수도 있습니다. 더 자세한 설명은 Ruby 2.6 JIT - Progress and Future(영문)를 참고하세요.


https://www.ruby-lang.org/ko/news/2018/12/25/ruby-2-6-0-released/

출처

2018년 12월


그리고 2.7버전인 지금까지 실험적기능 ㅋㅋ