aboutsummaryrefslogtreecommitdiffstats
path: root/docs/research
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-10-19 08:20:42 +0100
committereunhhu <[email protected]>2026-10-19 08:20:42 +0100
commit1f9ddc8a16d7bda640ce2e6c19126c2491c95ec7 (patch)
treeb3c80aaea2b0f54fdc1c0a6f25d3ada4c14e6ee7 /docs/research
parent0896b3886295a21479268ccb78651adfff5e5e33 (diff)
downloadpure-1f9ddc8a16d7bda640ce2e6c19126c2491c95ec7.tar.gz
pure-1f9ddc8a16d7bda640ce2e6c19126c2491c95ec7.zip
140: determinism across builds at 027, 028 and 140's state: record_all.py's 486 runs (41 modules) the same with gcc and clang on the Pi (Pure 0896b38, aup 1efe1c7; aup's modules the same bytes under clang); the Mac and WSL2 not reached (ssh timed out, no route), the bundle and r140.sh ready for them
Diffstat (limited to 'docs/research')
-rw-r--r--docs/research/140-spec-suite.md14
1 files changed, 14 insertions, 0 deletions
diff --git a/docs/research/140-spec-suite.md b/docs/research/140-spec-suite.md
index da1f562..ca5cf83 100644
--- a/docs/research/140-spec-suite.md
+++ b/docs/research/140-spec-suite.md
@@ -1022,6 +1022,20 @@ min과 max가 남는다. Flexbox의 어려운 반은 크기가 아래에서 위�
맞다.
- 원본: `2026-10-19-list-value.jsonl`, 041의 `2026-10-19-counts.jsonl`(b49, b50), 040의 `2026-10-19-counts.jsonl`.
+## 기계 사이의 결정론 (027·028·140 뒤, 2026-10-19)
+
+- **기록.** `029-across-machines/record_all.py`가 027·028·140이 더한 검사의 pure-run을 하나씩 기록한다. aup의 018 검사(033의
+ `record.py`가 기록하던 것), 027의 단계들, 028의 바이트 상태, 140의 마찰 검사, Pure의 `module_specs`(아홉 명세를 세 길로)다.
+ 모두 486번이고 모듈은 41개다. Pure의 `tests/specs`는 임시 디렉터리에 복사해, 기계의 경로가 입력에 들지 않게 한다.
+- **Pi의 두 컴파일러.** 같은 묶음(Pure 0896b38, aup 1efe1c7)을 gcc와 clang으로 지어 기록하니 486번이 모두 같다(`compare.py`:
+ runs_both 486, runs_differ 0). clang으로 지은 aup가 낸 모듈 41개도 바이트까지 같다.
+- **찾아 고친 것.** clang이 `core/module-save.c`의 `|`(불의 비트 합)를 `-Werror`로 막고 있었다. 027의 4f-2 뒤로 clang 빌드, 곧
+ Mac의 빌드가 서지 않았다. `||`로 고쳤다. 놓는 것은 같다. Mac의 마지막 기록은 10-05여서 그동안 드러나지 않았다.
+- **Mac과 WSL2는 하지 못했다.** 두 기계에 ssh가 닿지 않았다(10.10.0.2: 연결 시간 초과, 10.10.0.5: 경로 없음, Pi의 WireGuard는 서
+ 있다). 묶음과 실행기(`r140.sh`: 새로 풀고 `record_all.py`)는 준비되어 있다. 기계가 돌아오면 같은 묶음으로 기록해
+ `compare.py`로 Pi의 것과 견준다. 114의 1,053번(10-05)이 마지막 세 기계 확인이다.
+- 원본: `029-across-machines/2026-10-19-pi.jsonl`, `2026-10-19-pi-clang.jsonl`.
+
## 착수 기준 (다음 일)
- **바꿀 결정.** 계산의 핵을 설계한다(027). 위 표의 여덟 후보 가운데 무엇을 어떤 모양으로 받을지 정한다.