Compact 개발자 도구를 소개합니다
Compact 개발자 도구의 출시를 발표하게 되어 기쁩니다!
오늘 compact 명령줄 도구를 출시합니다. 이 도구는 Compact 툴체인(예: 컴파일러)을 설치하고, 최신 상태로 유지하며, 툴체인 도구 자체를 실행하는 데 사용됩니다.
개발자 도구는 이제 툴체인을 설치 및 업데이트하고 Compact 컴파일러 등 다른 Compact 도구를 호출하는 "공식" 지원 방법입니다.
혼동을 피하기 위해 "Compact 툴체인"과 "Compact 개발자 도구"를 구분하여 설명하겠습니다. 툴체인에는 컴파일러가 포함되며, 향후 특정 Compact 언어 버전에 맞춘 다른 도구도 추가될 예정입니다. 개발자 도구에는 업데이터가 포함되며, 향후 다양한 언어 버전에서 공통으로 작동하는 도구를 추가로 지원할 예정입니다. 초기 릴리스에서 Compact 개발자 도구는 주로 툴체인 설치 관리에 사용되지만, 앞으로 더 많은 도구가 추가됩니다.
아직 Compact 툴체인의 새 릴리스는 없지만, 이미 새 개발자 도구를 사용하여 현재 버전의 컴파일러를 설치하고 호출할 수 있습니다.
The Old Toolchain Installation Method
이번 릴리스 이전까지 Compact 툴체인 설치는 수동적이고 번거로운 과정이었습니다:
- 특정 컴파일러 버전과 플랫폼 아키텍처에 맞는 ZIP 파일을 다운로드해야 했습니다
- PATH에 포함된 디렉토리에 압축을 해제해야 했습니다
- macOS에서는 두 바이너리(컴파일러, ZK 키 생성기)에 실행 권한을 별도로 부여해야 했습니다
새 툴체인 릴리스가 나올 때마다 이 과정을 반복해야 했습니다. 여러 버전을 동시에 설치하고 관리하는 것도 번거로웠습니다.
The New Toolchain Installation Method
새로운 Compact 툴체인 설치 방법은 compact 명령줄 도구를 한 번 설치하는 것에서 시작합니다.
한번 설치되면, 개발자 도구가 자동으로 업데이트할 수 있습니다.
설치하려면 다음 명령을 실행하세요:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/midnightntwrk/compact/releases/latest/download/compact-installer.sh | sh
이 명령은 셸 스크립트를 다운로드하여 실행합니다.
사용하는 바이너리 디렉토리를 PATH 환경 변수에 추가하는 방법을 안내해 줍니다.
이 작업을 완료하면 compact 명령줄 도구를 사용할 수 있습니다.
이 도구에는 호출할 수 있는 여러 유용한 서브커맨드가 있습니다.
예를 들어, 툴체인을 최신 버전으로 업데이트하려면 다음 명령을 실행합니다:
compact update
출력은 다음과 같이 나타납니다(예: Apple Silicon macOS 머신에서):
compact: aarch64-darwin -- 0.24.0 -- installed
compact: aarch64-darwin -- 0.24.0 -- default.
이 서브커맨드는 해당 아키텍처에서 사용 가능한 최신 버전의 툴체인으로 전환합니다.
현재 기준으로 0.24.0 버전이며, 도구가 이를 보고합니다.
compact 도구는 필요한 경우 툴체인 아티팩트를 다운로드합니다(다운로드 중 진행률 표시줄이 나타납니다).
이미 아티팩트를 다운로드한 경우, 도구는 단순히 기본 버전을 최신 버전으로 전환합니다.
0.25.0 같은 새 Compact 툴체인 릴리스가 나오면, 위와 동일한 서브커맨드를 사용하여 해당 새 버전으로 업데이트합니다.
check 서브커맨드를 사용하여 새 버전이 있는지 확인할 수 있습니다:
compact check
새 버전이 있으면 다음과 같이 표시됩니다:
compact: aarch64-darwin -- Update Available -- 0.24.0
compact: Latest version available: 0.25.0.
현재 0.24.0 버전을 사용 중이며 0.25.0이 사용 가능하다는 것을 보고합니다.
새 버전이 실제로 나오기 전까지는 이 출력을 볼 수 없습니다. 대신 최신 버전을 사용 중이라는 메시지를 보게 됩니다:
compact: aarch64-darwin -- Up to date -- 0.24.0
Switching Toolchain Versions
이전 버전을 포함하여 사용 가능한 다른 툴체인으로 "업데이트"할 수도 있습니다. 다음 명령으로 사용 가능한 모든 버전을 나열할 수 있습니다:
compact list
출력은 다음과 같습니다:
compact: available versions
→ 0.24.0 - x86_macos, aarch64_macos, x86_linux
0.23.0 - aarch64_macos, x86_linux
0.22.0 - x86_macos, x86_linux
각 버전과 사용 가능한 플랫폼을 보여줍니다.
화살표는 현재 기본 버전(이 경우 0.24.0)을 나타냅니다.
이 기본값은 compact update를 통해 현재 설정한 버전입니다.
--installed(또는 -i) 플래그를 compact list에 전달하여 실제로 로컬에 다운로드된 버전을 확인할 수 있습니다:
compact list --installed
출력은 대략 다음과 같을 것입니다:
compact: installed versions
→ 0.24.0
update 서브커맨드에 특정 버전을 지정하여 해당 버전으로 전환할 수 있습니다. 예를 들면:
$ compact update 0.23.0
compact: aarch64-darwin -- 0.23.0 -- installed
compact: aarch64-darwin -- 0.23.0 -- default.
$ compact list --installed
compact: installed versions
0.24.0
→ 0.23.0
Intel x86 macOS 컴퓨터를 사용하는 경우, 0.23.0 버전은 해당 아키텍처에서 사용할 수 없으므로 업데이트할 수 없습니다. 위와 동일한 명령을 0.22.0 버전으로 시도해 보세요.
compact update 또는 compact update 0.24.0으로 최신 버전으로 다시 전환할 수 있습니다.
이번에는 해당 버전이 이미 로컬에 설 치되어 있으므로 아무것도 다운로드되지 않습니다.
Invoking the Compiler
툴체인을 최신 상태로 유지하는 것 외에도, compact 도구는 모든 툴체인 도구를 호출하는 공식 지원 방법이기도 합니다.
현재로서는 유일한 도구가 컴파일러이지만, 향후 더 많은 도구를 구축할 예정입니다.
컴파일러는 compile 서브커맨드로 호출할 수 있습니다:
compact compile <contract file> <output directory>
현재 기본 버전의 툴체인(compact list에서 화살표로 표시되는 것)을 사용합니다.
macOS를 사용하는 경우, 더 이상 컴파일러 및 ZK 키 생성 바이너리에 대한 실행 권한을 명시적으로 부여할 필요가 없습니다.
플러스(+) 기호 뒤에 버전 번호를 포함하여 기본값을 재정의하고 특정(이미 설치된) 버전을 사용할 수 있습니다:
compact compile +0.23.0 <contract file> <output directory>
앞으로 compactc 실행 파일을 제거할 계획입니다.
향후 compact compile이 Compact 컴파일러를 호출하는 표준 방법이 될 것입니다.
Built-in Help
compact 도구와 모든 서브커맨드에는 도구 자체에서 제공하는 상세한 도움말 페이지가 있습니다.
help 서브커맨드를 사용하거나 --help 플래그를 사용하는 두 가지 방법으로 확인할 수 있습니다.
Compact 도구 자체에 대해서는 compact help 또는 compact --help를 실행하면 정확히 동일한 도움말 페이지를 볼 수 있습니다.
이 페이지는 모든 서브커맨드를 보여줍니다(compile은 현재 페이지 하단에 나열됩니다).
또한 공통 명령줄 옵션도 보여줍니다.
update 같은 특정 서브커맨드에 대해서는 compact help update 또는 compact update --help를 통해 상세 도움말을 볼 수 있습니다.
도움말 페이지를 사용하여 모든 서브커맨드와 옵션을 찾을 수 있습니다.
도구의 현재 구현 방식으로 인해 compact help compile로는 컴파일러 도움말을 볼 수 없습니다.
대신 compact compile --help를 사용해야 합니다.
Versions
개발자 도구는 툴체인(즉, 컴파일러) 자체와 별도로 버전이 관리됩니다. 이는 도구가 여러 버전의 툴체인을 관리할 수 있기 때문입니다.
개발자 도구의 버전은 compact --version으로 확인할 수 있습니다.
현재 0.1.0일 것입니다.
compact update --version 같은 서브커맨드의 버전도 확인할 수 있습니다.
현재 내장 서브커맨드(즉, 툴체인이 아닌 개발자 도구가 구현한 것)는 모두 개발자 도구와 동일한 버전을 가집니다.
툴체인의 버전은 compact list -i 또는 compact check로 확인할 수 있습니다(후자는 새 버전이 있는지 인터넷 확인을 합니다).
컴파일러를 통해서도 compact compile --version으로 확인할 수 있습니다.
최신 버전을 사용하고 있다면 현재 0.24.0일 것입니다.
이전과 마찬가지로 Compact 언어 자체는 툴체인과 별도로 버전이 관리됩니다.
컴파일러를 통해 compact compile --language-version으로 확인할 수 있습니다.
Keeping the Developer Tools Up to Date
설치가 완료되면, 개발자 도구는 자동으로 최신 상태를 유지할 수 있습니다.
compact self check로 업데이트를 확인하고, compact self update로 도구의 최신 버전으로 업데이트할 수 있습니다.
개발자 도구의 이전 버전으로 되돌리는 기능은 제공하지 않습니다. 일반적으로 그럴 필요가 없기 때문입니다.
항상 최신 버전으로 업데이트할 필요는 없지만, 새로운 도구가 추가될 때는 업데이트가 필요합니다.
예를 들어, 향후 릴리스에 compact format 서브커맨드로 사용하는 Compact 포매터가 포함될 예정입니다.
이 포매터를 사용하려면 개발자 도구를 업데이트해야 합니다.
이러한 업데이트는 툴체인과 개발자 도구 양쪽의 릴리스 노트에서 안내합니다.
How it Works
현재 도구는 단순하지만 아키텍처가 유연하여 향후 다양한 개발자 도구를 추가로 지원할 수 있습니다.
도움말 페이지를 보면 --directory 명령줄 플래그를 확인할 수 있습니다. 이 플래그로 툴체인 위치를 지정합니다.
기본값은 홈 디렉토리의 .compact 디렉토리입니다.
해당 디렉토리를 살펴보면 bin과 versions라는 두 개의 하위 디렉토리가 있습니다.
versions 하위 디렉토리에는 각 설치된 버전의 별도 하위 디렉토리가 있으며, 해당 버전의 툴체인 아티팩트를 포함합니다.
bin 하위 디렉토리는 기본 버전을 나타내며, 설치된 버전 중 하나에 대한 심볼릭 링크입니다.
명령줄 도구가 업데이트를 확인하고, 필요하면 툴체인 아티팩트를 다운로드하고 압축을 해제합니다.
설치된 버전 간 전환은 bin 심볼릭 링크가 가리키는 대상을 변경하는 것 으로 이루어집니다.
툴체인 호출은 bin 디렉토리의 기본 실행 파일을 실행하거나, 필요한 경우 특정 버전의 실행 파일을 직접 실행합니다.