Node v4.2.0 (LTS)

Node.js v4.2.0 “Argon”의 릴리스를 알려드립니다. 이 릴리스는 장기 지원(Long Term Support) 계획 아래 이루어지는 첫 릴리스입니다.

LTS 릴리스인 v4.x에 대한 지원은 오늘부터 30개월 간 계속됩니다. 이는 Node.js에서 빌드하는 개인이나 회사는 안정적인 지원을 받을 수 있게 된다는 이야기입니다. Node.js에서 LTS가 의미하는 더 자세한 내용은 Rod Vagg의 블로그 글을 읽어보세요.

Argon?

LTS 릴리스와 보통 Node.js 릴리스를 잘 구분하기 위해, LTS 릴리스에만 적용되는 주기율표의 원소에 기반한 이름 규칙을 도입했습니다. v4.2.0의 이름은 첫글자의 알파벳 순서에 의해 “Argon”으로 선택되었습니다.

개발자는 Node.js LTS 버전을 node의 process.release.lts 속성으로 쉽게 확인할 수 있습니다. 이 속성은 보통 릴리스에서는 undefined입니다.

1
2
3
4
$ node -v
v4.2.0
$ node -pe process.release.lts
Argon

주요 변경 사항

첫 Node.js LTS 릴리스입니다! LTS 프로세스에 대해 더 자세한 내용은 https://github.com/nodejs/LTS/에서 확인하실 수 있습니다.

  • icu: 상당한 성능 향상을 동반한 56 버전으로 업데이트 (Steven R. Loomis) #3281
  • node:
    • 코드 실행없이 스크립트 구문을 확인하는 새 -c (혹은 --check) 커맨드라인 인자를 추가 (Dave Eddy) #2411
    • 현재 ICU 라이브러리 버전을 가지는 process.versions.icu 추가 (Evan Lucas) #3102
    • 바이너리가 LTS 릴리스일 경우 현재 LTS 코드명을 가지는 process.release.lts 추가 (Rod Vagg) #3212
  • npm: npm 2.14.4에서 2.14.7으로 업그레이드, 전채 내용은 릴리스 노트를 확인하세요 (Kat Marchán) #3299

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/node/labels/confirmed-bug에서 확인할 수 있습니다.

  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • DNS 질의 진행 중에 호출된 dns.setServers()가 단언문 실패로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

Commits

  • [8383c4fe00] - assert: support arrow functions in .throws() (Ben Noordhuis) #3276
  • [3eaa593a32] - async_wrap: correctly pass parent to init callback (Trevor Norris) #3216
  • [54795620f6] - buffer: don’t abort on prototype getters (Trevor Norris) #3302
  • [660f7591c8] - buffer: FreeCallback should be tied to ArrayBuffer (Fedor Indutny) #3198
  • [651a5b51eb] - buffer: only check if instance is Uint8Array (Trevor Norris) #3080
  • [d5a1b1ad7c] - buffer: clean up usage of proto (Trevor Norris) #3080
  • [af24376e18] - build: Intl: deps: bump ICU to 56.1 (GA) (Steven R. Loomis) #3281
  • [9136359d57] - build: make icu download path customizable (Johan Bergström) #3200
  • [b3c5ad10a8] - build: add –with-arm-fpu option (Jérémy Lal) #3228
  • [f00f3268e4] - build: intl: avoid ‘duplicate main()’ on ICU 56 (Steven R. Loomis) #3066
  • [071c72a6a3] - deps: upgrade to npm 2.14.7 (Kat Marchán) #3299
  • [8b50e95f06] - (SEMVER-MINOR) deps: backport 1ee712a from V8 upstream (Julien Gilli) #3036
  • [747271372f] - doc: update the assert module summary (David Boivin) #2799
  • [0d506556b0] - doc: replace node-gyp link with nodejs/node-gyp (Roman Klauke) #3320
  • [40a159e4f4] - doc: Amend capitalization of word JavaScript (Dave Hodder) #3285
  • [6dd34761fd] - doc: add method links in dns.markdown (Alejandro Oviedo) #3196
  • [333e8336be] - doc: add method links in child_process.markdown (Alejandro Oviedo) #3186
  • [0cfc6d39ca] - doc: recommend Infinity on emitter.setMaxListeners (Jason Karns) #2559
  • [d4fc6d93ef] - doc: add help repo link to CONTRIBUTING.md (Doug Shamoo) #3233
  • [28aac7f19d] - doc: add TLS session resumption example (Roman Reiss) #3147
  • [365cf22cce] - doc: update AUTHORS list (Rod Vagg) #3211
  • [d4399613b7] - doc: standardize references to userland (Martial) #3192
  • [75de258376] - doc: fix spelling in Buffer documentation (Rod Machen) #3226
  • [725c7276dd] - doc: fix README.md link to joyent/node intl wiki (Steven R. Loomis) #3067
  • [4a35ba4966] - (SEMVER-MINOR) fs: include filename in watch errors (charlierudolph) #2748
  • [2ddbbfd164] - http: cork/uncork before flushing pipelined res (Fedor Indutny) #3172
  • [f638402e2f] - http: add comment about outputSize in res/server (Fedor Indutny) #3128
  • [1850879b0e] - js_stream: prevent abort if isalive doesn’t exist (Trevor Norris) #3282
  • [63644dd1cd] - lib: remove redundant code, add tests in timers.js (Rich Trott) #3143
  • [74f443583c] - module: use UNC paths when loading native addons (Justin Chase) #2965
  • [01cb3fc36b] - net: don’t throw on bytesWritten access (Trevor Norris) #3305
  • [9d65528b01] - (SEMVER-MINOR) node: add -c|–check CLI arg to syntax check script (Dave Eddy) #2411
  • [42b936e78d] - (SEMVER-MINOR) src: add process.release.lts property (Rod Vagg) #3212
  • [589287b2e3] - src: convert BE-utf16-string to LE before search (Karl Skomski) #3295
  • [2314378f06] - src: fix u-a-free if uv returns err in ASYNC_CALL (Karl Skomski) #3049
  • [d99336a391] - (SEMVER-MINOR) src: replace naive search in Buffer::IndexOf (Karl Skomski) #2539
  • [546e8333ba] - (SEMVER-MINOR) src: fix –abort-on-uncaught-exception (Jeremy Whitlock) #3036
  • [7271cb047c] - (SEMVER-MINOR) src: add process.versions.icu (Evan Lucas) #3102
  • [7b9f78acb2] - stream: avoid pause with unpipe in buffered write (Brian White) #2325
  • [f0f8afd879] - test: remove common.inspect() (Rich Trott) #3257
  • [5ca4f6f8bd] - test: test util rather than common (Rich Trott) #3256
  • [7a5ae34345] - test: refresh temp directory when using pipe (Rich Trott) #3231
  • [7c85557ef0] - test: Fix test-fs-read-stream-fd-leak race cond (Junliang Yan) #3218
  • [26a7ec6960] - test: fix losing original env vars issue (Junliang Yan) #3190
  • [e922716192] - test: remove deprecated error logging (Rich Trott) #3079
  • [8f29d95a8c] - test: report timeout in TapReporter (Karl Skomski) #2647
  • [2d0fe4c657] - test: linting for buffer-free-callback test (Rich Trott) #3230
  • [70c9e4337e] - test: make common.js mandatory via linting rule (Rich Trott) #3157
  • [b7179562aa] - test: load common.js in all tests (Rich Trott) #3157
  • [bab555a1c1] - test: speed up stringbytes-external test (Evan Lucas) #3005
  • [ddf258376d] - test: use normalize() for unicode paths (Roman Reiss) #3007
  • [46876d519c] - test: remove arguments.callee usage (Roman Reiss) #3167
  • [af10df6108] - tls: use parent handle’s close callback (Fedor Indutny) #2991
  • [9c2748bad1] - tools: remove leftover license boilerplate (Nathan Rajlich) #3225
  • [5d9f83ff2a] - tools: apply linting to custom rules code (Rich Trott) #3195
  • [18a8b2ec73] - tools: remove unused gflags module (Ben Noordhuis) #3220
  • [e0fffca836] - util: fix for inspecting promises (Evan Lucas) #3221
  • [8dfdee3733] - util: correctly inspect Map/Set Iterators (Evan Lucas) #3119
  • [b5c51fdba0] - util: fix check for Array constructor (Evan Lucas) #3119

Windows 32-bit Installer: https://nodejs.org/dist/v4.2.0/node-v4.2.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v4.2.0/node-v4.2.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v4.2.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v4.2.0/win-x64/node.exe
Mac OS X 64-bit Installer: https://nodejs.org/dist/v4.2.0/node-v4.2.0.pkg
Mac OS X 64-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-darwin-x64.tar.gz
Linux 32-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-linux-x86.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-linux-x64.tar.gz
SunOS 32-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-sunos-x86.tar.gz
SunOS 64-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-sunos-x64.tar.gz
ARMv6 32-bit Binary: Coming soon
ARMv7 32-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-linux-armv7l.tar.gz
ARMv8 64-bit Binary: https://nodejs.org/dist/v4.2.0/node-v4.2.0-linux-arm64.tar.gz
Source Code: https://nodejs.org/dist/v4.2.0/node-v4.2.0.tar.gz
Other release files: https://nodejs.org/dist/v4.2.0/
Documentation: https://nodejs.org/docs/v4.2.0/api/

Shasums (GPG signing hash: SHA512, file hash: SHA256):

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
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

078c9a2c2fbfb603700d94b618df3b8b211e10f361bced5e4439142715aebde5 node-v4.2.0-darwin-x64.tar.gz
5ca8495fd39f5fccaaaad4a4c10602723b4146efd8cb2c933f1733cf0f2bd2b3 node-v4.2.0-darwin-x64.tar.xz
b82bd1c46b49599e5ee6565b0b4ecb5ef6f3af573f897f9df2470eafe255feed node-v4.2.0-headers.tar.gz
2cb4beaaacd2c097cd2ea5cc6de47427ee9e495cc7283a1e0476ae3a727e7cab node-v4.2.0-headers.tar.xz
ae67d6ddcb72505937982d6a0bcb031b3522f7abc11d9e2d449ea021a5f75faf node-v4.2.0-linux-arm64.tar.gz
6b96bc7de2e085ba04213aeb353396dd6ae5fcf6076c62598a83d7c009b4da3a node-v4.2.0-linux-arm64.tar.xz
c1844dd131020b2b2982de974d73b051159776fe3ebf6fa91f08a2f5e8c46555 node-v4.2.0-linux-armv7l.tar.gz
c28312e164ea13dc6f2027926d55a7460ca7051c6f7e8828203fc686027d27e0 node-v4.2.0-linux-armv7l.tar.xz
98b60c86d541f44c5d07111f9ffc9a81848f976cfbe84f71cb9c7d6bfd34e1a4 node-v4.2.0-linux-x64.tar.gz
fd4830966fa1afd4ddbbde6b1e7fb581ce99917ad5dd41da9cb9b27d191c16a1 node-v4.2.0-linux-x64.tar.xz
bc5e0791c23d897ea6c83976dd14eec8ac33f74188806012992aca335c4e9214 node-v4.2.0-linux-x86.tar.gz
aff372b9e6f7ccfef16c55cda5c9666847322e24c8bc574e6081f8b20ef1fe0a node-v4.2.0-linux-x86.tar.xz
83005cd68ebf94c528b1da28cc3915df56426224ce6f6337ad2b067be87a00b0 node-v4.2.0.pkg
d074ae0ab26f2f680adf7b94cfae0a8eac5ae4dcf083594a361b837fea6fdc72 node-v4.2.0-sunos-x64.tar.gz
c24dd20cc4eb296418fd13913c60910929698488be4079441aeb34e5a4a23295 node-v4.2.0-sunos-x64.tar.xz
fc753685f937d338f1367614ca49158d446e29b35694fac6b8e6be262db5ec38 node-v4.2.0-sunos-x86.tar.gz
77cf3a17555dc83871c61bfbfc7fea9373c4664fb174e4b90281a5541be9aa42 node-v4.2.0-sunos-x86.tar.xz
94ea40efeb598fed6e1a78990b698da73275c49876ec551dc36e11513c99fb6b node-v4.2.0.tar.gz
611e899c10fc26e077f26d70802728e87e743f9bd0c9ad9b4a9b1aeb6a45b511 node-v4.2.0.tar.xz
9be6a2f95fb17c70aada09e0c5e2dadd2ce2bb2c5ac83bcce47d0f6c290ba15c node-v4.2.0-x64.msi
6f1c92772369ffb82d9eed586d74d343ea0d61bb9770746aae7589779d39a9af node-v4.2.0-x86.msi
701498dd467ccfcc2dd083c53212654d9bc04e5289e1021a6e411e758c411eeb win-x64/node.exe
2ce13cf0c50a0df6d6591ea84201a318877b5eb39eeac3dc189130da19c34685 win-x64/node.lib
cf75e01de1c397342a01fa4d682851ae0694554c921604a27415c7681c02f7be win-x86/node.exe
4eca7dbfa577f015bb546d74ca330ce12ee5605924e463b7451b72f041a9b772 win-x86/node.lib
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQEcBAEBCgAGBQJWG/msAAoJEHNBsVwHCHesiwQH/2MWeonw7cb2fOmmTA2nItB7
hpVUwnMwN1eziOZhZmG2V+iEd0h7QKWUWpVUrPyr6LMUndesa6g1oD9r93u02Wje
tSbxFgg28lUyTWyGhL18ZNapZGi4HYpxaJBgZ/szjk1nDmVJ80XMnDh7qKQx19/X
Ccwkqq3epkuix5utvUrj6+KAtxqeIYEoW5p+7OaRf+KzZNle6oD3JzjwZ7w8FjHB
3AVR/P95e2VGoIotlxG1SgF8Qe+rPqAj9xiKTKgHuPwBWqH09ulQcRiiMw/5xXal
dSkkiIu/sks+/MKTU+ltR2emQq5Ck75bY1Gvn1ki+jNP1KZcmYkgRoHjH0RkSYE=
=gqB4
-----END PGP SIGNATURE-----