RubyVM 클래스
RubyVM 클래스
RubyVM 모듈은 MRI에서만 존재해요. JRuby나 TruffleRuby 같은 다른 Ruby 구현에는 정의되어 있지 않아요. 이 모듈은 MRI 내부(internals)의 일부에 접근하게 해주는데, 디버깅·프로토타이핑·연구 같은 아주 제한된 목적을 위한 거예요. 일반 사용자는 쓰면 안 되고, Ruby 구현 간에 이식성(portable)도 없어요.
출처: Ruby 3.3 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, stat(hsh) → hsh, stat(Symbol) → Numeric
VM 내부의 구현 의존적인 카운터들을 담은 Hash를 반환해요. 이 해시는 메서드/상수 캐시 정보를 포함해요:
{
:constant_cache_invalidations=>2,
:constant_cache_misses=>14,
:global_cvar_state=>27
}
USE_DEBUG_COUNTER가 활성화되면 디버그 카운터도 포함돼요. 해시 내용은 구현에 따라 다르고 미래에 바뀔 수 있어요. 이 메서드는 C Ruby에서만 동작할 거예요.