Repository navigation
Package Interfaces
개발 브랜치에 병합한 PR 1410에
gooo package interface 명령을 추가했습니다. 아래 초기 관측의 소스는 8951c5f8이며,
최종 통합 소스 8f4c9638은 필수 CI와 네 플랫폼 검사를 거쳐 dev e8ccf425에 병합했습니다.
이번 배포의 고정 소스는 16bb6537c8b92104b2ea7a5abf593c7b965fedd5입니다.
이 기능을 이어받은 공개 0.6.20을
배포하고 macOS ARM64 설치본으로 자체 모델 API 도구·저장 재생을 확인했습니다.
패키지의 타입 이름과 ID만 알면 같은 ID 아래에서 필드가 달라진 상황을 놓칠 수 있습니다. 새 출력에는 필드 타입·필수 여부·개수 조건과 함수 입력의 순서를 함께 담았습니다. 이를 이용하면 문서 생성기나 API 변경 도구가 컴파일러의 해석을 그대로 받아 쓸 수 있습니다.
컴파일러 저장소의 후보 소스에서 다음처럼 실행합니다.
go run ./cmd/gooo package interface --json \
examples/package-optional-record-flow/gooo.workspace.json예를 들어 Profile이라는 타입의 note는 선택적인 문자열,
count는 선택적인 정수라고 출력합니다. 다른 패키지의 Main이 이 타입을
입력받으면 원래 타입의 ID로 연결하고, 필드 정의는 그 타입을 선언한 패키지에 남깁니다.
함수가 같은 타입을 여러 번 받는 경우에도 인자의 순서와 반복을 보존합니다.
타입과 필드의 명시적 ID가 같아도 이름·타입·필수 여부의 변화가 출력에 나타납니다.
앞선 공개 0.6.19에서 활동의 ID는 namespace/name 규칙으로 만들어져 이름 변경에 따라 바뀝니다.
명시적 활동 ID PR 1415는
필수 CI와 원본 검사 기록을 확인한 뒤 dev 9858fdc2에 병합했습니다.
activity Calculate(Integer) -> Integer id "urn:gooo:activity:sum"처럼 적으면
이름을 바꿔도 인터페이스와 실행 기록의 ID를 유지합니다. ID를 생략한 선언은 기존 규칙을
사용합니다. 공개 0.6.20의 영어·한글 이름 실행·재생 예제를
새 안내에 담았습니다.
기존 워크스페이스 읽기·가져오기 해석·의미 검사를 재사용하며, 함수 본문은 실행하지 않습니다. 하나의 파일부터 여러 패키지까지 같은 명령으로 읽습니다. 출력에는 원본 소스, 패키지 빌드, 인터페이스 자체의 지문도 함께 기록됩니다.
- 타입과 필드의 ID를 유지하면서 필드 타입·필수 여부·이름을 바꿨을 때 차이가 드러났습니다.
- 선택적 필드, 빈 레코드와 구조가 없는 명목 타입, 중복 인자의 순서를 확인했습니다.
- manifest의 패키지·파일 나열 순서를 바꿔도 정규화된 결과가 같았습니다.
- 다른 파일 사이의 필드 ID 충돌과 해석할 수 없는 타입·가져오기는 실패로 반환했습니다.
- 기존 공개 0.6.18과 후보의 패키지 해석 결과가 바이트 단위로 같았습니다.
- 패키지 실행 및 CLI 검사, 새 투영의 race 검사, 전체 빌드가 통과했습니다.
자체 QAT 모델을 연결한 실제 패키지 조립도 다시 실행했습니다. 고정 순서는 48회, 모델 순서는 41회 만에 기존과 같은 프로그램을 골랐습니다. 큰 정수를 포함한 실제 출력과 원래 이력이 유지됐고, 저장된 기록 재사용의 새 추론은 0회였습니다. 나중에 정답을 붙인 평가에서는 4/4가 일치했습니다.
모델을 사용한 전체 명령의 단일 관측은 9.08초, 프로세스 CPU 시간 7.52초, 최대 RSS 88,358,912바이트(약 84.3 MiB)였습니다. 고정 순서는 11.92초였습니다. 실행 순서와 캐시 조건이 같지 않아 속도 우위로 일반화하지 않습니다. 모델 가중치는 갱신하거나 새로 내려받지 않았습니다. 원본 기록.
API 변경 도구가 이 구조를 읽고 Gooo 규칙으로 다음 작업을 반환합니다. 입력 필드의 필수화와 출력 필드의 선택화를 서로 다르게 분류하고 사용 방향도 기록합니다. 현재 컴파일러 명령은 선언 구조를 제공합니다. 동작 호환성 평가와 자동 호출자 수정은 남아 있습니다. Windows 시작·대기 예산 수정을 통합한 PR 1410과 0.6.19 준비 PR 1413은 필수 CI와 네 플랫폼 검사를 통과하고 dev에 병합됐습니다. 이후 활동 ID 예제를 더한 공개 0.6.20을 사용할 수 있습니다.