# Go 1.27.2 후보에서 패키지 조립 비교 2026-10-09 KST. 깨끗한 컴파일러 소스 `ef43238227eef652a04430fa7d2d154e06bae77e`를 Go 1.27.2로 빌드했습니다. 이 디렉터리는 배포 전 후보의 실행 기록입니다. 공개 설치본의 기록은 각 릴리스 문서에서 확인합니다. ## 같은 코드가 만들어졌는지 세 패키지 예제의 소스, 조립용 사례, 별도 평가 입력을 그대로 사용했습니다. 모델이 없으면 소스에 선언된 순서로 후보를 고릅니다. 기존 자체 그래프 모델을 연결하면 그 순서를 모델이 제안합니다. 시도 한도는 두 경우 모두 48입니다. | 실행 | 조립 시도 | 별도 평가 | 전체 명령 시간 | 최대 RSS | | --- | ---: | ---: | ---: | ---: | | 모델 없음 | 48 | 4/4 | 17.16초 | 88,408,064바이트 | | 기존 그래프 모델 | 41 | 4/4 | 8.47초 | 88,375,296바이트 | | 모델 결과 저장 재실행 | 기존 41회 이력 보존 | 4/4 | 이번 비교에서 별도 측정하지 않음 | 별도 측정하지 않음 | 선택된 소스와 네 평가 실행의 값이 모두 같았습니다. `9007199254740993` 입력과 `-45035996273704965` 출력도 원래 정수 그대로 비교했습니다. 저장 재실행은 기존 조립 이력을 유지하고 새 모델 호출을 하지 않았습니다. `compare.go`는 JSON 숫자를 부동소수점으로 바꾸지 않고 이 조건과 원본 사례, 저장 파일의 SHA-256 연결을 확인합니다. 이 예제에서는 모델이 시도 7회를 줄였습니다. 시간은 각각 한 번 관측한 값이며 실행 시점과 시스템 부하가 같지 않습니다. 일반적인 속도 향상률은 반복 실험이 더 필요합니다. RSS와 시간은 컴파일·네이티브 실행을 포함한 전체 명령의 관측이며 모델 단독 사용량이나 호스트 CPU 사용률은 측정하지 않았습니다. 평가 입력 네 개는 조립용 호출 입력과 다릅니다. 지역 예제나 모델 학습 자료와 겹치는지까지 증명하는 지표는 아닙니다. 모델은 작업장의 `models/graph-chooser-20261008/all-data-demonstration/qat_ternary/model.json`을 그대로 사용했습니다. SHA-256은 `3c68205a660695103712e2115ce90accd298b406dced8ad5ad5c9b84bab0a202`입니다. 추가 학습이나 모델 다운로드는 하지 않았습니다. ## 원본과 재현 `source/`에는 사용한 예제 파일들이 있습니다. `fixed.json.gz`, `model.json.gz`, `replay.json.gz`는 명령이 출력한 원본을 압축했으며, 압축을 푼 바이트가 로컬 원본과 같은지 확인했습니다. `build.json`, 두 `*-time.txt`, `comparison.log`에 빌드·측정·비교 결과를 보존했습니다. 컴파일러 저장소에서 해당 리비전을 빌드한 뒤 다음 형태로 실행합니다. ```sh go build -trimpath -o /tmp/gooo-candidate ./cmd/gooo /tmp/gooo-candidate package construct --json \ --construction-cases examples/package-caller-construction/mixed-construction-cases.json \ --cases examples/package-caller-construction/mixed-evaluation-cases.json \ --attempts 48 examples/package-caller-construction/mixed.workspace.json ``` 모델 실행에는 `--model /absolute/path/to/model.json`을 추가합니다. 저장 재실행은 조립 옵션 대신 `--receipt /absolute/path/to/construction-result.json`과 같은 평가 파일을 전달합니다. receipt 경로에는 앞선 실행이 출력한 JSON을 지정합니다. `native-setup-failure-recheck.json.gz`는 Go 실행 파일이 없는 경로를 명시했을 때의 기록입니다. 종료 코드 1과 `FAIL_CLOSED`를 반환하면서 생성된 프로그램, 실행 실패 사유, 기대한 8개 사례와 실제 통과 0개를 남겼습니다. 이는 실행 준비 실패 관측이며, 이전 Windows 실패의 종료 코드나 시간 초과 원인을 새로 밝혀낸 자료는 아닙니다. ## 같은 소스의 CI - [릴리스 준비 37863402530](https://github.com/kimjooyoon/meta-ontology-go/actions/runs/37863402530): 네 플랫폼 실행과 집계 통과. 26개 사례·39개 지표, 준비 조건 7/7. - [취약점 검사 37863402780](https://github.com/kimjooyoon/meta-ontology-go/actions/runs/37863402780): Go 1.27.2, `./...` 검사 통과, finding 0개, SARIF 업로드 완료. - [필수 검사 37863402634](https://github.com/kimjooyoon/meta-ontology-go/actions/runs/37863402634): 이 기록을 작성할 때 단위검사는 통과했고 race·의미 검사는 진행 중이었습니다. 준비 판정과 취약점 검사의 원본 artifact 정보를 함께 보존했습니다. 다운로드한 ZIP의 SHA-256을 GitHub 메타데이터와 비교한 뒤 내부 JSON을 읽었습니다. 후보 준비 판정의 다음 동작은 `MERGE_VALIDATED_CANDIDATE`입니다. 실제 배포에는 병합한 소스의 새 검증이 필요합니다. ## 후속 검사와 dev 병합 같은 소스의 필수 검사 여섯 개와 CI 전체가 이후 통과했습니다. 검증 기록 artifact `11587094379`는 11,159바이트이며 ZIP의 SHA-256은 `d6a03d874e76104b251919a00d01488c033a22555a17e8a12805e91795d43396`입니다. 원본 proof와 provenance를 컴파일러의 검증기로 읽어 PASS를 확인했고, PR·소스·기준 브랜치와 여섯 검사 결과가 같은 실행 `37863402634`, 시도 1에 속하는지도 확인했습니다. 별도 함수 추출 진단은 오래된 artifact를 읽다 HTTP 404로 실패했습니다. 이 항목 때문에 일괄 병합 도우미의 CLEAN 조건은 충족되지 않았습니다. dev의 실제 브랜치 규칙과 유일한 실패 항목을 다시 확인한 뒤 일반 expected-head 병합으로 PR 1404를 dev `ae71176b0c180b1bf3a1d8244a10f5f947b03455`에 반영했습니다. 필수 검사나 보호 설정은 바꾸지 않았으며, 병합 트리가 검사 소스와 동일함을 확인했습니다. 원본 자료는 `dev-integration/`에 있습니다. 호환성 실행 `37863402701`도 새 소스의 단위·race 검사를 마쳤습니다. `toolchain-transition/`의 원본 기록은 이전 Go 1.27.1과 새 Go 1.27.2가 다르므로 구현 전용 호환성 증명서 재사용을 `REFUTED`로 남깁니다. 해당 ZIP의 SHA-256은 `1cd97302d140a30c3fed2b2a2fd115c7c723ba892e5d08a690e385eaf89f49bd`입니다. `outside-cwd.json.gz`는 저장소 밖의 `/tmp`에서 같은 후보 실행 파일로 패키지 예제를 실행한 원본입니다. PATH의 기본 Go는 1.26.5였고, Gooo가 설치된 Go 1.27.2를 `toolchain_cache` 경로로 선택해 8/8을 통과했습니다. 셸의 기본 Go 설정은 변경하지 않았습니다. 메인 반영 PR 1405와 병합 리비전의 릴리스 검증은 별도로 진행합니다. 이 기록은 후보 실행과 dev 병합까지 확인한 자료입니다.