Repository navigation
Full Graph Assembly Feedback
업데이트: 2026-10-10 KST.
PR54는 원본 전체 CI
37956868551의 38단계와 별도 push 검사를 통과해 main 0d7d30a9에 병합·설치됐습니다.
CI·병합·설치 원본.
컴파일러 가이드의 오래된 한 본문 설명도 PR1428로
갱신했습니다. 원본 전체 CI와 v5 증거를 확인해 dev e25959dc에 병합했습니다.
실행 코드는 바뀌지 않았으며 앞서 보관한 관측의 네이티브 실행 소스는 a15입니다.
Gooo 소스에는 만들 수 있는 부품과 검사할 작은 예시가 들어 있습니다.
각 부품의 예시를 만족해도, 연결한 프로그램의 결과가 원하는 값과 다를 수 있습니다.
assemble --graph는 전체 연결을 조립하고 실제 호출 결과를 남깁니다.
그 폴더를 construct --assembly에 넘기면 Gooo가 원래 실패 입력을 골라
다음 조립의 조건으로 씁니다. 부품을 맞춘 뒤 완성품을 사용해 보는 흐름입니다.
작업장의 루트에서 실행합니다.
컴파일러는 공개 0.6.23의
gooo를 준비합니다. 준비 안내.
아래 실행과 앞서 보관한 a15 관측의 생산자는 구분합니다.
go run ./cmd/workbench assemble --graph \
--source examples/full-graph-assembly/chain.gooo --entry Main \
--cases examples/full-graph-assembly/chain-cases.json --out out/chain
go run ./cmd/workbench construct --assembly out/chain \
--holdout-cases examples/full-graph-assembly/chain-holdout.json \
--max-program-budget 64 --max-rounds 8 --out out/chain-next출력 폴더는 매번 새 경로를 사용합니다. 처음 만든 소스와 호출 사례를 후속 명령에 다시 지정할 필요가 없습니다. 여러 조립 본문, 호출되는 보조 함수, 추가 루트 입력을 네이티브 계획에서 읽습니다. 각 본문의 자체 검사 사례는 원래 소스에 남습니다.
작은 자체 모델로 레코드 후보 순서를 정하려면 첫 명령에 다음 옵션을 더합니다.
--model models/graph-chooser-20261008/all-data-demonstration/qat_ternary/model.json모델을 명시한 단계에서 새 예측을 수행합니다. 후속 construct에서 모델을 생략하면
정해진 순서로 조립합니다. 저장한 생성물의 재생은 새 예측 0회입니다.
source-fill은 선언한 후보 순서로 진행합니다.
| 파일 | 보여주는 것 |
|---|---|
plan.json |
호출 입력 키, 연결, 조립 본문과 보조 함수. 조회 추론·사례 검사·실행 0회 |
report.json |
실제 호출 기대값과 본문별 자체 사례, 모델 호출, Gooo의 다음 작업 |
composition/generated.go |
고른 본문으로 만든 실행 코드 |
next-context.json |
원본 파일의 지문·크기와 불일치 위치 |
후속 폴더의 origin-feedback-cases.json
|
Gooo가 선택한 원래 실패 행 |
construction/joint-loop.json |
반례가 실제 쓰였는지, 라운드·반복 시도·마지막 별도 평가 |
Gooo의 graph-next 규칙은 호출 결과와 본문의 사례, 지원하는 조립 종류를 읽어
다음 작업을 고릅니다. joint-feedback 규칙은 원래 호출 행을 통째로 선택합니다.
여러 출력의 기대값, 추가 루트, 큰 정수 9007199254740993도 함께 보존합니다.
보조 함수의 중간 값을 거꾸로 계산해 새 호출 정답을 만들지 않습니다.
| 작은 예제 | 최초 호출 | 반례 뒤 같은 호출 | 마지막 별도 호출 | 반복 후보 시도 |
|---|---|---|---|---|
| 두 레코드 본문, 고정 순서 | 0/3 | 3/3 | 2/2 | 127 |
| 같은 본문, 자체 모델 | 0/3 | 3/3 | 2/2 | 111 |
| 호출된 빈칸 보조 함수 | 0/1 | 1/1 | 4/4 | 6 |
| 보조 함수·정수식 탐색·추가 루트 | 1/3 | 3/3 | 2/2 | 49 |
| 두 본문, 후보 예산 16 | 0/3 | 0/3 | 0/2 | 31 |
분모는 이름 붙은 출력입니다. 레코드 필드는 따로 셉니다. 라운드마다 후보를 다시
확인한 횟수를 합산했으며 두 본문의 전체 조합은 64개입니다. --max-program-budget은
한 라운드의 상한입니다. 예산 16의 실행은 부분 결과로 멈췄습니다.
마지막 별도 사례는 선택을 끝낸 뒤 실행하며 선택 조건에 되돌려 넣지 않습니다.
모델의 학습 자료 노출 범위는 이번 실행에서 확인하지 않았습니다.
자체 모델의 최초 예측 두 번은 37,834ns·31,500ns였습니다. 같은 예제를 순차로 한 번 실행한 결과이며 환경을 통제한 성능 비교는 후속 과제입니다. 작은 공개 증거 묶음에는 소스·원래 사례·부분 결과·원본 압축 JSON·모델 호출·검사 실패와 교정 로그가 있습니다.
기대값 없이 실행한 입력은 0/0 미측정으로 남고, Gooo가 기대값을 추가하도록
안내합니다. 후속 반례 조립은 원래 기대값이 있는 경우에 진행합니다.
typed_paths의 최초 조립·실행·저장 재생도 지원합니다. 공개 0.6.23/source2b의
전체 재조립은 레코드 선택·source-search·source-fill을 다룹니다.
이후 컴파일러 dev035와 작업장 main83은 typed 경로의 호출 반례도 전체 조립에 연결했습니다.
오래된 일괄 차단 규칙을 제거하고 실제 컴파일러가 지원 범위를 확인합니다.
현재 분기 조립 사용법을 함께 읽습니다.
언어가 연결 계획을 내보내는 Meadows, 기존 작업과 도구를 이어 쓰는 Dan Cohen의 Zotero 회고, 명령 결과를 재사용하는 Once를 참고했습니다. Gooo에는 네이티브 계획 소비와 저장 폴더 이어쓰기를 적용했습니다. 시간 기준 캐시, 큰 모델 상시 연결, 새 시각화 프레임워크는 보류했습니다. 채택·보류 이유.