Repository navigation
Candidate Locals
2026-10-08. 컴파일러 PR #1367의 개발 소스로 실행한 기록입니다. 공용 실행기는 v0.2.25-experimental로 공개했습니다. 기존 Gooo 0.6.7 실행 파일에는 이번 변경이 들어 있지 않습니다. 이후 공개한 0.6.8 개발판에 포함했으며, 실제 배포 파일로 실행한 결과도 남겼습니다.
재시도 기능을 만들다 보면 다음 시도를 할지, 얼마나 기다릴지, 왜 멈추는지를 각각 계산하게 됩니다. Gooo에서는 이 값들을 지역 변수로 준비하고, 조립 후보가 결과의 각 칸에 어떤 값을 연결할지 고르게 할 수 있습니다. 작업대 위에 부품을 준비해 두는 것과 비슷합니다.
그런데 후보 하나가 변수를 쓰지 않으면 Go의 사용하지 않는 변수 검사에 걸렸습니다. 이제 Gooo는 그 후보도 평가합니다. 변수 초기화와 이후 대입은 원래 위치에서 실행하고, 생성한 Go에만 필요한 보조 문장을 넣습니다. 실행되는 초기화에서 0으로 나누면 오류가 그대로 드러나고, 들어가지 않은 분기 안의 초기화는 실행하지 않습니다.
소스는 재시도 여부, 상한 안의 대기 시간, 사유를 계산합니다. 결과의 초기값은
false, 0, pending입니다. 세 선택지가 준비한 계산값들을 결과에 연결할 수 있습니다.
후보는 여덟 가지이고, 소스에 조립 사례 다섯 개를 함께 적었습니다.
| 실행 방식 | 확인한 후보 | 조립 사례 | 조립 필드 | 별도 실행 사례 |
|---|---|---|---|---|
| 고정 순서 | 8 | 5/5 | 15/15 | 12/12 |
| 자체 소형 모델 추천 | 1 | 5/5 | 15/15 | 12/12 |
| 저장한 모델 결과 재실행 | 새 후보 0 | 이전 기록 유지 | 이전 기록 유지 | 12/12 |
모델은 최초 조립에서 한 번 호출했습니다. 저장 재실행의 새 모델 호출은 0회입니다. 두 방식은 같은 Go 코드를 만들었습니다. 별도 실행 사례에는 성공, 영구 실패, 횟수 제한, 음수 입력, 대기 시간 0, int64 상한을 넣었습니다. 수치는 각 사례 집합에서 확인한 범위입니다.
모델 추론은 한 번 측정에서 약 0.033 ms, 준비는 약 0.654 ms였습니다. 모델 텐서는 2,096바이트를 사용했습니다. Go 컴파일과 실행을 포함한 전체 명령은 고정 순서 0.33초, 모델 사용 0.32초였으며 최대 RSS는 각각 86,032,384바이트와 85,868,544바이트였습니다. 캐시를 통제하지 않은 순차 실행이므로 이 시간으로 일반적인 속도 차이를 판단하기는 어렵습니다. 전체 시스템 및 모델만의 CPU 점유율은 이번에 측정하지 않았습니다.
모델 가중치는 기존 것을 그대로 사용했습니다. 이번 개선은 언어가 표현할 수 있는 조립 방식에 관한 것입니다. 학습 자료와 이 작업 계열의 중복 여부는 아직 확인하지 않았습니다.
공개 SDK를 연결한 본문 생성·CLI 전체 race 검사와 vet를 통과했습니다. 공용 실행기의
PR CI는 기존 모델과
조립 기록을 재현하는 검사까지 포함합니다. 컴파일러의 첫 CI에서는 미사용 변수를 오류로
예상하던 관측 테스트 하나가 실패했습니다. 수정본 24e5e96f는 유효한 후보의 사례 점수를
확인하고, 타입 오류와 실제 0점을 구분하는 검사를 유지합니다. 관련 실행·본문 생성 race
검사와 수정본 전체 CI를 통과해
dev 459696c4에 병합했습니다. main 반영 #1368도
필수 검사와 원본 검증 파일을 확인해
main 0e56479b에 병합했습니다. main과 검사받은 dev의 파일 트리는 같습니다.
병합 기록.
이전 컴파일러에서 사용하지 않는 변수를 오류로 기록한 이력은 새 컴파일러에서 결과가 달라질 수 있습니다. 과거 기록을 재현할 때는 당시 컴파일러를 사용하고, 새 소스의 조립은 새 기록으로 남깁니다. 이전 공개 실험 결과는 원본 그대로 보관합니다.
작업장 PR #18에도
기본 결과 false, 0, pending에서 준비한 값을 연결하는 소스를 적용했습니다.
독립적인 Go 계산 기준으로 고정 순서와 모델 사용 각각 200개 입력·600개 결과 필드를
확인했습니다. 모두 일치했고, 모델은 첫 후보를, 고정 순서는 여덟 후보를 평가했습니다.
한 번만 시도한 경우에는 조립 사례 0/5와 필드 8/15, 실제 실행 0/12를 부분 결과로 그대로 남겼습니다. 성공한 결과와 부분 결과 모두 공개 폴더의 기록으로 재실행했으며 새 모델 호출은 0회였습니다. 이전 공개 컴파일러의 미사용 변수 오류도 함께 재현해 기록했습니다.
소스·기록·재현 방법은
컴파일러 24e5e96f와 기존 자체 모델을 사용합니다. 로컬 전체 race 검사에 이어
공개 PR CI도 통과해
작업장 main b59a9d33에 병합했습니다. 이 관측은 위의 최초 실행과 별도로 보존합니다.