Skip to content

v0.0.5 - 파이썬 머신, uv 레인, 가상 오리진, 공유 커널

Choose a tag to compare

@eddmpython eddmpython released this 11 Jul 23:02

v0.0.4 이후 발명 라운드와 감사 후속을 묶은 릴리즈. 브레이킹 없음(공개 표면은 추가만, 세션 저장물은 하위 호환).

파이썬 머신 (browser-os)

  • .pymachine 단일 파일 이미지: SHA-256 무결성 + trust 명시 승인 + cp0 결정성 대조(h0). 13.7MB 파일로 컴퓨터가 2.5초에 부활.
  • 영속 디스크 Runtime.mountHome(/home/web): 파이썬 open() 파일이 커널을 넘어 생존.
  • 수명주기 데모 examples/machine.html: 탭 닫으면 자동 hibernate, 열면 그 자리에서 resume.
  • 오프라인 부팅 boot({coreCacheDir}): 코어 자산 OPFS 캐시.

uv 레인 (환경의 선언·캐시·재현)

  • bootEnv(manifest, dirs): bare 스냅샷 + OPFS 휠로 2차 환경 부팅 1229ms(콜드 5109ms 대비 4.2배).
  • runScript(rt, src): PEP 723(# /// script) 인라인 의존성 자동 설치 + 실행 = 브라우저판 uv run.
  • Runtime.freeze() + boot({lockFileURL}): 환경을 락으로 고정, 해석 0으로 재현(실측 164ms 핀 설치).

Service Worker 계층

  • pyprocSw.js 자산 + VirtualOrigin: 파이썬 ASGI 서버가 진짜 URL로 응답(fetch("/pyproc/api/..."), 왕복 3.4ms = 직접 dispatch와 동일).
  • ?cache=1: CDN 자산 캐시-우선, 2차 부팅 CDN 요청 0(script 경로 포함 = 비행기 모드 부팅).

공유 커널

  • SharedKernel(SharedWorker): 여러 탭이 한 파이썬 상태를 공유, 탭이 닫혀도 커널 생존. SAB 의존 기능(interrupt/fork)은 플랫폼 제약(SharedWorker COI 미지원)으로 제외를 명시.

프로세스 OS

  • PyProc({packages, setup}) 부팅 계약, mapArray TypedArray 샤딩(32MB sort+sum 4워커 5.28배).
  • interrupt(pid)가 SIGINT 미지원 워커에 정직하게 false(무증상 no-op 제거).

결함 수정

  • subprocess 자식 워커가 자가호스팅 설정을 무시하고 CDN으로 새던 누수(Runtime.indexURL 계약).
  • 세션 리플레이 결정성 무대조(엔진 변화 시 조용한 오염) -> 저장물 h0 대조로 명시적 예외.
  • coreCache 감싼 fetch의 재진입 무한 재귀.

게이트/운영

  • 구조 179검사(camelCase 네이밍 가드, git 추적 기준 링크 가드, README 표면 동기화 가드) + 브라우저 26검사.
  • CI 전 이력 적색 사고 수리(로컬-CI 게이트 불일치 봉인) 후 러너 GREEN, 실측 수치 아티팩트 보존.
  • npm 레지스트리 메타데이터(repository/homepage/bugs) 추가.