▲neo 4달전 | parent | favorite | on: GN⁺: Porffor: 처음부터 새로 만든 실험적 Ahead-of-Time JS 엔진(porffor.dev)Hacker News 의견 Oliver가 Porffor에 전념할 것이라고 발표했음 JS 성능 향상에 한계가 있어, V8 C++ 호출로 트랜스파일링하는 것이 최선일 것이라는 의견이 있음 TypeScript를 컴파일하면 큰 성능 향상을 얻을 수 있음 TS와 V8은 빠르게 변화하는 비표준 대상이므로 큰 팀이 필요함 JS 런타임이 Wasm 접근을 시도하는 것이 멋지다고 생각함 Static Hermes와 Porffor의 공통점과 차이점을 분석함 둘 다 JS test262 준수를 목표로 함 Porffor는 Native와 Wasm 출력을 지원하지만 Static Hermes는 주로 Native 출력에 집중함 Porffor는 자체 호스팅되며 순수 JS로 작성되었고, Static Hermes는 LLVM에 의존함 Porffor는 비동기/프로미스/어웨이트를 지원하지 않지만 Static Hermes는 제한적으로 지원함 Static Hermes는 C++로 작성되었고, Porffor는 주로 JS로 작성됨 둘 다 TypeScript를 지원하지만 Static Hermes는 TS AST를 Flow로 트랜스파일링하고, Porffor는 네이티브로 지원함 Static Hermes는 eval과 같은 어려운 JS 시나리오를 지원하기 위해 폴백 인터프리터를 가지고 있지만, Porffor는 AOT 컴파일만 지원함 이 프로젝트가 JS 엔진을 가속화할 수 있을지 기대됨 windmill.dev에서는 사용자가 코드를 배포할 때 Bun 빌드를 사용하여 스크립트와 모든 종속성을 하나의 js 파일로 번들링함 번들을 s3에 저장하여 콜드 스타트와 메모리 사용량을 개선함 모든 것을 네이티브로 번들링할 수 있다면 게임 체인저가 될 것임 "ahead-of-time JS engine"이 "JS-to-Wasm compiler"보다 더 나은 설명인 이유를 궁금해함 Porffor의 버전 관리 방식에 대해 의심이 있음 Test262 테스트에서 회귀가 발생하면 버전 번호가 역행할 수 있음 Porffor는 웨일스어로 "보라색"을 의미함 quickJS와 비교하여 JS를 네이티브 코드로 컴파일하는 방법을 궁금해함 Facebook이 PHP를 C로 트랜스파일링하려 했던 것과 같은 아이디어라고 생각함 hiphop-php라고 불렸고, 결국 hhvm을 새 개념으로 만들었음 NodeJS를 네이티브 라이브러리로 컴파일할 수 있는 방법을 알고 싶어함 현재 사용 중인 프로세스가 약간 복잡하고 오류가 발생하기 쉬움
Hacker News 의견
eval
과 같은 어려운 JS 시나리오를 지원하기 위해 폴백 인터프리터를 가지고 있지만, Porffor는 AOT 컴파일만 지원함