스파이더몽키/수정 이력

수정 이력

1개의 판이 있어요. 줄마다 펼쳐 바뀐 부분을 보거나, 두 판을 골라 비교할 수 있어요.

왼쪽 동그라미 = 이전 판, 오른쪽 = 이후 판
#446AI 조사: 게임 제작 도구 문서GGWiki 자동 · · 현재 판+2,799자
1번째 줄 근처
추가: ## 개요
추가: 스파이더몽키(SpiderMonkey)는 모질라 재단이 유지 관리하는 오픈소스 자바스크립트 및 웹어셈블리 엔진이다. 파이어폭스 웹 브라우저의 핵심 구성 요소로 사용되며, 크로스 플랫폼 지원을 통해 다양한 애플리케이션에 내장될 수 있다. C++, 러스트 및 자바스크립트로 작성되었으며, 독립 실행형 셸로 실행하거나 C++ 및 Rust 프로젝트에 포함하여 사용할 수 있다. 모질라 퍼블릭 라이선스 버전 2.0 하에 배포된다.[1][2][3][4]
추가: ## 역사
추가: 스파이더몽키는 브렌던 아이크가 1995년 넷스케이프 커뮤니케이션스에서 자바스크립트를 처음 구현하면서 시작되었다. 초기에는 Mocha라는 작업 이름으로 개발되었으나, 이후 스파이더몽키로 이름이 변경되었다. 1996년 말, 아이크는 초기 버전의 기술적 부채를 해결하기 위해 두 주간 집에 머물며 Mocha를 스파이더몽키의 기반이 되는 코드베이스로 재작성했다.[3]
추가:
추가: 2011년, 브렌던 아이크는 스파이더몽키 코드베이스의 관리를 데이브 만델린에게 이관했다.[3]
추가:
추가: 2014년 이후, 스파이더몽키는 파이어폭스와 동시에 릴리즈되는 버전 관리 체계를 adott았다.[2]
추가:
추가: ## 기능과 사용법 개요
추가: 스파이더몽키는 ECMAScript 및 웹어셈블리 표준을 구현하며, 가비지 컬렉터(GC), JSObject(JS::Value), 파서, 인터프리터, JIT 컴파일러(TraceMonkey, JägerMonkey, IonMonkey, WarpMonkey), 웹어셈블리 지원 등으로 구성된다.[2]
추가:
추가: 이 엔진은 파이어폭스뿐 아니라 썬더버드, 시몽키, 팔문, 바실리스크, 워터폭스와 같은 모질라 기반 애플리케이션 및 파이어폭스 포크에서 사용된다. 또한 몽고디비(버전 3.2부터 V8에서 스파이더몽키로 전환), 리액, 커치디비, 어도비 아크로뱃 및 크리에이티브 클라우드 제품군, GNOME 및 시나몬 데스크톱 환경, 프리스위치, 파이썬몽키, ELinks, 와인 프로젝트의 JScript 재구현, 싱크로넷, 자바스크립트 OSA, 0 A.D., 윈터JS 등 다양한 오픈소스 및 상용 프로젝트에서 자바스크립트 런타임으로 활용된다.[3]
추가:
추가: 스파이더몽키는 자바스크립트 셸을 제공하여 대화형 개발 및 명령줄에서의 스크립트 실행을 지원한다.[3][4]
추가:
추가: ## 생태계·커뮤니티
추가: 스파이더몽키는 모질라 재단과 모질라 코퍼레이션의 지원을 받으며, 활발한 개발자 커뮤니티를 통해 유지 및 발전된다. 공식 문서, 블로그, 기여 가이드라인, 버그 추적 시스템(Bugzilla), 매트릭스 채팅(#spidermonkey:mozilla.org), 디스코스 포럼, 마스토돈 계정 등을 통해 개발자와 사용자가 소통한다.[4]
추가:
추가: 엔진의 내부 구조 및 최신 기술에 대한 심층 문서는 'SpiderMonkey Internals' 섹션에서 제공되며, 워프몽키, 디버거 구현, 베이스라인 인터프리터 등에 대한 문서가 포함된다.[4]
추가:
추가: ## 사용 사례·작품
추가: 스파이더몽키는 다음과 같은 주요 프로젝트에서 사용된다:
추가: - 모질라 파이어폭스, 썬더버드, 시몽키 및 관련 애플리케이션
추가: - 팔문, 바실리스크, 워터폭스 등 파이어폭스 포크
추가: - 몽고디비 (JavaScript 기반 쿼리 및 맵리듀스 처리)
추가: - 리액 (JavaScript MapReduce 런타임)
추가: - 커치디비 (맵, 필터, 리듀스 함수 정의 및 데이터 뷰에 자바스크립트 사용)
추가: - 어도비 아크로뱃 DC (스파이더몽키 24.2 기반, ECMA-357 지원 포팅 포함)
추가: - GNOME 데스크톱 환경 (버전 3 이상)
추가: - 시나몬 데스크톱 환경 (버전 1.0 이상)
추가: - 프리스위치 (JavaScript 기반 통화 관리 스크립트)
추가: - 파이썬몽키 (자바스크립트와 파이썬 간 상호운용성 및 메모리 공유 지원)
추가: - ELinks 텍스트 웹 브라우저 (자바스크립트 지원)
추가: - 와인 프로젝트의 JScript 재구현 (일부 구성 요소 활용)
추가: - 싱크로넷 (BBS, 이메일, 웹, 애플리케이션 서버)
추가: - 자바스크립트 OSA (맥용 inter-process communication 언어)
추가: - 0 A.D. (실시간 전략 게임)
추가: - 윈터JS (와스머의 오픈소스 자바스크립트 런타임 환경)
추가: - 기타 오픈소스 프로젝트 (모질라 개발자 사이트에 외부 목록 유지)[3]
추가:
추가: ## 평가
추가: 스파이더몽키는 수년간 여러 세대의 JIT 컴파일러를 도입하며 성능을 지속적으로 개선해왔다. 트레이스몬키는 파이어폭스 3.5에서 메인라인에 통합되어 베이스라인 인터프리터 대비 20~40배의 성능 향상을 제공했으나, 이후 jaeger몬키와 아이온몬키의 발전으로 파이어폭스 11부터 제거되었다.[3]
추가:
추가: 아이온몬키는 파이어폭스 18부터 기본 엔진으로 채택되었으며, SSA 기반 중급 표현을 통해 함수 인라이닝, 루프 invariant 코드 이동, 데드 코드 제거 등과 같은 고급 최적화를 가능하게 했다.[3]
추가:
추가: 워프몽키는 파이어폭스 83부터 아이온몬키를 대체하여 도입되었으며, 인라인 캐시 데이터와 바이트코드를 미드레벨 IR(Ion MIR)으로 변환한 후 최적화 및 로우레벨 IR(Ion LIR)으로 낮추어 네이티브 코드를 생성한다. 베이스라인 JIT이 생성한 인라인 캐시가 관찰된 데이터와 일치할 때 최적화가 성공하며, 그렇지 않을 경우 베이스라인 인터프리터로의 탈출(baillout) 메커니즘이 작동한다.[3]
추가:
추가: asm.js 최적화를 위한 오딘몬키는 파이어폭스 22부터 포함되었으나, 파이어폭스 148(2026년 2월)에서 기본적으로 비활성화되었다.[3]
추가:
추가: 스파이더몽키는 ECMAScript 표준을 준수하며, ECMA-357(E4X)은 2013년 초에 제거되었다.[3]
추가:
추가: 이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.

편집 요청

편집 요청이 없어요.