Skip to main content
For the complete documentation index, see llms.txt

Compact 커맨드라인 도구 사용법

Compact 커맨드라인 도구로 Compact 툴체인의 컴파일러, 포매터, fixup 도구를 실행할 수 있습니다. 또한 툴체인 자체나 커맨드라인 도구 자체를 업데이트할 수도 있습니다.

NAME

Compact 커맨드라인 도구

OVERVIEW

Compact 스마트 컨트랙트 개발에 필요한 유틸리티 모음입니다.

SYNOPSIS

compact options ...

compact command options ..

DESCRIPTION

options 플래그는 선택 사항이며, 아래 OPTIONS 섹션에서 자세히 설명합니다.

Compact 커맨드라인 도구는 _command_를 인자로 받아 해당 프로그램을 실행합니다. 지원되는 command 목록은 아래와 같으며, 복잡한 것들은 해당 command 이름 아래에서 상세히 설명합니다:

check

원격 서버에서 업데이트를 확인합니다 [aliases: ch].

update

Compact 툴체인을 최신 버전 또는 지정된 버전으로 업데이트합니다 [aliases: u, up].

format

Compact 파일을 포매팅합니다 [aliases: f, fmt].

fixup

Compact 파일에 fixup 변환을 적용합니다 [aliases: fx, fix].

list

사용 가능한 Compact 버전을 나열합니다 [aliases: l].

clean

설치된 모든 Compact 버전을 삭제합니다 [aliases: cl].

self

Compact 도구 자체를 관리하는 명령어입니다 [aliases: s].

compile

컴파일러를 호출합니다 [aliases: c].

help

커맨드라인 도구의 도움말을 출력합니다.

OPTIONS

아래 옵션은 모든 command에 적용됩니다:

--directory directorypath

Compact 아티팩트 디렉토리를 설정한 뒤 종료합니다.

기본값은 $HOME/.compact입니다. 디렉토리가 없으면 자동으로 생성됩니다. 환경 변수로도 설정할 수 있습니다.

[env: COMPACT_DIRECTORY=] [default: /Users/username/.compact]

--help

도구의 도움말 또는 지정된 _command_의 도움말을 출력한 뒤 종료합니다.

--version

도구의 버전 또는 _command_의 버전을 출력한 뒤 종료합니다.

CHECK

Synopsis: compact check options

원격 서버에서 Compact 툴체인의 업데이트를 확인합니다.

Compact 툴체인이 설치되지 않은 상태에서 다음을 실행하면:

compact check

결과는 다음과 같습니다:

compact: no version installed.
compact: Latest version available: 0.28.0.

여기서 0.28.0은 원격 서버에서 사용 가능한 최신 Compact 툴체인 버전입니다.

이전 버전의 Compact 툴체인이 설치된 상태에서 다음을 실행하면:

compact check

결과는 다음과 같습니다:

compact: aarch64-darwin -- Update Available -- 0.26.0
compact: Latest version available: 0.28.0.

여기서 0.26.0은 설치된 버전이고 0.28.0은 최신 버전입니다. update 명령어로 이 버전으로 업데이트할 수 있습니다. aarch64-darwin은 사용자 머신 아키텍처에 맞게 선택된 Compact 툴체인 바이너리를 나타냅니다.

UPDATE

Synopsis: compact update options compactversion

버전을 지정하지 않으면 Compact 툴체인을 최신 버전으로 업데이트하고, 버전을 지정하면 해당 _compactversion_으로 업데이트합니다.

_compactversion_은 0.30.1 같은 전체 버전이나, 0.30 같은 major.minor 접두사(해당 minor 버전의 최신 patch 릴리스로 해석), 또는 0 같은 major 접두사(해당 major 버전의 최신 minor/patch 릴리스로 해석)로 지정할 수 있습니다.

한 버전에서 다른 버전으로 전환할 때, 기본적으로 새로 설치된 컴파일러 버전이 default로 설정됩니다. --no-set-default 옵션으로 이 동작을 변경할 수 있습니다.

컴파일러가 이미 다운로드되어 있으면 다시 다운로드하지 않습니다.

이 command에만 적용되는 옵션은 다음과 같습니다:

--no-set-default

새로 설치한 컴파일러를 default로 설정하지 않습니다.

아래에 간단한 사용 예시를 소개합니다. 원격 서버의 최신 Compact 툴체인이 0.28.0이고 마지막으로 업데이트한 버전이 0.26.0인 상태에서 다음을 실행하면:

compact update

결과는 다음과 같습니다:

compact: aarch64-darwin -- 0.28.0 -- installed
compact: aarch64-darwin -- 0.28.0 -- default.

최신 버전으로 업데이트한 후 다시 실행하면:

compact update

결과는 다음과 같습니다:

compact: aarch64-darwin -- 0.28.0 -- already installed
compact: aarch64-darwin -- 0.28.0 -- default.

다음과 같이 실행하면:

compact update --no-set-default 

결과는 다음과 같습니다:

compact: aarch64-darwin -- 0.28.0 -- already installed

이전 버전으로 전환하려면 다음을 실행합니다:

compact update 0.26.0

결과는 다음과 같습니다:

compact: aarch64-darwin -- 0.26.0 -- already installed
compact: aarch64-darwin -- 0.26.0 -- default.

default를 변경하지 않으려면 다음을 실행합니다:

compact update --no-set-default 0.26.0

결과는 다음과 같습니다:

compact: aarch64-darwin -- 0.26.0 -- already installed

COMPILE

Synopsis: compact compile +version options sourcepath targetpath

_sourcepath_에 있는 Compact 소스 프로그램을 지정된 Compact 툴체인 버전 _version_으로 컴파일합니다. 버전을 지정하지 않으면 설치된 Compact 툴체인의 default 버전이 사용됩니다. _options_는 선택 사항입니다. _+version_이 존재하지 않으면 설치된 default 컴파일러와 커맨드라인 도구 _options_를 모두 사용할 수 있고, 존재하면 지정한 컴파일러의 _options_만 사용할 수 있습니다. _targetpath_는 컴파일러 출력의 대상 디렉토리입니다. 자세한 사용법은 컴파일러 사용법 페이지를 참고하세요.

+version+0.30.0처럼 지정하면 compact compile은 해당 버전의 툴체인으로 프로그램을 컴파일합니다. 버전을 지정하지 않으면 compact update로 설정된 default 툴체인 버전이 사용됩니다. 부분 버전 지정은 지원되지 않으며, +0.30.0은 가능하지만 +0.30은 불가능합니다. 요청한 툴체인 버전이 설치되지 않았으면 compact compile이 오류와 함께 실패합니다. 먼저 compact update _version_을 실행하여 설치하세요.

Compact 툴체인 0.26.00.30.0이 설치되어 있고 0.26.0이 default인 상태에서 다음을 실행하면:

compact compile +0.27.0 --language-version

결과는 다음과 같습니다:

Error: Failed to run compactc

Caused by:
0: Couldn't find compiler for aarch64-darwin (0.27.0)
1: Directory does not exist

다음을 실행하면:

compact compile --language-version

결과는 0.18.0입니다(툴체인 0.26.0에 해당하는 언어 버전). 그리고 다음을 실행하면:

compact compile +0.30.0 --language-version

결과는 0.22.0입니다(툴체인 0.30.0에 해당하는 언어 버전).

다음을 실행하면:

compact compile +version --help

특정 버전 +version의 컴파일러 도움말을 출력합니다. 반면:

compact compile --help

Compact 커맨드라인 도구에 지정된 컴파일러 도움말을 출력합니다.

FORMAT

Synopsis: compact format options files

설치된 format-compact 도구를 사용하여 하나 이상의 Compact 소스 파일을 포매팅합니다. _files_에는 개별 .compact 파일이나 디렉토리를 지정할 수 있습니다. 디렉토리를 지정하면 그 안의 모든 .compact 파일을 .gitignore 규칙을 준수하며 재귀적으로 탐색합니다. _files_를 지정하지 않으면 현재 디렉토리(.)가 사용됩니다.

이 command에만 적용되는 옵션은 다음과 같습니다:

--check

파일을 수정하지 않고 이미 포매팅되었는지 확인합니다. 변경이 필요한 파일에 대해 diff를 출력하고 0이 아닌 상태 코드로 종료합니다. CI 파이프라인에서 소스 파일을 변경하지 않고 포매팅을 검증할 때 유용합니다.

--verbose

처리된 각 파일과 결과(formatted, unchanged 또는 오류)를 출력합니다. 이 플래그가 없으면 실패만 보고됩니다.

포매터 도구 자체에도 추가 플래그가 있습니다. 자세한 내용은 포매터 사용법 페이지를 참고하세요.

아래에 간단한 사용 예시를 소개합니다. **src/**에 올바른 Compact 소스 파일이 있다고 가정하고, 모든 파일을 in-place로 포매팅합니다:

compact format src/

파일을 수정하지 않고 포매팅을 확인합니다(CI에 적합):

compact format --check src/

단일 파일을 상세 모드로 포매팅합니다:

compact format --verbose src/counter.compact

src/test.compact에 잘못된 Compact 프로그램이 있는 경우, 다음을 실행하면:

compact format src/test.compact

src/test.compact의 Compact 프로그램이 컴파일되지 못하는 원인을 설명하는 오류 메시지와 함께 종료됩니다.

FIXUP

Synopsis: compact fixup options files

설치된 fixup-compact 도구를 사용하여 하나 이상의 Compact 소스 파일에 fixup 변환을 적용합니다. 공백과 스타일만 변경하는 format과 달리, fixup은 최근 언어 변경 사항을 반영하여 소스 프로그램을 업데이트합니다. _files_에는 개별 .compact 파일이나 디렉토리를 지정할 수 있습니다. 디렉토리를 지정하면 그 안의 모든 .compact 파일을 .gitignore 규칙을 준수하며 재귀적으로 탐색합니다. _files_를 지정하지 않으면 현재 디렉토리(.)가 사용됩니다.

이 command에만 적용되는 옵션은 다음과 같습니다:

--check

파일을 수정하지 않고 fixup이 필요한지 확인합니다. 변경이 필요한 파일에 대해 diff를 출력하고 0이 아닌 상태 코드로 종료합니다. CI 파이프라인에서 소스 파일이 최신 상태인지 검증할 때 유용합니다.

fixup 도구 자체에도 추가 플래그가 있습니다. 자세한 내용은 fixup 사용법 페이지를 참고하세요.

아래에 간단한 사용 예시를 소개합니다. **src/**에 올바른 Compact 소스 파일이 있다고 가정하고, **src/**의 모든 파일에 fixup을 in-place로 적용합니다:

compact fixup src/

파일을 수정하지 않고 fixup이 필요한지 확인합니다(CI에 적합):

compact fixup --check src/

Uint 범위 끝점 조정을 포함하여 fixup을 적용합니다:

compact fixup --update-Uint-ranges src/

src/test.compact에 잘못된 Compact 프로그램이 있는 경우, 다음을 실행하면:

compact fixup src/test.compact

src/test.compact의 Compact 프로그램이 컴파일되지 못하는 원인을 설명하는 오류 메시지와 함께 종료됩니다.

LIST

Synopsis: compact list options

옵션을 지정하지 않으면 원격 서버에서 사용 가능한 Compact 툴체인 버전을 나열합니다. --installed 옵션을 지정하면 로컬에 설치된 Compact 툴체인 버전을 나열합니다.

이 command에만 적용되는 옵션은 다음과 같습니다:

--installed

설치된 버전을 표시한 뒤 종료합니다.

아래에 간단한 사용 예시를 소개합니다. 원격 서버의 최신 Compact 툴체인 버전이 0.28.0인 상태에서 다음을 실행하면:

compact list

결과는 다음과 같습니다:

compact: available versions

→ 0.28.0 - x86_macos, aarch64_macos, x86_linux
0.26.0 - x86_macos, aarch64_macos, x86_linux
0.25.0 - x86_macos, aarch64_macos, x86_linux
0.24.0 - x86_macos, aarch64_macos, x86_linux
0.23.0 - aarch64_macos, x86_linux
0.22.0 - x86_macos, x86_linux

로컬에 0.26.00.28.0이 설치된 상태에서 다음을 실행하면:

compact list --installed

결과는 다음과 같습니다:

compact: installed versions

→ 0.28.0
0.26.0

오른쪽 화살표는 버전을 지정하지 않았을 때 Compact 커맨드라인 도구가 사용할 버전을 나타냅니다.

CLEAN

Synopsis: compact clean options

옵션을 지정하지 않으면 로컬에 설치된 모든 Compact 툴체인 버전을 삭제합니다. --cache를 지정하면 캐시 디렉토리도 함께 삭제합니다. --keep-current를 지정하면 현재 default로 설정된 버전을 유지합니다.

버전 디렉토리 삭제 외에도, compact clean은 bin 디렉토리에서 compactc, format-compact, fixup-compact 심볼릭 링크를 제거합니다. --keep-current 없이 compact clean을 실행하면 compact update로 버전을 다시 설치하기 전까지 툴체인을 사용할 수 없습니다. --keep-current를 사용하면 유지되는 버전과 함께 심볼릭 링크도 보존됩니다.

이 command에만 적용되는 옵션은 다음과 같습니다:

--cache

캐시 디렉토리도 함께 삭제합니다.

--keep-current

현재 사용 중인 버전을 유지합니다.

아래에 간단한 사용 예시를 소개합니다. Compact 툴체인 0.26.00.28.00이 로컬에 설치된 상태에서 다음을 실행하면:

compact clean --cache

결과는 다음과 같습니다:

compact: removed /Users/username/Library/Caches/compactc/github_cache.json
compact: removing versions
compact: removed 0.28.0
compact: removed 0.26.0

이제 다음을 실행하면:

compact list --installed

결과는 다음과 같습니다:

compact: installed versions

no versions available on this machine
try: compact update

이제 다음을 실행하면:

compact update
compact update 0.26.0
compact clean --keep-current

결과는 다음과 같습니다:

compact: removing versions
compact: removed 0.28.0
compact: kept 0.26.0

SELF

Synopsis: compact self options subcommand

Compact 커맨드라인 도구 자체를 관리합니다.

다음을 실행하면:

compact self check

Compact 커맨드라인 도구의 새 버전이 있는지 확인합니다. 최신 버전이 0.4.0이고 이미 설치된 상태라면 결과는 다음과 같습니다:

compact: compact -- 0.4.0 -- Up to date

최신 버전이 설치되지 않은 경우 결과는 다음과 같습니다:

compact: compact -- Update available -- 0.5.0

다음을 실행하면:

compact self update

Compact 커맨드라인 도구를 최신 버전으로 업데이트합니다.

이미 최신 버전인 경우 compact self update를 실행하면(최신 버전이 0.5.0이라면) 결과는 다음과 같습니다:

compact: compact -- 0.5.0 -- Up to date