RubyVM 클래스

RubyVM 클래스

RubyVM 모듈은 MRI에서만 존재해요. JRuby나 TruffleRuby 같은 다른 Ruby 구현에는 정의되어 있지 않아요. 이 모듈은 MRI 내부(internals)의 일부에 접근하게 해주는데, 디버깅·프로토타이핑·연구 같은 아주 제한된 목적을 위한 거예요. 일반 사용자는 쓰면 안 되고, Ruby 구현 간에 이식성(portable)도 없어요.

출처: Ruby 4.0 API

본문

상수 (Constants)

  • DEFAULT_PARAMS: VM의 기본 매개변수들을 노출해요. 이 값들을 바꿔도 VM 실행에는 영향을 주지 않아요. 명세가 안정적이지 않으니 이 값에 의존하면 안 돼요. 물론 MRI 전용 상수예요.
  • INSTRUCTION_NAMES: MRI의 바이트코드 명령어 이름 목록이에요. MRI 전용이에요.
  • OPTS: VM 빌드 옵션들의 Array예요. MRI 전용이에요.

Public Class Methods

keep_script_lines → true or false

현재 keep_script_lines 상태를 반환해요. 지금은 true 또는 false만 반환하지만, 미래에는 다른 객체를 반환할 수도 있어요. ruby 내부용·디버깅·연구용 API이므로 다른 목적으로 사용하지 마세요. 호환성은 보장되지 않아요.

keep_script_lines = true / false

keep_script_lines 플래그를 설정해요. 이 플래그가 설정되면 로드된 모든 스크립트가 인터프리터 프로세스에 기록돼요. 내부용·디버깅·연구용 API이므로 호환성은 보장되지 않아요.

stat → Hash

VM 내부의 구현 의존적인 카운터들을 담은 Hash를 반환해요. 이 해시는 메서드/상수 캐시 정보를 포함해요:

{
  :constant_cache_invalidations=>2,
  :constant_cache_misses=>14,
  :global_cvar_state=>27
}

USE_DEBUG_COUNTER가 활성화되면 디버그 카운터도 포함돼요. 해시 내용은 구현에 따라 다르고 미래에 바뀔 수 있어요. 이 메서드는 C Ruby에서만 동작할 거예요.