CompUnit::PrecompilationRepository — 사전 컴파일 저장소 인터페이스

CompUnit::PrecompilationRepository — 사전 컴파일 저장소 인터페이스

미리 컴파일된(precompiled) 단위를 저장하고 불러오는 일을 추상화한 클래스가 필요해요. CompUnit::PrecompilationRepository는 그런 저장소가 갖춰야 할 메서드들의 스텁(stub)을 정의하는 역할입니다.

출처: Raku 공식 문서 — CompUnit::PrecompilationRepository

본문

이 클래스는 아래 각 메서드에 대한 스텁을 제공해요. 실제 구현은 PrecompilationRepository::File 같은 서브클래스가 제공합니다. 서브클래스는 구현에 따라 달라요.

메서드

method new-unit

method new-unit(| --> CompUnit::PrecompilationUnit:D)
{ ... }

저장을 위해 구현 특화된 새 PrecompilationUnit을 준비해요.

method load-unit

method load-unit(CompUnit::PrecompilationId $compiler-id,
            CompUnit::PrecompilationId $precomp-id)
{ ... }

지정된 컴파일러 ID와 사전 컴파일 ID의 짝으로 식별되는 사전 컴파일을 불러와요.

method load-repo-id

method load-repo-id(CompUnit::PrecompilationId $compiler-id,
            CompUnit::PrecompilationId $precomp-id)
{ ... }

지정된 사전 컴파일 파일의 의존성이 검증된 저장소(repo) ID를 반환해요.

method store-file

method store-file(CompUnit::PrecompilationId $compiler-id,
             CompUnit::PrecompilationId $precomp-id,
             IO::Path:D $path,
             :$extension = '')
{ ... }

지정된 경로의 파일을, 주어진 컴파일러 ID와 사전 컴파일 ID 아래 사전 컴파일 저장소에 저장해요.

method store-unit

method store-unit(CompUnit::PrecompilationId $compiler-id,
             CompUnit::PrecompilationId $precomp-id,
             CompUnit::PrecompilationUnit $unit)
{ ... }

주어진 사전 컴파일 단위를, 주어진 컴파일러 ID와 사전 컴파일 ID 아래 사전 컴파일 저장소에 저장해요.

method store-repo-id

method store-repo-id(CompUnit::PrecompilationId $compiler-id,
             CompUnit::PrecompilationId $precomp-id,
             :$repo-id!)
{ ... }

주어진 컴파일러 ID와 사전 컴파일 ID 아래 사전 컴파일에 대한 repo-id를 저장해요.

method delete

method delete(CompUnit::PrecompilationId $compiler-id,
              CompUnit::PrecompilationId $precomp-id)
{ ... }

개별 사전 컴파일 하나를 삭제해요.

method delete-by-compiler

method delete-by-compiler(CompUnit::PrecompilationId $compiler-id)
{ ... }

특정 컴파일러에 대한 모든 사전 컴파일을 삭제해요.