-
hanyul released this
2026-10-07 08:23:29 +09:00 ARCA 0.1.16 변경 사항
이전 버전: 0.1.15. 지원 native upstream·toolchain을 최신으로 올리고, JS 의존성(Nostalgist 0.22.0·
@noble/hashes2.4.0)과 TypeScript 7·pnpm 12 이행에 맞춰 player SDK의 private runtime 연결을 Emscripten 6 출력에 맞게 고친 release다. native runtime(mkxp-z core JS·WASM)이 0.1.13~0.1.15와 다르다. 새 공개 export·schema·오류 code·CLI 명령·Builder subcommand는 없고 삭제된 공개 API도 없다.rgss23-runtime-status-v1, 오류 code enum, inspection v1/fingerprint ABI, Builder 기본 출력·exit code는 그대로다.업그레이드 시 확인할 동작 변경
삭제된 공개 API는 없다. 다만 아래는 기존 host가 관찰하는 결과가 달라질 수 있으므로 pin 갱신 전에 확인한다.
- native runtime identity: runtime ZIP의
dist/rgss23-core.js(SHA-2562f71fcaa…, 250,836 B)·dist/rgss23-core.wasm(d527ce81…, 44,417,072 B)가 바뀌었다. mkxp-z libretro Emscripten wrapperf0a1ff80, mkxp-z5cd32036, RetroArcha7054054, Emscripten 6.0.11(4.0.8에서), WASI SDK 34(30에서), binaryen 133, CMake 4.4.4, Meson 1.12.1, sandbox CRuby 3.3.12(3.3.10에서), host CRuby 4.0.7, WABT 1.0.42, zlib 1.3.2, Boost 1.92.0으로 고정했다. sandbox CRuby는 upstream syntax-transform이 3.1/3.3 계열만 지원하므로 3.3 최신 patch를 유지한다. host는 새 release pin·Builder digest를 함께 적용하며 runtime artifact를 release 간에 섞지 않는다. - runtime license inventory: runtime ZIP 파일 수가 53개에서 67개로 늘었다. license exporter가 Stage 1 component(CRuby·libyaml·zlib·WABT)와 toolchain runtime component(wasi-libc), 전이 dependency(GCEM 등)의 원문 license를 source commit·hash로 검증해 runtime ZIP
LICENSES/에 함께 넣는다. runtime ZIP의 파일 수와THIRD_PARTY_NOTICES.json구성 요소가 0.1.15와 다르다.verifyArcaRuntimeDirectory()는 ZIP의SHA256SUMS를 따르므로 host 코드 변경은 없다. - player SDK private runtime 연결(관측 동작 동일, 공개 API 불변): Emscripten 6 출력에는
Module.calledRun이 없으므로 SDK는 같은 private factory 반환에서 실제runtimeInitialized·ABORT를 읽어 초기화·abort를 관찰한다. Worker 생성 adapter는 Emscripten 4/6 두 source 형태를 받고 그 밖의 형태는 거부한다. canvas resize 별칭은 기존 export를 보존한다. Nostalgist 0.22.0의 keyboard cache가retroarch.cfg의 mtime을Date로 기대하므로 해당 instance의 private filesystem wrapper에서만 숫자 초를Date로 변환한다(nativeModule.FS·다른 경로·공개 filesystem 의미 불변). 지원하지 않는 runtime 출력 형태는 준비 단계에서 실패한다. - Builder OCI: base image
node:24.21.0-alpine(digest 고정)·Dockerfile frontend 1.27.1로 올리고 frozen install context에apps/web/package.json을 포함한다. Builder subcommand·flag·exit code·오류 code는 그대로이며 digest만 바뀐다. - artifact identity: contracts tgz는
dist/builder.*의 producer version과package.json만 0.1.15와 다르다. runtime ZIP은 native JS/WASM·provenance·license inventory·SDK module·SHA256SUMS가 다르다.
추가된 API·계약
없다. 공개 export·schema·오류 code·CLI 명령·Builder subcommand와 flag를 추가하거나 삭제하지 않았다.
저장소·도구 정리
- runtime build script: 고정 URL(
ftp.gnu.org)에 접근할 수 없을 때 operator가 GNU mirror에서 받은 libiconv·libidn archive를 named volume의/build/archive-seeds/<sourceFilename>에 두면 lock SHA-256이 같을 때만 network 없이 재사용한다(hash 불일치·symlink는 실패, seed 없으면 기존 download). seed 복사본은 download와 같은 mode 0644로 정규화한다. 이 변경으로 core stamp의coreRecipeSha256가 바뀌며 lock·URL·patch는 그대로다. - runtime 재현성:
mkxp-z-stage1-determinismpatch와SOURCE_DATE_EPOCH(고정 wrapper commit 시각)·LC_ALL=C·TZ=UTC로 Stage 1·core·frontend clean rebuild의 산출물·stamp를 결정적으로 만들었다. 재현 판정은 아래 검증 범위를 따른다. - native build helper: core dependency helper가 보존된 core source를 검증하고 syntax-transform smoke가 cleanup 증거를 남긴다.
runtime:test:patches와test:browser-tools에 page·VX save 입력 회귀를 추가했다. - smoke 도구: runtime·package identity를
tools/browser-smoke/artifact-identity.mjs가 소유하고 관측 report와 독립된 고정값을 쓴다. native VX save read entrypoint 두 형태를 모두 받는다. - JS 의존성: pnpm 12.8.1, TypeScript 7.0.2, Vite 8, Vitest 5, puppeteer-core 25.12.0,
@types/node24.19.1. SDK 검증 container image·RTP Docker base image도 함께 올렸다. - reference app: OPFS directory iteration이 표준
entries()타입을 사용한다(동작 동일).
검증 범위와 알려진 제한
합성·단위 검증, 제공 fixture 자동화와 사람의 입력·실제 청취·완전 종료 저장 acceptance는 별도 판정한다. 이번 release는 새 사용자 acceptance를 포함하지 않으며 사람 검토, 실제 청취, LINKS 통합과 장시간 검증은
NOT RUN이다.- 제공 VX·VX Ace 자동 smoke: 2026-10-04
0296cf5(release source와 native JS·WASM·SDK source 동일)에서 Edge 154·Chrome 154·Firefox 153의 gold 시나리오 22개(이전 무관한 6개 통과 재사용 + 16개 직렬 실행)가 자동PASS다. 새 사람 acceptance는NOT RUN이다. - native runtime clean rebuild 재현:
PASS(처음 게시하는 결정적 runtime). 2026-10-07 새 runtime image와 새 named volume에서runtime:image·preflight·checkout·Stage 1 clean·core clean·frontend를 다시 실행한 export가 검증된 export와 JS·WASM byte 동일하고 provenance stamp도 archive seed 재사용 변경에 따른coreRecipeSha256(와 frontend stamp의 core stamp hash)만 다르다. 같은 Docker host·Windows에서의 재현이며 다른 CPU 수·host·Linux는NOT RUN이다. - 다른 CPU 수·host·Linux에서의 runtime·release 재현은
NOT RUN이다. - LINKS형 기본 저장소 경로는 package를 WASM heap에 복사한다. 큰 게임에서는 메모리 여유를 확인한다.
- UTF-8 BOM이 있는
Game.ini는 지원하지 않는다(형식 오류로 처리).
게시 identity와 registry 검증은 현재 상태, 상세 값은 해당 release manifest/pin을 따른다.
배포 검증
- release source:
d4b864bc57(버전 커밋9759559뒤에 release 생성 BLOCKED 기록452e19a와 runtime build script의 archive seed 재사용d4b864b를 포함) - manifest SHA-256: 3ea1e1945ce6136b446b54ca8fba356175891011c6c0c4b440349e18aa1fc804
- Builder digest: sha256:8a1ce16a6f19e1d8a3d263e67627b1c0bbc01549ddf9e873d7fb92c1b3e70548
- native runtime:
rgss23-core.js2f71fcaa…(250,836 B),rgss23-core.wasmd527ce81…(44,417,072 B). 0.1.15와 다르다. - 단위 테스트 426개, 타입 검사, release 회귀 33개, runtime lock·native 진단 lock·native 준비 recipe 검증,
git diff --check: PASS(2026-10-07, host Node 24.18.0·pnpm 12.8.1). - release build·verify, npm 생성, source-free SDK/types/contracts/runtime 결속/Builder/CLI 소비(
release:build·release:verify·release:npm:test): PASS(2026-10-07, source commitd4b864b). - release 재현(별도 clean detached worktree, frozen install, 같은 volume의
runtime:export,release:build): PASS(2026-10-07, 같은 Docker host·buildx cache, Windows만: pin·manifest·세 artifact·Builder digest·npm tgz byte 동일. Linux 재현은NOT RUN) release:reproducescript 자체는 pnpm 12의 corepack native 실행 파일(pnpm-native.exe)을 node로 실행하려다ERR_UNKNOWN_FILE_EXTENSION으로 실패했다(도구 결함, 재현성 판정 아님). 수동 절차로 대신했고 수정은 다음 release 작업이다.- npm: @rgss23/arca@0.1.16 (Forgejo registry).
Downloads 9
-
release-manifest.json
1
2.1 KiB
2026-10-07 08:23:59 +09:00 -
release-manifest.sha256
0
88 B
2026-10-07 08:23:59 +09:00 -
release-pin.json
1
441 B
2026-10-07 08:24:00 +09:00 -
rgss23-arca-0.1.16.tgz
0
95 MiB
2026-10-07 08:24:02 +09:00 -
rgss23-builder-0.1.16.oci.tar
0
59 MiB
2026-10-07 08:24:02 +09:00 -
rgss23-contracts-0.1.16.tgz
1
35 KiB
2026-10-07 08:24:03 +09:00 -
rgss23-runtime-0.1.16.zip
1
43 MiB
2026-10-07 08:24:04 +09:00 -
Source code (zip)
0
2026-10-07 08:23:29 +09:00 -
Source code (tar.gz)
0
2026-10-07 08:23:29 +09:00
- native runtime identity: runtime ZIP의