Node v8.0.0(현재 버전)

Node.js의 다음 주요 릴리스에는 중요한 변경 및 추가 사항이 포함되어 있습니다.
이런 블로그 글에서 제대로 다루기에는 내용이 너무 많습니다.
이 글에서는 중요한 변경사항과 기능을 간단히 정리했습니다.

npm 5.0.0 버전 도입

npm, Inc에서 최근 npm 클라이언트 5.0.0 버전의
릴리스를 발표했고
Node.js 8.0.0에서 이 중요한 새 버전을 포함하게 되었습니다.

V8 5.8 도입

Node.js 8.0.0은 개발자가 사용하는 API와 성능 면에서 큰 향상을 이룬 JavaScript 런타임의
새 버전인 V8 5.8을 사용합니다. Node.js 개발자에게 가장 중요한 점은 V8 5.8은 V8 5.9,
Node.js 네이티브 애드온 환경의 안전성을 보장할 V8 6.0과 ABI 호환성을 보장한다는 점입니다.
Node.js 8에서 5.9로 이동할 계획을 세우고 있고 가능하다면 6.0까지도 갈 것입니다.

V8 5.8 엔진은 모든 Node.js 애플리케이션에 상당한 성능 최적화를 제공하는 새로운
TurboFan + Ignition
컴파일러 파이프라인으로의 지연된 전환을 설정하는 것도 돕고 있습니다. 이 파이프라인은 이전 버전의
V8에도 있었지만 TurboFan과 Ignition은 V8 5.9에서 처음으로 활성화가 기본적으로 될 것입니다.
이 새로운 컴파일러 파이프라인은 이를 더 잘 적용할 수 있도록 Node.js 코어 기술 위원회(CTC)가
원래 4월에 예정되었던 Node.js 8 릴리스를 연기할 정도로 중요한 변경사항입니다.

Node.js API(N-API) 도입

네이티브 애드온을 사용하거나 만드는 Node.js 개발자에게 새롭고 실험적인 Node.js API(N-API)는
네이티브 애드온을 한 시스템에서 컴파일하고 나면 다양한 버전의 Node.js에서 사용할 수 있게 하는 기존
Node.js 네이티브 추상화(nan)를 뛰어넘는
큰 향상을 보여줍니다.

새로운 가상머신에 의존하지 않는 애플리케이션 바이너리 인터페이스(ABI)를 제공함으로써 네이티브
애드온이 다양한 버전의 V8 자바스크립트 런타임뿐만 아니라 Microsoft의 Chakra-Core 런타임에서도
동작하게 되었습니다.

Node.js 8.0.0에서 N-API는 실험단계이므로
구현체와 API에서 많은 변경이 있을 것입니다. 네이티브 애드온 개발자에게는 최대한 빨리
이 API로 작업해보기를 권장하고
새로운 API가 생태계의 요구를 충족할 수 있도록 피드백을 주었으면 합니다.

async_hooks 도입

실험적인 async_hooks 모듈(이전에는 async_wrap)은 8.0.0에서 크게 업그레이드되었습니다.
개발자들이 이 진단 API로 Node.js 이벤트 루프의 작업을 모니터링하고 비동기 요청을 추적하고 전체
생명주기에 걸쳐서 조작할 수 있게 되었습니다. 새 모듈의
전체 문서는 아직 작업중이고
실험적인 모듈이므로 사용자는 아주 신중히 사용해야 합니다.

Buffer 변경사항

Node.js의 Buffer API에서 다수의 중요 변경사항이 생겼습니다. 폐기예정인 Buffer(num)
생성자를 호출하면(new 키워드를 사용하든 하지 않든) 0으로 채워진 Buffer 인스턴스가 반환된다는
것이 가장 중요한 부분입니다. 이전 버전의 Node.js에서는 초기화되지 않은 메모리를 반환해서
이 메모리에 민감한 데이터를 포함될 가능성이 있었습니다.

Node.js 6.0.0에서 다수의 보안 문제와
사용성 문제를 해결하려고 Buffer(num) 생성자 호출 대신 사용하는 새로운 Buffer 생성자 메서드가
도입되었습니다.
하지만 기존 생성자가 Node.js 생태계에서 광범위하게 사용되므로 호환성을 크게 깨뜨리지 않고
이를 완전히 폐기하거나 사용할 수 없도록 할 수 없었습니다.

기본 동작인 Buffer(num)의 0으로 채워진 새 인스턴스는 성능에 큰 영향을 줄 것입니다.
초기화하지 않은 메모리로 Buffer 인스턴스를 할당하고 싶은 개발자는 새로운
Buffer.allocUnsafe(num)로 바꾸어야 합니다. Node.js 8에서 0으로 채워지거나
초기화하지 않은 Buffer 생성의 예시는 아래 나와 있습니다.

Console 변경사항

Node.js의 console 모듈에서 사용할 수 있는 console.log(), console.error() 등의
메서드로 애플리케이션이 stdout, stderr, 파이프에 직접 출력할 수 있습니다. 기존에는 의존하는
스트림에 console 출력을 작성하다가 오류가 발생하면 Node.js 애플리케이션에 크래시가 발생했습니다.
8.0.0부터는 이러한 에러를 아무런 경고 없이 무시해서 console.log()와 그 외 API를 안전하게
사용할 수 있게 했습니다. Console 생성자에 ignoreErrors 옵션을 전달하면 오류와 관련된
레거시 동작을 유지할 수 있게 될 것입니다.

정적 오류 코드

Node.js가 만드는 모든 오류에 정적 오류 코드를 할당하는 작업을 시작했습니다. 모든 오류에 코드를
할당하는 데는 시간이 걸릴 것이지만 일부는 8.0.0에 적용되었습니다. 오류의 형식이나 메시지가
변경되더라도 이 오류 코드는 변경되지 않음을 보장합니다.

코드는 두 가지 방법으로 사용자에게 표시됩니다.

  • Error 객체 인스턴스에서 code 프로퍼티를 사용하는 경우
  • Error의 스택 트레이스에서 [ERR_CODE]를 출력하는 경우

예를 들어 assert(false)를 호출하면 다음의 AssertionError를 생성할 것입니다.

프로세스 경고의 리다이렉트

--redirect-warnings={file} 명령행 인자나 이와 같은 NODE_REDIRECT_WARNINGS={file}
환경 변수를 사용하면 폐기예정 같은 프로세스 경고를 이제 파일로 리다이렉트할 수 있습니다.
기본 동작인 stderr에 경고를 출력하는 대신 경고를 지정한 파일에 작성해서 애플리케이션의
기본 출력과 분리해서 분석할 수 있게 되었습니다.

Stream API 개선

Stream API 사용자를 위해 Stream 인스턴스를 제거하고 종료하는 새로운 표준 방법을 추가했습니다.
모든 Stream 인스턴스는 이제 destroy() 메서드를 상속받고 이 구현체는 _destroy()
메서드의 커스텀 구현체를 제공해서 커스터마이징하거나 확장할 수 있습니다.

디버거 변경사항

레거시 명령행 디버거는 Node.js 8에서 제거되었습니다. 명령행 대체재로 node-inspect가 Node.js
런타임에 바로 통합되었습니다. 게다가 Node.js 6에서 실험적인 기능으로 도입된 V8 Inspector 디버거가
완전히 지원되는 기능으로 업그레이드되었습니다.

장기 지원

Node.js 8은 장기 지원(LTS)에 들어가는 차기 릴리스 라인입니다. 이는 2017년 10월로 예정되어 있습니다.
Node.js 8이 LTS로 바뀌고 나면 Carbon 코드명을 받을 것입니다.

Node.js Long Term Support Schedule

Node.js 릴리스 버전을 언급할 때 Node.js 8에서는 "v"를 뺐습니다. 이전 버전은 보통
v0.10, v0.12, v4, v6 등으로 불렀습니다. 의존하는 JavaScript 엔진인 V8과의 혼동을 피하고자
"v"를 빼고 Node.js 8이라고 부릅니다.

주요 변경사항

  • Async Hooks

  • Buffer

    • --pending-deprecation 플래그를 사용하면 new Buffer(num)Buffer(num)
      사용할 때 Node.js가 폐기예정 경고를 보여줍니다.
      [d2d32ea5a2]
      #11968.
    • new Buffer(num)Buffer(num)는 새로운 Buffer 인스턴스를 0으로 채웁니다.
      [7eb1b4658e]
      #12141.
    • 많은 Buffer 메서드가 이제 Uint8Array를 입력으로 받습니다.
      [beca3244e2]
      #10236.
  • Child Process

  • Console

    • console 메서드를 사용하다가 발생한 Error 이벤트는 이제 감춥니다.
      [f18e08d820]
      #9744.
  • Dependencies

    • npm 클라이언트를 5.0.0으로 업데이트했습니다.
      [c58cea5]
      #13276.
    • V8을 5.8로 업데이트해서 ABI 안정성을 6.0까지 유지합니다.
      [60d1aac8d2]
      #12784.
  • Domains

    • 네이티브 Promise 인스턴스가 이제 Domain을 인식합니다.
      [84dabe8373]
      #12489.
  • Errors

    • Node.js가 생성한 오류에 정적 오류 코드를 할당하기 시작했습니다. 이는 다수의 커밋으로
      진행되었고 아직도 작업 중입니다.
  • File System

    • 유틸리티 클래스 fs.SyncWriteStream이 폐기예정이 되었습니다.
      [7a55e34ef4]
      #10467.
    • 폐기예정이던 fs.read() 문자열 인터페이스를 제거했습니다.
      [3c2a9361ff]
      #9683.
  • HTTP

    • 사용자가 구현한 에이전트에 대한 지원을 개선했습니다.
      [90403dd1d0]
      #11567.
    • 밖으로 나가는 Cookie 헤더를 하나의 문자열로 연결했습니다.
      [d3480776c7]
      #11259.
    • httpResponse.writeHeader() 메서드가 폐기예정이 되었습니다.
      [fb71ba4921]
      #11355.
    • HTTP 헤더에 접근하는 새로운 메서드를 OutgoingMessage에 추가했습니다.
      [3e6f1032a4]
      #10805.
  • Lib

    • 모든 폐기예정 메시지에 정적 식별자를 할당했습니다.
      [5de3cf099c]
      #10116.
    • 레거시 linkedlist 모듈을 제거했습니다.
      [84a23391f6]
      #12113.
  • N-API

    • 새로 추가된 N-API API를 실험적으로 지원합니다.
      [56e881d0b0]
      #11975.
  • Process

    • --redirect-warnings 명령행 인자를 사용해서 프로세스 경고 출력을 파일로 리다이렉트할 수 있습니다.
      [03e89b3ff2]
      #10116.
    • 프로세스 경고가 이제 부가 정보를 포함할 수 있습니다.
      [dd20e68b0f]
      #12725.
  • REPL

  • Src

    • NODE_MODULE_VERSION을 57로 업데이트했습니다.
      [ec7cbaf266]
      #12995.
    • --pending-deprecation 명령행 인자와 NODE_PENDING_DEPRECATION 환경변수를
      추가했습니다.
      [a16b570f8c]
      #11968.
    • --debug 명령행 인자가 폐기예정이 되었습니다. Node.js가 이전에 사용하던 레거시 Debugger
      프로토콜이 제거되었으므로 --debug를 사용하면 새로운 Inspector에 기반을 둔
      디버그 프로토콜을 활성화할 것입니다.
      [010f864426]
      #12949.
    • -c-e 명령행 인자를 동시에 사용하면 예외를 던집니다.
      [a5f91ab230]
      #11689.
    • --use-bundled-ca--use-openssl-ca 명령행 인자를 동시에 사용하면 예외를 던집니다.
      [8a7db9d4b5]
      #12087.
  • Stream

  • TLS

    • rejectUnauthorized 옵션의 기본이 이제 true가 되었습니다.
      [348cc80a3c]
      #5923.
    • tls.createSecurePair() API는 이제 런타임 폐기예정을 발생시킵니다.
      [a2ae08999b]
      #11349.
    • dhparam이 2048비트보다 적으면 런타임 폐기예정이 발생할 것입니다.
      [d523eb9c40]
      #11447.
  • URL

    • WHATWG URL 구현체가 이제 완전히 지원되는 Node.js API입니다.
      [d080ead0f9]
      #12710.
  • Util

    • util.inspect()를 사용할 때 Symbol 키가 기본적으로 보입니다.
      [5bfd13b81e]
      #9726.
    • %j를 포매팅할 때 toJSON 오류를 던질 것입니다.
      [455e6f1dd8]
      #11708.
    • inspect.stylesinspect.colors를 prototype이 없는 객체로 변경했습니다.
      [aab0d202f8]
      #11624.
    • 새로운 util.promisify() API를 추가했습니다.
      [99da8e8e02]
      #12442.
  • Zlib

    • Zlib에서 편의 메서드 Uint8Array를 지원합니다.
      [91383e47fd]
      #12001.
    • Zlib 오류가 이제 시종일관 RangeErrorTypeError를 사용합니다.
      [b514bd231e]
      #11391.

Commits

Semver-Major Commits

  • [e48d58b8b2] - (SEMVER-MAJOR) assert: fix AssertionError, assign error code (James M Snell) #12651
  • [758b8b6e5d] - (SEMVER-MAJOR) assert: improve assert.fail() API (Rich Trott) #12293
  • [6481c93aef] - (SEMVER-MAJOR) assert: add support for Map and Set in deepEqual (Joseph Gentle) #12142
  • [efec14a7d1] - (SEMVER-MAJOR) assert: enforce type check in deepStrictEqual (Joyee Cheung) #10282
  • [562cf5a81c] - (SEMVER-MAJOR) assert: fix premature deep strict comparison (Joyee Cheung) #11128
  • [0af41834f1] - (SEMVER-MAJOR) assert: fix misformatted error message (Rich Trott) #11254
  • [190dc69c89] - (SEMVER-MAJOR) benchmark: add parameter for module benchmark (Brian White) #10789
  • [b888bfe81d] - (SEMVER-MAJOR) benchmark: allow zero when parsing http req/s (Brian White) #10558
  • [f53a6fb48b] - (SEMVER-MAJOR) benchmark: add http header setting scenarios (Brian White) #10558
  • [d2d32ea5a2] - (SEMVER-MAJOR) buffer: add pending deprecation warning (James M Snell) #11968
  • [7eb1b4658e] - (SEMVER-MAJOR) buffer: zero fill Buffer(num) by default (James M Snell) #12141
  • [682573c11d] - (SEMVER-MAJOR) buffer: remove error for malformatted hex string (Rich Trott) #12012
  • [9a0829d728] - (SEMVER-MAJOR) buffer: stricter argument checking in toString (Nikolai Vavilov) #11120
  • [beca3244e2] - (SEMVER-MAJOR) buffer: allow Uint8Array input to methods (Anna Henningsen) #10236
  • [3d353c749c] - (SEMVER-MAJOR) buffer: consistent error for length > kMaxLength (Joyee Cheung) #10152
  • [bf5c309b5e] - (SEMVER-MAJOR) build: fix V8 build on FreeBSD (Michaël Zasso) #12784
  • [a1028d5e3e] - (SEMVER-MAJOR) build: remove cares headers from tarball (Gibson Fahnestock) #10283
  • [d08836003c] - (SEMVER-MAJOR) build: build an x64 build by default on Windows (Nikolai Vavilov) #11537
  • [92ed1ab450] - (SEMVER-MAJOR) build: change nosign flag to sign and flips logic (Joe Doyle) #10156
  • [97a77288ce] - (SEMVER-MAJOR) child_process: improve ChildProcess validation (cjihrig) #12348
  • [a9111f9738] - (SEMVER-MAJOR) child_process: minor cleanup of internals (cjihrig) #12348
  • [d75fdd96aa] - (SEMVER-MAJOR) child_process: improve killSignal validations (Sakthipriyan Vairamani (thefourtheye)) #10423
  • [4cafa60c99] - (SEMVER-MAJOR) child_process: align fork/spawn stdio error msg (Sam Roberts) #11044
  • [3268863ebc] - (SEMVER-MAJOR) child_process: add string shortcut for fork stdio (Javis Sullivan) #10866
  • [8f3ff98f0e] - (SEMVER-MAJOR) child_process: allow Infinity as maxBuffer value (cjihrig) #10769
  • [627ecee9ed] - (SEMVER-MAJOR) child_process: support Uint8Array input to methods (Anna Henningsen) #10653
  • [fc7b0dda85] - (SEMVER-MAJOR) child_process: improve input validation (cjihrig) #8312
  • [49d1c366d8] - (SEMVER-MAJOR) child_process: remove extra newline in errors (cjihrig) #9343
  • [f18e08d820] - (SEMVER-MAJOR) console: do not emit error events (Anna Henningsen) #9744
  • [a8f460f12d] - (SEMVER-MAJOR) crypto: support all ArrayBufferView types (Timothy Gu) #12223
  • [0db49fef41] - (SEMVER-MAJOR) crypto: support Uint8Array prime in createDH (Anna Henningsen) #11983
  • [443691a5ae] - (SEMVER-MAJOR) crypto: fix default encoding of LazyTransform (Lukas Möller) #8611
  • [9f74184e98] - (SEMVER-MAJOR) crypto: upgrade pbkdf2 without digest to an error (James M Snell) #11305
  • [e90f38270c] - (SEMVER-MAJOR) crypto: throw error in CipherBase::SetAutoPadding (Kirill Fomichev) #9405
  • [1ef401ce92] - (SEMVER-MAJOR) crypto: use check macros in CipherBase::SetAuthTag (Kirill Fomichev) #9395
  • [7599b0ef9d] - (SEMVER-MAJOR) debug: activate inspector with _debugProcess (Eugene Ostroukhov) #11431
  • [549e81bfa1] - (SEMVER-MAJOR) debugger: remove obsolete _debug_agent.js (Rich Trott) #12582
  • [3c3b36af0f] - (SEMVER-MAJOR) deps: upgrade npm beta to 5.0.0-beta.56 (Kat Marchán) #12936
  • [6690415696] - (SEMVER-MAJOR) deps: cherry-pick a927f81c7 from V8 upstream (Anna Henningsen) #11752
  • [60d1aac8d2] - (SEMVER-MAJOR) deps: update V8 to 5.8.283.38 (Michaël Zasso) #12784
  • [b7608ac707] - (SEMVER-MAJOR) deps: cherry-pick node-inspect#43 (Ali Ijaz Sheikh) #11441
  • [9c9e2d7f4a] - (SEMVER-MAJOR) deps: backport 3297130 from upstream V8 (Michaël Zasso) #11752
  • [07088e6fc1] - (SEMVER-MAJOR) deps: backport 39642fa from upstream V8 (Michaël Zasso) #11752
  • [8394b05e20] - (SEMVER-MAJOR) deps: cherry-pick c5c570f from upstream V8 (Michaël Zasso) #11752
  • [fcc58bf0da] - (SEMVER-MAJOR) deps: cherry-pick a927f81c7 from V8 upstream (Anna Henningsen) #11752
  • [83bf2975ec] - (SEMVER-MAJOR) deps: cherry-pick V8 ValueSerializer changes (Anna Henningsen) #11752
  • [c459d8ea5d] - (SEMVER-MAJOR) deps: update V8 to 5.7.492.69 (Michaël Zasso) #11752
  • [7c0c7baff3] - (SEMVER-MAJOR) deps: fix gyp configuration for v8-inspector (Michaël Zasso) #10992
  • [00a2aa0af5] - (SEMVER-MAJOR) deps: fix gyp build configuration for Windows (Michaël Zasso) #10992
  • [b30ec59855] - (SEMVER-MAJOR) deps: switch to v8_inspector in V8 (Ali Ijaz Sheikh) #10992
  • [7a77daf243] - (SEMVER-MAJOR) deps: update V8 to 5.6.326.55 (Michaël Zasso) #10992
  • [c9e5178f3c] - (SEMVER-MAJOR) deps: hide zlib internal symbols (Sam Roberts) #11082
  • [2739185b79] - (SEMVER-MAJOR) deps: update V8 to 5.5.372.40 (Michaël Zasso) #9618
  • [f2e3a670af] - (SEMVER-MAJOR) dgram: convert to using internal/errors (Michael Dawson) #12926
  • [2dc1053b0a] - (SEMVER-MAJOR) dgram: support Uint8Array input to send() (Anna Henningsen) #11985
  • [32679c73c1] - (SEMVER-MAJOR) dgram: improve signature of Socket.prototype.send (Christopher Hiller) #10473
  • [5587ff1ccd] - (SEMVER-MAJOR) dns: handle implicit bind DNS errors (cjihrig) #11036
  • [eb535c5154] - (SEMVER-MAJOR) doc: deprecate vm.runInDebugContext (Josh Gavant) #12243
  • [75c471a026] - (SEMVER-MAJOR) doc: drop PPC BE from supported platforms (Michael Dawson) #12309
  • [86996c5838] - (SEMVER-MAJOR) doc: deprecate private http properties (Brian White) #10941
  • [3d8379ae60] - (SEMVER-MAJOR) doc: improve assert.md regarding ECMAScript terms (Joyee Cheung) #11128
  • [d708700c68] - (SEMVER-MAJOR) doc: deprecate buffer’s parent property (Sakthipriyan Vairamani (thefourtheye)) #8332
  • [03d440e3ce] - (SEMVER-MAJOR) doc: document buffer.buffer property (Sakthipriyan Vairamani (thefourtheye)) #8332
  • [f0b702555a] - (SEMVER-MAJOR) errors: use lazy assert to avoid issues on startup (James M Snell) #11300
  • [251e5ed8ee] - (SEMVER-MAJOR) errors: assign error code to bootstrap_node created error (James M Snell) #11298
  • [e75bc87d22] - (SEMVER-MAJOR) errors: port internal/process errors to internal/errors (James M Snell) #11294
  • [76327613af] - (SEMVER-MAJOR) errors, child_process: migrate to using internal/errors (James M Snell) #11300
  • [1c834e78ff] - (SEMVER-MAJOR) errors,test: migrating error to internal/errors (larissayvette) #11505
  • [2141d37452] - (SEMVER-MAJOR) events: update and clarify error message (Chris Burkhart) #10387
  • [221b03ad20] - (SEMVER-MAJOR) events, doc: check input in defaultMaxListeners (DavidCai) #11938
  • [eed87b1637] - (SEMVER-MAJOR) fs: (+/-)Infinity and NaN invalid unixtimestamp (Luca Maraschi) #11919
  • [71097744b2] - (SEMVER-MAJOR) fs: more realpath*() optimizations (Brian White) #11665
  • [6a5ab5d550] - (SEMVER-MAJOR) fs: include more fs.stat*() optimizations (Brian White) #11665
  • [1c3df96570] - (SEMVER-MAJOR) fs: replace regexp with function (Brian White) #10789
  • [34c9fc2e4e] - (SEMVER-MAJOR) fs: avoid multiple conversions to string (Brian White) #10789
  • [21b2440176] - (SEMVER-MAJOR) fs: avoid recompilation of closure (Brian White) #10789
  • [7a55e34ef4] - (SEMVER-MAJOR) fs: runtime deprecation for fs.SyncWriteStream (James M Snell) #10467
  • [b1fc7745f2] - (SEMVER-MAJOR) fs: avoid emitting error EBADF for double close (Matteo Collina) #11225
  • [3c2a9361ff] - (SEMVER-MAJOR) fs: remove fs.read’s string interface (Nikolai Vavilov) #9683
  • [f3cf8e9808] - (SEMVER-MAJOR) fs: do not pass Buffer when toString() fails (Brian White) #9670
  • [85a4e25775] - (SEMVER-MAJOR) http: add type checking for hostname (James M Snell) #12494
  • [90403dd1d0] - (SEMVER-MAJOR) http: should support userland Agent (fengmk2) #11567
  • [d3480776c7] - (SEMVER-MAJOR) http: concatenate outgoing Cookie headers (Brian White) #11259
  • [6b2cef65c9] - (SEMVER-MAJOR) http: append Cookie header values with semicolon (Brian White) #11259
  • [8243ca0e0e] - (SEMVER-MAJOR) http: reuse existing StorageObject (Brian White) #10941
  • [b377034359] - (SEMVER-MAJOR) http: support old private properties and function (Brian White) #10941
  • [940b5303be] - (SEMVER-MAJOR) http: use Symbol for outgoing headers (Brian White) #10941
  • [fb71ba4921] - (SEMVER-MAJOR) http: docs-only deprecation of res.writeHeader() (James M Snell) #11355
  • [a4bb9fdb89] - (SEMVER-MAJOR) http: include provided status code in range error (cjihrig) #11221
  • [fc7025c9c0] - (SEMVER-MAJOR) http: throw an error for unexpected agent values (brad-decker) #10053
  • [176cdc2823] - (SEMVER-MAJOR) http: misc optimizations and style fixes (Brian White) #10558
  • [73d9445782] - (SEMVER-MAJOR) http: try to avoid lowercasing incoming headers (Brian White) #10558
  • [c77ed327d9] - (SEMVER-MAJOR) http: avoid using object for removed header status (Brian White) #10558
  • [c00e4adbb4] - (SEMVER-MAJOR) http: optimize header storage and matching (Brian White) #10558
  • [ec8910bcea] - (SEMVER-MAJOR) http: check statusCode early (Brian White) #10558
  • [a73ab9de0d] - (SEMVER-MAJOR) http: remove pointless use of arguments (cjihrig) #10664
  • [df3978421b] - (SEMVER-MAJOR) http: verify client method is a string (Luca Maraschi) #10111
  • [90476ac6ee] - (SEMVER-MAJOR) lib: remove _debugger.js (Ben Noordhuis) #12495
  • [3209a8ebf3] - (SEMVER-MAJOR) lib: ensure --check flag works for piped-in code (Teddy Katz) #11689
  • [c67207731f] - (SEMVER-MAJOR) lib: simplify Module._resolveLookupPaths (Brian White) #10789
  • [28dc848e70] - (SEMVER-MAJOR) lib: improve method of function calling (Brian White) #10789
  • [a851b868c0] - (SEMVER-MAJOR) lib: remove sources of permanent deopts (Brian White) #10789
  • [62e96096fa] - (SEMVER-MAJOR) lib: more consistent use of module.exports = {} model (James M Snell) #11406
  • [88c3f57cc3] - (SEMVER-MAJOR) lib: refactor internal/socket_list (James M Snell) #11406
  • [f04387e9f2] - (SEMVER-MAJOR) lib: refactor internal/freelist (James M Snell) #11406
  • [d61a511728] - (SEMVER-MAJOR) lib: refactor internal/linkedlist (James M Snell) #11406
  • [2ba4eeadbb] - (SEMVER-MAJOR) lib: remove simd support from util.format() (Ben Noordhuis) #11346
  • [dfdd911e17] - (SEMVER-MAJOR) lib: deprecate node --debug at runtime (Josh Gavant) #10970
  • [5de3cf099c] - (SEMVER-MAJOR) lib: add static identifier codes for all deprecations (James M Snell) #10116
  • [4775942957] - (SEMVER-MAJOR) lib, test: fix server.listen error message (Joyee Cheung) #11693
  • [caf9ae748b] - (SEMVER-MAJOR) lib,src: make constants not inherit from Object (Sakthipriyan Vairamani (thefourtheye)) #10458
  • [e0b076a949] - (SEMVER-MAJOR) lib,src,test: update --debug/debug-brk comments (Ben Noordhuis) #12495
  • [b40dab553f] - (SEMVER-MAJOR) linkedlist: remove unused methods (Brian White) #11726
  • [84a23391f6] - (SEMVER-MAJOR) linkedlist: remove public module (Brian White) #12113
  • [e32425bfcd] - (SEMVER-MAJOR) module: avoid JSON.stringify() for cache key (Brian White) #10789
  • [403b89e72b] - (SEMVER-MAJOR) module: avoid hasOwnProperty() (Brian White) #10789
  • [298a40e04e] - (SEMVER-MAJOR) module: use “clean” objects (Brian White) #10789
  • [cf980b0311] - (SEMVER-MAJOR) net: check and throw on error for getsockname (Daniel Bevenius) #12871
  • [473572ea25] - (SEMVER-MAJOR) os: refactor os structure, add Symbol.toPrimitive (James M Snell) #12654
  • [03e89b3ff2] - (SEMVER-MAJOR) process: add --redirect-warnings command line argument (James M Snell) #10116
  • [5e1f32fd94] - (SEMVER-MAJOR) process: add optional code to warnings + type checking (James M Snell) #10116
  • [a647d82f83] - (SEMVER-MAJOR) process: improve process.hrtime (Joyee Cheung) #10764
  • [4e259b21a3] - (SEMVER-MAJOR) querystring, url: handle repeated sep in search (Daijiro Wachi) #10967
  • [39d9afe279] - (SEMVER-MAJOR) repl: refactor LineParser implementation (Blake Embrey) #6171
  • [3f27f02da0] - (SEMVER-MAJOR) repl: docs-only deprecation of magic mode (Timothy Gu) #11599
  • [b77c89022b] - (SEMVER-MAJOR) repl: remove magic mode semantics (Timothy Gu) #11599
  • [007386ee81] - (SEMVER-MAJOR) repl: remove workaround for function redefinition (Michaël Zasso) #9618
  • [5b63fabfd8] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 55 (Michaël Zasso) #12784
  • [a16b570f8c] - (SEMVER-MAJOR) src: add --pending-deprecation and NODE_PENDING_DEPRECATION (James M Snell) #11968
  • [faa447b256] - (SEMVER-MAJOR) src: allow ArrayBufferView as instance of Buffer (Timothy Gu) #12223
  • [47f8f7462f] - (SEMVER-MAJOR) src: remove support for --debug (Jan Krems) #12197
  • [a5f91ab230] - (SEMVER-MAJOR) src: throw when -c and -e are used simultaneously (Teddy Katz) #11689
  • [8a7db9d4b5] - (SEMVER-MAJOR) src: add --use-bundled-ca --use-openssl-ca check (Daniel Bevenius) #12087
  • [ed12ea371c] - (SEMVER-MAJOR) src: update inspector code to match upstream API (Michaël Zasso) #11752
  • [89d8dc9afd] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 54 (Michaël Zasso) #11752
  • [1125c8a814] - (SEMVER-MAJOR) src: fix typos in node_lttng_provider.h (Benjamin Fleischer) #11723
  • [aae8f683b4] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 53 (Michaël Zasso) #10992
  • [91ab09fe2a] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 52 (Michaël Zasso) #9618
  • [334be0feba] - (SEMVER-MAJOR) src: fix space for module version mismatch error (Yann Pringault) #10606
  • [45c9ca7fd4] - (SEMVER-MAJOR) src: remove redundant spawn/spawnSync type checks (cjihrig) #8312
  • [b374ee8c3d] - (SEMVER-MAJOR) src: add handle check to spawn_sync (cjihrig) #8312
  • [3295a7feba] - (SEMVER-MAJOR) src: allow getting Symbols on process.env (Anna Henningsen) #9631
  • [1aa595e5bd] - (SEMVER-MAJOR) src: throw on process.env symbol usage (cjihrig) #9446
  • [a235ccd168] - (SEMVER-MAJOR) src,test: debug is now an alias for inspect (Ali Ijaz Sheikh) #11441
  • [b6e1d22fa6] - (SEMVER-MAJOR) stream: add destroy and _destroy methods. (Matteo Collina) #12925
  • [f36c970cf3] - (SEMVER-MAJOR) stream: improve multiple callback error message (cjihrig) #12520
  • [202b07f414] - (SEMVER-MAJOR) stream: fix comment for sync flag of ReadableState (Wang Xinyong) #11139
  • [1004b9b4ad] - (SEMVER-MAJOR) stream: remove unused ranOut from ReadableState (Wang Xinyong) #11139
  • [03b9f6fe26] - (SEMVER-MAJOR) stream: avoid instanceof (Brian White) #10558
  • [a3539ae3be] - (SEMVER-MAJOR) stream: use plain objects for write/corked reqs (Brian White) #10558
  • [24ef1e6775] - (SEMVER-MAJOR) string_decoder: align UTF-8 handling with V8 (Brian White) #9618
  • [23fc082409] - (SEMVER-MAJOR) test: remove extra console output from test-os.js (James M Snell) #12654
  • [59c6230861] - (SEMVER-MAJOR) test: cleanup test-child-process-constructor.js (cjihrig) #12348
  • [06c29a66d4] - (SEMVER-MAJOR) test: remove common.fail() (Rich Trott) #12293
  • [0c539faac3] - (SEMVER-MAJOR) test: add common.getArrayBufferViews(buf) (Timothy Gu) #12223
  • [c5d1851ac4] - (SEMVER-MAJOR) test: drop v5.x-specific code path from simd test (Ben Noordhuis) #11346
  • [c2c6ae52ea] - (SEMVER-MAJOR) test: move test-vm-function-redefinition to parallel (Franziska Hinkelmann) #9618
  • [5b30c4f24d] - (SEMVER-MAJOR) test: refactor test-child-process-spawnsync-maxbuf (cjihrig) #10769
  • [348cc80a3c] - (SEMVER-MAJOR) tls: make rejectUnauthorized default to true (ghaiklor) #5923
  • [a2ae08999b] - (SEMVER-MAJOR) tls: runtime deprecation for tls.createSecurePair() (James M Snell) #11349
  • [d523eb9c40] - (SEMVER-MAJOR) tls: use emitWarning() for dhparam < 2048 bits (James M Snell) #11447
  • [e03a929648] - (SEMVER-MAJOR) tools: update test-npm.sh paths (Kat Marchán) #12936
  • [6f202ef857] - (SEMVER-MAJOR) tools: remove assert.fail() lint rule (Rich Trott) #12293
  • [615789b723] - (SEMVER-MAJOR) tools: enable ES2017 syntax support in ESLint (Michaël Zasso) #11210
  • [1b63fa1096] - (SEMVER-MAJOR) tty: remove NODE_TTY_UNSAFE_ASYNC (Jeremiah Senkpiel) #12057
  • [78182458e6] - (SEMVER-MAJOR) url: fix error message of url.format (DavidCai) #11162
  • [c65d55f087] - (SEMVER-MAJOR) url: do not truncate long hostnames (Junshu Okamoto) #9292
  • [3cc3e099be] - (SEMVER-MAJOR) util: show External values explicitly in inspect (Anna Henningsen) #12151
  • [4a5a9445b5] - (SEMVER-MAJOR) util: use \[Array\] for deeply nested arrays (Anna Henningsen) #12046
  • [5bfd13b81e] - (SEMVER-MAJOR) util: display Symbol keys in inspect by default (Shahar Or) #9726
  • [455e6f1dd8] - (SEMVER-MAJOR) util: throw toJSON errors when formatting %j (Timothy Gu) #11708
  • [ec2f098156] - (SEMVER-MAJOR) util: change sparse arrays inspection format (Alexey Orlenko) #11576
  • [aab0d202f8] - (SEMVER-MAJOR) util: convert inspect.styles and inspect.colors to prototype-less objects (Nemanja Stojanovic) #11624
  • [4151ab398b] - (SEMVER-MAJOR) util: add createClassWrapper to internal/util (James M Snell) #11391
  • [f65aa08b52] - (SEMVER-MAJOR) util: improve inspect for (Async|Generator)Function (Michaël Zasso) #11210
  • [efae43f0ee] - (SEMVER-MAJOR) zlib: fix node crashing on invalid options (Alexey Orlenko) #13098
  • [2ced07ccaf] - (SEMVER-MAJOR) zlib: support all ArrayBufferView types (Timothy Gu) #12223
  • [91383e47fd] - (SEMVER-MAJOR) zlib: support Uint8Array in convenience methods (Timothy Gu) #12001
  • [b514bd231e] - (SEMVER-MAJOR) zlib: use RangeError/TypeError consistently (James M Snell) #11391
  • [8e69f7e385] - (SEMVER-MAJOR) zlib: refactor zlib module (James M Snell) #11391
  • [dd928b04fc] - (SEMVER-MAJOR) zlib: be strict about what strategies are accepted (Rich Trott) #10934

Semver-minor Commits

  • [7e3a3c962f] - (SEMVER-MINOR) async_hooks: initial async_hooks implementation (Trevor Norris) #12892
  • [60a2fe7d47] - (SEMVER-MINOR) async_hooks: implement C++ embedder API (Anna Henningsen) #13142
  • [f1ed19d98f] - (SEMVER-MINOR) async_wrap: use more specific providers (Trevor Norris) #12892
  • [0432c6e91e] - (SEMVER-MINOR) async_wrap: use double, not int64_t, for async id (Trevor Norris) #12892
  • [fe2df3b842] - (SEMVER-MINOR) async_wrap,src: add GetAsyncId() method (Trevor Norris) #12892
  • [6d93508369] - (SEMVER-MINOR) buffer: expose FastBuffer on internal/buffer (Anna Henningsen) #11048
  • [fe5ca3ff27] - (SEMVER-MINOR) child_process: support promisified exec(File) (Anna Henningsen) #12442
  • [f146fe4ed4] - (SEMVER-MINOR) cmd: support dash as stdin alias (Ebrahim Byagowi) #13012
  • [d9f3ec8e09] - (SEMVER-MINOR) crypto: use named FunctionTemplate (Trevor Norris) #12892
  • [0e710aada4] - (SEMVER-MINOR) crypto: add sign/verify support for RSASSA-PSS (Tobias Nießen) #11705
  • [faf6654ff7] - (SEMVER-MINOR) dns: support promisified lookup(Service) (Anna Henningsen) #12442
  • [5077cde71f] - (SEMVER-MINOR) doc: restructure url.md (James M Snell) #12710
  • [d080ead0f9] - (SEMVER-MINOR) doc: graduate WHATWG URL from Experimental (James M Snell) #12710
  • [c505b8109e] - (SEMVER-MINOR) doc: document URLSearchParams constructor (Timothy Gu) #11060
  • [84dabe8373] - (SEMVER-MINOR) domain: support promises (Anna Henningsen) #12489
  • [fbcb4f50b8] - (SEMVER-MINOR) fs: support util.promisify for fs.read/fs.write (Anna Henningsen) #12442
  • [a7f5c9cb7d] - (SEMVER-MINOR) http: destroy sockets after keepAliveTimeout (Timur Shemsedinov) #2534
  • [3e6f1032a4] - (SEMVER-MINOR) http: add new functions to OutgoingMessage (Brian White) #10805
  • [c7182b9d9c] - (SEMVER-MINOR) inspector: JavaScript bindings for the inspector (Eugene Ostroukhov) #12263
  • [4a7233c178] - (SEMVER-MINOR) lib: implement async_hooks API in core (Trevor Norris) #12892
  • [c68ebe8436] - (SEMVER-MINOR) makefile: add async-hooks to test and test-ci (Trevor Norris) #12892
  • [45139e59f3] - (SEMVER-MINOR) n-api: add napi_get_version (Michael Dawson) #13207
  • [56e881d0b0] - (SEMVER-MINOR) n-api: add support for abi stable module API (Jason Ginchereau) #11975
  • [dd20e68b0f] - (SEMVER-MINOR) process: add optional detail to process emitWarning (James M Snell) #12725
  • [c0bde73f1b] - (SEMVER-MINOR) src: implement native changes for async_hooks (Trevor Norris) #12892
  • [e5a25cbc85] - (SEMVER-MINOR) src: expose node::AddPromiseHook (Anna Henningsen) #12489
  • [ec53921d2e] - (SEMVER-MINOR) src: make AtExit callback’s per Environment (Daniel Bevenius) #9163
  • [ba4847e879] - (SEMVER-MINOR) src: Node Tracing Controller (misterpoe) #9304
  • [6ff3b03240] - (SEMVER-MINOR) src, inspector: add --inspect-brk option (Josh Gavant) #8979
  • [220186c4a8] - (SEMVER-MINOR) stream: support Uint8Array input to methods (Anna Henningsen) #11608
  • [07c7f198db] - (SEMVER-MINOR) stream: add final method (Calvin Metcalf) #12828
  • [11918c4aed] - (SEMVER-MINOR) stream: fix highWaterMark integer overflow (Tobias Nießen) #12593
  • [c56d6046ec] - (SEMVER-MINOR) test: add AsyncResource addon test (Anna Henningsen) #13142
  • [e3e56f1d71] - (SEMVER-MINOR) test: adding tests for initHooks API (Thorsten Lorenz) #12892
  • [732620cfe9] - (SEMVER-MINOR) test: remove unneeded tests (Trevor Norris) #12892
  • [e965ed16c1] - (SEMVER-MINOR) test: add test for promisify customPromisifyArgs (Gil Tayar) #12442
  • [3ea2301e38] - (SEMVER-MINOR) test: add a bunch of tests from bluebird (Madara Uchiha) #12442
  • [dca08152cb] - (SEMVER-MINOR) test: introduce common.crashOnUnhandledRejection (Anna Henningsen) #12489
  • [e7c51454b0] - (SEMVER-MINOR) timers: add promisify support (Anna Henningsen) #12442
  • [e600fbe576] - (SEMVER-MINOR) tls: accept lookup option for tls.connect() (Fedor Indutny) #12839
  • [c3efe72669] - (SEMVER-MINOR) tls: support Uint8Arrays for protocol list buffers (Anna Henningsen) #11984
  • [29f758731f] - (SEMVER-MINOR) tools: add MDN link for Iterable (Timothy Gu) #11060
  • [4b9d84df51] - (SEMVER-MINOR) tty_wrap: throw when uv_tty_init() returns error (Trevor Norris) #12892
  • [cc48f21c83] - (SEMVER-MINOR) url: extend URLSearchParams constructor (Timothy Gu) #11060
  • [99da8e8e02] - (SEMVER-MINOR) util: add util.promisify() (Anna Henningsen) #12442
  • [059f296050] - (SEMVER-MINOR) util: add internal bindings for promise handling (Anna Henningsen) #12442
  • [1fde98bb4f] - (SEMVER-MINOR) v8: expose new V8 serialization API (Anna Henningsen) #11048
  • [70beef97bd] - (SEMVER-MINOR) v8: add cachedDataVersionTag (Andres Suarez) #11515

Semver-patch commits

Windows 32-bit Installer: https://nodejs.org/dist/v8.0.0/node-v8.0.0-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v8.0.0/node-v8.0.0-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v8.0.0/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v8.0.0/win-x64/node.exe

macOS 64-bit Installer: https://nodejs.org/dist/v8.0.0/node-v8.0.0.pkg

macOS 64-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-darwin-x64.tar.gz

Linux 32-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-x86.tar.xz

Linux 64-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-x64.tar.xz

Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-ppc64le.tar.xz

Linux PPC BE 64-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-ppc64.tar.xz

Linux s390x 64-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-s390x.tar.xz

AIX 64-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-aix-ppc64.tar.gz

SunOS 32-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-sunos-x86.tar.xz

SunOS 64-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-sunos-x64.tar.xz

ARMv6 32-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-armv6l.tar.xz

ARMv7 32-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-armv7l.tar.xz

ARMv8 64-bit Binary: https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-arm64.tar.xz

Source Code: https://nodejs.org/dist/v8.0.0/node-v8.0.0.tar.gz

Other release files: https://nodejs.org/dist/v8.0.0/

Documentation: https://nodejs.org/docs/v8.0.0/api/

SHASUMS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

e71f14f58d1251932d537af3c47213d2cf3774f031bc7e26b81f69b24688ed84 node-v8.0.0-aix-ppc64.tar.gz
6e4a66917e2c11d5adc537c899941c973ae586293352b8172a4f32be0b7f0300 node-v8.0.0-darwin-x64.tar.gz
5ac8b0b6b5c12e1b9c62fb78dd194819a83b940a7407ef0c58fa7bf009918593 node-v8.0.0-darwin-x64.tar.xz
3a8cdc9a7d6c32d8c38af1f95e1f9402b75482ad362a24a420296dc8fe0c04a6 node-v8.0.0-headers.tar.gz
d6061c9bf085ee7e42dff5472ee933283a9ac65ea0dc2211d0ffe301cbddacbd node-v8.0.0-headers.tar.xz
ee10913aa14e1c22fe3567b957d1e77a47905f78812976a7b4199d33984e871b node-v8.0.0-linux-arm64.tar.gz
8d6eaefcc252055de54a666d4e00eec78caf2143cd7a13b63f109e9eb78a795e node-v8.0.0-linux-arm64.tar.xz
46a46f0c9be5b9a87b0836b31c97ea080283f575c04ab77a270c9cc40d4add19 node-v8.0.0-linux-armv6l.tar.gz
0fd0d8a47ceebff21b3ceeeee90f4c7564ce7ba0dce372e60aa5869fcfba3268 node-v8.0.0-linux-armv6l.tar.xz
aa72e471eec056d4da60a2eb0861ca93a1c444e920c1a1864f955a757531fd6f node-v8.0.0-linux-armv7l.tar.gz
70ea0a5cd685a06ece15ab0cebb641d87eb52abb0fdc75264f73a0dbfe7a1769 node-v8.0.0-linux-armv7l.tar.xz
553d3db6356d95c04d903182b8867ab83d13a6a05b45c7361be503cb20d1ae5a node-v8.0.0-linux-ppc64le.tar.gz
9e83115ebe08850f41e1f36dcbf822ad9be979970dd890de7ee46f2a472de29d node-v8.0.0-linux-ppc64le.tar.xz
f2d7927a1d8e2e86e01cdd31a3e38bd8c7faa6fa95cc896897549cad6b5648dc node-v8.0.0-linux-ppc64.tar.gz
d5db1f5120b454761ac60ecb0b0940698f8f4d508bbdd97d07aa5e8914e7064b node-v8.0.0-linux-ppc64.tar.xz
8ebe155b5ebff75c292d759bc6256567078a175fcfda93e7e45d97371504fb8c node-v8.0.0-linux-s390x.tar.gz
feb15265c8d8887f267dedbe2d84a80a60f3680e6424cc49d67bcca60bb66794 node-v8.0.0-linux-s390x.tar.xz
1944f0ead4c9dbdf92a97041cb2ec34cc08ea873958c7009befaa56a7ccea4c2 node-v8.0.0-linux-x64.tar.gz
0a536bb83eeccca23626e5e5ead52563a641e4331c35e367662892921dc7e8a4 node-v8.0.0-linux-x64.tar.xz
e012b41f021cb0ff691d40085884623a82a5e79d4763ca3739487d3ba160a79d node-v8.0.0-linux-x86.tar.gz
6d99916494a7e0110cbfe7ae79de4d553347763140bddeab4259a998e47d8ccc node-v8.0.0-linux-x86.tar.xz
e197ed371eafe71635c84fb7d283d40167786fbf3e9148ec2e747d5ddca27a28 node-v8.0.0.pkg
4dafd35ec1a79ce6f5cbd883a62da05eaf5b9057f374aeae67af9b205ffa281c node-v8.0.0-sunos-x64.tar.gz
d89c9415f9c61713865f49974298afeb8baee0f1d06e5e7f9e4e309126663154 node-v8.0.0-sunos-x64.tar.xz
0f635a9c074525b42bc3c60cb86a728bba63e30080ef90f9820b717bf42019c5 node-v8.0.0-sunos-x86.tar.gz
c5e1f31bb46c887dbe9e4a655ceed798f3ef291b348065bc2fae9bcd0d48ebde node-v8.0.0-sunos-x86.tar.xz
28f2e0bd5f80ff83b244df670d577fe36c1e0f11561deee7d8bbdcbd4ead8fb2 node-v8.0.0.tar.gz
258d3aa3632bbbf2a447c5d524bd7074e23aa26e2b698774ff452954f6174f1c node-v8.0.0.tar.xz
9bc84644228ab1e96dfb78eea4144c7c9732ccd33b44a4b8994fd232fafa19b5 node-v8.0.0-win-x64.7z
84410377118857674e0fb6e7bc7627ffb8cc67a72f162a050276b076e328a9bb node-v8.0.0-win-x64.zip
4c4d1c21a56ab4da6a24543ee27bd2d22fbbf5fcae9ccc3422869ad45754809c node-v8.0.0-win-x86.7z
87542a872cdf806456bfff5df003e98d8e4b96172e95552d4a2212e7887f0d32 node-v8.0.0-win-x86.zip
a6b7306302ce23b232467f19f766dda8b9684168976b24c8e6c55ea92d085176 node-v8.0.0-x64.msi
715d1834a7b2741ae0a4401902ef91cc9f95dfe04c4a100bd3490e95ad5bf449 node-v8.0.0-x86.msi
cf01892d191316d2aa643fb2020846ac23d6f1abcceec81850efad3e7ca496b8 win-x64/node.exe
f1d7eda300875ac0f028465f62be20ebce15736e6adf71d43e65812f36c06fb6 win-x64/node.lib
06a8ca6334347a1141f6e442310f6a814f2d8fbecd8120b50cec7450e7de7565 win-x64/node_pdb.7z
276823cc8ab672045c7f422a06fb814249f904b90379cc1260df90cb89226416 win-x64/node_pdb.zip
ec86a350f5451c534413caab90c5a825c94c6630aa7eb68a4cd607e2deac6096 win-x86/node.exe
b57826d249da402ddb79e0923b7aaea07577d926a32e025577cefd0b9e9ba814 win-x86/node.lib
88f566489a5aaeed787bbe52c80ecd4c8bc4c31d7333bfdbbded35b4287aae47 win-x86/node_pdb.7z
d83a9dfd290509f4a5846fd714c1496965cec6e8c5f58a59564f44e6530099f5 win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQEcBAEBCAAGBQJZLb34AAoJEHNBsVwHCHesLrwIALZ0RAE9tKrZqTOfMdnZOLxg
Q50gNNxLfQVlhPpyezEFZrWhGyPK2FCRXwpGb7Kf1QMTn3DPvsRB6h2+McNp7TDh
QHVnjj8LR08pWJpR0bYsfwzoVYb3tc8//DUgdFx0d7BZviqE7NUyQIbtwmUYqEGU
hQVt0L7ns0CPu0v4NhXyuDrSli86bK/XmtjC3IyZMbxOW0ViB2OsGl8ngSKAHOYw
FGUCrLK00uGPWRtO2oLWG7TXvhU4dMwHDTxDFRfP17w50XZyfrOlCriQQBjyv2wj
zH5snnMl+P0RZmYwbQPd5E+JXJhKZpfnTP+XDZuwEqQhdqyjTYn2pVTf3/Rtpto=
=EbZq
-----END PGP SIGNATURE-----