GN⁺ 2025-02-05 | parent | ★ favorite | on: C로 작성된 WebAssembly VM 개발(irreducible.io)
Hacker News 의견
  • Wasm 인터프리터를 Scheme으로 작성한 경험이 있어 다른 사람들이 직접 작성하는 것을 보니 기쁨. Wasm은 생각보다 덜 어렵고, 모든 명령어를 구현할 필요 없이 재미를 느낄 만큼만 시도해보기를 권장함

    • 작성자에게 주는 팁: spec-test에는 복잡한 형태의 텍스트 wasm이 포함되어 있지만, wast2json 변환기를 사용하면 더 간단한 JSON 설명과 일반적인 바이너리 wasm 파일을 얻을 수 있음
  • 초보자 질문:

    • 인터프리터를 직접 코딩하지 않을 때 어떻게 디버깅하는지 궁금함
    • 문자열의 opcode를 퍼징하는 것이 얼마나 효과적인지 궁금함
    • 서버 측 WASM 엔진과 브라우저 기반 엔진의 실질적인 차이가 얼마나 있는지, 하나를 다른 것으로 변환하는 데 얼마나 많은 작업이 필요한지 궁금함
  • 직접 WASM 해석에 관한 흥미로운 기사 발견

  • 흥미로운 접근 방식이며, 훌륭한 작업임

  • Wasm-C-API를 표준 인터페이스로 채택하는 것이 좋은 아이디어였을 것이라 생각함

    • 대부분의 Wasm 런타임(Wasmmer, V8, wasmi 등)이 채택한 API로, C로 작성되어 있어 해당 API에 익숙한 개발자들이 쉽게 시도할 수 있음
    • 작성자가 Wasm에 익숙하다면 Wasmer에 패치나 개선 사항을 기여하는 것도 환영함
  • 논란의 여지가 있는 점:

    • 초기 꼬리 호출 명령어를 추가하는 것에 관심이 있는지 궁금함
    • WASM 스펙 담당자들은 이를 "고수준"이라 하여 거부했지만, C 위원회도 Dennis Ritchie의 제안을 거부했음. Rob Pike도 Ritchie의 방향을 지지하는 것 같음. 그렇지 않다면 왜 Golang을 만들었겠는가? 꼬리 호출은 호출이 고수준일 때만 고수준임
  • Orca를 살펴보기를 권장함. 기여할 수 있는 좋은 기회가 될 것임: https://orca-app.dev

  • WebAssembly를 깊이 탐구하며 인터프리터를 처음부터 구축하는 과정을 보는 것이 정말 멋짐

  • 훌륭한 글이며, WASM 구현으로 돌아가고 싶은 동기를 부여함

  • 정말 멋진 작업임