Repository navigation
v0.0.169
rePIU v0.0.169
이전 릴리스 v0.0.168 이후의 변경입니다. 웹(WebAssembly) 이식 Stage 1~2가 들어가고,
Stage 3~5는 보류로 정리했습니다.
플랫폼 공용 코어가 wasm32로 빌드됩니다
코어 소스를 한 줄도 고치지 않았습니다.
| 항목 | 값 |
|---|---|
repiu_exe 오브젝트 (wasm32) |
64 |
| 코어 소스 수정 | 0 |
| 엔진 자신의 미해결 심볼 | 0 |
repiu_core_probe (wasm32) |
9 / 9 통과, 제외된 6개는 이름을 찍음 |
| Windows 회귀 | 15 / 15, 변화 없음 |
의존성(SDL3·libchdr·miniz·Zydis)도 Emscripten에서 그대로 빌드됩니다.
인터프리터의 크기를 쟀습니다
pumpipx3의 PIU.EXE를 진입점에서 재귀 하강으로 훑었습니다.
| 항목 | 값 |
|---|---|
| 명령 | 74,333 (블록 17,367) |
| 서로 다른 mnemonic | 120 |
| 서로 다른 (mnemonic, 피연산자 서명) | 320 |
| 상위 17 mnemonic 누적 | 87.89% |
인터프리터 규모의 기준은 120이 아니라 320입니다 — MOV 하나가 19가지 형태입니다. 다만
상위 17개가 87.89%이므로 점진적으로 세울 수 있습니다.
브라우저에서는 아직 실행되지 않습니다
현재 backend 둘(legacy·dynamic)이 모두 네이티브 x86 위에 서 있어 wasm에 대응 형태가
없습니다. Stage 3(플랫폼 중립 인터프리터)이 그 자리이고, 보류했습니다 — Linux 성능 축이
먼저입니다.
재개 조건은 웹 이식 frontier에 있습니다. 요약하면 둘을
먼저 정해야 합니다: x87 표현(80비트인가) 과 Worker 실행 전제. 둘 다 나중에 바꾸면
인터프리터를 다시 쓰는 일이 됩니다.
rePIU v0.0.169
Changes since v0.0.168. Stages 1 and 2 of the web (WebAssembly) port land, and Stages 3
through 5 are recorded as on hold.
The platform-neutral core builds as wasm32
Not one line of core source was changed.
| Item | Value |
|---|---|
repiu_exe objects (wasm32) |
64 |
| Core sources modified | 0 |
| Undefined symbols of the engine's own | none |
repiu_core_probe (wasm32) |
9 of 9 passed, with the 6 excluded ones named |
| Windows regression | 15 of 15, unchanged |
The dependencies (SDL3, libchdr, miniz, Zydis) build under Emscripten as they are.
The interpreter's size is measured
pumpipx3's PIU.EXE, by recursive descent from the entry point.
| Item | Value |
|---|---|
| Instructions | 74,333 (17,367 blocks) |
| Distinct mnemonics | 120 |
| Distinct (mnemonic, operand signature) | 320 |
| Top 17 mnemonics, cumulative | 87.89% |
An interpreter is sized by 320, not 120 -- one MOV is 19 forms. But with the top 17 at 87.89%
it can be built incrementally.
It does not run in a browser yet
Both present backends (legacy and dynamic) stand on native x86, which has no wasm form. Stage 3,
a platform-neutral interpreter, is where that goes, and it is on hold -- the Linux performance
axis comes first.
The resume conditions are in the web port frontier. In short, two
things must be settled first: the x87 representation (80-bit or not) and assuming Worker
execution. Changing either afterwards means writing the interpreter twice.