상호 운용은 토파즈 안에 두 번째 언어를 넣는 방식이 아니라 빌드와 제품의
경계입니다. 응용 로직은 검사되는 .tpz 모듈에 두고, 배포 환경에 맞는
제품을 고른 뒤, 주변 호스트 코드는 별도로 검토합니다.
경계 선택하기
| 필요한 것 | 선택 | 경계를 넘는 것 |
|---|---|---|
| 빌드 머신의 OS와 아키텍처용 실행 파일 하나 | Rust 백엔드 | Cargo를 통해 만든 관리형 네이티브 제품 |
| Python 3.11 이상이 있는 환경용 제품 | Python 백엔드 | 생성 program.py와 함께 제공되는 런타임 |
| 브라우저 또는 Worker 제품 | WASM과 플레이그라운드 | 선언된 ABI를 가진 관리형 Web 산출물 |
| 별도 Rust·Python·서비스 래퍼 | 호스트 통합 | 생성 제품과 별도로 관리하는 호스트 코드 |
| Lispex가 토파즈를 구동한다는 증거 | LIT 통합 | 범위가 제한된 도그푸딩·통합 코트 |
| Lena Code가 포함된 소스 변환 | Lena Code 상호 운용 | 별도로 유지되는 변환 작업 흐름 |
LIT는 배포되는 토파즈 백엔드가 아닙니다. Lena Code도 새 토파즈 문법이 아닙니다. 둘 다 명시적인 경계에서 언어를 구동하거나 변환하므로 문서에서 찾을 수 있게 유지합니다.
토파즈로 남는 것
모듈, import, 표현식, 타입, 패턴, 기본 진단은 계속 토파즈입니다.
import rust, 인라인 Rust·Python·JavaScript 표현식, 암묵적 ABI, 자동
소유권 변환, 호스트 예외의 자동 변환은 없습니다. 생성 소스는
산출물이며, 그 토큰을 .tpz 파일에 써도 된다는 뜻이 아닙니다.
공유 관찰값만 검증하기
먼저 토파즈 패키지를 검사하고 실행합니다. 선택한 대상을 빌드한 뒤 같은 선언 입력으로 관리형 제품을 실행하세요. stdout, 종료 코드, 산출물 필드, 파일 결과처럼 응용 프로그램에 중요한 관찰값을 비교하고 내부 객체 배치나 생성 소스 형태를 비교하지 않습니다.
그 결과는 해당 프로그램, 입력, 환경, 선언한 관찰값에 한정된 증거로 다룹니다. 컴파일러나 배포 대상이 바뀌면 생성 제품과 호스트 통합을 다시 검토합니다.
호스트 코드의 책임
생성 제품을 감싸는 래퍼는 의존성, 소유권, 오류, 기능 권한, 보안을 별도로 검토해야 하는 외부 코드입니다. 토파즈 모듈이나 표준 모듈을 가져온다고 파일 시스템, 네트워크, 프로세스, 환경 변수, 시계, 데이터베이스 권한이 생기지 않습니다. 선택한 대상이 동작을 보존할 수 없다면 조용히 바꾸지 말고 명확하게 거부해야 합니다.
Rust 백엔드, Python 백엔드, LIT 통합으로 이어서 살펴보세요.