작성자인 나임. 이 프로젝트가 소개된 걸 보니 정말 반가움
@ivankra가 javascript-zoo에 추가하고 벤치마크를 돌려준 덕분에 감사한 마음임
지난 3년 동안 완성도와 성능을 높이기 위해 꾸준히 시간을 들여온 취미 프로젝트였음
간단히 비교하자면, 릴리스 빌드 기준으로 Boa는 23MB, Brimstone은 6.3MB 정도임
Boa 수준의 기능을 채우고 프로덕션용으로 강화하면 크기가 커질 수도 있겠지만, 이 작은 크기로 97%의 스펙을 통과하는 건 꽤 인상적임
Boa는 내부에 Unicode 테이블을 포함하고 있음
Brimstone은 그렇지 않아서 그게 크기 차이의 대부분을 차지함
Unicode 처리를 제대로 하려면 수 MB의 데이터가 필요하기 때문에, 요즘은 작은 실행 파일을 만드는 게 쉽지 않음 Unicode 지원이 필수라면 최소한의 크기 한계가 생김
혹시 크기 최적화를 따로 적용했는지 궁금함
기본 설정은 보통 성능 중심이라, codegen-units=1이나 panic 제거 같은 옵션을 바꾸면 결과가 달라질 수도 있음
마지막 몇 퍼센트를 채우는 과정에서 크기가 불균형하게 커질 수도 있음
Boa는 약 91%만 통과하니까, Brimstone이 더 완성도 높음
소규모 프로젝트일수록 코드가 작고 깔끔하며 유지보수하기 쉬움
협업에는 언제나 일정한 오버헤드가 따름
Hacker News 의견
@ivankra가 javascript-zoo에 추가하고 벤치마크를 돌려준 덕분에 감사한 마음임
지난 3년 동안 완성도와 성능을 높이기 위해 꾸준히 시간을 들여온 취미 프로젝트였음
Boa 수준의 기능을 채우고 프로덕션용으로 강화하면 크기가 커질 수도 있겠지만, 이 작은 크기로 97%의 스펙을 통과하는 건 꽤 인상적임
Brimstone은 그렇지 않아서 그게 크기 차이의 대부분을 차지함
Unicode 처리를 제대로 하려면 수 MB의 데이터가 필요하기 때문에, 요즘은 작은 실행 파일을 만드는 게 쉽지 않음
Unicode 지원이 필수라면 최소한의 크기 한계가 생김
기본 설정은 보통 성능 중심이라,
codegen-units=1이나 panic 제거 같은 옵션을 바꾸면 결과가 달라질 수도 있음Boa는 약 91%만 통과하니까, Brimstone이 더 완성도 높음
소규모 프로젝트일수록 코드가 작고 깔끔하며 유지보수하기 쉬움
협업에는 언제나 일정한 오버헤드가 따름
Boa 저장소
기능은 Boa와 거의 비슷하고, 일부 벤치마크에서는 속도가 두 배 빠름
자연스러운 흐름이라 생각함
다만 이 프로젝트는 unsafe를 꽤 많이 쓴다고 함
일종의 Blub 현상 같음
결국 마케팅 요소이긴 하지만, 평균적으로 완성도가 높은 건 사실임
OS 부팅 전에 Ikari 인트로가 뜨는 걸 상상해봄
C/C++ 링크 없이 완전한 Rust 네이티브
40MB짜리 단일 바이너리 서버에 JS 스크립팅을 추가할 수 있음
Rust 기반 JS 엔진이 여러 개 생긴 건 정말 멋진 일임
unsafe 영역을 최소화하면 괜찮다고 생각함
Vec같은 표준 라이브러리조차 내부적으로 unsafe를 사용함중요한 건 unsafe를 작은 영역에 한정해 검증 가능하게 만드는 것임
GC 구현은 그 예외적인 영역임
나라도 JS 런타임을 Rust로 만든다면, 우선 안전하게 구현하고 필요할 때만 unsafe를 쓸 것임
고성능 GC를 구현하려면 어쩔 수 없이 필요한 부분임
Rust는 그냥 빠르고 좋은 명령형 언어임
Rc나Arc를 쓸 때만 참조 카운팅이 적용됨