mirror of
https://github.com/nodejs/node-v0.x-archive.git
synced 2026-04-28 03:01:10 -04:00
Compare commits
1050 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
debf552ed2 | ||
|
|
e5d3ea7771 | ||
|
|
cb76999bad | ||
|
|
0742f5629c | ||
|
|
434404e3bb | ||
|
|
ccc854d14e | ||
|
|
2ae9b69871 | ||
|
|
5ff2ae8389 | ||
|
|
7535e3930a | ||
|
|
7865c5c51d | ||
|
|
f19f980724 | ||
|
|
2498d15dde | ||
|
|
4bc1d395de | ||
|
|
8068f9bf38 | ||
|
|
14a5b45c06 | ||
|
|
ea4b1c1c0c | ||
|
|
9b42d7daaf | ||
|
|
fb7348ae06 | ||
|
|
bd907174e8 | ||
|
|
a475e62a3e | ||
|
|
d91004a73d | ||
|
|
d8351a2ef4 | ||
|
|
5f9ffa17b1 | ||
|
|
9239088e87 | ||
|
|
07d8a4650e | ||
|
|
884499d37e | ||
|
|
cc8cfb145a | ||
|
|
52f0c37d09 | ||
|
|
493beb23f2 | ||
|
|
3883f22ad1 | ||
|
|
bf9d8e9214 | ||
|
|
814033365b | ||
|
|
ee437c0557 | ||
|
|
8c758e127c | ||
|
|
b4fbf6d275 | ||
|
|
e02af94947 | ||
|
|
8cd2b0e778 | ||
|
|
992e3464b8 | ||
|
|
fbe143d9cb | ||
|
|
4ced23deaf | ||
|
|
711ecdd54f | ||
|
|
aaf0453b7c | ||
|
|
719cd461d3 | ||
|
|
ab60efb535 | ||
|
|
d1effbb338 | ||
|
|
2fc528ce00 | ||
|
|
62c12d2161 | ||
|
|
ebd0f98e2b | ||
|
|
e3ceee2dce | ||
|
|
91120e0429 | ||
|
|
b7e8e35c0e | ||
|
|
75f2365558 | ||
|
|
df2c5fa81d | ||
|
|
47d6a94656 | ||
|
|
c9be1d5ffd | ||
|
|
bce68134b6 | ||
|
|
bfe9cdb7f2 | ||
|
|
acf19500ee | ||
|
|
518d28c23a | ||
|
|
a1d193963d | ||
|
|
e5ef103b05 | ||
|
|
35bcb1d6a9 | ||
|
|
1ac05cc5ad | ||
|
|
db844b152a | ||
|
|
3546383cf0 | ||
|
|
55e4d54927 | ||
|
|
51e66ec410 | ||
|
|
0b75eee364 | ||
|
|
e221cd4a53 | ||
|
|
76de7c0c26 | ||
|
|
a64acd8baa | ||
|
|
27dfb1d4c0 | ||
|
|
642945cc00 | ||
|
|
c9a231db0e | ||
|
|
e5b787e84d | ||
|
|
5d69bbfbdb | ||
|
|
0f74729758 | ||
|
|
0c0f13eda4 | ||
|
|
69ca83f755 | ||
|
|
3f4261276e | ||
|
|
d03b80bc12 | ||
|
|
8b82abb953 | ||
|
|
d0365fd21f | ||
|
|
e8067cb685 | ||
|
|
163d3cdf14 | ||
|
|
f160a45b25 | ||
|
|
c75f71dd72 | ||
|
|
45b772d8cb | ||
|
|
08e2e570a7 | ||
|
|
57d722011a | ||
|
|
e81a5e9c9c | ||
|
|
ba055115e0 | ||
|
|
1330419446 | ||
|
|
c9f17305e6 | ||
|
|
cf75619bc3 | ||
|
|
331cd7c251 | ||
|
|
37ac5e52bf | ||
|
|
0b57fee3f8 | ||
|
|
1042a8d887 | ||
|
|
40b7302af8 | ||
|
|
f178f2ae3f | ||
|
|
052aaa4c4d | ||
|
|
ffee873941 | ||
|
|
0965d2d9f6 | ||
|
|
1e577f347b | ||
|
|
066789a6e3 | ||
|
|
a7dce47854 | ||
|
|
dbd0e2b386 | ||
|
|
e513ffef75 | ||
|
|
d497bf845b | ||
|
|
76f31faa3b | ||
|
|
0dcc43316f | ||
|
|
d227084339 | ||
|
|
a7cd76bb3b | ||
|
|
67f1778065 | ||
|
|
d1255914df | ||
|
|
ea44d3031d | ||
|
|
851b3970e7 | ||
|
|
d980620010 | ||
|
|
03077db45d | ||
|
|
44527e6023 | ||
|
|
90b785c09a | ||
|
|
b9bd2d3eb9 | ||
|
|
9726a259bf | ||
|
|
9f7f86b534 | ||
|
|
06bf0707f7 | ||
|
|
571a51989e | ||
|
|
f631c1d73b | ||
|
|
ad5a108dfd | ||
|
|
c834ef409e | ||
|
|
c12a1dc5d8 | ||
|
|
3733a85d8d | ||
|
|
daaccc7cb7 | ||
|
|
33f9074a62 | ||
|
|
8258bd467a | ||
|
|
5ca5ec33cc | ||
|
|
f1742c93d7 | ||
|
|
a42b4ad44e | ||
|
|
1d59a73fef | ||
|
|
cf6e4d82e7 | ||
|
|
2e487379ad | ||
|
|
f70be203e4 | ||
|
|
c368e46e7f | ||
|
|
3dfa98c991 | ||
|
|
2d44dcc8be | ||
|
|
2f256af412 | ||
|
|
353bfbaf93 | ||
|
|
48a2d34cfe | ||
|
|
ef5b0f4c8e | ||
|
|
b47ba2c431 | ||
|
|
2d6a076ab3 | ||
|
|
c0c4e008aa | ||
|
|
1bf3a14353 | ||
|
|
054127112c | ||
|
|
edea94c332 | ||
|
|
d8c5ba2185 | ||
|
|
3aa2fd3b2c | ||
|
|
a63ce6ea94 | ||
|
|
4ca3fd0a01 | ||
|
|
86d077da00 | ||
|
|
17db291b5c | ||
|
|
7bfa5cf284 | ||
|
|
674416fbc9 | ||
|
|
b34feeeb86 | ||
|
|
169b0820f0 | ||
|
|
3c195d04f3 | ||
|
|
c417de409d | ||
|
|
c2f6405a0f | ||
|
|
c0446edcc2 | ||
|
|
4ed05da2be | ||
|
|
8d1e5d3ae1 | ||
|
|
774c289ba8 | ||
|
|
8e22004cb5 | ||
|
|
d39297251f | ||
|
|
3b6c1d74c7 | ||
|
|
798f8a0dc1 | ||
|
|
e083720d54 | ||
|
|
3ce782b7f2 | ||
|
|
8a121fa0e7 | ||
|
|
e8ad5b9c1c | ||
|
|
e88a1ba74a | ||
|
|
c205d3b53a | ||
|
|
4f24b20fcb | ||
|
|
a62ec4437b | ||
|
|
2a6ff3f56b | ||
|
|
14d4fbb002 | ||
|
|
cacb28c92c | ||
|
|
db8c55e77c | ||
|
|
f775c5cea4 | ||
|
|
032b877f31 | ||
|
|
6738d82e38 | ||
|
|
03d6aa07ea | ||
|
|
d383954ffe | ||
|
|
5d4e3d2d0c | ||
|
|
df5be65415 | ||
|
|
d71f9944cc | ||
|
|
f28d482cd4 | ||
|
|
5824881e4a | ||
|
|
1a181315eb | ||
|
|
63629614cb | ||
|
|
8cd13eb74e | ||
|
|
ffcdcc7ff0 | ||
|
|
4051c2843b | ||
|
|
217bb47b02 | ||
|
|
4065b241e8 | ||
|
|
63431796f4 | ||
|
|
692bcbe559 | ||
|
|
7f58d207f3 | ||
|
|
483edbdf1a | ||
|
|
70a393ea9a | ||
|
|
4f8d7328a4 | ||
|
|
cd4cb8e795 | ||
|
|
ca0986fbd1 | ||
|
|
e004721b48 | ||
|
|
35c1f682c1 | ||
|
|
634b4de2c8 | ||
|
|
186960fefb | ||
|
|
c6019b8b4e | ||
|
|
96a137a18a | ||
|
|
c1f474010e | ||
|
|
23c4278e06 | ||
|
|
dfed2cef75 | ||
|
|
f73f07e126 | ||
|
|
1eb1fe3225 | ||
|
|
a2851b6234 | ||
|
|
4672872ddd | ||
|
|
9764bea97d | ||
|
|
4ed7b035bd | ||
|
|
a118f21728 | ||
|
|
7a1a62ec6e | ||
|
|
30e462e919 | ||
|
|
83fd1c1de5 | ||
|
|
2c07712860 | ||
|
|
8f2694bb53 | ||
|
|
d52f5020ce | ||
|
|
9364699be1 | ||
|
|
3415427dbf | ||
|
|
ef50bd2e54 | ||
|
|
d91bc7cb09 | ||
|
|
077f9d7293 | ||
|
|
0685707bc6 | ||
|
|
14b20ffc30 | ||
|
|
b19b8836c3 | ||
|
|
1ce14eca44 | ||
|
|
ef032cbe85 | ||
|
|
2e6ad62047 | ||
|
|
c3f176222a | ||
|
|
2f759a7090 | ||
|
|
d3f6b094c7 | ||
|
|
c7771bc2ec | ||
|
|
c9f58cc595 | ||
|
|
a8f357629d | ||
|
|
38eec57aef | ||
|
|
cacd3ae004 | ||
|
|
163900dc68 | ||
|
|
e5ed6b91f4 | ||
|
|
81d18398a8 | ||
|
|
09c296b44d | ||
|
|
0a347559bf | ||
|
|
7543c38dca | ||
|
|
a2cd31cbf1 | ||
|
|
0f0af55a0a | ||
|
|
11d1eca9f3 | ||
|
|
f64989e63b | ||
|
|
07a983a602 | ||
|
|
4671e54495 | ||
|
|
68db20656e | ||
|
|
9fb088e3ab | ||
|
|
74a2528bd7 | ||
|
|
051908e023 | ||
|
|
5937d02aed | ||
|
|
71527e3a55 | ||
|
|
465f57c56f | ||
|
|
30fd2f7bb2 | ||
|
|
7e40c7ddc9 | ||
|
|
f101f7c9ba | ||
|
|
67cd05472e | ||
|
|
e5ea6ad0f0 | ||
|
|
a661830569 | ||
|
|
5166758927 | ||
|
|
3deceaf6e7 | ||
|
|
7e0bf7d57d | ||
|
|
840229a825 | ||
|
|
35b3d15194 | ||
|
|
fa490f6497 | ||
|
|
0ad2a9a2e0 | ||
|
|
3fd13c6426 | ||
|
|
b221fe9b29 | ||
|
|
ca4b91a1d0 | ||
|
|
5756d7916a | ||
|
|
f19e20d33f | ||
|
|
4b6164ab49 | ||
|
|
22e23473ea | ||
|
|
38651521a8 | ||
|
|
8a413b076e | ||
|
|
f98999cc16 | ||
|
|
ff0f0aeb40 | ||
|
|
a0119af0e4 | ||
|
|
5c0f039c9c | ||
|
|
352febe251 | ||
|
|
ccf7b41a69 | ||
|
|
2775c0e97e | ||
|
|
46e86aa803 | ||
|
|
986e612557 | ||
|
|
57ddf5f50a | ||
|
|
aef62a03ee | ||
|
|
9037decb28 | ||
|
|
6999fb3d1e | ||
|
|
fc6a9673c8 | ||
|
|
ed111975a0 | ||
|
|
f33a35e293 | ||
|
|
7b93eb0000 | ||
|
|
6768d2fc93 | ||
|
|
5c0d11b12a | ||
|
|
5d7577c71a | ||
|
|
4fd315192a | ||
|
|
831c8199f6 | ||
|
|
6c0c00a205 | ||
|
|
f5e742b264 | ||
|
|
9edb984274 | ||
|
|
827180097c | ||
|
|
93298afc4e | ||
|
|
f9014438c7 | ||
|
|
3df7c90c30 | ||
|
|
f2b1f57f74 | ||
|
|
f749338e1e | ||
|
|
a38fd6056c | ||
|
|
08ab306afd | ||
|
|
35fe3eb5c7 | ||
|
|
40c93486e8 | ||
|
|
f25ec0782e | ||
|
|
ec1d1ee61f | ||
|
|
d18cebaf8a | ||
|
|
4afc46d7bc | ||
|
|
4fdec07bd8 | ||
|
|
e282c0a081 | ||
|
|
f7b612550a | ||
|
|
d489a01f81 | ||
|
|
d44ce97909 | ||
|
|
091ab850aa | ||
|
|
54ad2f6cbb | ||
|
|
892056bf97 | ||
|
|
4865063924 | ||
|
|
ca6ededbd1 | ||
|
|
1695332941 | ||
|
|
534df2f8d2 | ||
|
|
549443a7cc | ||
|
|
25410096b4 | ||
|
|
f0c1376e07 | ||
|
|
766f609838 | ||
|
|
bd9fa2e841 | ||
|
|
465e22e62f | ||
|
|
247d0da188 | ||
|
|
07701e7cc8 | ||
|
|
b073989e17 | ||
|
|
8cca30f31b | ||
|
|
290bc0c067 | ||
|
|
0ad2717fd8 | ||
|
|
2d8af39acc | ||
|
|
e6a30bd107 | ||
|
|
b07acb3808 | ||
|
|
d5d043f2d7 | ||
|
|
cc5cea35b0 | ||
|
|
22d7fe1206 | ||
|
|
9a79bb694e | ||
|
|
472a72d27f | ||
|
|
9ef3c6238b | ||
|
|
57653added | ||
|
|
ff4096f958 | ||
|
|
d5a189acef | ||
|
|
d84a6ba3d1 | ||
|
|
bca88b2dc1 | ||
|
|
be67fa7e09 | ||
|
|
8bd80f4911 | ||
|
|
4a899c9274 | ||
|
|
dd9593ccc4 | ||
|
|
78dbb4b5b1 | ||
|
|
760928bfad | ||
|
|
baebd30eee | ||
|
|
3452477dcb | ||
|
|
f3da6c6c04 | ||
|
|
2cde498319 | ||
|
|
6f8839d2ac | ||
|
|
884f689efe | ||
|
|
41f2725639 | ||
|
|
c2fb062f60 | ||
|
|
8e57398b20 | ||
|
|
539598b11f | ||
|
|
8b2abed03d | ||
|
|
432a2e4d39 | ||
|
|
3f5bb15f35 | ||
|
|
744ed46970 | ||
|
|
8c3a757ffc | ||
|
|
448c5e07ca | ||
|
|
d483acc5d9 | ||
|
|
a848a3efbf | ||
|
|
e1c043f43a | ||
|
|
a337ac7584 | ||
|
|
70e6f3f115 | ||
|
|
7aa5924dc6 | ||
|
|
0de6ec5f08 | ||
|
|
ed5bad754c | ||
|
|
d85c85aac1 | ||
|
|
c6347dcfb4 | ||
|
|
cf2513e1aa | ||
|
|
b261e37a34 | ||
|
|
5976d58796 | ||
|
|
045bfe0da5 | ||
|
|
d8c178bc16 | ||
|
|
892ba87866 | ||
|
|
ef659192a1 | ||
|
|
6029127cea | ||
|
|
73cf8e82e7 | ||
|
|
07c27e040e | ||
|
|
7a7f1062bf | ||
|
|
f4e34f1b76 | ||
|
|
348d8cd04a | ||
|
|
d87f551f36 | ||
|
|
926365c9f8 | ||
|
|
4b455bafd0 | ||
|
|
f322bbe729 | ||
|
|
ec51bfc995 | ||
|
|
f2f30286bf | ||
|
|
6df7bdd954 | ||
|
|
c4d2244a09 | ||
|
|
d75de86e6d | ||
|
|
90fb81ad54 | ||
|
|
a599aeb2a8 | ||
|
|
b9049d2f90 | ||
|
|
d6bae2cb95 | ||
|
|
666aa0a343 | ||
|
|
c744e925df | ||
|
|
4b123f9ca2 | ||
|
|
cc2861ee44 | ||
|
|
ee7313266a | ||
|
|
dd8018de95 | ||
|
|
9a059ea69e | ||
|
|
56f65e3c3e | ||
|
|
ae17e2d90a | ||
|
|
de3c16afae | ||
|
|
2255efa171 | ||
|
|
b04d4fff35 | ||
|
|
bb9316da28 | ||
|
|
f490934c33 | ||
|
|
1c3883bef2 | ||
|
|
97900776bb | ||
|
|
d29be0dfa2 | ||
|
|
43e91da074 | ||
|
|
ef12fa1bf7 | ||
|
|
321ec97d95 | ||
|
|
77f21787d4 | ||
|
|
d70ef199f1 | ||
|
|
b1b3dc62ff | ||
|
|
e90db17392 | ||
|
|
6e76fc2866 | ||
|
|
19a18add4e | ||
|
|
95b034e484 | ||
|
|
93188918ea | ||
|
|
8295c80618 | ||
|
|
e698dd38c3 | ||
|
|
5bbb4cadc3 | ||
|
|
8e2c014e43 | ||
|
|
429efdd974 | ||
|
|
b24cdb3d36 | ||
|
|
871194d5fd | ||
|
|
22c2c34952 | ||
|
|
eef5d3257d | ||
|
|
7547c7df1a | ||
|
|
fd29448be0 | ||
|
|
70bc2e32af | ||
|
|
23bb5986d4 | ||
|
|
57d2857938 | ||
|
|
580e67015c | ||
|
|
89e894b17a | ||
|
|
9023b0b3a2 | ||
|
|
cf20b6bf65 | ||
|
|
6f86b9cb70 | ||
|
|
db273818f6 | ||
|
|
36815e4179 | ||
|
|
1a89c8d061 | ||
|
|
fdf180f9ce | ||
|
|
aeb124f7f3 | ||
|
|
a0fdd5f3f6 | ||
|
|
c50b0c9237 | ||
|
|
6cc94db653 | ||
|
|
60e26668b3 | ||
|
|
1cf26e2bf1 | ||
|
|
46b6954acd | ||
|
|
ffc8110659 | ||
|
|
3ebbdc6320 | ||
|
|
a29a7c72fa | ||
|
|
9170077f13 | ||
|
|
641f2bedf3 | ||
|
|
ded97eb892 | ||
|
|
e84edd2593 | ||
|
|
823a443321 | ||
|
|
1ad30a2af4 | ||
|
|
99c9d19184 | ||
|
|
dd4b280d8c | ||
|
|
ae648a44c4 | ||
|
|
9b4e8e0a0d | ||
|
|
0f6d3e22d9 | ||
|
|
3e7f4b0f82 | ||
|
|
d5f401147a | ||
|
|
61764613d1 | ||
|
|
d5feb1c280 | ||
|
|
3d22dbf27b | ||
|
|
03eb41c2ec | ||
|
|
3ca0517749 | ||
|
|
456dafc3c6 | ||
|
|
cf89beec6f | ||
|
|
b204006105 | ||
|
|
754e23db27 | ||
|
|
260383215b | ||
|
|
5fea00581b | ||
|
|
6ed721afd2 | ||
|
|
aab958b713 | ||
|
|
1c62e807e1 | ||
|
|
eba1f7b1a4 | ||
|
|
a5c51b4858 | ||
|
|
216019b72d | ||
|
|
e85a95dfa3 | ||
|
|
fc0a4c2781 | ||
|
|
5451ba3aa8 | ||
|
|
6392eba3f9 | ||
|
|
34f34e4411 | ||
|
|
3a160646df | ||
|
|
b159c6d62e | ||
|
|
2335c4bb41 | ||
|
|
b480cfaf34 | ||
|
|
a056ef1f39 | ||
|
|
5b014e0725 | ||
|
|
1f16a7b6e5 | ||
|
|
319580953d | ||
|
|
232e8e19a1 | ||
|
|
95eb729e6f | ||
|
|
236b217cd7 | ||
|
|
d51a0c353b | ||
|
|
55a8a3aad4 | ||
|
|
7244b9cee8 | ||
|
|
a639cf7d84 | ||
|
|
83152d174c | ||
|
|
86fba381fd | ||
|
|
cbcf4fe768 | ||
|
|
16889e22cc | ||
|
|
ce3ccc8d5a | ||
|
|
b906e85996 | ||
|
|
055a933fa9 | ||
|
|
e5cf3f9751 | ||
|
|
3ab15cde25 | ||
|
|
0ba78d5f36 | ||
|
|
6e1e9e2fcb | ||
|
|
246805d386 | ||
|
|
3abebfea98 | ||
|
|
38c49fbc4a | ||
|
|
2cd5adc28b | ||
|
|
6035651fad | ||
|
|
7defbd27ef | ||
|
|
b488be127a | ||
|
|
05de01d707 | ||
|
|
4d05f56dcd | ||
|
|
9d1bdbcf05 | ||
|
|
61e796decc | ||
|
|
a4402f0b2e | ||
|
|
975f1930b1 | ||
|
|
f004d5aeac | ||
|
|
3f92031aeb | ||
|
|
8bdf6bae30 | ||
|
|
59a9a9b5b0 | ||
|
|
06d71ad457 | ||
|
|
9d3faf4f9a | ||
|
|
3ac5f1106d | ||
|
|
1cb6fe47fc | ||
|
|
b0030af135 | ||
|
|
4f8a0cd2f9 | ||
|
|
2c52ccea80 | ||
|
|
960ccdc72c | ||
|
|
3e696d189c | ||
|
|
9c70b09e0a | ||
|
|
5e3b0095de | ||
|
|
44314ccf48 | ||
|
|
3b852d7fab | ||
|
|
17a82e72f4 | ||
|
|
4b0241d589 | ||
|
|
2cd51ef5d4 | ||
|
|
3222a04d5e | ||
|
|
897208e06d | ||
|
|
3421f43351 | ||
|
|
b00f5e2e14 | ||
|
|
098fef6740 | ||
|
|
8082858ee7 | ||
|
|
170f2addb2 | ||
|
|
5bc1809b43 | ||
|
|
d214576d2b | ||
|
|
2095eea3da | ||
|
|
2af6431619 | ||
|
|
895fa3a56b | ||
|
|
e0f10ecfd9 | ||
|
|
4e2343c6b5 | ||
|
|
10d4bd8266 | ||
|
|
326b2cb34e | ||
|
|
426298c8c1 | ||
|
|
74f39041d4 | ||
|
|
dc39ab3bbf | ||
|
|
ec90ede1cf | ||
|
|
13324bf844 | ||
|
|
09329e7833 | ||
|
|
78ca555845 | ||
|
|
0757c73a20 | ||
|
|
e34a2c170c | ||
|
|
8dd4fcbe8f | ||
|
|
f84d86b660 | ||
|
|
5d89540b77 | ||
|
|
4fc0fdc6ee | ||
|
|
cdcb1118c8 | ||
|
|
0fa3cf94a3 | ||
|
|
da9bf0ee80 | ||
|
|
3ae644d48c | ||
|
|
2a462abf5f | ||
|
|
05727f6e3e | ||
|
|
2d13cdfd2a | ||
|
|
efb833f342 | ||
|
|
409915e955 | ||
|
|
97cada0e6a | ||
|
|
0ba8f05a42 | ||
|
|
0d19d82498 | ||
|
|
6f96e78dea | ||
|
|
b1bb17fd2b | ||
|
|
04958e88a4 | ||
|
|
105d1787dc | ||
|
|
69d3bf1068 | ||
|
|
d7bcf21340 | ||
|
|
6a83df04b6 | ||
|
|
a9366818a1 | ||
|
|
edcfea5d02 | ||
|
|
1001cf412c | ||
|
|
da82daf54c | ||
|
|
febe5c44c0 | ||
|
|
099c717baf | ||
|
|
8f2b03242d | ||
|
|
9e00b7d3d0 | ||
|
|
865b077819 | ||
|
|
96fe50400d | ||
|
|
10edbbb927 | ||
|
|
7335a4234a | ||
|
|
1a9286c6e9 | ||
|
|
6545a6dc5d | ||
|
|
b54da8a10f | ||
|
|
5c3954aa6f | ||
|
|
c1472ac105 | ||
|
|
89014c9d40 | ||
|
|
1e3e6b7c15 | ||
|
|
5496e67f83 | ||
|
|
d42006c80a | ||
|
|
86528489ec | ||
|
|
44a5452a4f | ||
|
|
5213c39038 | ||
|
|
8ef2c13d6c | ||
|
|
b5d32d4a9e | ||
|
|
829735e738 | ||
|
|
35f4182cee | ||
|
|
6ee73a2fee | ||
|
|
189dd8f803 | ||
|
|
358f0ce96b | ||
|
|
5fd012e67a | ||
|
|
8974ba31a3 | ||
|
|
cf78d04ae2 | ||
|
|
b904a078d8 | ||
|
|
a936768890 | ||
|
|
4a8088a603 | ||
|
|
9c11e8a1ca | ||
|
|
481c17504d | ||
|
|
2dd68af334 | ||
|
|
0e9c1ca673 | ||
|
|
a6dbe0ff23 | ||
|
|
11d68eb3fc | ||
|
|
52eaac4382 | ||
|
|
818f0cba55 | ||
|
|
434ccd2e20 | ||
|
|
24a69d22a0 | ||
|
|
359a65a6db | ||
|
|
143aeb9ea7 | ||
|
|
850609ea2d | ||
|
|
1ba834bd3f | ||
|
|
9ad27f7853 | ||
|
|
c8646e0c41 | ||
|
|
6bd0bcd5af | ||
|
|
60818b957c | ||
|
|
672b453a76 | ||
|
|
edea4122b1 | ||
|
|
cc92234068 | ||
|
|
fc61134b1a | ||
|
|
3060266ff1 | ||
|
|
21b64dc7c9 | ||
|
|
37bb37d151 | ||
|
|
b4afe605f4 | ||
|
|
362b5a6c40 | ||
|
|
f5a01d1764 | ||
|
|
06190928c0 | ||
|
|
4d4900fc65 | ||
|
|
5fee1ff7bc | ||
|
|
f53d092a2a | ||
|
|
b6c582a3a3 | ||
|
|
a1fa3efd2b | ||
|
|
26874e2e07 | ||
|
|
8a729270c1 | ||
|
|
52c2988f16 | ||
|
|
a7803c58e4 | ||
|
|
12cf730b69 | ||
|
|
6d7aa65399 | ||
|
|
60efa608d6 | ||
|
|
a56a95b652 | ||
|
|
4a1efb2b9c | ||
|
|
dd93c53c4e | ||
|
|
2f22024806 | ||
|
|
c0c4bd4efa | ||
|
|
889620dcd2 | ||
|
|
1e2d777601 | ||
|
|
6a6a70e80e | ||
|
|
56315494dd | ||
|
|
f35a396c54 | ||
|
|
ccd8b55b01 | ||
|
|
004e6fbe1f | ||
|
|
e35ce7baa1 | ||
|
|
1d94d4fa70 | ||
|
|
3dee0e4cd8 | ||
|
|
cc2ac1ccc7 | ||
|
|
173f91c791 | ||
|
|
b9529545e1 | ||
|
|
92f5a5d3ca | ||
|
|
528c28587f | ||
|
|
c5d54010bc | ||
|
|
4fb2ac5be1 | ||
|
|
ebefe77bc0 | ||
|
|
d4379fcee3 | ||
|
|
2dbb470ea1 | ||
|
|
194511ff1a | ||
|
|
3524f41a27 | ||
|
|
a6a04fb1ec | ||
|
|
b8f3e18a5d | ||
|
|
b3ddb895d2 | ||
|
|
3961b5a131 | ||
|
|
7fb8c7c37f | ||
|
|
cbcaeedba9 | ||
|
|
0e8a55d2a2 | ||
|
|
13871fa2f8 | ||
|
|
15628f6735 | ||
|
|
d7dff34bad | ||
|
|
b8847e9ac6 | ||
|
|
0a5708c3e9 | ||
|
|
680765abec | ||
|
|
dddfd0f8b8 | ||
|
|
58cb0fa639 | ||
|
|
239b3d62de | ||
|
|
4c5751ba97 | ||
|
|
7ee29d1d5b | ||
|
|
00aa8935d7 | ||
|
|
216570b5e1 | ||
|
|
a2eaddaa51 | ||
|
|
1ead20f274 | ||
|
|
005d607aed | ||
|
|
be4576de7a | ||
|
|
ed744ecbfd | ||
|
|
bdb9d09aef | ||
|
|
7e2d799328 | ||
|
|
9b808c2d1b | ||
|
|
220e61c1f6 | ||
|
|
dd6faa5adf | ||
|
|
ac379b3be1 | ||
|
|
401c073dd2 | ||
|
|
493d3b9f7c | ||
|
|
8498ee03bc | ||
|
|
8f1ba251dd | ||
|
|
d5a21a29f8 | ||
|
|
efa95c2718 | ||
|
|
3c3ec7b2d7 | ||
|
|
9b2335a356 | ||
|
|
de09168e5a | ||
|
|
2d02e6a992 | ||
|
|
caf70f5e94 | ||
|
|
0ae98dfc66 | ||
|
|
69b73f9cf0 | ||
|
|
fafb584881 | ||
|
|
84d0b1bcc5 | ||
|
|
c83dda89a4 | ||
|
|
fb3cccc257 | ||
|
|
00bbe958c4 | ||
|
|
145aa636b9 | ||
|
|
be2320d408 | ||
|
|
95d530f2b4 | ||
|
|
b43eb9678b | ||
|
|
9bb3a683fe | ||
|
|
6cc42927d8 | ||
|
|
88af0c8635 | ||
|
|
67b235735e | ||
|
|
9d27faa2c4 | ||
|
|
b0f78afe58 | ||
|
|
6a72e52520 | ||
|
|
b70fed48a7 | ||
|
|
200df8641b | ||
|
|
d9bc8455cb | ||
|
|
6cc0c9e6a9 | ||
|
|
dbfc8198a6 | ||
|
|
5783a52a9c | ||
|
|
d77ce4b998 | ||
|
|
d2698d1822 | ||
|
|
f90ba61478 | ||
|
|
cdec7e3ae5 | ||
|
|
5ca3dcd127 | ||
|
|
d6191f593d | ||
|
|
86a67f15a0 | ||
|
|
68cc173c6d | ||
|
|
0b92fa0e93 | ||
|
|
6df574b744 | ||
|
|
971c3d90eb | ||
|
|
107b05772a | ||
|
|
2f8596ee10 | ||
|
|
4908e5bf7a | ||
|
|
e6f147141e | ||
|
|
b6a869ef4f | ||
|
|
018e110cd1 | ||
|
|
3108a9ee38 | ||
|
|
19a855382c | ||
|
|
a09b747f30 | ||
|
|
e0297ca59b | ||
|
|
87b34c94fa | ||
|
|
9193062e70 | ||
|
|
0dc844de17 | ||
|
|
dc0b7364b5 | ||
|
|
f1d3ae7753 | ||
|
|
33b5f2f779 | ||
|
|
59a5262041 | ||
|
|
66a10b6e58 | ||
|
|
683c1c6583 | ||
|
|
4b0e36810a | ||
|
|
fab68aa1ed | ||
|
|
5faff9ebdf | ||
|
|
1b55010a04 | ||
|
|
f243ca199b | ||
|
|
3a34972672 | ||
|
|
39987cbc80 | ||
|
|
e3d2ae0bfd | ||
|
|
e911171e03 | ||
|
|
7b4370e5f8 | ||
|
|
651b8a06d6 | ||
|
|
9557020dc1 | ||
|
|
59be975322 | ||
|
|
73b4b86d29 | ||
|
|
de7fb33879 | ||
|
|
08cb8fce67 | ||
|
|
25ff181300 | ||
|
|
16e1d5b5ce | ||
|
|
b8966872b3 | ||
|
|
6ed8d41ddd | ||
|
|
bc96302fae | ||
|
|
c82828ec27 | ||
|
|
752571c7ba | ||
|
|
87339a22b1 | ||
|
|
99757cbeb2 | ||
|
|
2b46959075 | ||
|
|
f164704383 | ||
|
|
e0b59e7dbc | ||
|
|
7085a04a1e | ||
|
|
83fce75700 | ||
|
|
0e2bbac4e0 | ||
|
|
9631e29933 | ||
|
|
c8dbaf579c | ||
|
|
4f59041990 | ||
|
|
cdf5d91fe5 | ||
|
|
71cce3f45b | ||
|
|
58e892dadd | ||
|
|
96e423a665 | ||
|
|
be0bb2dc13 | ||
|
|
d2b8037ed0 | ||
|
|
178e2ce65f | ||
|
|
49c3a910c6 | ||
|
|
53c163cd5b | ||
|
|
728b04067d | ||
|
|
6fadbec797 | ||
|
|
b280a2d44d | ||
|
|
4f4f6dfce8 | ||
|
|
a29421bcfd | ||
|
|
6a371834d8 | ||
|
|
6cb1d26924 | ||
|
|
c215262db4 | ||
|
|
24dabec039 | ||
|
|
3bd9b08fb1 | ||
|
|
07703fa78e | ||
|
|
3b1d656da5 | ||
|
|
9bbca99107 | ||
|
|
75cfc77527 | ||
|
|
8c738fa90c | ||
|
|
ca4a0fce65 | ||
|
|
982b19dbd7 | ||
|
|
2c25507b81 | ||
|
|
6b9f559984 | ||
|
|
e6092f337c | ||
|
|
7cf787a2d1 | ||
|
|
4f91b72dbe | ||
|
|
56e6952e63 | ||
|
|
ff942c6b39 | ||
|
|
0fec213656 | ||
|
|
025f5c89c7 | ||
|
|
326ba25451 | ||
|
|
eb40dcb097 | ||
|
|
d3f3f2e455 | ||
|
|
af014c1a5e | ||
|
|
12486a6437 | ||
|
|
a23d8ad313 | ||
|
|
26c08a3f35 | ||
|
|
153629c99a | ||
|
|
29ec850478 | ||
|
|
1bb820a339 | ||
|
|
ed65b7b375 | ||
|
|
10f97f9424 | ||
|
|
fcad5e35fd | ||
|
|
899358e797 | ||
|
|
4561d9e07b | ||
|
|
698455384f | ||
|
|
b413c77583 | ||
|
|
d2ab314e08 | ||
|
|
51f7ba4147 | ||
|
|
26c5905a99 | ||
|
|
08c12de8e2 | ||
|
|
f6d889523d | ||
|
|
471c5701c3 | ||
|
|
f018be3b5f | ||
|
|
c344fbc285 | ||
|
|
311fe737e8 | ||
|
|
4c1d441159 | ||
|
|
9797482568 | ||
|
|
87286cc737 | ||
|
|
627f379f22 | ||
|
|
bc7cfd7cd7 | ||
|
|
976c6b0826 | ||
|
|
d9c67aebff | ||
|
|
f1ca485357 | ||
|
|
365fdbfc64 | ||
|
|
f4f037aa64 | ||
|
|
8c8d518723 | ||
|
|
234afa5be1 | ||
|
|
f30cba2ba4 | ||
|
|
8f23fd545d | ||
|
|
7cc17a0cea | ||
|
|
360ce526fd | ||
|
|
4e43afd973 | ||
|
|
d1e6a13179 | ||
|
|
007ddcd2cd | ||
|
|
49806864e4 | ||
|
|
530082932d | ||
|
|
4cdf9d4158 | ||
|
|
49ac083dc1 | ||
|
|
84641fcdf0 | ||
|
|
005448bdeb | ||
|
|
3fc01d9770 | ||
|
|
fa44659c66 | ||
|
|
dea49e3d19 | ||
|
|
1b8b097fad | ||
|
|
542156a6a1 | ||
|
|
416c14f644 | ||
|
|
7e62bc9828 | ||
|
|
0a42266824 | ||
|
|
f63a1f8409 | ||
|
|
41d811f41f | ||
|
|
c06af229dc | ||
|
|
81425598db | ||
|
|
73fcd43b85 | ||
|
|
2e389c6531 | ||
|
|
e1dc6e6d73 | ||
|
|
1de156abb1 | ||
|
|
74b6426ec6 | ||
|
|
f5bdce9cc0 | ||
|
|
95866a6445 | ||
|
|
0f8f863043 | ||
|
|
abfcd1fb00 | ||
|
|
413d38c43b | ||
|
|
c4eaf7e5a9 | ||
|
|
67706b8bb7 | ||
|
|
f4124e18cb | ||
|
|
fa2eaeafda | ||
|
|
040cf02724 | ||
|
|
c828ded0c2 | ||
|
|
c26cf84a08 | ||
|
|
02e0a0aa10 | ||
|
|
82d0ac7ac7 | ||
|
|
26aab0dc5d | ||
|
|
9b6acc27aa | ||
|
|
2c9bcb28be | ||
|
|
9e09fc0508 | ||
|
|
942b92a06e | ||
|
|
aff91f79ae | ||
|
|
d91f64fcbb | ||
|
|
6ee676c0e4 | ||
|
|
f9fec3a2d6 | ||
|
|
f6bce20e5e | ||
|
|
d157131439 | ||
|
|
fcba1459f2 | ||
|
|
43cb4ec76b | ||
|
|
39fec6003e | ||
|
|
e406613ee5 | ||
|
|
78d91ff074 | ||
|
|
2010071339 | ||
|
|
a4e10cdb07 | ||
|
|
94bedc60f4 | ||
|
|
1e37efb08b | ||
|
|
66293f6e98 | ||
|
|
9ad334085f | ||
|
|
8fe5712477 | ||
|
|
8d37b6c92b | ||
|
|
74c02066fe | ||
|
|
93aad55342 | ||
|
|
fdb0eb5825 | ||
|
|
3a9b08f156 | ||
|
|
9ef962f9ee | ||
|
|
de0066c697 | ||
|
|
8efe7a8304 | ||
|
|
79fd1f7f0b | ||
|
|
3148f1400e | ||
|
|
97d355c273 | ||
|
|
320cf729db | ||
|
|
b185751c3f | ||
|
|
b93a7cc99e | ||
|
|
ed44098cf6 | ||
|
|
b31d5ac639 | ||
|
|
cfe0f4226b | ||
|
|
771ba34ca7 | ||
|
|
decd81838a | ||
|
|
52037d897d | ||
|
|
0f077a78ad | ||
|
|
1e7a0aa883 | ||
|
|
ae0dd0d89c | ||
|
|
c1ae6ea2f2 | ||
|
|
6b98a63974 | ||
|
|
b20c98e427 | ||
|
|
a0556fcbe1 | ||
|
|
41a41825f6 | ||
|
|
292e2ea5ad | ||
|
|
c8ffbcd9f1 | ||
|
|
4ff15512f5 | ||
|
|
ff05beeef3 | ||
|
|
44bebc0d52 | ||
|
|
6326b04b07 | ||
|
|
3aa1975c58 | ||
|
|
243c218c7a | ||
|
|
12798c620d | ||
|
|
100fc27ebb | ||
|
|
f90264d246 | ||
|
|
d104bfd5a6 | ||
|
|
5b8e1dabbc | ||
|
|
dcd911e24b |
11
.gitignore
vendored
11
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
|
||||
core
|
||||
vgcore.*
|
||||
.waf*
|
||||
tags
|
||||
.lock-wscript
|
||||
@@ -18,6 +19,7 @@ node_g
|
||||
Debug/
|
||||
Release/
|
||||
*.sln
|
||||
!nodemsi.sln
|
||||
*.suo
|
||||
*.vcproj
|
||||
*.vcxproj
|
||||
@@ -32,3 +34,10 @@ ipch/
|
||||
/options.gypi
|
||||
*-nodegyp*
|
||||
/gyp-mac-tool
|
||||
/dist-osx
|
||||
/npm.wxs
|
||||
/tools/msvs/npm.wixobj
|
||||
email.md
|
||||
blog.html
|
||||
deps/v8-*
|
||||
node_modules
|
||||
|
||||
14
.travis.yml
Normal file
14
.travis.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
language: node_js
|
||||
|
||||
before_script:
|
||||
- "./configure"
|
||||
- "make"
|
||||
|
||||
script:
|
||||
- "make test"
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
irc:
|
||||
- "irc.freenode.net#libuv"
|
||||
|
||||
62
AUTHORS
62
AUTHORS
@@ -165,13 +165,14 @@ Richard Rodger <richard@ricebridge.com>
|
||||
Andreas Reich <andreas@reich.name>
|
||||
Dean McNamee <dean@gmail.com>
|
||||
Trevor Burnham <trevor@databraid.com>
|
||||
Zachary Scott <zachary.s.scott@gmail.com>
|
||||
Zachary Scott <zachary@zacharyscott.net>
|
||||
Arnout Kazemier <info@3rd-Eden.com>
|
||||
George Stagas <gstagas@gmail.com>
|
||||
Scott McWhirter <scott.mcwhirter@joyent.com>
|
||||
Jakub Lekstan <jakub.lekstan@dreamlab.pl>
|
||||
Tim Baumann <tim@timbaumann.info>
|
||||
Robert Mustacchi <rm@joyent.com>
|
||||
Håvard Stranden <havard.stranden@gmail.com>
|
||||
George Miroshnykov <george.miroshnykov@gmail.com>
|
||||
Marcel Laverdet <marcel@laverdet.com>
|
||||
Alexandre Marangone <a.marangone@gmail.com>
|
||||
@@ -218,3 +219,62 @@ Niclas Hoyer <niclas@verbugt.de>
|
||||
Michael Jackson <mjijackson@gmail.com>
|
||||
Ashok Mudukutore <ashok@lineratesystems.com>
|
||||
Sean Cunningham <sean.cunningham@mandiant.com>
|
||||
Ben Leslie <benno@benno.id.au>
|
||||
Christian Tellnes <christian@tellnes.no>
|
||||
Colton Baker <github@netrefuge.net>
|
||||
Tyler Larson <talltyler@gmail.com>
|
||||
Tomasz Janczuk <tomasz@janczuk.org>
|
||||
Ilya Dmitrichenko <errordeveloper@gmail.com>
|
||||
Simen Brekken <simen.brekken@gmail.com>
|
||||
Guglielmo Ferri <44gatti@gmail.com>
|
||||
Thomas Parslow <tom@almostobsolete.net>
|
||||
Ryan Emery <seebees@gmail.com>
|
||||
Zachary Scott <zachary@zacharyscott.net>
|
||||
Jordan Sissel <jls@semicomplete.com>
|
||||
Matt Robenolt <matt@ydekproductions.com>
|
||||
Jacob H.C. Kragh <jhckragh@gmail.com>
|
||||
Benjamin Pasero <benjamin.pasero@gmail.com>
|
||||
Scott Anderson <sanderson7@gmail.com>
|
||||
Yoji SHIDARA <dara@shidara.net>
|
||||
Mathias Bynens <mathias@qiwi.be>
|
||||
Łukasz Walukiewicz <lukasz@walukiewicz.eu>
|
||||
Artur Adib <arturadib@gmail.com>
|
||||
E. Azer Koçulu <azer@kodfabrik.com>
|
||||
Roman Shtylman <shtylman@gmail.com>
|
||||
Kyle Robinson Young <kyle@dontkry.com>
|
||||
Tim Oxley <secoif@gmail.com>
|
||||
Ingmar Runge <ingmar@irsoft.de>
|
||||
Russ Bradberry <rbradberry@gmail.com>
|
||||
Andreas Madsen <amwebdk@gmail.com>
|
||||
Adam Malcontenti-Wilson <adman.com@gmail.com>
|
||||
James Hartig <james.hartig@grooveshark.com>
|
||||
Shannen Saez <shannenlaptop@gmail.com>
|
||||
Seong-Rak Choi <ragiragi@hanmail.net>
|
||||
Dave Irvine <davman99@gmail.com>
|
||||
Ju-yeong Park <interruptz@gmail.com>
|
||||
Phil Sung <psung@dnanexus.com>
|
||||
Damon Oehlman <damon.oehlman@sidelab.com>
|
||||
Ryunosuke SATO <tricknotes.rs@gmail.com>
|
||||
Michael Bernstein <michaelrbernstein@gmail.com>
|
||||
Guillermo Rauch <rauchg@gmail.com>
|
||||
Dan Williams <dan@igniter.com>
|
||||
Brandon Benvie <brandon@bbenvie.com>
|
||||
Nicolas LaCasse <nlacasse@borderstylo.com>
|
||||
Dan VerWeire <dverweire@gmail.com>
|
||||
Matthew Fitzsimmons <matt@joyent.com>
|
||||
Paddy Byers <paddy.byers@gmail.com>
|
||||
Philip Tellis <philip.tellis@gmail.com>
|
||||
Christopher Jeffrey <chjjeffrey@gmail.com>
|
||||
Seth Fitzsimmons <seth@mojodna.net>
|
||||
Einar Otto Stangvik <einaros@gmail.com>
|
||||
Paul Vorbach <paul@vorb.de>
|
||||
tedsuo <ted@radicaldesigns.org>
|
||||
Joshua Holbrook <josh.holbrook@gmail.com>
|
||||
Rod Vagg <rod@vagg.org>
|
||||
Bryan Cantrill <bryan@joyent.com>
|
||||
lrn@chromium.org <lrn@chromium.org>
|
||||
Dane Springmeyer <dane@dbsgeo.com>
|
||||
Sambasiva Suda <sambasivarao@gmail.com>
|
||||
Vincent Voyer <v@fasterize.com>
|
||||
ANDO Takahiro <takahiro.ando@gmail.com>
|
||||
Erwin van der Koogh <github@koogh.com>
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
project(node)
|
||||
|
||||
if(USE_GCOV)
|
||||
set(CMAKE_BUILD_TYPE "Debug")
|
||||
|
||||
# Set global c and c++ flags
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
|
||||
|
||||
# Link flags used for creating executables
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov -fprofile-arcs")
|
||||
|
||||
# Link flags used for creating shared libraries
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lgcov -profile-arcs")
|
||||
endif()
|
||||
|
||||
#
|
||||
# options
|
||||
#
|
||||
|
||||
find_package(PythonInterp 2 REQUIRED)
|
||||
|
||||
option(SHARED_V8 "use system shared V8 library")
|
||||
option(SHARED_LIBEV "use system shared libev library")
|
||||
option(SHARED_CARES "use system shared c-ares library")
|
||||
option(V8_SNAPSHOT "turn on snapshot when building stock v8")
|
||||
option(V8_OPROFILE "Add oprofile support")
|
||||
option(V8_GDBJIT "add gdbjit support")
|
||||
option(DTRACE "build with DTrace (experimental)")
|
||||
|
||||
# cmake policies to get rid of some warnings
|
||||
cmake_policy(SET CMP0009 NEW) # GLOB_RECURSE should no follow symlinks
|
||||
|
||||
# generic cmake configuration
|
||||
include("cmake/configure.cmake")
|
||||
|
||||
# find and configure libs
|
||||
include("cmake/libs.cmake")
|
||||
|
||||
# setup node build targets
|
||||
include("cmake/node_build.cmake")
|
||||
|
||||
# setup v8 build targets
|
||||
include("cmake/v8_build.cmake")
|
||||
|
||||
# docs
|
||||
## might want to move this to doc/CMakeLists.txt
|
||||
include("cmake/docs.cmake")
|
||||
|
||||
# tests
|
||||
enable_testing()
|
||||
include(CTest)
|
||||
add_subdirectory("test/")
|
||||
|
||||
# package
|
||||
include("cmake/package.cmake")
|
||||
|
||||
|
||||
#
|
||||
# Final build configuration output
|
||||
#
|
||||
|
||||
message("** Build Summary **")
|
||||
message(" Version: ${node_version_string}")
|
||||
message(" Prefix: ${PREFIX}")
|
||||
message(" Build Type: ${CMAKE_BUILD_TYPE}")
|
||||
message(" Architecture: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
message(" Platform: ${node_platform}")
|
||||
|
||||
if(SHARED_V8)
|
||||
message(" V8: ${V8_LIBRARY_PATH}")
|
||||
#else()
|
||||
#message(" V8 jobs: ${parallel_jobs}")
|
||||
endif()
|
||||
|
||||
if(SHARED_libev)
|
||||
message(" libev: ${LIBEV_LIBRARY}")
|
||||
endif()
|
||||
|
||||
if(SHARED_CARES)
|
||||
message(" libc-ares: ${LIBCARES_LIBRARY}")
|
||||
endif()
|
||||
|
||||
message(" RT library: ${RT}")
|
||||
message(" DL library: ${DL}")
|
||||
|
||||
if(${OPENSSL_FOUND} MATCHES TRUE)
|
||||
message(" OpenSSL: ${OPENSSL_LIBRARIES}")
|
||||
endif()
|
||||
|
||||
if(USE_GCOV)
|
||||
message(" gcov: enabled")
|
||||
endif()
|
||||
|
||||
message(" CCFLAGS: ${CCFLAGS}")
|
||||
message(" CPPFLAGS: ${CPPFLAGS}")
|
||||
@@ -1,7 +0,0 @@
|
||||
set(CTEST_PROJECT_NAME "node")
|
||||
set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
|
||||
|
||||
set(CTEST_DROP_METHOD "http")
|
||||
set(CTEST_DROP_SITE "my.cdash.org")
|
||||
set(CTEST_DROP_LOCATION "/submit.php?project=node")
|
||||
set(CTEST_DROP_SITE_CDASH TRUE)
|
||||
678
ChangeLog
678
ChangeLog
@@ -1,4 +1,637 @@
|
||||
2011.09.16, Version 0.5.7 (unstable)
|
||||
2012.06.06 Version 0.6.19 (stable)
|
||||
|
||||
* npm: upgrade to 1.1.24
|
||||
|
||||
* fs: no end emit after createReadStream.pause() (Andreas Madsen)
|
||||
|
||||
* vm: cleanup module memory leakage (Marcel Laverdet)
|
||||
|
||||
* unix: fix loop starvation under high network load (Ben Noordhuis)
|
||||
|
||||
* unix: remove abort() in ev_unref() (Ben Noordhuis)
|
||||
|
||||
* windows/tty: never report error after forcibly aborting line-buffered read (Bert Belder)
|
||||
|
||||
* windows: skip GetFileAttributes call when opening a file (Bert Belder)
|
||||
|
||||
|
||||
2012.05.15 Version 0.6.18 (stable), 4bc1d395de6abed2cf1e4d0b7b3a1480a21c368f
|
||||
|
||||
* windows: skip GetFileAttributes call when opening a file (Bert Belder)
|
||||
|
||||
* crypto: add PKCS12/PFX support (Sambasiva Suda)
|
||||
|
||||
* #3240: child_process: delete NODE_CHANNEL_FD from env in spawn (Ben Noordhuis)
|
||||
|
||||
* windows: add test for path.normalize with UNC paths (Bert Belder)
|
||||
|
||||
* windows: make path.normalize convert all slashes to backslashes (Bert Belder)
|
||||
|
||||
* fs: Automatically close FSWatcher on error (Bert Belder)
|
||||
|
||||
* #3258: fs.ReadStream.pause() emits duplicate data event (koichik)
|
||||
|
||||
* pipe_wrap: don't assert() on pipe accept errors (Ben Noordhuis)
|
||||
|
||||
* Better exception output for module load and process.nextTick (Felix Geisendörfer)
|
||||
|
||||
* zlib: fix error reporting (Ben Noordhuis)
|
||||
|
||||
* http: Don't destroy on timeout (isaacs)
|
||||
|
||||
* #3231: http: Don't try to emit error on a null'ed req object (isaacs)
|
||||
|
||||
* #3236: http: Refactor ClientRequest.onSocket (isaacs)
|
||||
|
||||
|
||||
2012.05.04 Version 0.6.17 (stable), 4ced23deaf36493f4303a18f6fdce768c58becc0
|
||||
|
||||
* Upgrade npm to 1.1.21
|
||||
|
||||
* uv: Add support for EROFS errors (Ben Noordhuis, Maciej Małecki)
|
||||
|
||||
* uv: Add support for EIO and ENOSPC errors (Fedor Indutny)
|
||||
|
||||
* windows: Add support for EXDEV errors (Bert Belder)
|
||||
|
||||
* http: Fix client memory leaks (isaacs, Vincent Voyer)
|
||||
|
||||
* fs: fix file descriptor leak in sync functions (Ben Noordhuis)
|
||||
|
||||
* fs: fix ReadStream / WriteStream double close bug (Ben Noordhuis)
|
||||
|
||||
|
||||
2012.04.30 Version 0.6.16 (stable), a1d193963ddc80a27da5da01b59751e14e33d1d6
|
||||
|
||||
* Upgrade V8 to 3.6.6.25
|
||||
|
||||
* Upgrade npm to 1.1.19
|
||||
|
||||
* Windows: add mappings for UV_ENOENT (Bert Belder)
|
||||
|
||||
* linux: add IN_MOVE_SELF to inotify event mask (Ben Noordhuis)
|
||||
|
||||
* unix: call pipe handle connection cb on accept() error (Ben Noordhuis)
|
||||
|
||||
* unix: handle EWOULDBLOCK (Ben Noordhuis)
|
||||
|
||||
* map EWOULDBLOCK to UV_EAGAIN (Ben Noordhuis)
|
||||
|
||||
* Map ENOMEM to UV_ENOMEM (isaacs)
|
||||
|
||||
* Child process: support the `gid` and `uid` options (Bert Belder)
|
||||
|
||||
* test: cluster: add worker death event test (Ben Noordhuis)
|
||||
|
||||
* typo in node_http_parser (isaacs)
|
||||
|
||||
* http_parser: Eat CRLF between requests, even on connection:close. (Ben Noordhuis)
|
||||
|
||||
* don't check return value of unsetenv (Ben Noordhuis)
|
||||
|
||||
|
||||
2012.04.09 Version 0.6.15 (stable), f160a45b254e591eb33716311c92be533c6d86c4
|
||||
|
||||
* Update npm to 1.1.16
|
||||
|
||||
* Show licenses in binary installers.
|
||||
|
||||
* unix: add uv_fs_read64, uv_fs_write64 and uv_fs_ftruncate64 (Ben Noordhuis)
|
||||
|
||||
* add 64bit offset fs functions (Igor Zinkovsky)
|
||||
|
||||
* windows: don't report ENOTSOCK when attempting to bind an udp handle twice (Bert Belder)
|
||||
|
||||
* windows: backport pipe-connect-to-file fixes from master (Bert Belder)
|
||||
|
||||
* windows: never call fs event callbacks after closing the watcher (Bert Belder)
|
||||
|
||||
* fs.readFile: don't make the callback before the fd is closed (Bert Belder)
|
||||
|
||||
* windows: use 64bit offsets for uv_fs apis (Igor Zinkovsky)
|
||||
|
||||
* Fix #2061: segmentation fault on OS X due to stat size mismatch (Ben Noordhuis)
|
||||
|
||||
|
||||
2012.03.22 Version 0.6.14 (stable), e513ffef7549a56a5af728e1f0c2c0c8f290518a
|
||||
|
||||
* net: don't crash when queued write fails (Igor Zinkovsky)
|
||||
|
||||
* sunos: fix EMFILE on process.memoryUsage() (Bryan Cantrill)
|
||||
|
||||
* crypto: fix compile-time error with openssl 0.9.7e (Ben Noordhuis)
|
||||
|
||||
* unix: ignore ECONNABORTED errors from accept() (Ben Noordhuis)
|
||||
|
||||
* Add UV_ENOSPC and mappings to it (Bert Belder)
|
||||
|
||||
* http-parser: Fix response body is not read (koichik)
|
||||
|
||||
* Upgrade npm to 1.1.12
|
||||
- upgrade node-gyp to 0.3.7
|
||||
- work around AV-locked directories on Windows
|
||||
- Fix isaacs/npm#2293 Don't try to 'uninstall' /
|
||||
- Exclude symbolic links from packages.
|
||||
- Fix isaacs/npm#2275 Spurious 'unresolvable cycle' error.
|
||||
- Exclude/include dot files as if they were normal files
|
||||
|
||||
|
||||
2012.03.15 Version 0.6.13 (stable), 9f7f86b534f8556290eb8cad915984ff4ca54996
|
||||
|
||||
* Windows: Many libuv test fixes (Bert Belder)
|
||||
|
||||
* Windows: avoid uv_guess_handle crash in when fd < 0 (Bert Belder)
|
||||
|
||||
* Map EBUSY and ENOTEMPTY errors (Bert Belder)
|
||||
|
||||
* Windows: include syscall in fs errors (Bert Belder)
|
||||
|
||||
* Fix fs.watch ENOSYS on Linux kernel version mismatch (Ben Noordhuis)
|
||||
|
||||
* Update npm to 1.1.9
|
||||
- upgrade node-gyp to 0.3.5 (Nathan Rajlich)
|
||||
- Fix isaacs/npm#2249 Add cache-max and cache-min configs
|
||||
- Properly redirect across https/http registry requests
|
||||
- log config usage if undefined key in set function (Kris Windham)
|
||||
- Add support for os/cpu fields in package.json (Adam Blackburn)
|
||||
- Automatically node-gyp packages containing a binding.gyp
|
||||
- Fix failures unpacking in UNC shares
|
||||
- Never create un-listable directories
|
||||
- Handle cases where an optionalDependency fails to build
|
||||
|
||||
|
||||
2012.03.02 Version 0.6.12 (stable), 48a2d34cfe6b7e1c9d15202a4ef5e3c82d1fba35
|
||||
|
||||
* Upgrade V8 to 3.6.6.24
|
||||
|
||||
* dtrace ustack helper improvements (Dave Pacheco)
|
||||
|
||||
* API Documentation refactor (isaacs)
|
||||
|
||||
* #2827 net: fix race write() before and after connect() (koichik)
|
||||
|
||||
* #2554 #2567 throw if fs args for 'start' or 'end' are strings (AJ ONeal)
|
||||
|
||||
* punycode: Update to v1.0.0 (Mathias Bynens)
|
||||
|
||||
* Make a fat binary for the OS X pkg (isaacs)
|
||||
|
||||
* Fix hang on accessing process.stdin (isaacs)
|
||||
|
||||
* repl: make tab completion work on non-objects (Nathan Rajlich)
|
||||
|
||||
* Fix fs.watch on OS X (Ben Noordhuis)
|
||||
|
||||
* Fix #2515 nested setTimeouts cause premature process exit (Ben Noordhuis)
|
||||
|
||||
* windows: fix time conversion in stat (Igor Zinkovsky)
|
||||
|
||||
* windows: fs: handle EOF in read (Brandon Philips)
|
||||
|
||||
* windows: avoid IOCP short-circuit on non-ifs lsps (Igor Zinkovsky)
|
||||
|
||||
* Upgrade npm to 1.1.4 (isaacs)
|
||||
- windows fixes
|
||||
- Bundle nested bundleDependencies properly
|
||||
- install: support --save with url install targets
|
||||
- shrinkwrap: behave properly with url-installed modules
|
||||
- support installing uncompressed tars or single file modules from urls etc.
|
||||
- don't run make clean on rebuild
|
||||
- support HTTPS-over-HTTP proxy tunneling
|
||||
|
||||
|
||||
2012.02.17 Version 0.6.11 (stable), 1eb1fe32250fc88cb5b0a97cddf3e02be02e3f4a
|
||||
|
||||
* http: allow multiple WebSocket RFC6455 headers (Einar Otto Stangvik)
|
||||
|
||||
* http: allow multiple WWW-Authenticate headers (Ben Noordhuis)
|
||||
|
||||
* windows: support unicode argv and environment variables (Bert Belder)
|
||||
|
||||
* tls: mitigate session renegotiation attacks (Ben Noordhuis)
|
||||
|
||||
* tcp, pipe: don't assert on uv_accept() errors (Ben Noordhuis)
|
||||
|
||||
* tls: Allow establishing secure connection on the existing socket (koichik)
|
||||
|
||||
* dgram: handle close of dgram socket before DNS lookup completes (Seth Fitzsimmons)
|
||||
|
||||
* windows: Support half-duplex pipes (Igor Zinkovsky)
|
||||
|
||||
* build: disable omit-frame-pointer on solaris systems (Dave Pacheco)
|
||||
|
||||
* debugger: fix --debug-brk (Ben Noordhuis)
|
||||
|
||||
* net: fix large file downloads failing (koichik)
|
||||
|
||||
* fs: fix ReadStream failure to read from existing fd (Christopher Jeffrey)
|
||||
|
||||
* net: destroy socket on DNS error (Stefan Rusu)
|
||||
|
||||
* dtrace: add missing translator (Dave Pacheco)
|
||||
|
||||
* unix: don't flush tty on switch to raw mode (Ben Noordhuis)
|
||||
|
||||
* windows: reset brightness when reverting to default text color (Bert Belder)
|
||||
|
||||
* npm: update to 1.1.1
|
||||
- Update which, fstream, mkdirp, request, and rimraf
|
||||
- Fix #2123 Set path properly for lifecycle scripts on windows
|
||||
- Mark the root as seen, so we don't recurse into it. Fixes #1838. (Martin Cooper)
|
||||
|
||||
|
||||
2012.02.02, Version 0.6.10 (stable), 051908e023f87894fa68f5b64d0b99a19a7db01e
|
||||
|
||||
* Update V8 to 3.6.6.20
|
||||
|
||||
* Add npm msysgit bash shim to msi installer (isaacs)
|
||||
|
||||
* buffers: fix intermittent out of bounds error (Ben Noordhuis)
|
||||
|
||||
* buffers: honor length argument in base64 decoder (Ben Noordhuis)
|
||||
|
||||
* windows: Fix path.exists regression (Bert Belder)
|
||||
|
||||
* Make QueryString.parse run faster (Philip Tellis)
|
||||
|
||||
* http: avoid freeing http-parser objects too early (koichik)
|
||||
|
||||
* timers: add v0.4 compatibility hack (Ben Noordhuis)
|
||||
|
||||
* Proper EPERM error code support (Igor Zinkovsky, Brandon Philips)
|
||||
|
||||
* dgram: Implement udp multicast methods on windows (Bert Belder)
|
||||
|
||||
|
||||
2012.01.27, Version 0.6.9 (stable), f19e20d33f57c4d2853aaea7d2724d44f3b0012f
|
||||
|
||||
* dgram: Bring back missing functionality for Unix (Dan VerWeire, Roman Shtylman, Ben Noordhuis)
|
||||
- Note: Windows UDP support not yet complete.
|
||||
|
||||
* http: Fix parser memory leak (koichik)
|
||||
|
||||
* zlib: Fix #2365 crashes on invalid input (Nicolas LaCasse)
|
||||
|
||||
* module: fix --debug-brk on symlinked scripts (Fedor Indutny)
|
||||
|
||||
* Documentation Restyling (Matthew Fitzsimmons)
|
||||
|
||||
* Update npm to 1.1.0-3 (isaacs)
|
||||
|
||||
* Windows: fix regression in stat() calls to C:\ (Bert Belder)
|
||||
|
||||
|
||||
2012.01.19, Version 0.6.8 (stable), d18cebaf8a7ac701dabd71a3aa4eb0571db6a645
|
||||
|
||||
* Update V8 to 3.6.6.19
|
||||
|
||||
* Numeric key hash collision fix for V8 (Erik Corry, Fedor Indutny)
|
||||
|
||||
* Add missing TTY key translations for F1-F5 on Windows (Brandon Benvie)
|
||||
|
||||
* path.extname bugfix with . and .. paths (Bert Belder)
|
||||
|
||||
* cluster: don't always kill the master on uncaughtException (Ben Noordhuis)
|
||||
|
||||
* Update npm to 1.1.0-2 (isaacs)
|
||||
|
||||
* typed arrays: set class name (Ben Noordhuis)
|
||||
|
||||
* zlib binding cleanup (isaacs, Bert Belder)
|
||||
|
||||
* dgram: use slab memory allocator (Michael Bernstein)
|
||||
|
||||
* fix segfault #2473
|
||||
|
||||
* #2521 60% improvement in fs.stat on Windows (Igor Zinkovsky)
|
||||
|
||||
|
||||
2012.01.06, Version 0.6.7 (stable), d5a189acef14a851287ee555f7a39431fe276e1c
|
||||
|
||||
* V8 hash collision fix (Breaks MIPS) (Bert Belder, Erik Corry)
|
||||
|
||||
* Upgrade V8 to 3.6.6.15
|
||||
|
||||
* Upgrade npm to 1.1.0-beta-10 (isaacs)
|
||||
|
||||
* many doc updates (Ben Noordhuis, Jeremy Martin, koichik, Dave Irvine,
|
||||
Seong-Rak Choi, Shannen, Adam Malcontenti-Wilson, koichik)
|
||||
|
||||
* Fix segfault in node_http_parser.cc
|
||||
|
||||
* dgram, timers: fix memory leaks (Ben Noordhuis, Yoshihiro Kikuchi)
|
||||
|
||||
* repl: fix repl.start not passing the `ignoreUndefined` arg (Damon Oehlman)
|
||||
|
||||
* #1980: Socket.pause null reference when called on a closed Stream (koichik)
|
||||
|
||||
* #2263: XMLHttpRequest piped in a writable file stream hang (koichik)
|
||||
|
||||
* #2069: http resource leak (koichik)
|
||||
|
||||
* buffer.readInt global pollution fix (Phil Sung)
|
||||
|
||||
* timers: fix performance regression (Ben Noordhuis)
|
||||
|
||||
* #2308, #2246: node swallows openssl error on request (koichik)
|
||||
|
||||
* #2114: timers: remove _idleTimeout from item in .unenroll() (James Hartig)
|
||||
|
||||
* #2379: debugger: Request backtrace w/o refs (Fedor Indutny)
|
||||
|
||||
* simple DTrace ustack helper (Dave Pacheco)
|
||||
|
||||
* crypto: rewrite HexDecode without snprintf (Roman Shtylman)
|
||||
|
||||
* crypto: don't ignore DH init errors (Ben Noordhuis)
|
||||
|
||||
|
||||
2011.12.14, Version 0.6.6
|
||||
|
||||
* npm update to 1.1.0-beta-4 (Isaac Z. Schlueter)
|
||||
|
||||
* cli: fix output of --help (Ben Noordhuis)
|
||||
|
||||
* new website
|
||||
|
||||
* pause/resume semantics for stdin (Isaac Z. Schlueter)
|
||||
|
||||
* Travis CI integration (Maciej Małecki)
|
||||
|
||||
* child_process: Fix bug regarding closed stdin (Ben Noordhuis)
|
||||
|
||||
* Enable upgrades in MSI. (Igor Zinkovsky)
|
||||
|
||||
* net: Fixes memory leak (Ben Noordhuis)
|
||||
|
||||
* fs: handle fractional or NaN ReadStream buffer size (Ben Noordhuis)
|
||||
|
||||
* crypto: fix memory leaks in PBKDF2 error path (Ben Noordhuis)
|
||||
|
||||
|
||||
2011.12.04, Version 0.6.5 (stable), 6cc94db653a2739ab28e33b2d6a63c51bd986a9f
|
||||
|
||||
* npm workaround Windows antivirus software (isaacs)
|
||||
|
||||
* Upgrade V8 to 3.6.6.11
|
||||
|
||||
|
||||
2011.12.02, Version 0.6.4 (stable), 9170077f13e5e5475b23d1d3c2e7f69bfe139727
|
||||
|
||||
* doc improvements (Kyle Young, Tim Oxley, Roman Shtylman, Mathias Bynens)
|
||||
|
||||
* upgrade bundled npm (Isaac Schlueter)
|
||||
|
||||
* polish Windows installer (Igor Zinkovsky, Isaac Schlueter)
|
||||
|
||||
* punycode: upgrade to v0.2.1 (Mathias Bynens)
|
||||
|
||||
* build: add –without-npm flag to configure script
|
||||
|
||||
* sys: deprecate module some more, print stack trace if NODE_DEBUG=sys
|
||||
|
||||
* cli: add -p switch, prints result of –eval
|
||||
|
||||
* #1997: fix Blowfish ECB encryption and decryption (Ingmar Runge)
|
||||
|
||||
* #2223: fix socket ‘close’ event being emitted twice
|
||||
|
||||
* #2224: fix RSS memory usage > 4 GB reporting (Russ Bradberry)
|
||||
|
||||
* #2225: fix util.inspect() object stringification bug (Nathan Rajlich)
|
||||
|
||||
|
||||
2011.11.25, Version 0.6.3 (stable), b159c6d62e5756d3f8847419d29c6959ea288b56
|
||||
|
||||
* #2083 Land NPM in Node. It is included in packages/installers and installed
|
||||
on `make install`.
|
||||
|
||||
* #2076 Add logos to windows installer.
|
||||
|
||||
* #1711 Correctly handle http requests without headers. (Ben Noordhuis,
|
||||
Felix Geisendörfer)
|
||||
|
||||
* TLS: expose more openssl SSL context options and constants. (Ben Noordhuis)
|
||||
|
||||
* #2177 Windows: don't kill UDP socket when a packet fails to reach its
|
||||
destination. (Bert Belder)
|
||||
|
||||
* Windows: support paths longer than 260 characters. (Igor Zinkovsky)
|
||||
|
||||
* Windows: correctly resolve drive-relative paths. (Bert Belder)
|
||||
|
||||
* #2166 Don't leave file descriptor open after lchmod. (Isaac Schlueter)
|
||||
|
||||
* #2084 Add OS X .pkg build script to make file.
|
||||
|
||||
* #2160 Documentation improvements. (Ben Noordhuis)
|
||||
|
||||
|
||||
2011.11.18, Version 0.6.2 (stable), a4402f0b2e410b19375a1d5c5fb7fe7f66f3c7f8
|
||||
|
||||
* doc improvements (Artur Adib, Trevor Burnham, Ryan Emery, Trent Mick)
|
||||
|
||||
* timers: remember extra setTimeout() arguments when timeout==0
|
||||
|
||||
* punycode: use Mathias Bynens's punycode library, it's more compliant
|
||||
|
||||
* repl: improved tab completion (Ryan Emery)
|
||||
|
||||
* buffer: fix range checks in .writeInt() functions (Lukasz Walukiewicz)
|
||||
|
||||
* tls: make cipher list configurable
|
||||
|
||||
* addons: make Buffer and ObjectWrap visible to Windows add-ons (Bert Belder)
|
||||
|
||||
* crypto: add PKCS#1 a.k.a RSA public key verification support
|
||||
|
||||
* windows: fix stdout writes when redirected to nul
|
||||
|
||||
* sunos: fix build on Solaris and Illumos
|
||||
|
||||
* Upgrade V8 to 3.6.6.8
|
||||
|
||||
|
||||
2011.11.11, Version 0.6.1 (stable), 170f2addb2dd0c625bc4a6d461e89a31ad68b79b
|
||||
|
||||
* doc improvements (Eric Lovett, Ben Noordhuis, Scott Anderson, Yoji SHIDARA)
|
||||
|
||||
* crypto: make thread-safe (Ben Noordhuis)
|
||||
|
||||
* fix process.kill error object
|
||||
|
||||
* debugger: correctly handle source with multi-byte characters (Shigeki Ohtsu)
|
||||
|
||||
* make stdout and stderr non-destroyable (Igor Zinkovsky)
|
||||
|
||||
* fs: don't close uninitialized fs.watch handle (Ben Noordhuis)
|
||||
|
||||
* #2026 fix man page install on BSDs (Ben Noordhuis)
|
||||
|
||||
* #2040 fix unrecognized errno assert in uv_err_name
|
||||
|
||||
* #2043 fs: mkdir() should call callback if mode is omitted
|
||||
|
||||
* #2045 fs: fix fs.realpath on windows to return on error (Benjamin Pasero)
|
||||
|
||||
* #2047 minor cluster improvements
|
||||
|
||||
* #2052 readline get window columns correctly
|
||||
|
||||
* Upgrade V8 to 3.6.6.7
|
||||
|
||||
|
||||
2011.11.04, Version 0.6.0 (stable), 865b077819a9271a29f982faaef99dc635b57fbc
|
||||
|
||||
* print undefined on undefined values in REPL (Nathan Rajlich)
|
||||
|
||||
* doc improvements (koichik, seebees, bnoordhuis,
|
||||
Maciej Małecki, Jacob Kragh)
|
||||
|
||||
* support native addon loading in windows (Bert Belder)
|
||||
|
||||
* rename getNetworkInterfaces() to networkInterfaces() (bnoordhuis)
|
||||
|
||||
* add pending accepts knob for windows (igorzi)
|
||||
|
||||
* http.request(url.parse(x)) (seebees)
|
||||
|
||||
* #1929 zlib Respond to 'resume' events properly (isaacs)
|
||||
|
||||
* stream.pipe: Remove resume and pause events
|
||||
|
||||
* test fixes for windows (igorzi)
|
||||
|
||||
* build system improvements (bnoordhuis)
|
||||
|
||||
* #1936 tls: does not emit 'end' from EncryptedStream (koichik)
|
||||
|
||||
* #758 tls: add address(), remoteAddress/remotePort
|
||||
|
||||
* #1399 http: emit Error object after .abort() (bnoordhuis)
|
||||
|
||||
* #1999 fs: make mkdir() default to 0777 permissions (bnoordhuis)
|
||||
|
||||
* #2001 fix pipe error codes
|
||||
|
||||
* #2002 Socket.write should reset timeout timer
|
||||
|
||||
* stdout and stderr are blocking when associated with file too.
|
||||
|
||||
* remote debugger support on windows (Bert Belder)
|
||||
|
||||
* convenience methods for zlib (Matt Robenolt)
|
||||
|
||||
* process.kill support on windows (igorzi)
|
||||
|
||||
* process.uptime() support on windows (igorzi)
|
||||
|
||||
* Return IPv4 addresses before IPv6 addresses from getaddrinfo
|
||||
|
||||
* util.inspect improvements (Nathan Rajlich)
|
||||
|
||||
* cluster module api changes
|
||||
|
||||
* Downgrade V8 to 3.6.6.6
|
||||
|
||||
|
||||
2011.10.21, Version 0.5.10 (unstable), 220e61c1f65bf4db09699fcf6399c0809c0bc446
|
||||
|
||||
* Remove cmake build system, support for Cygwin, legacy code base,
|
||||
process.ENV, process.ARGV, process.memoryUsage().vsize, os.openOSHandle
|
||||
|
||||
* Documentation improvments (Igor Zinkovsky, Bert Belder, Ilya Dmitrichenko,
|
||||
koichik, Maciej Małecki, Guglielmo Ferri, isaacs)
|
||||
|
||||
* Performance improvements (Daniel Ennis, Bert Belder, Ben Noordhuis)
|
||||
|
||||
* Long process.title support (Ben Noordhuis)
|
||||
|
||||
* net: register net.Server callback only once (Simen Brekken)
|
||||
|
||||
* net: fix connect queue bugs (Ben Noordhuis)
|
||||
|
||||
* debugger: fix backtrace err handling (Fedor Indutny)
|
||||
|
||||
* Use getaddrinfo instead of c-ares for dns.lookup
|
||||
|
||||
* Emit 'end' from crypto streams on close
|
||||
|
||||
* #1902 buffer: use NO_NULL_TERMINATION flag (koichik)
|
||||
|
||||
* #1907 http: Added support for HTTP PATCH verb (Thomas Parslow)
|
||||
|
||||
* #1644 add GetCPUInfo on windows (Karl Skomski)
|
||||
|
||||
* #1484, #1834, #1482, #771 Don't use a separate context for the repl.
|
||||
(isaacs)
|
||||
|
||||
* #1882 zlib Update 'availOutBefore' value, and test (isaacs)
|
||||
|
||||
* #1888 child_process.fork: don't modify args (koichik)
|
||||
|
||||
* #1516 tls: requestCert unusable with Firefox and Chrome (koichik)
|
||||
|
||||
* #1467 tls: The TLS API is inconsistent with the TCP API (koichik)
|
||||
|
||||
* #1894 net: fix error handling in listen() (koichik)
|
||||
|
||||
* #1860 console.error now goes through uv_tty_t
|
||||
|
||||
* Upgrade V8 to 3.7.0
|
||||
|
||||
* Upgrade GYP to r1081
|
||||
|
||||
|
||||
2011.10.10, Version 0.5.9 (unstable)
|
||||
|
||||
* fs.watch interface backed by kqueue, inotify, and ReadDirectoryChangesW
|
||||
(Igor Zinkovsky, Ben Noordhuis)
|
||||
|
||||
* add dns.resolveTxt (Christian Tellnes)
|
||||
|
||||
* Remove legacy http library (Ben Noordhuis)
|
||||
|
||||
* child_process.fork returns and works on Windows. Allows passing handles.
|
||||
(Igor Zinkovsky, Bert Belder)
|
||||
|
||||
* #1774 Lint and clean up for --harmony_block_scoping (Tyler Larson, Colton
|
||||
Baker)
|
||||
|
||||
* #1813 Fix ctrl+c on Windows (Bert Belder)
|
||||
|
||||
* #1844 unbreak --use-legacy (Ben Noordhuis)
|
||||
|
||||
* process.stderr now goes through libuv. Both process.stdout and
|
||||
process.stderr are blocking when referencing a TTY.
|
||||
|
||||
* net_uv performance improvements (Ben Noordhuis, Bert Belder)
|
||||
|
||||
|
||||
2011.09.30, Version 0.5.8 (unstable), 7cc17a0cea1d25188c103745a7d0c24375e3a609
|
||||
|
||||
* zlib bindings (isaacs)
|
||||
|
||||
* Windows supports TTY ANSI escape codes (Bert Belder)
|
||||
|
||||
* Debugger improvements (Fedor Indutny)
|
||||
|
||||
* crypto: look up SSL errors with ERR_print_errors() (Ben Noordhuis)
|
||||
|
||||
* dns callbacks go through MakeCallback now
|
||||
|
||||
* Raise an error when a malformed package.json file is found. (Ben Leslie)
|
||||
|
||||
* buffers: handle bad length argument in constructor (Ben Noordhuis)
|
||||
|
||||
* #1726, unref process.stdout
|
||||
|
||||
* Doc improvements (Ben Noordhuis, Fedor Indutny, koichik)
|
||||
|
||||
* Upgrade libuv to fe18438
|
||||
|
||||
|
||||
2011.09.16, Version 0.5.7 (unstable), 558241166c4f3c516e5a448e676db0b57119212f
|
||||
|
||||
* Upgrade V8 to 3.6.4
|
||||
|
||||
@@ -166,7 +799,7 @@
|
||||
|
||||
* Fixes https host header default port handling. (Mikeal Rogers)
|
||||
|
||||
* #1440 strip byte order marker when loading *.js and *.json files
|
||||
* #1440 strip byte order marker when loading *.js and *.json files
|
||||
(Ben Noordhuis)
|
||||
|
||||
* #1434 Improve util.format() compatibility with browser. (Koichi Kobayashi)
|
||||
@@ -322,7 +955,30 @@
|
||||
* DTrace probes: support X-Forwarded-For (Dave Pacheco)
|
||||
|
||||
|
||||
2011.08.17, Version 0.4.11 (stable)
|
||||
2011.09.15, Version 0.4.12 (stable)
|
||||
|
||||
* Improve docs
|
||||
|
||||
* #1563 overflow in ChildProcess custom_fd.
|
||||
|
||||
* #1569, parse error on multi-line HTTP headers. (Ben Noordhuis)
|
||||
|
||||
* #1586 net: Socket write encoding case sensitivity (koichik)
|
||||
|
||||
* #1610 Remove DigiNotar CA from trusted list (isaacs)
|
||||
|
||||
* #1624 buffer: Avoid overrun with 'binary' encoding. (koichik)
|
||||
|
||||
* #1633 buffer: write() should always set _charsWritten. (koichik)
|
||||
|
||||
* #1707 hasOwnProperty usage security hole in querystring (isaacs)
|
||||
|
||||
* #1719 Drain OpenSSL error queue
|
||||
|
||||
* Fix error reporting in net.Server.listen
|
||||
|
||||
|
||||
2011.08.17, Version 0.4.11 (stable), a745d19ce7d1c0e3778371af4f0346be70cf2c8e
|
||||
|
||||
* #738 Fix crypto encryption/decryption with Base64. (SAWADA Tadashi)
|
||||
|
||||
@@ -354,9 +1010,9 @@
|
||||
|
||||
* #829 Backport r8577 from V8 (Ben Noordhuis)
|
||||
|
||||
* #877 Don't wait for HTTP Agent socket pool to establish connections.
|
||||
* #877 Don't wait for HTTP Agent socket pool to establish connections.
|
||||
|
||||
* #915 Find kqueue on FreeBSD correctly (Brett Kiefer)
|
||||
* #915 Find kqueue on FreeBSD correctly (Brett Kiefer)
|
||||
|
||||
* #1085 HTTP: Fix race in abort/dispatch code (Stefan Rusu)
|
||||
|
||||
@@ -753,7 +1409,7 @@
|
||||
|
||||
* HTTPS server
|
||||
|
||||
* Built in debugger 'node debug script.js'
|
||||
* Built in debugger 'node debug script.js'
|
||||
|
||||
* realpath files during module load (Mihai Călin Bazon)
|
||||
|
||||
@@ -895,7 +1551,7 @@
|
||||
|
||||
* fs bugfixes (Tj Holowaychuk, Tobie Langel, Marco Rogers, isaacs)
|
||||
|
||||
* http bug fixes (Fedor Indutny, Mikeal Rogers)
|
||||
* http bug fixes (Fedor Indutny, Mikeal Rogers)
|
||||
|
||||
* Faster buffers; breaks C++ API (Tim-Smart, Stéphan Kochen)
|
||||
|
||||
@@ -1064,7 +1720,7 @@
|
||||
* Upgrade http-parser, V8 to 2.2.21
|
||||
|
||||
|
||||
2010.06.21, Version 0.1.99, a620b7298f68f68a855306437a3b60b650d61d78
|
||||
2010.06.21, Version 0.1.99, a620b7298f68f68a855306437a3b60b650d61d78
|
||||
|
||||
* Datagram sockets (Paul Querna)
|
||||
|
||||
@@ -1170,7 +1826,7 @@
|
||||
|
||||
2010.05.06, Version 0.1.94, f711d5343b29d1e72e87107315708e40951a7826
|
||||
|
||||
* Look in /usr/local/lib/node for modules, so that there's a way
|
||||
* Look in /usr/local/lib/node for modules, so that there's a way
|
||||
to install modules globally (Issac Schlueter)
|
||||
|
||||
* SSL improvements (Rhys Jones, Paulo Matias)
|
||||
@@ -1190,7 +1846,7 @@
|
||||
* Bugfix: destroy() instead of end() http connection at end of
|
||||
pipeline
|
||||
|
||||
* Bugfix: http.Client may be prematurely released back to the
|
||||
* Bugfix: http.Client may be prematurely released back to the
|
||||
free pool. (Thomas Lee)
|
||||
|
||||
* Upgrade V8 to 2.2.8
|
||||
@@ -1199,7 +1855,7 @@
|
||||
2010.04.29, Version 0.1.93, 557ba6bd97bad3afe0f9bd3ac07efac0a39978c1
|
||||
|
||||
* Fixed no 'end' event on long chunked HTTP messages
|
||||
http://github.com/ry/node/issues/#issue/77
|
||||
https://github.com/joyent/node/issues/77
|
||||
|
||||
* Remove legacy modules http_old and tcp_old
|
||||
|
||||
|
||||
545
LICENSE
545
LICENSE
@@ -24,52 +24,529 @@ IN THE SOFTWARE.
|
||||
====
|
||||
|
||||
This license applies to all parts of Node that are not externally
|
||||
maintained libraries.
|
||||
maintained libraries. The externally maintained libraries used by Node are:
|
||||
|
||||
The externally maintained libraries used by Node are:
|
||||
- V8, located at deps/v8. V8's license follows:
|
||||
"""
|
||||
This license applies to all parts of V8 that are not externally
|
||||
maintained libraries. The externally maintained libraries used by V8
|
||||
are:
|
||||
|
||||
- v8, located at deps/v8. v8 is copyright Google, Inc, and released
|
||||
under a BSD license.
|
||||
- PCRE test suite, located in
|
||||
test/mjsunit/third_party/regexp-pcre.js. This is based on the
|
||||
test suite from PCRE-7.3, which is copyrighted by the University
|
||||
of Cambridge and Google, Inc. The copyright notice and license
|
||||
are embedded in regexp-pcre.js.
|
||||
|
||||
- libev, located at deps/libev, and libeio, located at deps/libeio. libev
|
||||
and libeio are copyright Marc Alexander Lehmann, and dual-licensed
|
||||
under the MIT license and GPL2.
|
||||
- Layout tests, located in test/mjsunit/third_party. These are
|
||||
based on layout tests from webkit.org which are copyrighted by
|
||||
Apple Computer, Inc. and released under a 3-clause BSD license.
|
||||
|
||||
- WAF build system, located at tools/waf. WAF is copyright Thomas Nagy,
|
||||
and released under the MIT license.
|
||||
- Strongtalk assembler, the basis of the files assembler-arm-inl.h,
|
||||
assembler-arm.cc, assembler-arm.h, assembler-ia32-inl.h,
|
||||
assembler-ia32.cc, assembler-ia32.h, assembler-x64-inl.h,
|
||||
assembler-x64.cc, assembler-x64.h, assembler-mips-inl.h,
|
||||
assembler-mips.cc, assembler-mips.h, assembler.cc and assembler.h.
|
||||
This code is copyrighted by Sun Microsystems Inc. and released
|
||||
under a 3-clause BSD license.
|
||||
|
||||
- The SCONS build system, located at tools/scons. SCONS is copyright
|
||||
the SCONS Foundation and released under the MIT license.
|
||||
- Valgrind client API header, located at third_party/valgrind/valgrind.h
|
||||
This is release under the BSD license.
|
||||
|
||||
- C-Ares, an asynchronous DNS client, located at deps/c-ares. C-Ares is
|
||||
copyright the Massachusetts Institute of Technology, authored by
|
||||
Greg Hudson, Daniel Stenberg and others, and released under the MIT
|
||||
license.
|
||||
These libraries have their own licenses; we recommend you read them,
|
||||
as their terms may differ from the terms below.
|
||||
|
||||
- Node, optionally, links to OpenSSL, it is located at deps/openssl.
|
||||
OpenSSL is cryptographic software written by Eric Young
|
||||
(eay@cryptsoft.com) to provide SSL/TLS encryption. OpenSSL is copyright
|
||||
The OpenSSL Project and released under the OpenSSL license.
|
||||
Copyright 2006-2012, the V8 project authors. All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
- tools/doctool/markdown.js is copyright 2009-2010 Dominic Baggott and Ash
|
||||
Berli and released under the MIT license.
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
- HTTP Parser, located at deps/http_parser, is a small C library
|
||||
copyright Ryan Lienhart Dahl and released under the MIT license.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- src/platform_darwin_proctitle.cc, has code taken from the Chromium
|
||||
project copyright Google Inc. and released under a BSD license.
|
||||
- libev, located at deps/uv/src/unix/ev. libev's license follows:
|
||||
"""
|
||||
All files in libev are Copyright (C)2007,2008,2009 Marc Alexander Lehmann.
|
||||
|
||||
- tools/closure_linter is copyright The Closure Linter Authors and
|
||||
Google Inc. and released under the Apache License, version 2.0.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
- tools/cpplint.py is copyright Google Inc. and released under a
|
||||
BSD license.
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
- lib/buffer_ieee754.js is copyright 2008 Fair Oaks Labs, Inc. and released
|
||||
under the New BSD license.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
|
||||
- lib/punycode.js is copyright 2011 Ben Noordhuis and released under the MIT license.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
- tools/gyp GYP is a meta-build system copyright 2009 Google Inc and
|
||||
licensed under the three clause BSD license. See tools/gyp/LICENSE.
|
||||
Alternatively, the contents of this package may be used under the terms
|
||||
of the GNU General Public License ("GPL") version 2 or any later version,
|
||||
in which case the provisions of the GPL are applicable instead of the
|
||||
above. If you wish to allow the use of your version of this package only
|
||||
under the terms of the GPL and not to allow others to use your version of
|
||||
this file under the BSD license, indicate your decision by deleting the
|
||||
provisions above and replace them with the notice and other provisions
|
||||
required by the GPL in this and the other files of this package. If you do
|
||||
not delete the provisions above, a recipient may use your version of this
|
||||
file under either the BSD or the GPL.
|
||||
"""
|
||||
|
||||
- libeio, located at deps/uv/src/unix/eio. libeio's license follows:
|
||||
"""
|
||||
All files in libeio are Copyright (C)2007,2008 Marc Alexander Lehmann.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Alternatively, the contents of this package may be used under the terms
|
||||
of the GNU General Public License ("GPL") version 2 or any later version,
|
||||
in which case the provisions of the GPL are applicable instead of the
|
||||
above. If you wish to allow the use of your version of this package only
|
||||
under the terms of the GPL and not to allow others to use your version of
|
||||
this file under the BSD license, indicate your decision by deleting the
|
||||
provisions above and replace them with the notice and other provisions
|
||||
required by the GPL in this and the other files of this package. If you do
|
||||
not delete the provisions above, a recipient may use your version of this
|
||||
file under either the BSD or the GPL.
|
||||
"""
|
||||
|
||||
- WAF build system, located at tools/waf*. WAF's license follows:
|
||||
"""
|
||||
Copyright Thomas Nagy, 2005-2011
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- C-Ares, an asynchronous DNS client, located at deps/uv/src/ares. C-Ares license
|
||||
follows
|
||||
"""
|
||||
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this
|
||||
* software and its documentation for any purpose and without
|
||||
* fee is hereby granted, provided that the above copyright
|
||||
* notice appear in all copies and that both that copyright
|
||||
* notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of M.I.T. not be used in
|
||||
* advertising or publicity pertaining to distribution of the
|
||||
* software without specific, written prior permission.
|
||||
* M.I.T. makes no representations about the suitability of
|
||||
* this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
"""
|
||||
|
||||
- OpenSSL located at deps/openssl. OpenSSL is cryptographic software written
|
||||
by Eric Young (eay@cryptsoft.com) to provide SSL/TLS encryption. OpenSSL's
|
||||
license follows
|
||||
"""
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* openssl-core@openssl.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
"""
|
||||
|
||||
- HTTP Parser, located at deps/http_parser. HTTP Parser's license follows:
|
||||
"""
|
||||
http_parser.c is based on src/http/ngx_http_parse.c from NGINX copyright
|
||||
Igor Sysoev.
|
||||
|
||||
Additional changes are licensed under the same terms as NGINX and
|
||||
copyright Joyent, Inc. and other Node contributors. All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to
|
||||
deal in the Software without restriction, including without limitation the
|
||||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
IN THE SOFTWARE.
|
||||
"""
|
||||
|
||||
- Closure Linter is located at tools/closure_linter. Closure's license
|
||||
follows
|
||||
"""
|
||||
# Copyright (c) 2007, Google Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above
|
||||
# copyright notice, this list of conditions and the following disclaimer
|
||||
# in the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Google Inc. nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- tools/cpplint.py is a C++ linter. Its license follows:
|
||||
"""
|
||||
# Copyright (c) 2009 Google Inc. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above
|
||||
# copyright notice, this list of conditions and the following disclaimer
|
||||
# in the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Google Inc. nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- lib/buffer_ieee754.js. Its license follows:
|
||||
"""
|
||||
// Copyright (c) 2008, Fair Oaks Labs, Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright notice,
|
||||
// this list of conditions and the following disclaimer.
|
||||
//
|
||||
// * Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// * Neither the name of Fair Oaks Labs, Inc. nor the names of its contributors
|
||||
// may be used to endorse or promote products derived from this software
|
||||
// without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
// POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- lib/punycode.js is copyright 2011 Mathias Bynens <http://mathiasbynens.be/>
|
||||
and released under the MIT license.
|
||||
"""
|
||||
* Punycode.js <http://mths.be/punycode>
|
||||
* Copyright 2011 Mathias Bynens <http://mathiasbynens.be/>
|
||||
* Available under MIT license <http://mths.be/mit>
|
||||
"""
|
||||
|
||||
- tools/gyp GYP is a meta-build system. GYP's license follows:
|
||||
"""
|
||||
Copyright (c) 2009 Google Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- Zlib at deps/zlib. zlib's license follows
|
||||
"""
|
||||
/* zlib.h -- interface of the 'zlib' general purpose compression library
|
||||
version 1.2.4, March 14th, 2010
|
||||
|
||||
Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
Jean-loup Gailly
|
||||
Mark Adler
|
||||
|
||||
*/
|
||||
"""
|
||||
|
||||
- npm is a package manager program located at deps/npm.
|
||||
npm's license follows:
|
||||
"""
|
||||
Copyright 2009-2012, Isaac Z. Schlueter (the "Original Author")
|
||||
All rights reserved.
|
||||
|
||||
MIT +no-false-attribs License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
Distributions of all or part of the Software intended to be used
|
||||
by the recipients as they would use the unmodified Software,
|
||||
containing modifications that substantially alter, remove, or
|
||||
disable functionality of the Software, outside of the documented
|
||||
configuration mechanisms provided by the Software, shall be
|
||||
modified such that the Original Author's bug reporting email
|
||||
addresses and urls are either replaced with the contact information
|
||||
of the parties responsible for the changes, or removed entirely.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Except where noted, this license applies to any and all software
|
||||
programs and associated documentation files created by the
|
||||
Original Author, when distributed with the Software.
|
||||
|
||||
"Node.js" and "node" trademark Joyent, Inc. npm is not officially
|
||||
part of the Node.js project, and is neither owned by nor
|
||||
officially affiliated with Joyent, Inc.
|
||||
|
||||
Packages published in the npm registry are not part of npm
|
||||
itself, are the sole property of their respective maintainers,
|
||||
and are not covered by this license.
|
||||
|
||||
"npm Logo" created by Mathias Pettersson and Brian Hammond,
|
||||
used with permission.
|
||||
|
||||
This program uses "node-uuid", Copyright (c) 2010 Robert Kieffer,
|
||||
according to the terms of the MIT license.
|
||||
|
||||
This program uses "request", Copyright (c) 2011 Mikeal Rogers,
|
||||
according to the terms of the Apache license.
|
||||
|
||||
This program uses "mkdirp", Copyright (c) 2010 James Halliday,
|
||||
according to the terms of the MIT/X11 license.
|
||||
"""
|
||||
|
||||
- tools/doc/node_modules/marked Marked is a Markdown parser. Marked's
|
||||
license follows
|
||||
"""
|
||||
Copyright (c) 2011-2012, Christopher Jeffrey (https://github.com/chjj/)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
"""
|
||||
|
||||
344
Makefile
344
Makefile
@@ -1,4 +1,5 @@
|
||||
WAF=python tools/waf-light
|
||||
PYTHON ?= python
|
||||
WAF = $(PYTHON) tools/waf-light
|
||||
|
||||
web_root = node@nodejs.org:~/web/nodejs.org/
|
||||
|
||||
@@ -12,7 +13,6 @@ export NODE_MAKE := $(MAKE)
|
||||
|
||||
all: program
|
||||
@-[ -f out/Release/node ] && ls -lh out/Release/node
|
||||
@-[ -f out/Debug/node ] && ls -lh out/Debug/node
|
||||
|
||||
all-progress:
|
||||
@$(WAF) -p build
|
||||
@@ -33,249 +33,69 @@ uninstall:
|
||||
@$(WAF) uninstall
|
||||
|
||||
test: all
|
||||
python tools/test.py --mode=release simple message
|
||||
$(PYTHON) tools/test.py --mode=release simple message
|
||||
|
||||
test-http1: all
|
||||
python tools/test.py --mode=release --use-http1 simple message
|
||||
$(PYTHON) tools/test.py --mode=release --use-http1 simple message
|
||||
|
||||
test-valgrind: all
|
||||
python tools/test.py --mode=release --valgrind simple message
|
||||
$(PYTHON) tools/test.py --mode=release --valgrind simple message
|
||||
|
||||
test-all: all
|
||||
python tools/test.py --mode=debug,release
|
||||
node_modules/weak:
|
||||
@if [ ! -f node ]; then make all; fi
|
||||
@if [ ! -d node_modules ]; then mkdir -p node_modules; fi
|
||||
./node deps/npm/bin/npm-cli.js install weak \
|
||||
--prefix="$(shell pwd)" --unsafe-perm # go ahead and run as root.
|
||||
|
||||
test-gc: all node_modules/weak
|
||||
$(PYTHON) tools/test.py --mode=release gc
|
||||
|
||||
test-all: all node_modules/weak
|
||||
$(PYTHON) tools/test.py --mode=debug,release
|
||||
make test-npm
|
||||
|
||||
test-all-http1: all
|
||||
python tools/test.py --mode=debug,release --use-http1
|
||||
$(PYTHON) tools/test.py --mode=debug,release --use-http1
|
||||
|
||||
test-all-valgrind: all
|
||||
python tools/test.py --mode=debug,release --valgrind
|
||||
$(PYTHON) tools/test.py --mode=debug,release --valgrind
|
||||
|
||||
test-release: all
|
||||
python tools/test.py --mode=release
|
||||
$(PYTHON) tools/test.py --mode=release
|
||||
|
||||
test-debug: all
|
||||
python tools/test.py --mode=debug
|
||||
$(PYTHON) tools/test.py --mode=debug
|
||||
|
||||
test-message: all
|
||||
python tools/test.py message
|
||||
$(PYTHON) tools/test.py message
|
||||
|
||||
test-simple: all
|
||||
python tools/test.py simple
|
||||
$(PYTHON) tools/test.py simple
|
||||
|
||||
test-pummel: all
|
||||
python tools/test.py pummel
|
||||
$(PYTHON) tools/test.py pummel
|
||||
|
||||
test-internet: all
|
||||
python tools/test.py internet
|
||||
$(PYTHON) tools/test.py internet
|
||||
|
||||
UVTEST += simple/test-assert
|
||||
UVTEST += simple/test-buffer
|
||||
UVTEST += simple/test-c-ares
|
||||
UVTEST += simple/test-chdir
|
||||
UVTEST += simple/test-delayed-require
|
||||
UVTEST += simple/test-dgram-pingpong
|
||||
UVTEST += simple/test-dgram-udp4
|
||||
UVTEST += simple/test-eio-race2
|
||||
UVTEST += simple/test-eio-race4
|
||||
UVTEST += simple/test-event-emitter-add-listeners
|
||||
UVTEST += simple/test-event-emitter-modify-in-emit
|
||||
UVTEST += simple/test-event-emitter-num-args
|
||||
UVTEST += simple/test-event-emitter-once
|
||||
UVTEST += simple/test-event-emitter-remove-all-listeners
|
||||
UVTEST += simple/test-event-emitter-remove-listeners
|
||||
UVTEST += simple/test-exception-handler
|
||||
UVTEST += simple/test-exception-handler2
|
||||
UVTEST += simple/test-exception-handler
|
||||
UVTEST += simple/test-executable-path
|
||||
UVTEST += simple/test-file-read-noexist
|
||||
UVTEST += simple/test-file-write-stream
|
||||
UVTEST += simple/test-fs-fsync
|
||||
UVTEST += simple/test-fs-open
|
||||
UVTEST += simple/test-fs-readfile-empty
|
||||
UVTEST += simple/test-fs-read-file-sync
|
||||
UVTEST += simple/test-fs-read-file-sync-hostname
|
||||
UVTEST += simple/test-fs-sir-writes-alot
|
||||
UVTEST += simple/test-fs-write
|
||||
UVTEST += simple/test-fs-write-buffer
|
||||
UVTEST += simple/test-fs-write-file
|
||||
UVTEST += simple/test-fs-write-file-buffer
|
||||
UVTEST += simple/test-fs-write-stream
|
||||
UVTEST += simple/test-fs-write-stream-end
|
||||
UVTEST += simple/test-fs-write-sync
|
||||
UVTEST += simple/test-global
|
||||
UVTEST += simple/test-http
|
||||
UVTEST += simple/test-http-1.0
|
||||
UVTEST += simple/test-http-abort-client
|
||||
UVTEST += simple/test-http-allow-req-after-204-res
|
||||
UVTEST += simple/test-http-blank-header
|
||||
UVTEST += simple/test-http-buffer-sanity
|
||||
UVTEST += simple/test-http-cat
|
||||
UVTEST += simple/test-http-chunked
|
||||
UVTEST += simple/test-http-client-abort
|
||||
UVTEST += simple/test-http-client-parse-error
|
||||
UVTEST += simple/test-http-client-race
|
||||
UVTEST += simple/test-http-client-race-2
|
||||
UVTEST += simple/test-http-client-upload
|
||||
UVTEST += simple/test-http-client-upload-buf
|
||||
UVTEST += simple/test-http-contentLength0
|
||||
UVTEST += simple/test-http-curl-chunk-problem
|
||||
UVTEST += simple/test-http-default-encoding
|
||||
UVTEST += simple/test-http-dns-fail
|
||||
UVTEST += simple/test-http-dns-error
|
||||
UVTEST += simple/test-http-eof-on-connect
|
||||
UVTEST += simple/test-http-exceptions
|
||||
UVTEST += simple/test-http-expect-continue
|
||||
UVTEST += simple/test-http-extra-response
|
||||
UVTEST += simple/test-http-head-request
|
||||
UVTEST += simple/test-http-head-response-has-no-body
|
||||
UVTEST += simple/test-http-keep-alive
|
||||
UVTEST += simple/test-http-keep-alive-close-on-header
|
||||
UVTEST += simple/test-http-malformed-request
|
||||
UVTEST += simple/test-http-many-keep-alive-connections
|
||||
UVTEST += simple/test-http-mutable-headers
|
||||
UVTEST += simple/test-http-parser
|
||||
UVTEST += simple/test-http-proxy
|
||||
UVTEST += simple/test-http-request-end
|
||||
UVTEST += simple/test-http-response-close
|
||||
UVTEST += simple/test-http-response-readable
|
||||
UVTEST += simple/test-http-unix-socket
|
||||
UVTEST += simple/test-http-server
|
||||
UVTEST += simple/test-http-server-multiheaders
|
||||
UVTEST += simple/test-http-set-cookies
|
||||
UVTEST += simple/test-http-set-timeout
|
||||
UVTEST += simple/test-http-set-trailers
|
||||
UVTEST += simple/test-http-upgrade-agent
|
||||
UVTEST += simple/test-http-upgrade-client
|
||||
UVTEST += simple/test-http-upgrade-client2
|
||||
UVTEST += simple/test-http-upgrade-server
|
||||
UVTEST += simple/test-http-upgrade-server2
|
||||
UVTEST += simple/test-http-wget
|
||||
UVTEST += simple/test-http-write-empty-string
|
||||
UVTEST += simple/test-http-wget
|
||||
UVTEST += simple/test-mkdir-rmdir
|
||||
UVTEST += simple/test-net-binary
|
||||
UVTEST += simple/test-net-pingpong
|
||||
UVTEST += simple/test-net-can-reset-timeout
|
||||
UVTEST += simple/test-net-connect-buffer
|
||||
UVTEST += simple/test-net-connect-timeout
|
||||
UVTEST += simple/test-net-create-connection
|
||||
UVTEST += simple/test-net-eaddrinuse
|
||||
UVTEST += simple/test-net-isip
|
||||
UVTEST += simple/test-net-keepalive
|
||||
UVTEST += simple/test-net-pingpong
|
||||
UVTEST += simple/test-net-reconnect
|
||||
UVTEST += simple/test-net-remote-address-port
|
||||
UVTEST += simple/test-net-server-bind
|
||||
UVTEST += simple/test-net-server-max-connections
|
||||
UVTEST += simple/test-net-server-try-ports
|
||||
UVTEST += simple/test-net-stream
|
||||
UVTEST += simple/test-net-socket-timeout
|
||||
UVTEST += simple/test-next-tick
|
||||
UVTEST += simple/test-next-tick-doesnt-hang
|
||||
UVTEST += simple/test-next-tick-errors
|
||||
UVTEST += simple/test-next-tick-ordering
|
||||
UVTEST += simple/test-next-tick-ordering2
|
||||
UVTEST += simple/test-next-tick-starvation
|
||||
UVTEST += simple/test-module-load-list
|
||||
UVTEST += simple/test-path
|
||||
UVTEST += simple/test-pipe-stream
|
||||
UVTEST += simple/test-pipe-file-to-http
|
||||
UVTEST += simple/test-process-env
|
||||
UVTEST += simple/test-pump-file2tcp
|
||||
UVTEST += simple/test-pump-file2tcp-noexist
|
||||
UVTEST += simple/test-punycode
|
||||
UVTEST += simple/test-querystring
|
||||
UVTEST += simple/test-readdir
|
||||
UVTEST += simple/test-readdouble
|
||||
UVTEST += simple/test-readfloat
|
||||
UVTEST += simple/test-readint
|
||||
UVTEST += simple/test-readuint
|
||||
UVTEST += simple/test-regress-GH-746
|
||||
UVTEST += simple/test-regress-GH-819
|
||||
UVTEST += simple/test-regress-GH-897
|
||||
UVTEST += simple/test-regress-GH-1531
|
||||
UVTEST += simple/test-regression-object-prototype
|
||||
UVTEST += simple/test-repl
|
||||
UVTEST += simple/test-require-cache
|
||||
UVTEST += simple/test-require-cache-without-stat
|
||||
UVTEST += simple/test-require-exceptions
|
||||
UVTEST += simple/test-require-resolve
|
||||
UVTEST += simple/test-script-context
|
||||
UVTEST += simple/test-script-new
|
||||
UVTEST += simple/test-script-static-context
|
||||
UVTEST += simple/test-script-static-new
|
||||
UVTEST += simple/test-script-static-this
|
||||
UVTEST += simple/test-script-this
|
||||
UVTEST += simple/test-stream-pipe-cleanup
|
||||
UVTEST += simple/test-stream-pipe-error-handling
|
||||
UVTEST += simple/test-stream-pipe-event
|
||||
UVTEST += simple/test-stream-pipe-multi
|
||||
UVTEST += simple/test-string-decoder
|
||||
UVTEST += simple/test-sys
|
||||
UVTEST += simple/test-tcp-wrap
|
||||
UVTEST += simple/test-tcp-wrap-connect
|
||||
UVTEST += simple/test-tcp-wrap-listen
|
||||
UVTEST += simple/test-timers-linked-list
|
||||
UVTEST += simple/test-tty-stdout-end
|
||||
UVTEST += simple/test-umask
|
||||
UVTEST += simple/test-url
|
||||
UVTEST += simple/test-utf8-scripts
|
||||
UVTEST += simple/test-vm-create-context-circular-reference
|
||||
UVTEST += simple/test-writedouble
|
||||
UVTEST += simple/test-writefloat
|
||||
UVTEST += simple/test-writeint
|
||||
UVTEST += simple/test-writeuint
|
||||
UVTEST += simple/test-zerolengthbufferbug
|
||||
UVTEST += pummel/test-http-client-reconnect-bug
|
||||
UVTEST += pummel/test-http-upload-timeout
|
||||
UVTEST += pummel/test-net-many-clients
|
||||
UVTEST += pummel/test-net-pause
|
||||
UVTEST += pummel/test-net-pingpong-delay
|
||||
UVTEST += pummel/test-net-timeout
|
||||
UVTEST += pummel/test-timers
|
||||
UVTEST += pummel/test-timer-wrap
|
||||
UVTEST += pummel/test-timer-wrap2
|
||||
UVTEST += pummel/test-vm-memleak
|
||||
UVTEST += internet/test-dns
|
||||
UVTEST += simple/test-tls-client-abort
|
||||
UVTEST += simple/test-tls-client-verify
|
||||
UVTEST += simple/test-tls-connect
|
||||
#UVTEST += simple/test-tls-ext-key-usage # broken
|
||||
UVTEST += simple/test-tls-junk-closes-server
|
||||
UVTEST += simple/test-tls-npn-server-client
|
||||
UVTEST += simple/test-tls-request-timeout
|
||||
#UVTEST += simple/test-tls-securepair-client # broken
|
||||
UVTEST += simple/test-tls-securepair-server
|
||||
#UVTEST += simple/test-tls-server-verify # broken
|
||||
UVTEST += simple/test-tls-set-encoding
|
||||
|
||||
# child_process
|
||||
UVTEST += simple/test-child-process-exit-code
|
||||
UVTEST += simple/test-child-process-buffering
|
||||
UVTEST += simple/test-child-process-exec-cwd
|
||||
UVTEST += simple/test-child-process-cwd
|
||||
UVTEST += simple/test-child-process-env
|
||||
UVTEST += simple/test-child-process-stdin
|
||||
UVTEST += simple/test-child-process-ipc
|
||||
UVTEST += simple/test-child-process-deprecated-api
|
||||
|
||||
|
||||
test-uv: all
|
||||
NODE_USE_UV=1 python tools/test.py --libuv simple
|
||||
|
||||
test-uv-debug: all
|
||||
NODE_USE_UV=1 python tools/test.py --mode=debug simple
|
||||
test-npm: all
|
||||
./node deps/npm/test/run.js
|
||||
|
||||
test-npm-publish: all
|
||||
npm_package_config_publishtest=true ./node deps/npm/test/run.js
|
||||
|
||||
out/Release/node: all
|
||||
|
||||
apidoc_sources = $(wildcard doc/api/*.markdown)
|
||||
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html))
|
||||
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html)) \
|
||||
$(addprefix out/,$(apidoc_sources:.markdown=.json))
|
||||
|
||||
apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets
|
||||
apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets out/doc/about out/doc/community out/doc/logos out/doc/images
|
||||
|
||||
apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/*)))
|
||||
|
||||
doc_images = $(addprefix out/,$(wildcard doc/images/* doc/*.jpg doc/*.png))
|
||||
|
||||
website_files = \
|
||||
out/doc/index.html \
|
||||
out/doc/v0.4_announcement.html \
|
||||
@@ -283,12 +103,16 @@ website_files = \
|
||||
out/doc/sh_main.js \
|
||||
out/doc/sh_javascript.min.js \
|
||||
out/doc/sh_vim-dark.css \
|
||||
out/doc/logo.png \
|
||||
out/doc/sponsored.png \
|
||||
out/doc/favicon.ico \
|
||||
out/doc/pipe.css
|
||||
out/doc/sh.css \
|
||||
out/doc/favicon.ico \
|
||||
out/doc/pipe.css \
|
||||
out/doc/about/index.html \
|
||||
out/doc/community/index.html \
|
||||
out/doc/logos/index.html \
|
||||
out/doc/changelog.html \
|
||||
$(doc_images)
|
||||
|
||||
doc: out/Release/node $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs)
|
||||
doc: program $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/
|
||||
|
||||
$(apidoc_dirs):
|
||||
mkdir -p $@
|
||||
@@ -296,16 +120,37 @@ $(apidoc_dirs):
|
||||
out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets/
|
||||
cp $< $@
|
||||
|
||||
out/doc/changelog.html: ChangeLog doc/changelog-head.html doc/changelog-foot.html tools/build-changelog.sh
|
||||
bash tools/build-changelog.sh
|
||||
|
||||
out/doc/%.html: doc/%.html
|
||||
cat $< | sed -e 's|__VERSION__|'$(VERSION)'|g' > $@
|
||||
|
||||
out/doc/%: doc/%
|
||||
cp $< $@
|
||||
cp -r $< $@
|
||||
|
||||
out/doc/api/%.html: doc/api/%.markdown out/Release/node $(apidoc_dirs) $(apiassets) tools/doctool/doctool.js
|
||||
out/Release/node tools/doctool/doctool.js doc/template.html $< > $@
|
||||
out/doc/api/%.json: doc/api/%.markdown
|
||||
out/Release/node tools/doc/generate.js --format=json $< > $@
|
||||
|
||||
out/doc/%:
|
||||
out/doc/api/%.html: doc/api/%.markdown
|
||||
out/Release/node tools/doc/generate.js --format=html --template=doc/template.html $< > $@
|
||||
|
||||
email.md: ChangeLog tools/email-footer.md
|
||||
bash tools/changelog-head.sh | sed 's|^\* #|* \\#|g' > $@
|
||||
cat tools/email-footer.md | sed -e 's|__VERSION__|'$(VERSION)'|g' >> $@
|
||||
|
||||
blog.html: email.md
|
||||
cat $< | ./node tools/doc/node_modules/.bin/marked > $@
|
||||
|
||||
website-upload: doc
|
||||
scp -r out/doc/* $(web_root)
|
||||
rsync -r out/doc/ node@nodejs.org:~/web/nodejs.org/
|
||||
ssh node@nodejs.org '\
|
||||
rm -f ~/web/nodejs.org/dist/latest &&\
|
||||
ln -s $(VERSION) ~/web/nodejs.org/dist/latest &&\
|
||||
rm -f ~/web/nodejs.org/docs/latest &&\
|
||||
ln -s $(VERSION) ~/web/nodejs.org/docs/latest &&\
|
||||
rm -f ~/web/nodejs.org/dist/node-latest.tar.gz &&\
|
||||
ln -s $(VERSION)/node-$(VERSION).tar.gz ~/web/nodejs.org/dist/node-latest.tar.gz'
|
||||
|
||||
docopen: out/doc/api/all.html
|
||||
-google-chrome out/doc/api/all.html
|
||||
@@ -316,29 +161,68 @@ docclean:
|
||||
clean:
|
||||
$(WAF) clean
|
||||
-find tools -name "*.pyc" | xargs rm -f
|
||||
-rm -rf blog.html email.md
|
||||
-rm -rf node_modules
|
||||
|
||||
distclean: docclean
|
||||
-find tools -name "*.pyc" | xargs rm -f
|
||||
-rm -rf dist-osx
|
||||
-rm -rf out/ node node_g
|
||||
-rm -rf blog.html email.md
|
||||
|
||||
check:
|
||||
@tools/waf-light check
|
||||
|
||||
VERSION=$(shell git describe)
|
||||
VERSION=v$(shell $(PYTHON) tools/getnodeversion.py)
|
||||
TARNAME=node-$(VERSION)
|
||||
TARBALL=$(TARNAME).tar.gz
|
||||
PKG=out/$(TARNAME).pkg
|
||||
|
||||
packagemaker=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
|
||||
|
||||
#dist: doc/node.1 doc/api
|
||||
dist: doc
|
||||
dist: $(TARBALL) $(PKG)
|
||||
|
||||
PKGDIR=out/dist-osx
|
||||
|
||||
pkg: $(PKG)
|
||||
|
||||
$(PKG):
|
||||
-rm -rf $(PKGDIR)
|
||||
# Need to remove deps between architecture changes.
|
||||
rm -rf out/*/deps
|
||||
$(WAF) configure --prefix=/usr/local --without-snapshot --dest-cpu=ia32
|
||||
CFLAGS=-m32 DESTDIR=$(PKGDIR)/32 $(WAF) install
|
||||
rm -rf out/*/deps
|
||||
$(WAF) configure --prefix=/usr/local --without-snapshot --dest-cpu=x64
|
||||
CFLAGS=-m64 DESTDIR=$(PKGDIR) $(WAF) install
|
||||
lipo $(PKGDIR)/32/usr/local/bin/node \
|
||||
$(PKGDIR)/usr/local/bin/node \
|
||||
-output $(PKGDIR)/usr/local/bin/node-universal \
|
||||
-create
|
||||
mv $(PKGDIR)/usr/local/bin/node-universal $(PKGDIR)/usr/local/bin/node
|
||||
rm -rf $(PKGDIR)/32
|
||||
$(packagemaker) \
|
||||
--id "org.nodejs.NodeJS-$(VERSION)" \
|
||||
--doc tools/osx-pkg.pmdoc \
|
||||
--out $(PKG)
|
||||
|
||||
$(TARBALL): out/doc
|
||||
git archive --format=tar --prefix=$(TARNAME)/ HEAD | tar xf -
|
||||
mkdir -p $(TARNAME)/doc
|
||||
cp doc/node.1 $(TARNAME)/doc/node.1
|
||||
cp -r out/doc/api $(TARNAME)/doc/api
|
||||
rm -rf $(TARNAME)/deps/v8/test # too big
|
||||
rm -rf $(TARNAME)/doc/logos # too big
|
||||
rm -rf $(TARNAME)/doc/images # too big
|
||||
tar -cf $(TARNAME).tar $(TARNAME)
|
||||
rm -rf $(TARNAME)
|
||||
gzip -f -9 $(TARNAME).tar
|
||||
|
||||
dist-upload: $(TARBALL) $(PKG)
|
||||
ssh node@nodejs.org mkdir -p web/nodejs.org/dist/$(VERSION)
|
||||
scp $(TARBALL) node@nodejs.org:~/web/nodejs.org/dist/$(VERSION)/$(TARBALL)
|
||||
scp $(PKG) node@nodejs.org:~/web/nodejs.org/dist/$(VERSION)/$(TARNAME).pkg
|
||||
|
||||
bench:
|
||||
benchmark/http_simple_bench.sh
|
||||
|
||||
@@ -348,11 +232,11 @@ bench-idle:
|
||||
./node benchmark/idle_clients.js &
|
||||
|
||||
jslint:
|
||||
PYTHONPATH=tools/closure_linter/ python tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ -r test/
|
||||
PYTHONPATH=tools/closure_linter/ $(PYTHON) tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ -r test/ --exclude_files lib/punycode.js
|
||||
|
||||
cpplint:
|
||||
@python tools/cpplint.py $(wildcard src/*.cc src/*.h src/*.c)
|
||||
@$(PYTHON) tools/cpplint.py $(wildcard src/*.cc src/*.h src/*.c)
|
||||
|
||||
lint: jslint cpplint
|
||||
|
||||
.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean check uninstall install all program staticlib dynamiclib test test-all website-upload
|
||||
.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean dist-upload check uninstall install all program staticlib dynamiclib test test-all website-upload
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
BUILD?=build
|
||||
VERBOSE?=0
|
||||
PARALLEL_JOBS?=1
|
||||
CMAKE?=cmake
|
||||
TOOLCHAIN_FILE=#./cmake/codesourcery-arm-toolchain.cmake
|
||||
|
||||
all: package
|
||||
|
||||
$(BUILD)/Makefile:
|
||||
mkdir $(BUILD) || exit 0
|
||||
cd $(BUILD) && $(CMAKE) -DCMAKE_VERBOSE_MAKEFILE=$(VERBOSE) -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE) ..
|
||||
|
||||
build: $(BUILD)/Makefile
|
||||
cd $(BUILD) && make -j $(PARALLEL_JOBS)
|
||||
|
||||
install: build
|
||||
cd $(BUILD) && sudo make install
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD)
|
||||
|
||||
doc: $(BUILD)/Makefile
|
||||
cd $(BUILD) && make doc
|
||||
|
||||
package: $(BUILD)/Makefile
|
||||
cd $(BUILD) && make package
|
||||
|
||||
test: $(BUILD)/Makefile
|
||||
cd $(BUILD) && make test
|
||||
|
||||
cdash: $(BUILD)/Makefile
|
||||
cd $(BUILD) && make Experimental
|
||||
|
||||
cdash-cov: $(BUILD)/Makefile
|
||||
cd $(BUILD) && $(CMAKE) -DUSE_GCOV=True .. && make Experimental
|
||||
|
||||
cdash-mem: $(BUILD)/Makefile
|
||||
cd $(BUILD) && make NightlyMemoryCheck
|
||||
|
||||
.PHONY: build install clean doc package test cdash cdash-cov cdash-mem
|
||||
77
README.cmake
77
README.cmake
@@ -1,77 +0,0 @@
|
||||
Instructions for building with cmake
|
||||
|
||||
Make sure you have cmake:
|
||||
Ubuntu/Debian: sudo apt-get install cmake
|
||||
Mac: http://www.cmake.org/files/v2.8/cmake-2.8.3-Darwin-universal.dmg
|
||||
Other platforms: http://www.cmake.org/cmake/resources/software.html
|
||||
|
||||
To build:
|
||||
|
||||
make -f Makefile.cmake
|
||||
make -f Makefile.cmake install
|
||||
|
||||
To run the tests:
|
||||
|
||||
make -f Makefile.cmake test
|
||||
|
||||
To build the documentation:
|
||||
|
||||
make -f Makefile.cmake doc
|
||||
|
||||
To read the documentation:
|
||||
|
||||
man doc/node.1
|
||||
|
||||
To build distro packages (tgz, deb, rpm, PackageMaker):
|
||||
|
||||
make -f Makefile.cmake package
|
||||
|
||||
To submit test results (see http://my.cdash.org/index.php?project=node):
|
||||
|
||||
make -f Makefile.cmake cdash
|
||||
|
||||
To submit coverage test results:
|
||||
|
||||
make -f Makefile.cmake cdash-cov
|
||||
|
||||
To submit valgrind test results:
|
||||
|
||||
make -f Makefile.cmake cdash-mem
|
||||
|
||||
Cross-compiling:
|
||||
An example toolchain file for the CodeSourcery ARM toolchain is included in
|
||||
the cmake directory: codesourcery-arm-toolchain.cmake.
|
||||
|
||||
Install the CodeSourcery toolchain, set the path to the toolchain in
|
||||
cmake/codesourcery-arm-toolchain.cmake, and uncomment the TOOLCHAIN_FILE
|
||||
variable in Makefile.cmake to use it.
|
||||
|
||||
If you are using cmake directly, just add the flag
|
||||
"-DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain-file" when
|
||||
running cmake.
|
||||
|
||||
Using cmake directly:
|
||||
cd ~/your-node-source-dir
|
||||
mkdir name-of-build-dir (can be anything)
|
||||
cd name-of-build-dir
|
||||
cmake ..
|
||||
|
||||
At this point you have generated a set of Makefiles and can use the standard
|
||||
make commands (make, make install, etc.). The Makefile.cmake file is just a
|
||||
wrapper around these commands; take a look at it for more details.
|
||||
|
||||
Other build targets:
|
||||
make Experimental
|
||||
make Nightly
|
||||
make NightlyMemoryCheck
|
||||
make Continuous
|
||||
|
||||
Additional options:
|
||||
In the CMakeLists.txt, you'll see things like
|
||||
option(SHARED_V8, ...). If you want to enable any of those options you can
|
||||
pass "-DOPTION=True" when running cmake (e.g., cmake -DSHARED_V8=True).
|
||||
|
||||
See http://nodejs.org/ for more information. For help and discussion
|
||||
subscribe to the mailing list by visiting
|
||||
http://groups.google.com/group/nodejs or by sending an email to
|
||||
nodejs+subscribe@googlegroups.com.
|
||||
16
README.md
16
README.md
@@ -1,9 +1,9 @@
|
||||
Evented I/O for V8 javascript.
|
||||
Evented I/O for V8 javascript. [](http://travis-ci.org/joyent/node)
|
||||
===
|
||||
|
||||
### To build:
|
||||
|
||||
Unix/Macintosh (requires python >= 2.5.2):
|
||||
Unix/Macintosh (requires python 2.6 or 2.7):
|
||||
|
||||
./configure
|
||||
make
|
||||
@@ -33,14 +33,14 @@ Windows:
|
||||
|
||||
Resources for Newcomers
|
||||
---
|
||||
- [The Wiki](https://github.com/ry/node/wiki)
|
||||
- [The Wiki](https://github.com/joyent/node/wiki)
|
||||
- [nodejs.org](http://nodejs.org/)
|
||||
- [how to install node.js and npm (node package manager)](http://joyeur.com/2010/12/10/installing-node-and-npm/)
|
||||
- [list of modules](https://github.com/ry/node/wiki/modules)
|
||||
- [list of modules](https://github.com/joyent/node/wiki/modules)
|
||||
- [searching the npm registry](http://search.npmjs.org/)
|
||||
- [list of companies and projects using node](http://github.com/ry/node/wiki)
|
||||
- [list of companies and projects using node](https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node)
|
||||
- [node.js mailing list](http://groups.google.com/group/nodejs)
|
||||
- irc chatroom, [#node.js on freenode.net](http://webchat.freenode.net?channels=node.js&uio=d4)
|
||||
- [community](https://github.com/ry/node/wiki/Community)
|
||||
- [contributing](https://github.com/ry/node/wiki/Contributing)
|
||||
- [big list of all the helpful wiki pages](https://github.com/ry/node/wiki/_pages)
|
||||
- [community](https://github.com/joyent/node/wiki/Community)
|
||||
- [contributing](https://github.com/joyent/node/wiki/Contributing)
|
||||
- [big list of all the helpful wiki pages](https://github.com/joyent/node/wiki/_pages)
|
||||
|
||||
33
TODO
33
TODO
@@ -1,33 +0,0 @@
|
||||
- fix tests for NODE_MODULE_CONTEXTS=1
|
||||
- readline
|
||||
- fix for two column glyphs. use Markus Kuhn's wcwidth.c
|
||||
- fix for commands that extend beyond term width
|
||||
- Erradicate all traces of 'binary' encoding. Only used, now, in OpenSSL
|
||||
binding.
|
||||
- EventSource branch merged
|
||||
- Use C++ style casts everywhere.
|
||||
- Ruby-like Process#detach (is that possible?)
|
||||
- stderr isn't flushing on exit
|
||||
- ReadStream should not use an offset in calls to fs.read
|
||||
(so that it can pull in files larger than 2G)
|
||||
- process object should be defined in src/node.js not in c++
|
||||
- Test for EMFILE accept spin bug.
|
||||
- Deprecate setEncoding() and instead add option to on('data').
|
||||
Example:
|
||||
|
||||
stdin.on('data', { encoding: 'utf8' }, function (chunk) {
|
||||
process.stdout.write('WRITE: ' + chunk);
|
||||
});
|
||||
|
||||
Perhaps by assigning cb.opts.encoding and calling
|
||||
EventEmitter.optHandlers.encoding() if it exists.
|
||||
|
||||
- DOCS
|
||||
- anchor links next to each function, for easy linking.
|
||||
EG <a href="#fs.stat">#</a>
|
||||
|
||||
- "node --raw-js script.js" should bipass all Node code and load a raw V8
|
||||
interpreter
|
||||
- Use http_parser_execute2() in node_http_parser.cc and make req.pause()
|
||||
work correctly
|
||||
https://github.com/ry/http-parser/blob/c95a5479596e95b7cdd88ca9d7b32fd3afb4379c/http_parser.h#L266
|
||||
88
TODO.win32
88
TODO.win32
@@ -1,88 +0,0 @@
|
||||
- Implement setenv / unsetenv
|
||||
|
||||
- Implement other stuff missing in node.cc/process
|
||||
Like getuid, getgid, setgid, kill etc.
|
||||
|
||||
- Better `net` support
|
||||
* getaddrinfo
|
||||
* setMulticastTTL, setMembership, setLoopback
|
||||
* pipe, socketpair
|
||||
* A named pipe should be provided when a unix socket is requested.
|
||||
* SendMsg and RecvMsg should be supported with named pipes.
|
||||
|
||||
- New libev backend
|
||||
The current libev backend supports sockets only. This complicates stuff like
|
||||
child processes, stdio. Best would be if node_net switched from exposing
|
||||
readyness notifications to using completion notifications, so on windows we
|
||||
could use IOCP for sockets. Experts tell me that is really the fastest way
|
||||
to work with sockets on windows.
|
||||
|
||||
- Child process issues
|
||||
* Communication between parent and child is slow; it uses a socketpair
|
||||
where a pipe would be much faster. Replace it by a pipe when there
|
||||
is a libev backend that supports waiting for a pipe.
|
||||
* When a child process spawns the pid is not available straightaway.
|
||||
On linux the pid is available immediately because fork() doesn't
|
||||
block; on windows a libeio thread is used to call CreateProcess.
|
||||
So this can't really be fixed, but it could be worked around by adding a
|
||||
'spawn' or 'pid' event.
|
||||
* passing socket custom_fds is not supported
|
||||
* child_process.exec() only works on systems with msys installed.
|
||||
It's because it relies on the 'sh' shell. The default windows shell
|
||||
is 'cmd' and it works a little differently. Maybe add an option to
|
||||
specify the shell to exec()?
|
||||
|
||||
- Make colorful util.inspect work on windows.
|
||||
|
||||
- Stdio: support passing sockets between master/child process
|
||||
Normal windows applications wouldn't like this, but it can be useful for
|
||||
communication between node processes. This requires
|
||||
stdio.isStdinBlocking/isStdoutBlocking to be smarter.
|
||||
|
||||
- Skip/fix tests that can never pass on windows
|
||||
|
||||
- Find a solution for fs.symlink / fs.lstat / fs.chown
|
||||
Windows has different symlink types: file symlinks (vista+),
|
||||
directory symlinks (vista+), junction points (xp+)
|
||||
|
||||
- Handle _open_osfhandle failures
|
||||
E.g. currently we're using the construct _open_osfhandle(socket/open/accept(...)).
|
||||
Now socket() can fail by itself and _open_osfhandle can fail by itself too.
|
||||
If socket() fails it returns -1 so _open_osfhandle fails as well, but and we'll always return/throw EBADF.
|
||||
If _open_osfhandle fails but socket doesn't, a stray handle is left open. It should be fixed.
|
||||
|
||||
- Think about `make install`
|
||||
|
||||
- Extensions
|
||||
Should be DLLs on windows.
|
||||
|
||||
- Link pthreads-w32 statically by default
|
||||
|
||||
- Link Mingw libraries statically by default
|
||||
Like libstdc++.dll, more maybe.
|
||||
Microsoft libs are always there, no static linkage required (e.g. msvcrt, winsock2).
|
||||
|
||||
- Make (open?)SSL work
|
||||
|
||||
- Support using shared libs (libeio, v8, c-ares)
|
||||
Need to link with with a stub library. Libraries should use `dllexport`,
|
||||
headers must have `dllimport`.
|
||||
|
||||
- V8: push MINGW32 build fixes upstream
|
||||
|
||||
- Work around missing pread/pwrite more elegantly
|
||||
Currently it's exported from libeio, while it wasn't intended to be exported.
|
||||
The libeio workaround implementation sucks, it uses a global mutex.
|
||||
It should be possible to implement pread and pwrite using winapi's ReadFile/Writefile
|
||||
directly, passing an OVERLAPPED structure while not associating with an completion port.
|
||||
|
||||
- Work around missing inet_pton/inet_ntop more elegantly
|
||||
Currently it's exported from from c-ares, while it wasn't intended to be exported.
|
||||
It prevents linking c-ares dynamically.
|
||||
|
||||
- See what libev/libeio changes can be pushed upstream
|
||||
|
||||
- 64-bit build
|
||||
Should be possible with MinGW-w64, it's pretty good.
|
||||
|
||||
- ... much more probably
|
||||
@@ -11,26 +11,6 @@ for (var i = 0; i < 20*1024; i++) {
|
||||
fixed += "C";
|
||||
}
|
||||
|
||||
var uname, rev;
|
||||
|
||||
exec('git rev-list -1 HEAD', function (e, stdout) {
|
||||
if (e) {
|
||||
console.error("Problem executing: 'git rev-list -1 HEAD'");
|
||||
throw new Error(e);
|
||||
}
|
||||
rev = stdout.replace(/\s/g, '');
|
||||
});
|
||||
|
||||
exec('uname -a', function (e, stdout) {
|
||||
if (e) {
|
||||
console.error("Problem executing: 'uname -a'");
|
||||
throw new Error(e);
|
||||
}
|
||||
uname = stdout.replace(/[\r\n]/g, '');
|
||||
});
|
||||
|
||||
|
||||
|
||||
stored = {};
|
||||
storedBuffer = {};
|
||||
|
||||
@@ -74,8 +54,11 @@ var server = http.createServer(function (req, res) {
|
||||
} else if (command == "fixed") {
|
||||
body = fixed;
|
||||
|
||||
} else if (command == "info") {
|
||||
body = 'rev=' + rev + '\nuname="' + uname + '"\n';
|
||||
} else if (command == "echo") {
|
||||
res.writeHead(200, { "Content-Type": "text/plain",
|
||||
"Transfer-Encoding": "chunked" });
|
||||
req.pipe(res);
|
||||
return;
|
||||
|
||||
} else {
|
||||
status = 404;
|
||||
@@ -110,3 +93,6 @@ server.listen(port, function () {
|
||||
console.log('Listening at http://127.0.0.1:'+port+'/');
|
||||
});
|
||||
|
||||
process.on('exit', function() {
|
||||
console.error('libuv counters', process.uvCounters());
|
||||
});
|
||||
|
||||
109
benchmark/http_simple_auto.js
Normal file
109
benchmark/http_simple_auto.js
Normal file
@@ -0,0 +1,109 @@
|
||||
//
|
||||
// Usage:
|
||||
// node benchmark/http_simple_auto.js <args> <target>
|
||||
//
|
||||
// Where:
|
||||
// <args> Arguments to pass to `ab`.
|
||||
// <target> Target to benchmark, e.g. `bytes/1024` or `buffer/8192`.
|
||||
//
|
||||
|
||||
var path = require("path");
|
||||
var http = require("http");
|
||||
var spawn = require("child_process").spawn;
|
||||
|
||||
var port = parseInt(process.env.PORT || 8000);
|
||||
|
||||
var fixed = ""
|
||||
for (var i = 0; i < 20*1024; i++) {
|
||||
fixed += "C";
|
||||
}
|
||||
|
||||
var stored = {};
|
||||
var storedBuffer = {};
|
||||
|
||||
var server = http.createServer(function (req, res) {
|
||||
var commands = req.url.split("/");
|
||||
var command = commands[1];
|
||||
var body = "";
|
||||
var arg = commands[2];
|
||||
var n_chunks = parseInt(commands[3], 10);
|
||||
var status = 200;
|
||||
|
||||
if (command == "bytes") {
|
||||
var n = parseInt(arg, 10)
|
||||
if (n <= 0)
|
||||
throw "bytes called with n <= 0"
|
||||
if (stored[n] === undefined) {
|
||||
stored[n] = "";
|
||||
for (var i = 0; i < n; i++) {
|
||||
stored[n] += "C"
|
||||
}
|
||||
}
|
||||
body = stored[n];
|
||||
|
||||
} else if (command == "buffer") {
|
||||
var n = parseInt(arg, 10)
|
||||
if (n <= 0) throw new Error("bytes called with n <= 0");
|
||||
if (storedBuffer[n] === undefined) {
|
||||
storedBuffer[n] = new Buffer(n);
|
||||
for (var i = 0; i < n; i++) {
|
||||
storedBuffer[n][i] = "C".charCodeAt(0);
|
||||
}
|
||||
}
|
||||
body = storedBuffer[n];
|
||||
|
||||
} else if (command == "quit") {
|
||||
res.connection.server.close();
|
||||
body = "quitting";
|
||||
|
||||
} else if (command == "fixed") {
|
||||
body = fixed;
|
||||
|
||||
} else if (command == "echo") {
|
||||
res.writeHead(200, { "Content-Type": "text/plain",
|
||||
"Transfer-Encoding": "chunked" });
|
||||
req.pipe(res);
|
||||
return;
|
||||
|
||||
} else {
|
||||
status = 404;
|
||||
body = "not found\n";
|
||||
}
|
||||
|
||||
// example: http://localhost:port/bytes/512/4
|
||||
// sends a 512 byte body in 4 chunks of 128 bytes
|
||||
if (n_chunks > 0) {
|
||||
res.writeHead(status, { "Content-Type": "text/plain",
|
||||
"Transfer-Encoding": "chunked" });
|
||||
// send body in chunks
|
||||
var len = body.length;
|
||||
var step = ~~(len / n_chunks) || len;
|
||||
|
||||
for (var i = 0; i < len; i += step) {
|
||||
res.write(body.slice(i, i + step));
|
||||
}
|
||||
|
||||
res.end();
|
||||
} else {
|
||||
var content_length = body.length.toString();
|
||||
|
||||
res.writeHead(status, { "Content-Type": "text/plain",
|
||||
"Content-Length": content_length });
|
||||
res.end(body);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
server.listen(port, function () {
|
||||
var url = 'http://127.0.0.1:' + port + '/';
|
||||
|
||||
var n = process.argv.length - 1;
|
||||
process.argv[n] = url + process.argv[n];
|
||||
|
||||
var cp = spawn('ab', process.argv.slice(2));
|
||||
cp.stdout.pipe(process.stdout);
|
||||
cp.stderr.pipe(process.stderr);
|
||||
cp.on('exit', function() {
|
||||
server.close();
|
||||
});
|
||||
});
|
||||
9
benchmark/http_simple_cluster.js
Normal file
9
benchmark/http_simple_cluster.js
Normal file
@@ -0,0 +1,9 @@
|
||||
var cluster = require('cluster');
|
||||
var os = require('os');
|
||||
|
||||
if (cluster.isMaster) {
|
||||
console.log('master running on pid %d', process.pid);
|
||||
for (var i = 0, n = os.cpus().length; i < n; ++i) cluster.fork();
|
||||
} else {
|
||||
require(__dirname + '/http_simple.js');
|
||||
}
|
||||
@@ -2,41 +2,47 @@
|
||||
* gcc -o iotest io.c
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/time.h>
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int tsize = 1000 * 1048576;
|
||||
const char *path = "/tmp/wt.dat";
|
||||
static int c = 0;
|
||||
static int tsize = 1000 * 1048576;
|
||||
static const char path[] = "/tmp/wt.dat";
|
||||
static char buf[65536];
|
||||
|
||||
int c = 0;
|
||||
static uint64_t now(void) {
|
||||
struct timeval tv;
|
||||
|
||||
char* bufit(size_t l)
|
||||
{
|
||||
char *p = malloc(l);
|
||||
memset(p, '!', l);
|
||||
return p;
|
||||
if (gettimeofday(&tv, NULL))
|
||||
abort();
|
||||
|
||||
return tv.tv_sec * 1000000ULL + tv.tv_usec;
|
||||
}
|
||||
|
||||
void writetest(int size, size_t bsize)
|
||||
static void writetest(int size, size_t bsize)
|
||||
{
|
||||
int i;
|
||||
char *buf = bufit(bsize);
|
||||
struct timeval start, end;
|
||||
uint64_t start, end;
|
||||
double elapsed;
|
||||
double mbps;
|
||||
|
||||
assert(bsize <= sizeof buf);
|
||||
|
||||
int fd = open(path, O_CREAT|O_WRONLY, 0644);
|
||||
if (fd < 0) {
|
||||
perror("open failed");
|
||||
exit(254);
|
||||
}
|
||||
|
||||
assert(0 == gettimeofday(&start, NULL));
|
||||
start = now();
|
||||
|
||||
for (i = 0; i < size; i += bsize) {
|
||||
int rv = write(fd, buf, bsize);
|
||||
if (c++ % 2000 == 0) fprintf(stderr, ".");
|
||||
@@ -45,35 +51,41 @@ void writetest(int size, size_t bsize)
|
||||
exit(254);
|
||||
}
|
||||
}
|
||||
#ifdef __linux__
|
||||
fdatasync(fd);
|
||||
#else
|
||||
fsync(fd);
|
||||
#endif
|
||||
close(fd);
|
||||
assert(0 == gettimeofday(&end, NULL));
|
||||
elapsed = (end.tv_sec - start.tv_sec) + ((double)(end.tv_usec - start.tv_usec))/100000.;
|
||||
mbps = ((tsize/elapsed)) / 1048576;
|
||||
fprintf(stderr, "\nWrote %d bytes in %03fs using %ld byte buffers: %03fmB/s\n", size, elapsed, bsize, mbps);
|
||||
|
||||
free(buf);
|
||||
#ifndef NSYNC
|
||||
# ifdef __linux__
|
||||
fdatasync(fd);
|
||||
# else
|
||||
fsync(fd);
|
||||
# endif
|
||||
#endif /* SYNC */
|
||||
|
||||
close(fd);
|
||||
|
||||
end = now();
|
||||
elapsed = (end - start) / 1e6;
|
||||
mbps = ((tsize/elapsed)) / 1048576;
|
||||
|
||||
fprintf(stderr, "\nWrote %d bytes in %03fs using %ld byte buffers: %03fmB/s\n", size, elapsed, bsize, mbps);
|
||||
}
|
||||
|
||||
void readtest(int size, size_t bsize)
|
||||
{
|
||||
int i;
|
||||
char *buf = bufit(bsize);
|
||||
struct timeval start, end;
|
||||
uint64_t start, end;
|
||||
double elapsed;
|
||||
double mbps;
|
||||
|
||||
assert(bsize <= sizeof buf);
|
||||
|
||||
int fd = open(path, O_RDONLY, 0644);
|
||||
if (fd < 0) {
|
||||
perror("open failed");
|
||||
exit(254);
|
||||
}
|
||||
|
||||
assert(0 == gettimeofday(&start, NULL));
|
||||
start = now();
|
||||
|
||||
for (i = 0; i < size; i += bsize) {
|
||||
int rv = read(fd, buf, bsize);
|
||||
if (rv < 0) {
|
||||
@@ -82,12 +94,12 @@ void readtest(int size, size_t bsize)
|
||||
}
|
||||
}
|
||||
close(fd);
|
||||
assert(0 == gettimeofday(&end, NULL));
|
||||
elapsed = (end.tv_sec - start.tv_sec) + ((double)(end.tv_usec - start.tv_usec))/100000.;
|
||||
mbps = ((tsize/elapsed)) / 1048576;
|
||||
fprintf(stderr, "Read %d bytes in %03fs using %ld byte buffers: %03fmB/s\n", size, elapsed, bsize, mbps);
|
||||
|
||||
free(buf);
|
||||
end = now();
|
||||
elapsed = (end - start) / 1e6;
|
||||
mbps = ((tsize/elapsed)) / 1048576;
|
||||
|
||||
fprintf(stderr, "Read %d bytes in %03fs using %ld byte buffers: %03fmB/s\n", size, elapsed, bsize, mbps);
|
||||
}
|
||||
|
||||
void cleanup() {
|
||||
|
||||
41
benchmark/next-tick-2.js
Normal file
41
benchmark/next-tick-2.js
Normal file
@@ -0,0 +1,41 @@
|
||||
// Copyright Joyent, Inc. and other Node contributors.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||
// copy of this software and associated documentation files (the
|
||||
// "Software"), to deal in the Software without restriction, including
|
||||
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
||||
// persons to whom the Software is furnished to do so, subject to the
|
||||
// following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included
|
||||
// in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
||||
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
var count = 2e6,
|
||||
left = count,
|
||||
start;
|
||||
|
||||
function onNextTick() {
|
||||
if (--left) {
|
||||
process.nextTick(onNextTick);
|
||||
} else {
|
||||
finalize();
|
||||
}
|
||||
}
|
||||
|
||||
function finalize() {
|
||||
var duration = (new Date()).getTime() - start,
|
||||
ticksPerSec = count / duration * 1000;
|
||||
console.log("nextTick callbacks per second: " + Math.round(ticksPerSec));
|
||||
}
|
||||
|
||||
start = (new Date()).getTime();
|
||||
process.nextTick(onNextTick);
|
||||
17
benchmark/next-tick.js
Normal file
17
benchmark/next-tick.js
Normal file
@@ -0,0 +1,17 @@
|
||||
// run with `time node benchmark/next-tick.js`
|
||||
var assert = require('assert');
|
||||
|
||||
var N = 1e7;
|
||||
var n = 0;
|
||||
|
||||
process.on('exit', function() {
|
||||
assert.equal(n, N);
|
||||
});
|
||||
|
||||
function cb() {
|
||||
n++;
|
||||
}
|
||||
|
||||
for (var i = 0; i < N; ++i) {
|
||||
process.nextTick(cb);
|
||||
}
|
||||
@@ -1,48 +1,43 @@
|
||||
var http = require("http");
|
||||
var http = require('http');
|
||||
|
||||
var concurrency = 30;
|
||||
var port = 12346;
|
||||
var n = 7; // several orders of magnitude slower
|
||||
var n = 700;
|
||||
var bytes = 1024*5;
|
||||
|
||||
var requests = 0;
|
||||
var responses = 0;
|
||||
|
||||
var body = "";
|
||||
var body = '';
|
||||
for (var i = 0; i < bytes; i++) {
|
||||
body += "C";
|
||||
body += 'C';
|
||||
}
|
||||
|
||||
var server = http.createServer(function (req, res) {
|
||||
var server = http.createServer(function(req, res) {
|
||||
res.writeHead(200, {
|
||||
"Content-Type": "text/plain",
|
||||
"Content-Length": body.length
|
||||
'Content-Type': 'text/plain',
|
||||
'Content-Length': body.length
|
||||
});
|
||||
res.write(body);
|
||||
res.close();
|
||||
res.end(body);
|
||||
})
|
||||
server.listen(port);
|
||||
|
||||
function responseListener (res) {
|
||||
res.addListener("end", function () {
|
||||
if (requests < n) {
|
||||
var req = res.client.request("/");
|
||||
req.addListener('response', responseListener);
|
||||
req.close();
|
||||
requests++;
|
||||
}
|
||||
server.listen(port, function() {
|
||||
var agent = new http.Agent();
|
||||
agent.maxSockets = concurrency;
|
||||
|
||||
if (++responses == n) {
|
||||
server.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
for (var i = 0; i < concurrency; i++) {
|
||||
var client = http.createClient(port);
|
||||
client.id = i;
|
||||
var req = client.request("/");
|
||||
req.addListener('response', responseListener);
|
||||
req.close();
|
||||
requests++;
|
||||
}
|
||||
for (var i = 0; i < n; i++) {
|
||||
var req = http.get({
|
||||
port: port,
|
||||
path: '/',
|
||||
agent: agent
|
||||
}, function(res) {
|
||||
res.on('end', function() {
|
||||
if (++responses === n) {
|
||||
server.close();
|
||||
}
|
||||
});
|
||||
});
|
||||
req.id = i;
|
||||
requests++;
|
||||
}
|
||||
});
|
||||
|
||||
25
benchmark/throughput-child.js
Normal file
25
benchmark/throughput-child.js
Normal file
@@ -0,0 +1,25 @@
|
||||
var net = require('net');
|
||||
var received = 0;
|
||||
var start = new Date();
|
||||
var socket = net.connect(8000);
|
||||
|
||||
socket.on('data', function(d) {
|
||||
received += d.length;
|
||||
});
|
||||
|
||||
var interval = setInterval(function() {
|
||||
// After 1 gigabyte shutdown.
|
||||
if (received > 10 * 1024 * 1024 * 1024) {
|
||||
socket.destroy();
|
||||
clearInterval(interval);
|
||||
process.exit(0);
|
||||
} else {
|
||||
// Otherwise print some stats.
|
||||
var now = new Date();
|
||||
var gigabytes = received / (1024 * 1024 * 1024);
|
||||
var gigabits = gigabytes * 8.0;
|
||||
var millisec = now - start;
|
||||
var sec = millisec / 1000;
|
||||
console.log((gigabits / sec) + " gbit/sec")
|
||||
}
|
||||
}, 1000);
|
||||
21
benchmark/throughput.js
Normal file
21
benchmark/throughput.js
Normal file
@@ -0,0 +1,21 @@
|
||||
var fork = require('child_process').fork;
|
||||
var net = require('net');
|
||||
var buffer = new Buffer(1024 * 1024);
|
||||
|
||||
function write(socket) {
|
||||
if (!socket.writable) return;
|
||||
|
||||
socket.write(buffer, function() {
|
||||
write(socket);
|
||||
});
|
||||
}
|
||||
|
||||
var server = net.createServer(function(socket) {
|
||||
server.close();
|
||||
write(socket);
|
||||
});
|
||||
|
||||
server.listen(8000, function() {
|
||||
fork(__dirname + '/throughput-child.js');
|
||||
});
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
set(CTEST_CUSTOM_PRE_TEST "sh -c \"rm -rf ../test/tmp && mkdir ../test/tmp\"")
|
||||
set(CTEST_CUSTOM_POST_TEST ${CTEST_CUSTOM_PRE_TEST})
|
||||
set(CTEST_CUSTOM_PRE_MEMCHECK ${CTEST_CUSTOM_PRE_TEST})
|
||||
set(CTEST_CUSTOM_POST_MEMCHECK ${CTEST_CUSTOM_PRE_TEST})
|
||||
@@ -1,22 +0,0 @@
|
||||
set(toolchain_dir #SET THIS TO YOUR TOOLCHAIN PATH)
|
||||
set(toolchain_bin_dir ${toolchain_dir}/bin)
|
||||
set(toolchain_libc_dir ${toolchain_dir}/arm-none-linux-gnueabi/libc)
|
||||
set(toolchain_inc_dir ${toolchain_libc_dir}/include)
|
||||
set(toolchain_lib_dir ${toolchain_libc_dir}/usr/lib)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Linux CACHE INTERNAL "system name")
|
||||
set(CMAKE_SYSTEM_PROCESSOR arm CACHE INTERNAL "processor")
|
||||
set(CMAKE_C_COMPILER ${toolchain_bin_dir}/arm-none-linux-gnueabi-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${toolchain_bin_dir}/arm-none-linux-gnueabi-g++)
|
||||
set(CMAKE_C_FLAGS "-isystem ${toolchain_inc_dir}" CACHE INTERNAL "c compiler flags")
|
||||
set(CMAKE_CXX_FLAGS "-isystem ${toolchain_inc_dir}" CACHE INTERNAL "cxx compiler flags")
|
||||
|
||||
set(link_flags -L${toolchain_lib_dir})
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "exe link flags")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "module link flags")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS ${link_flags} CACHE INTERNAL "shared lnk flags")
|
||||
set(CMAKE_FIND_ROOT_PATH ${toolchain_libc_dir} CACHE INTERNAL "cross root directory")
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH CACHE INTERNAL "")
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY CACHE INTERNAL "")
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY CACHE INTERNAL "")
|
||||
@@ -1,130 +0,0 @@
|
||||
#
|
||||
# configure node for building
|
||||
#
|
||||
include(CheckFunctionExists)
|
||||
include(CheckLibraryExists)
|
||||
include(CheckSymbolExists)
|
||||
|
||||
if(NOT "v${CMAKE_BUILD_TYPE}" MATCHES vDebug)
|
||||
set(CMAKE_BUILD_TYPE "Release")
|
||||
endif()
|
||||
|
||||
string(TOLOWER ${CMAKE_SYSTEM_NAME} node_platform)
|
||||
|
||||
if(${node_platform} MATCHES darwin)
|
||||
execute_process(COMMAND sw_vers -productVersion OUTPUT_VARIABLE OSX_VERSION)
|
||||
string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1" OSX_VERSION "${OSX_VERSION}")
|
||||
|
||||
if(OSX_VERSION GREATER 10.5)
|
||||
# 10.6 builds are 64-bit
|
||||
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Get system architecture
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*)
|
||||
set(node_arch x86)
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES i386*)
|
||||
set(node_arch x86)
|
||||
else()
|
||||
set(node_arch ${CMAKE_SYSTEM_PROCESSOR})
|
||||
endif()
|
||||
|
||||
if(${node_arch} MATCHES unknown)
|
||||
set(node_arch x86)
|
||||
endif()
|
||||
|
||||
set(NODE_INCLUDE_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
# Copy tools directory for out-of-source build
|
||||
string(COMPARE EQUAL $(PROJECT_BINARY_DIR) ${PROJECT_SOURCE_DIR} in_source_build)
|
||||
if(NOT in_source_build)
|
||||
execute_process(COMMAND cmake -E copy_directory ${PROJECT_SOURCE_DIR}/tools ${PROJECT_BINARY_DIR}/tools)
|
||||
configure_file(${PROJECT_SOURCE_DIR}/deps/v8/tools/jsmin.py ${PROJECT_BINARY_DIR}/tools COPYONLY)
|
||||
endif()
|
||||
|
||||
# Set some compiler/linker flags..
|
||||
set(CMAKE_C_FLAGS_DEBUG "-O0 -Wall -g -Wextra -DDEBUG $ENV{CFLAGS}")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -Wall -g -Wextra -DDEBUG $ENV{CXXFLAGS}")
|
||||
|
||||
set(CMAKE_C_FLAGS_RELEASE "-g -O3 -DNDEBUG $ENV{CFLAGS}")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 -DNDEBUG $ENV{CXXFLAGS}")
|
||||
|
||||
if(NOT ${node_platform} MATCHES windows)
|
||||
add_definitions(-D__POSIX__=1)
|
||||
endif()
|
||||
|
||||
if(${node_platform} MATCHES sunos)
|
||||
add_definitions(-threads)
|
||||
elseif(NOT ${node_platform} MATCHES cygwin*)
|
||||
add_definitions(-pthread)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -rdynamic")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -rdynamic")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
|
||||
endif()
|
||||
|
||||
if(${node_platform} MATCHES darwin)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Carbon")
|
||||
# explicitly set this so that we don't check again when building libeio
|
||||
set(HAVE_FDATASYNC 0)
|
||||
else()
|
||||
# OSX fdatasync() check wrong: http://public.kitware.com/Bug/view.php?id=10044
|
||||
check_function_exists(fdatasync HAVE_FDATASYNC)
|
||||
endif()
|
||||
|
||||
if(HAVE_FDATASYNC)
|
||||
add_definitions(-DHAVE_FDATASYNC=1)
|
||||
else()
|
||||
add_definitions(-DHAVE_FDATASYNC=0)
|
||||
endif()
|
||||
|
||||
# check first without rt and then with rt
|
||||
check_function_exists(clock_gettime HAVE_CLOCK_GETTIME)
|
||||
check_library_exists(rt clock_gettime "" HAVE_CLOCK_GETTIME_RT)
|
||||
|
||||
if(HAVE_CLOCK_GETTIME OR HAVE_CLOCK_GETTIME_RT)
|
||||
check_symbol_exists(CLOCK_MONOTONIC "time.h" HAVE_MONOTONIC_CLOCK)
|
||||
endif()
|
||||
|
||||
if(HAVE_MONOTONIC_CLOCK)
|
||||
add_definitions(-DHAVE_MONOTONIC_CLOCK=1)
|
||||
else()
|
||||
add_definitions(-DHAVE_MONOTONIC_CLOCK=0)
|
||||
endif()
|
||||
|
||||
if(DTRACE)
|
||||
if(NOT ${node_platform} MATCHES sunos)
|
||||
message(FATAL_ERROR "DTrace support only currently available on Solaris")
|
||||
endif()
|
||||
find_program(dtrace_bin dtrace)
|
||||
if(NOT dtrace_bin)
|
||||
message(FATAL_ERROR "DTrace binary not found")
|
||||
endif()
|
||||
add_definitions(-DHAVE_DTRACE=1)
|
||||
endif()
|
||||
|
||||
add_definitions(
|
||||
-DPLATFORM="${node_platform}"
|
||||
-DARCH="${node_arch}"
|
||||
-DX_STACKSIZE=65536
|
||||
-D_LARGEFILE_SOURCE
|
||||
-D_FILE_OFFSET_BITS=64
|
||||
-DEV_MULTIPLICITY=0
|
||||
-D_FORTIFY_SOURCE=2
|
||||
)
|
||||
|
||||
# set the exec output path to be compatible with the current waf build system
|
||||
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
|
||||
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/debug/)
|
||||
else()
|
||||
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/default/)
|
||||
endif()
|
||||
|
||||
#
|
||||
## ---------------------------------------------------------
|
||||
#
|
||||
|
||||
file(GLOB js2c_files ${PROJECT_SOURCE_DIR}/lib/*.js)
|
||||
set(js2c_files ${PROJECT_SOURCE_DIR}/src/node.js ${js2c_files})
|
||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/src)
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
#
|
||||
# docs
|
||||
#
|
||||
|
||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc)
|
||||
|
||||
set(node_binary ${PROJECT_BINARY_DIR}/default/node)
|
||||
set(doctool tools/doctool/doctool.js)
|
||||
set(changelog_html ${PROJECT_BINARY_DIR}/doc/changelog.html)
|
||||
|
||||
file(GLOB_RECURSE doc_sources RELATIVE ${PROJECT_SOURCE_DIR} doc/*)
|
||||
|
||||
foreach(FILE ${doc_sources})
|
||||
string(REGEX REPLACE "(.*)api_assets(.*)" "\\1api/assets\\2" OUT_FILE ${FILE})
|
||||
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/${OUT_FILE}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/${FILE} ${PROJECT_BINARY_DIR}/${OUT_FILE}
|
||||
DEPENDS ${PROJECT_SOURCE_DIR}/${FILE}
|
||||
)
|
||||
list(APPEND doc_sources_copy ${PROJECT_BINARY_DIR}/${OUT_FILE})
|
||||
endforeach()
|
||||
|
||||
file(GLOB_RECURSE api_markdown RELATIVE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/doc/api/*)
|
||||
|
||||
foreach(file ${api_markdown})
|
||||
string(REGEX REPLACE "(.*)\\.markdown" "\\1" tmp ${file})
|
||||
set(api_basenames ${api_basenames} ${tmp})
|
||||
endforeach()
|
||||
|
||||
foreach(api ${api_basenames})
|
||||
set(api_html ${api_html} ${PROJECT_BINARY_DIR}/${api}.html)
|
||||
add_custom_command(
|
||||
OUTPUT "${PROJECT_BINARY_DIR}/${api}.html"
|
||||
COMMAND ${node_binary} ${doctool} ${PROJECT_BINARY_DIR}/doc/template.html "${PROJECT_BINARY_DIR}/${api}.markdown" > "${PROJECT_BINARY_DIR}/${api}.html"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
DEPENDS node ${doctool} ${doc_sources_copy}
|
||||
VERBATIM
|
||||
)
|
||||
endforeach()
|
||||
|
||||
add_custom_target(
|
||||
doc
|
||||
DEPENDS node ${doc_sources_copy} ${api_html} ${changelog_html}
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
)
|
||||
|
||||
#add_custom_command(
|
||||
# OUTPUT ${PROJECT_BINARY_DIR}/doc/api.html
|
||||
# COMMAND ${PROJECT_BINARY_DIR}/default/node tools/ronnjs/bin/ronn.js --fragment doc/api.markdown
|
||||
# | sed "s/<h2>\\\(.*\\\)<\\/h2>/<h2 id=\"\\1\">\\1<\\/h2>/g"
|
||||
# | cat doc/api_header.html - doc/api_footer.html > ${PROJECT_BINARY_DIR}/doc/api.html
|
||||
# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
# DEPENDS node doc/api.markdown doc/api_header.html doc/api_footer.html
|
||||
# VERBATIM
|
||||
# )
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${changelog_html}
|
||||
COMMAND ${node_binary} ${doctool} doc/template.html ChangeLog
|
||||
| sed "s|assets/|api/assets/|g"
|
||||
| sed "s|<body>|<body id=\"changelog\">|g" > ${changelog_html}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
DEPENDS ChangeLog node ${doctool} ${doc_sources_copy}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
#add_custom_command(
|
||||
# OUTPUT ${PROJECT_BINARY_DIR}/doc/changelog.html
|
||||
# COMMAND cat doc/changelog_header.html ChangeLog doc/changelog_footer.html > ${PROJECT_BINARY_DIR}/doc/changelog.html
|
||||
# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
# DEPENDS ChangeLog doc/changelog_header.html doc/changelog_footer.html
|
||||
# VERBATIM
|
||||
# )
|
||||
|
||||
#add_custom_command(
|
||||
# OUTPUT ${PROJECT_BINARY_DIR}/doc/node.1
|
||||
# COMMAND ${PROJECT_BINARY_DIR}/default/node tools/ronnjs/bin/ronn.js --roff doc/api.markdown > ${PROJECT_BINARY_DIR}/doc/node.1
|
||||
# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
# DEPENDS node doc/api.markdown tools/ronnjs/bin/ronn.js
|
||||
# VERBATIM
|
||||
# )
|
||||
@@ -1,53 +0,0 @@
|
||||
#
|
||||
# libraries
|
||||
#
|
||||
|
||||
include(CheckLibraryExists)
|
||||
include(FindPackageHandleStandardArgs)
|
||||
set(HAVE_CONFIG_H True)
|
||||
add_definitions(-DHAVE_CONFIG_H=1)
|
||||
|
||||
find_package(OpenSSL QUIET)
|
||||
find_package(Threads)
|
||||
find_library(RT rt)
|
||||
find_library(DL dl)
|
||||
check_library_exists(socket socket "" HAVE_SOCKET_LIB)
|
||||
check_library_exists(nsl gethostbyname "" HAVE_NSL_LIB)
|
||||
check_library_exists(util openpty "" HAVE_UTIL_LIB)
|
||||
|
||||
if(RT)
|
||||
set(extra_libs ${extra_libs} ${RT})
|
||||
endif()
|
||||
|
||||
if(DL)
|
||||
set(extra_libs ${extra_libs} ${DL})
|
||||
endif()
|
||||
|
||||
if(${node_platform} MATCHES freebsd)
|
||||
find_library(KVM NAMES kvm)
|
||||
set(extra_libs ${extra_libs} KVM)
|
||||
endif()
|
||||
|
||||
if(${HAVE_SOCKET_LIB})
|
||||
set(extra_libs ${extra_libs} socket)
|
||||
endif()
|
||||
|
||||
if(${HAVE_NSL_LIB})
|
||||
set(extra_libs ${extra_libs} nsl)
|
||||
endif()
|
||||
|
||||
if(HAVE_UTIL_LIB)
|
||||
set(extra_libs ${extra_libs} util)
|
||||
endif()
|
||||
|
||||
if(OPENSSL_FOUND)
|
||||
add_definitions(-DHAVE_OPENSSL=1)
|
||||
set(HAVE_OPENSSL True)
|
||||
set(node_extra_src ${node_extra_src} src/node_crypto.cc)
|
||||
set(extra_libs ${extra_libs} ${OPENSSL_LIBRARIES})
|
||||
endif()
|
||||
|
||||
include("cmake/libuv.cmake")
|
||||
include("cmake/libv8.cmake")
|
||||
|
||||
add_subdirectory(deps/http_parser)
|
||||
@@ -1,2 +0,0 @@
|
||||
add_subdirectory(deps/uv)
|
||||
set(LIBUV_INCLUDE_DIR deps/uv/include)
|
||||
@@ -1,25 +0,0 @@
|
||||
set(V8_INCLUDE_NAMES v8.h v8-debug.h v8-profiler.h v8stdint.h)
|
||||
set(V8_LIBRARY_NAMES v8)
|
||||
|
||||
if(SHARED_V8)
|
||||
find_path(V8_INCLUDE_DIR NAMES ${V8_INCLUDE_NAMES})
|
||||
find_library(V8_LIBRARY_PATH NAMES ${V8_LIBRARY_NAMES} NO_CMAKE_PATH)
|
||||
else()
|
||||
set(V8_INCLUDE_DIR "${PROJECT_BINARY_DIR}/deps/v8/include")
|
||||
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
|
||||
set(v8_fn "libv8_g.a")
|
||||
else()
|
||||
set(v8_fn "libv8.a")
|
||||
endif()
|
||||
set(V8_LIBRARY_PATH "${PROJECT_BINARY_DIR}/deps/v8/${v8_fn}")
|
||||
install(DIRECTORY
|
||||
## Do NOT remove the trailing slash
|
||||
## it is required so that v8 headers are
|
||||
## copied directly into include/node
|
||||
## rather than in a subdirectory
|
||||
## See CMake's install(DIRECTORY) manual for details
|
||||
${V8_INCLUDE_DIR}/
|
||||
|
||||
DESTINATION include/node
|
||||
)
|
||||
endif()
|
||||
@@ -1,149 +0,0 @@
|
||||
#
|
||||
# node build stuff
|
||||
#
|
||||
|
||||
set(macros_file ${PROJECT_BINARY_DIR}/macros.py)
|
||||
|
||||
# replace debug(x) and assert(x) with nothing in release build
|
||||
if(${CMAKE_BUILD_TYPE} MATCHES Release)
|
||||
file(APPEND ${macros_file} "macro debug(x) = void(0);\n")
|
||||
file(APPEND ${macros_file} "macro assert(x) = void(0);\n")
|
||||
endif()
|
||||
|
||||
if(NOT DTRACE)
|
||||
set(dtrace_probes
|
||||
DTRACE_HTTP_CLIENT_REQUEST
|
||||
DTRACE_HTTP_CLIENT_RESPONSE
|
||||
DTRACE_HTTP_SERVER_REQUEST
|
||||
DTRACE_HTTP_SERVER_RESPONSE
|
||||
DTRACE_NET_SERVER_CONNECTION
|
||||
DTRACE_NET_STREAM_END
|
||||
DTRACE_NET_SOCKET_READ
|
||||
DTRACE_NET_SOCKET_WRITE)
|
||||
foreach(probe ${dtrace_probes})
|
||||
file(APPEND ${macros_file} "macro ${probe}(x) = void(0);\n")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# Sort the JS files being built into natives so that the build is
|
||||
# deterministic
|
||||
list(SORT js2c_files)
|
||||
|
||||
# include macros file in generation
|
||||
set(js2c_files ${js2c_files} ${macros_file})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_BINARY_DIR}/src/node_natives.h
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_BINARY_DIR}/tools/js2c.py ${PROJECT_BINARY_DIR}/src/node_natives.h ${js2c_files}
|
||||
DEPENDS ${js2c_files})
|
||||
|
||||
set(node_platform_src "src/platform_${node_platform}.cc")
|
||||
|
||||
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/${node_platform_src})
|
||||
set(node_extra_src ${node_extra_src} "src/platform_none.cc")
|
||||
else()
|
||||
set(node_extra_src ${node_extra_src} ${node_platform_src})
|
||||
endif()
|
||||
|
||||
set(node_sources
|
||||
src/node_main.cc
|
||||
src/node.cc
|
||||
src/node_buffer.cc
|
||||
src/node_javascript.cc
|
||||
src/node_extensions.cc
|
||||
src/node_http_parser.cc
|
||||
src/node_constants.cc
|
||||
src/node_file.cc
|
||||
src/node_script.cc
|
||||
src/node_os.cc
|
||||
src/node_dtrace.cc
|
||||
src/node_string.cc
|
||||
src/timer_wrap.cc
|
||||
src/handle_wrap.cc
|
||||
src/stream_wrap.cc
|
||||
src/tcp_wrap.cc
|
||||
src/pipe_wrap.cc
|
||||
src/cares_wrap.cc
|
||||
src/stdio_wrap.cc
|
||||
src/process_wrap.cc
|
||||
src/node_cares.cc
|
||||
src/node_net.cc
|
||||
src/node_signal_watcher.cc
|
||||
src/node_stat_watcher.cc
|
||||
src/node_io_watcher.cc
|
||||
src/node_stdio.cc
|
||||
src/node_child_process.cc
|
||||
src/node_timer.cc
|
||||
src/node_natives.h
|
||||
${node_extra_src})
|
||||
|
||||
# Set up PREFIX, CCFLAGS, and CPPFLAGS for node_config.h
|
||||
set(PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
|
||||
set(CCFLAGS "${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}")
|
||||
else()
|
||||
set(CCFLAGS "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS}")
|
||||
endif()
|
||||
get_directory_property(compile_defs COMPILE_DEFINITIONS)
|
||||
foreach(def ${compile_defs})
|
||||
set(CPPFLAGS "${CPPFLAGS} -D${def}")
|
||||
endforeach()
|
||||
|
||||
configure_file(src/node_config.h.in ${PROJECT_BINARY_DIR}/src/node_config.h ESCAPE_QUOTES)
|
||||
configure_file(config.h.cmake ${PROJECT_BINARY_DIR}/config.h)
|
||||
|
||||
include_directories(
|
||||
src
|
||||
deps/libeio
|
||||
deps/http_parser
|
||||
${V8_INCLUDE_DIR}
|
||||
${LIBUV_INCLUDE_DIR}
|
||||
|
||||
${PROJECT_BINARY_DIR}
|
||||
${PROJECT_BINARY_DIR}/src
|
||||
)
|
||||
|
||||
if(DTRACE)
|
||||
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/src/node_provider.h
|
||||
COMMAND ${dtrace_bin} -x nolibs -h -o ${PROJECT_BINARY_DIR}/src/node_provider.h -s ${PROJECT_SOURCE_DIR}/src/node_provider.d
|
||||
DEPENDS ${PROJECT_SOURCE_DIR}/src/node_provider.d)
|
||||
|
||||
set(node_sources ${node_sources} src/node_provider.o)
|
||||
set(node_sources src/node_provider.h ${node_sources})
|
||||
endif()
|
||||
|
||||
add_executable(node ${node_sources})
|
||||
set_target_properties(node PROPERTIES DEBUG_POSTFIX "_g")
|
||||
target_link_libraries(node
|
||||
uv
|
||||
http_parser
|
||||
${V8_LIBRARY_PATH}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
${extra_libs})
|
||||
|
||||
if(DTRACE)
|
||||
# manually gather up the object files for dtrace
|
||||
get_property(sourcefiles TARGET node PROPERTY SOURCES)
|
||||
foreach(src_file ${sourcefiles})
|
||||
if(src_file MATCHES ".*\\.cc$")
|
||||
set(node_objs ${node_objs} ${PROJECT_BINARY_DIR}/CMakeFiles/node.dir/${src_file}.o)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/src/node_provider.o
|
||||
#COMMAND cmake -E echo ${node_objs}
|
||||
COMMAND ${dtrace_bin} -G -x nolibs -s ${PROJECT_SOURCE_DIR}/src/node_provider.d -o ${PROJECT_BINARY_DIR}/src/node_provider.o ${node_objs}
|
||||
DEPENDS ${node_objs})
|
||||
endif()
|
||||
|
||||
install(TARGETS node RUNTIME DESTINATION bin)
|
||||
install(FILES
|
||||
${PROJECT_BINARY_DIR}/config.h
|
||||
src/node.h
|
||||
src/node_object_wrap.h
|
||||
src/node_buffer.h
|
||||
src/node_version.h
|
||||
${PROJECT_BINARY_DIR}/src/node_config.h
|
||||
|
||||
DESTINATION ${NODE_INCLUDE_PREFIX}/include/node
|
||||
)
|
||||
@@ -1,39 +0,0 @@
|
||||
#
|
||||
# package
|
||||
#
|
||||
|
||||
# Allow absolute paths when installing
|
||||
# see http://www.cmake.org/pipermail/cmake/2008-July/022958.html
|
||||
set(CPACK_SET_DESTDIR "ON")
|
||||
|
||||
if(${node_platform} MATCHES darwin)
|
||||
set(CPACK_GENERATOR "TGZ;PackageMaker")
|
||||
# CPack requires the files to end in .txt
|
||||
configure_file(LICENSE ${PROJECT_BINARY_DIR}/LICENSE.txt COPYONLY)
|
||||
configure_file(ChangeLog ${PROJECT_BINARY_DIR}/ChangeLog.txt COPYONLY)
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_BINARY_DIR}/LICENSE.txt")
|
||||
set(CPACK_RESOURCE_FILE_README "${PROJECT_BINARY_DIR}/ChangeLog.txt")
|
||||
#set(CPACK_RESOURCE_FILE_WELCOME "")
|
||||
elseif(${node_platform} MATCHES linux)
|
||||
set(CPACK_GENERATOR "TGZ;DEB;RPM")
|
||||
else()
|
||||
set(CPACK_GENERATOR "TGZ")
|
||||
endif()
|
||||
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Tom Hughes <tom.hughes@palm.com>")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Evented I/O for V8 JavaScript.")
|
||||
set(CPACK_PACKAGE_DESCRIPTION "Evented I/O for V8 JavaScript.
|
||||
Node's goal is to provide an easy way to build scalable network programs.
|
||||
Node is similar in design to and influenced by systems like Ruby's Event
|
||||
Machine or Python's Twisted. Node takes the event model a bit further—it
|
||||
presents the event loop as a language construct instead of as a library.")
|
||||
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION}")
|
||||
set(CPACK_DEBIAN_PACKAGE_SECTION "web")
|
||||
file(READ ${PROJECT_SOURCE_DIR}/src/node_version.h node_version_h OFFSET 0)
|
||||
string(REGEX REPLACE ".*NODE_MAJOR_VERSION[ ]*([0-9]+).*" "\\1" CPACK_PACKAGE_VERSION_MAJOR "${node_version_h}")
|
||||
string(REGEX REPLACE ".*NODE_MINOR_VERSION[ ]*([0-9]+).*" "\\1" CPACK_PACKAGE_VERSION_MINOR "${node_version_h}")
|
||||
string(REGEX REPLACE ".*NODE_PATCH_VERSION[ ]*([0-9]+).*" "\\1" CPACK_PACKAGE_VERSION_PATCH "${node_version_h}")
|
||||
set(node_version_string "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
|
||||
|
||||
# Note: this is intentionally at the bottom so that the above CPACK variables
|
||||
# are used by CPack.
|
||||
include(CPack)
|
||||
@@ -1,102 +0,0 @@
|
||||
#
|
||||
# v8 build stuff
|
||||
#
|
||||
|
||||
string(TOLOWER ${CMAKE_BUILD_TYPE} v8mode)
|
||||
set(v8arch ${node_arch})
|
||||
|
||||
if(${node_arch} MATCHES x86_64)
|
||||
set(v8arch x64)
|
||||
elseif(${node_arch} MATCHES x86)
|
||||
set(v8arch ia32)
|
||||
endif()
|
||||
|
||||
|
||||
if(NOT SHARED_V8)
|
||||
if(V8_SNAPSHOT)
|
||||
set(v8_snapshot snapshot=on)
|
||||
endif()
|
||||
|
||||
if(V8_OPROFILE)
|
||||
set(v8_oprofile prof=oprofile)
|
||||
endif()
|
||||
|
||||
if(V8_GDBJIT)
|
||||
set(v8_gdbjit gdbjit=on)
|
||||
endif()
|
||||
|
||||
if(${node_platform} MATCHES darwin)
|
||||
execute_process(COMMAND hwprefs cpu_count OUTPUT_VARIABLE cpu_count)
|
||||
elseif(${node_platform} MATCHES linux)
|
||||
execute_process(COMMAND sh -c "cat /proc/cpuinfo | grep processor | sort | uniq | wc -l"
|
||||
OUTPUT_VARIABLE cpu_count)
|
||||
elseif(${node_platform} MATCHES sunos)
|
||||
execute_process(COMMAND sh -c "psrinfo | wc -l" OUTPUT_VARIABLE cpu_count)
|
||||
else()
|
||||
set(cpu_count 1)
|
||||
endif()
|
||||
|
||||
if(${cpu_count} GREATER 1)
|
||||
math(EXPR parallel_jobs ${cpu_count}*2)
|
||||
else()
|
||||
set(parallel_jobs 1)
|
||||
endif()
|
||||
|
||||
add_library(v8 STATIC IMPORTED)
|
||||
set_property(TARGET v8
|
||||
PROPERTY IMPORTED_LOCATION ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn})
|
||||
|
||||
set(compile_env_vars "CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} AR=${CMAKE_AR} RANLIB=${CMAKE_RANLIB} CFLAGS=\"${CMAKE_C_FLAGS}\" CXXFLAGS=\"${CMAKE_CXX_FLAGS}\" LDFLAGS=\"${CMAKE_EXE_LINKER_FLAGS}\"")
|
||||
|
||||
set(compile_cmd "${compile_env_vars} ${PYTHON_EXECUTABLE} ${PROJECT_BINARY_DIR}/tools/scons/scons.py -j ${parallel_jobs} visibility=default mode=${v8mode} arch=${v8arch} library=static ${v8_snapshot} ${v8_oprofile} ${v8_gdbjit} verbose=on")
|
||||
|
||||
|
||||
if(CMAKE_VERSION VERSION_GREATER 2.8 OR CMAKE_VERSION VERSION_EQUAL 2.8)
|
||||
# use ExternalProject for CMake >2.8
|
||||
include(ExternalProject)
|
||||
|
||||
ExternalProject_Add(v8_extprj
|
||||
URL ${PROJECT_SOURCE_DIR}/deps/v8
|
||||
|
||||
BUILD_IN_SOURCE True
|
||||
BUILD_COMMAND sh -c "${compile_cmd}"
|
||||
SOURCE_DIR ${PROJECT_BINARY_DIR}/deps/v8
|
||||
# ignore this stuff, it's not needed for building v8 but ExternalProject
|
||||
# demands these steps
|
||||
|
||||
CONFIGURE_COMMAND "true" # fake configure
|
||||
INSTALL_COMMAND "true" # fake install
|
||||
)
|
||||
|
||||
add_dependencies(node v8_extprj)
|
||||
else()
|
||||
# copy v8 sources inefficiently with CMake versions <2.8
|
||||
file(GLOB_RECURSE v8_sources RELATIVE ${PROJECT_SOURCE_DIR} deps/v8/*)
|
||||
|
||||
if(NOT ${in_source_build})
|
||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/deps/v8)
|
||||
|
||||
foreach(FILE ${v8_sources})
|
||||
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/${FILE}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/${FILE} ${PROJECT_BINARY_DIR}/${FILE}
|
||||
DEPENDS ${PROJECT_SOURCE_DIR}/${FILE}
|
||||
)
|
||||
list(APPEND v8_sources_dest ${PROJECT_BINARY_DIR}/${FILE})
|
||||
endforeach()
|
||||
else()
|
||||
set(v8_sources_dest ${v8_sources})
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn}
|
||||
COMMAND sh -c "${compile_cmd}"
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/deps/v8/
|
||||
DEPENDS ${v8_sources_dest}
|
||||
)
|
||||
|
||||
add_custom_target(v8_stock ALL DEPENDS ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn})
|
||||
set_property(TARGET v8 PROPERTY
|
||||
IMPORTED_LOCATION ${PROJECT_BINARY_DIR}/deps/v8/${v8_fn})
|
||||
add_dependencies(node v8_stock)
|
||||
endif()
|
||||
endif()
|
||||
21
common.gypi
21
common.gypi
@@ -1,8 +1,6 @@
|
||||
{
|
||||
'variables': {
|
||||
'visibility%': 'hidden', # V8's visibility setting
|
||||
'target_arch%': 'ia32', # set v8's target architecture
|
||||
'host_arch%': 'ia32', # set v8's host architecture
|
||||
'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds
|
||||
'component%': 'static_library', # NB. these names match with what V8 expects
|
||||
'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way
|
||||
@@ -14,6 +12,11 @@
|
||||
'Debug': {
|
||||
'defines': [ 'DEBUG', '_DEBUG' ],
|
||||
'cflags': [ '-g', '-O0' ],
|
||||
'conditions': [
|
||||
['target_arch=="x64"', {
|
||||
'msvs_configuration_platform': 'x64',
|
||||
}],
|
||||
],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'target_conditions': [
|
||||
@@ -24,7 +27,7 @@
|
||||
}],
|
||||
],
|
||||
'Optimization': 0, # /Od, no optimization
|
||||
'MinimalRebuild': 'true',
|
||||
'MinimalRebuild': 'false',
|
||||
'OmitFramePointers': 'false',
|
||||
'BasicRuntimeChecks': 3, # /RTC1
|
||||
},
|
||||
@@ -36,6 +39,11 @@
|
||||
'Release': {
|
||||
'defines': [ 'NDEBUG' ],
|
||||
'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections' ],
|
||||
'conditions': [
|
||||
['target_arch=="x64"', {
|
||||
'msvs_configuration_platform': 'x64',
|
||||
}],
|
||||
],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'target_conditions': [
|
||||
@@ -83,6 +91,11 @@
|
||||
'VCLibrarianTool': {
|
||||
},
|
||||
'VCLinkerTool': {
|
||||
'conditions': [
|
||||
['target_arch=="x64"', {
|
||||
'TargetMachine' : 17 # /MACHINE:X64
|
||||
}],
|
||||
],
|
||||
'GenerateDebugInformation': 'true',
|
||||
'RandomizedBaseAddress': 2, # enable ASLR
|
||||
'DataExecutionPrevention': 2, # enable DEP
|
||||
@@ -106,6 +119,8 @@
|
||||
# ... or that C implementations shouldn't use
|
||||
# POSIX names
|
||||
'_CRT_NONSTDC_NO_DEPRECATE',
|
||||
'BUILDING_V8_SHARED=1',
|
||||
'BUILDING_UV_SHARED=1',
|
||||
],
|
||||
}],
|
||||
[ 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
#cmakedefine HAVE_OPENSSL 1
|
||||
#cmakedefine HAVE_CONFIG_H 1
|
||||
6
configure
vendored
6
configure
vendored
@@ -7,6 +7,10 @@ if [ ! -z "`echo $CC | grep ccache`" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$PYTHON" ]; then
|
||||
PYTHON=python
|
||||
fi
|
||||
|
||||
CUR_DIR=$PWD
|
||||
|
||||
#possible relative path
|
||||
@@ -16,6 +20,6 @@ cd "$WORKINGDIR"
|
||||
WORKINGDIR=`pwd`
|
||||
cd "$CUR_DIR"
|
||||
|
||||
"${WORKINGDIR}/tools/waf-light" --jobs=1 configure $*
|
||||
"$PYTHON" "${WORKINGDIR}/tools/waf-light" --jobs=1 configure $*
|
||||
|
||||
exit $?
|
||||
|
||||
3
deps/http_parser/.gitignore
vendored
3
deps/http_parser/.gitignore
vendored
@@ -3,6 +3,3 @@ tags
|
||||
test
|
||||
test_g
|
||||
test_fast
|
||||
http_parser.Makefile
|
||||
http_parser.target.mk
|
||||
test.target.mk
|
||||
|
||||
2
deps/http_parser/CMakeLists.txt
vendored
2
deps/http_parser/CMakeLists.txt
vendored
@@ -1,2 +0,0 @@
|
||||
include_directories (.)
|
||||
add_library (http_parser http_parser.c)
|
||||
36
deps/http_parser/http_parser.c
vendored
36
deps/http_parser/http_parser.c
vendored
@@ -370,6 +370,13 @@ size_t http_parser_execute (http_parser *parser,
|
||||
uint64_t index = parser->index;
|
||||
uint64_t nread = parser->nread;
|
||||
|
||||
/* technically we could combine all of these (except for url_mark) into one
|
||||
variable, saving stack space, but it seems more clear to have them
|
||||
separated. */
|
||||
const char *header_field_mark = 0;
|
||||
const char *header_value_mark = 0;
|
||||
const char *url_mark = 0;
|
||||
|
||||
/* We're in an error state. Don't bother doing anything. */
|
||||
if (HTTP_PARSER_ERRNO(parser) != HPE_OK) {
|
||||
return 0;
|
||||
@@ -396,12 +403,6 @@ size_t http_parser_execute (http_parser *parser,
|
||||
}
|
||||
}
|
||||
|
||||
/* technically we could combine all of these (except for url_mark) into one
|
||||
variable, saving stack space, but it seems more clear to have them
|
||||
separated. */
|
||||
const char *header_field_mark = 0;
|
||||
const char *header_value_mark = 0;
|
||||
const char *url_mark = 0;
|
||||
|
||||
if (state == s_header_field)
|
||||
header_field_mark = data;
|
||||
@@ -432,6 +433,9 @@ size_t http_parser_execute (http_parser *parser,
|
||||
/* this state is used after a 'Connection: close' message
|
||||
* the parser will error out if it reads another message
|
||||
*/
|
||||
if (ch == CR || ch == LF)
|
||||
break;
|
||||
|
||||
SET_ERRNO(HPE_CLOSED_CONNECTION);
|
||||
goto error;
|
||||
|
||||
@@ -514,7 +518,7 @@ size_t http_parser_execute (http_parser *parser,
|
||||
break;
|
||||
|
||||
case s_res_first_http_major:
|
||||
if (ch < '1' || ch > '9') {
|
||||
if (ch < '0' || ch > '9') {
|
||||
SET_ERRNO(HPE_INVALID_VERSION);
|
||||
goto error;
|
||||
}
|
||||
@@ -690,12 +694,13 @@ size_t http_parser_execute (http_parser *parser,
|
||||
|
||||
case s_req_method:
|
||||
{
|
||||
const char *matcher;
|
||||
if (ch == '\0') {
|
||||
SET_ERRNO(HPE_INVALID_METHOD);
|
||||
goto error;
|
||||
}
|
||||
|
||||
const char *matcher = method_strings[parser->method];
|
||||
matcher = method_strings[parser->method];
|
||||
if (ch == ' ' && matcher[index] == '\0') {
|
||||
state = s_req_spaces_before_url;
|
||||
} else if (ch == matcher[index]) {
|
||||
@@ -1731,9 +1736,20 @@ http_should_keep_alive (http_parser *parser)
|
||||
/* HTTP/1.1 */
|
||||
if (parser->flags & F_CONNECTION_CLOSE) {
|
||||
return 0;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
if (parser->type == HTTP_RESPONSE) {
|
||||
/* See RFC 2616 section 4.4 */
|
||||
if (parser->status_code / 100 == 1 || /* 1xx e.g. Continue */
|
||||
parser->status_code == 204 || /* No Content */
|
||||
parser->status_code == 304 || /* Not Modified */
|
||||
parser->flags & F_SKIPBODY) { /* response to a HEAD request */
|
||||
return 1;
|
||||
}
|
||||
if (!(parser->flags & F_CHUNKED) && parser->content_length == -1) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
} else {
|
||||
/* HTTP/1.0 or earlier */
|
||||
if (parser->flags & F_CONNECTION_KEEP_ALIVE) {
|
||||
|
||||
61
deps/http_parser/http_parser.gyp
vendored
61
deps/http_parser/http_parser.gyp
vendored
@@ -5,24 +5,69 @@
|
||||
# ./gyp/gyp -f make --depth=`pwd` http_parser.gyp
|
||||
# ./out/Debug/test
|
||||
{
|
||||
'target_defaults': {
|
||||
'default_configuration': 'Debug',
|
||||
'configurations': {
|
||||
# TODO: hoist these out and put them somewhere common, because
|
||||
# RuntimeLibrary MUST MATCH across the entire project
|
||||
'Debug': {
|
||||
'defines': [ 'DEBUG', '_DEBUG' ],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'RuntimeLibrary': 1, # static debug
|
||||
},
|
||||
},
|
||||
},
|
||||
'Release': {
|
||||
'defines': [ 'NDEBUG' ],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'RuntimeLibrary': 0, # static release
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
},
|
||||
'VCLibrarianTool': {
|
||||
},
|
||||
'VCLinkerTool': {
|
||||
'GenerateDebugInformation': 'true',
|
||||
},
|
||||
},
|
||||
'conditions': [
|
||||
['OS == "win"', {
|
||||
'defines': [
|
||||
'WIN32'
|
||||
],
|
||||
}]
|
||||
],
|
||||
},
|
||||
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'http_parser',
|
||||
'type': '<(library)',
|
||||
'type': 'static_library',
|
||||
'include_dirs': [ '.' ],
|
||||
'direct_dependent_settings': {
|
||||
'include_dirs': [ '.' ],
|
||||
},
|
||||
'defines': [ 'HTTP_PARSER_STRICT=0' ],
|
||||
'sources': [ './http_parser.c', ],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
# Compile as C++. http_parser.c is actually C99, but C++ is
|
||||
# close enough in this case.
|
||||
'CompileAs': 2, # compile as C++
|
||||
},
|
||||
},
|
||||
'conditions': [
|
||||
['OS=="win"', {
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
# Compile as C++. http_parser.c is actually C99, but C++ is
|
||||
# close enough in this case.
|
||||
'CompileAs': 2,
|
||||
},
|
||||
},
|
||||
}]
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
'target_name': 'test',
|
||||
'type': 'executable',
|
||||
|
||||
4
deps/http_parser/http_parser.h
vendored
4
deps/http_parser/http_parser.h
vendored
@@ -28,7 +28,7 @@ extern "C" {
|
||||
#define HTTP_PARSER_VERSION_MINOR 0
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(_WIN32) && !defined(__MINGW32__) && !defined(_MSC_VER)
|
||||
#if defined(_WIN32) && !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER<1600)
|
||||
typedef __int8 int8_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef __int16 int16_t;
|
||||
@@ -222,7 +222,7 @@ struct http_parser {
|
||||
* Should be checked when http_parser_execute() returns in addition to
|
||||
* error checking.
|
||||
*/
|
||||
char upgrade : 1;
|
||||
unsigned char upgrade : 1;
|
||||
|
||||
#if HTTP_PARSER_DEBUG
|
||||
uint32_t error_lineno;
|
||||
|
||||
114
deps/http_parser/test.c
vendored
114
deps/http_parser/test.c
vendored
@@ -680,6 +680,56 @@ const struct message requests[] =
|
||||
,.body= ""
|
||||
}
|
||||
|
||||
/* see https://github.com/ry/http-parser/issues/47 */
|
||||
#define EAT_TRAILING_CRLF_NO_CONNECTION_CLOSE 28
|
||||
, {.name = "eat CRLF between requests, no \"Connection: close\" header"
|
||||
,.raw= "POST / HTTP/1.1\r\n"
|
||||
"Host: www.example.com\r\n"
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n"
|
||||
"Content-Length: 4\r\n"
|
||||
"\r\n"
|
||||
"q=42\r\n" /* note the trailing CRLF */
|
||||
,.should_keep_alive= TRUE
|
||||
,.message_complete_on_eof= FALSE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.method= HTTP_POST
|
||||
,.request_url= "/"
|
||||
,.num_headers= 3
|
||||
,.upgrade= 0
|
||||
,.headers= { { "Host", "www.example.com" }
|
||||
, { "Content-Type", "application/x-www-form-urlencoded" }
|
||||
, { "Content-Length", "4" }
|
||||
}
|
||||
,.body= "q=42"
|
||||
}
|
||||
|
||||
/* see https://github.com/ry/http-parser/issues/47 */
|
||||
#define EAT_TRAILING_CRLF_WITH_CONNECTION_CLOSE 29
|
||||
, {.name = "eat CRLF between requests even if \"Connection: close\" is set"
|
||||
,.raw= "POST / HTTP/1.1\r\n"
|
||||
"Host: www.example.com\r\n"
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n"
|
||||
"Content-Length: 4\r\n"
|
||||
"Connection: close\r\n"
|
||||
"\r\n"
|
||||
"q=42\r\n" /* note the trailing CRLF */
|
||||
,.should_keep_alive= FALSE
|
||||
,.message_complete_on_eof= FALSE /* input buffer isn't empty when on_message_complete is called */
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.method= HTTP_POST
|
||||
,.request_url= "/"
|
||||
,.num_headers= 4
|
||||
,.upgrade= 0
|
||||
,.headers= { { "Host", "www.example.com" }
|
||||
, { "Content-Type", "application/x-www-form-urlencoded" }
|
||||
, { "Content-Length", "4" }
|
||||
, { "Connection", "close" }
|
||||
}
|
||||
,.body= "q=42"
|
||||
}
|
||||
|
||||
, {.name= NULL } /* sentinel */
|
||||
};
|
||||
|
||||
@@ -780,8 +830,8 @@ const struct message responses[] =
|
||||
, {.name= "404 no headers no body"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/1.1 404 Not Found\r\n\r\n"
|
||||
,.should_keep_alive= TRUE
|
||||
,.message_complete_on_eof= FALSE
|
||||
,.should_keep_alive= FALSE
|
||||
,.message_complete_on_eof= TRUE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 404
|
||||
@@ -795,8 +845,8 @@ const struct message responses[] =
|
||||
, {.name= "301 no response phrase"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/1.1 301\r\n\r\n"
|
||||
,.should_keep_alive = TRUE
|
||||
,.message_complete_on_eof= FALSE
|
||||
,.should_keep_alive = FALSE
|
||||
,.message_complete_on_eof= TRUE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 301
|
||||
@@ -1041,6 +1091,60 @@ const struct message responses[] =
|
||||
,.body= ""
|
||||
}
|
||||
|
||||
#define HTTP_VERSION_0_9 12
|
||||
/* Should handle HTTP/0.9 */
|
||||
, {.name= "http version 0.9"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/0.9 200 OK\r\n"
|
||||
"\r\n"
|
||||
,.should_keep_alive= FALSE
|
||||
,.message_complete_on_eof= TRUE
|
||||
,.http_major= 0
|
||||
,.http_minor= 9
|
||||
,.status_code= 200
|
||||
,.num_headers= 0
|
||||
,.headers=
|
||||
{}
|
||||
,.body= ""
|
||||
}
|
||||
|
||||
#define NO_CONTENT_LENGTH_NO_TRANSFER_ENCODING_RESPONSE 13
|
||||
/* The client should wait for the server's EOF. That is, when neither
|
||||
* content-length nor transfer-encoding is specified, the end of body
|
||||
* is specified by the EOF.
|
||||
*/
|
||||
, {.name= "neither content-length nor transfer-encoding response"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/1.1 200 OK\r\n"
|
||||
"Content-Type: text/plain\r\n"
|
||||
"\r\n"
|
||||
"hello world"
|
||||
,.should_keep_alive= FALSE
|
||||
,.message_complete_on_eof= TRUE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.num_headers= 1
|
||||
,.headers=
|
||||
{ { "Content-Type", "text/plain" }
|
||||
}
|
||||
,.body= "hello world"
|
||||
}
|
||||
|
||||
#define NO_HEADERS_NO_BODY_204 14
|
||||
, {.name= "204 no headers no body"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/1.1 204 No Content\r\n\r\n"
|
||||
,.should_keep_alive= TRUE
|
||||
,.message_complete_on_eof= FALSE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 204
|
||||
,.num_headers= 0
|
||||
,.headers= {}
|
||||
,.body_size= 0
|
||||
,.body= ""
|
||||
}
|
||||
|
||||
, {.name= NULL } /* sentinel */
|
||||
};
|
||||
@@ -1872,7 +1976,7 @@ main (void)
|
||||
|
||||
printf("response scan 1/2 ");
|
||||
test_scan( &responses[TRAILING_SPACE_ON_CHUNKED_BODY]
|
||||
, &responses[NO_HEADERS_NO_BODY_404]
|
||||
, &responses[NO_HEADERS_NO_BODY_204]
|
||||
, &responses[NO_REASON_PHRASE]
|
||||
);
|
||||
|
||||
|
||||
20
deps/npm/.npmignore
vendored
Normal file
20
deps/npm/.npmignore
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
*.swp
|
||||
test/bin
|
||||
test/output.log
|
||||
test/packages/*/node_modules
|
||||
test/packages/npm-test-depends-on-spark/which-spark.log
|
||||
test/packages/test-package/random-data.txt
|
||||
test/root
|
||||
node_modules/ronn
|
||||
node_modules/.bin
|
||||
npm-debug.log
|
||||
./npmrc
|
||||
.gitignore
|
||||
release/
|
||||
|
||||
# don't need these in the npm package.
|
||||
html/*.png
|
||||
|
||||
# don't ignore .npmignore files
|
||||
# these are used in some tests.
|
||||
!.npmignore
|
||||
4
deps/npm/.travis.yml
vendored
Normal file
4
deps/npm/.travis.yml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
language: node_js
|
||||
before_install: "make &>out || cat out; rm out"
|
||||
node_js:
|
||||
- 0.6
|
||||
68
deps/npm/AUTHORS
vendored
Normal file
68
deps/npm/AUTHORS
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
# Authors sorted by whether or not they're me
|
||||
Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)
|
||||
Steve Steiner <ssteinerX@gmail.com> (http://websaucesoftware.com/blog/)
|
||||
Mikeal Rogers <mikeal.rogers@gmail.com> (http://www.mikealrogers.com/)
|
||||
Aaron Blohowiak <aaron.blohowiak@gmail.com> (http://aaronblohowiak.com/)
|
||||
Martyn Smith <martyn@dollyfish.net.nz> (http://dollyfish.net.nz/)
|
||||
Mathias Pettersson <mape@mape.me> (http://mape.me/)
|
||||
Brian Hammond <brian@fictorial.com> (http://fictorial.com/)
|
||||
Charlie Robbins <charlie.robbins@gmail.com> (http://www.charlierobbins.com/)
|
||||
Francisco Treacy <francisco.treacy@gmail.com> (http://franciscotreacy.com/)
|
||||
Cliffano Subagio <cliffano@gmail.com> (http://blog.cliffano.com/)
|
||||
Christian Eager <christian.eager@nokia.com> (http://perpenduum.com)
|
||||
Dav Glass <davglass@gmail.com> (http://blog.davglass.com)
|
||||
Alex K. Wolfe <alexkwolfe@gmail.com>
|
||||
James Sanders <jimmyjazz14@gmail.com> (http://james-sanders.com/)
|
||||
Reid Burke <me@reidburke.com> (http://reidburke.com/)
|
||||
Arlo Breault <arlolra@gmail.com> (http://thoughtherder.com/)
|
||||
Timo Derstappen <teemow@gmail.com> (http://teemow.com)
|
||||
Bradley Meck <bradley.meck@gmail.com>
|
||||
Bart Teeuwisse <bart.teeuwisse@thecodemill.biz> (http://thecodemill.biz/)
|
||||
Ben Noordhuis <info@bnoordhuis.nl> (http://bnoordhuis.nl/)
|
||||
Tor Valamo <tor.valamo@gmail.com> (http://www.magnimedia.no/)
|
||||
Whyme.Lyu <5longluna@gmail.com> (http://whyme.kuantu.com/)
|
||||
Olivier Melcher <olivier.melcher@gmail.com>
|
||||
Tomaž Muraus <kami@k5-storitve.net> (http://www.tomaz-muraus.info)
|
||||
Evan Meagher <evan.meagher@gmail.com> (http://evanmeagher.net/)
|
||||
Orlando Vazquez <ovazquez@gmail.com> (http://2wycked.net/)
|
||||
George Miroshnykov <gmiroshnykov@lohika.com>
|
||||
Geoff Flarity (http://ca.linkedin.com/pub/geoff-flarity/a/536/43a)
|
||||
Pete Kruckenberg <pete@kruckenberg.com>
|
||||
Laurie Harper <laurie@holoweb.net> (http://laurie.holoweb.net/)
|
||||
Chris Wong <chris@chriswongstudio.com>
|
||||
Max Goodman <c@chromacode.com> (http://chromacode.com/)
|
||||
Scott Bronson <brons_github@rinspin.com>
|
||||
Federico Romero <federomero@gmail.com>
|
||||
Visnu Pitiyanuvath <visnupx@gmail.com> (http://visnup.com)
|
||||
Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com/)
|
||||
Mark Cahill <mark@tiemonster.info> (http://www.tiemonster.info/)
|
||||
Zearin <zearin@gonk.net>
|
||||
Iain Sproat <iainsproat@gmail.com>
|
||||
Trent Mick <trentm@gmail.com> (http://trentm.com/)
|
||||
Felix Geisendörfer <felix@debuggable.com> (http://www.debuggable.com/)
|
||||
Conny Brunnkvist <cbrunnkvist@gmail.com> (http://twitter.com/connyb)
|
||||
Will Elwood <w.elwood08@gmail.com> (https://github.com/welwood08)
|
||||
Oleg Efimov <efimovov@gmail.com> (http://sannis.ru)
|
||||
Martin Cooper <mfncooper@gmail.com>
|
||||
Jameson Little <t.jameson.little@gmail.com>
|
||||
cspotcode <cspotcode@gmail.com>
|
||||
Maciej Małecki <maciej.malecki@notimplemented.org>
|
||||
Stephen Sugden <glurgle@gmail.com>
|
||||
Gautham Pai <buzypi@gmail.com>
|
||||
David Trejo <david.daniel.trejo@gmail.com>
|
||||
Paul Vorbach <paul@vorb.de>
|
||||
George Ornbo <george@shapeshed.com>
|
||||
Tim Oxley <secoif@gmail.com>
|
||||
Tyler Green <tyler.green2@gmail.com>
|
||||
atomizer <danila.gerasimov@gmail.com>
|
||||
Rod Vagg <rod@vagg.org>
|
||||
Christian Howe <coderarity@gmail.com>
|
||||
Andrew Lunny <alunny@gmail.com>
|
||||
Henrik Hodne <dvyjones@binaryhex.com>
|
||||
Adam Blackburn <regality@gmail.com>
|
||||
Kris Windham <kriswindham@gmail.com>
|
||||
Jens Grunert <jens.grunert@gmail.com>
|
||||
Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
|
||||
Dalmais Maxence <github@maxired.fr>
|
||||
Marcus Ekwall <marcus.ekwall@gmail.com>
|
||||
Aaron Stacy <aaron.r.stacy@gmail.com>
|
||||
59
deps/npm/LICENSE
vendored
Normal file
59
deps/npm/LICENSE
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
Copyright 2009-2012, Isaac Z. Schlueter (the "Original Author")
|
||||
All rights reserved.
|
||||
|
||||
MIT +no-false-attribs License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
Distributions of all or part of the Software intended to be used
|
||||
by the recipients as they would use the unmodified Software,
|
||||
containing modifications that substantially alter, remove, or
|
||||
disable functionality of the Software, outside of the documented
|
||||
configuration mechanisms provided by the Software, shall be
|
||||
modified such that the Original Author's bug reporting email
|
||||
addresses and urls are either replaced with the contact information
|
||||
of the parties responsible for the changes, or removed entirely.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Except where noted, this license applies to any and all software
|
||||
programs and associated documentation files created by the
|
||||
Original Author, when distributed with the Software.
|
||||
|
||||
"Node.js" and "node" trademark Joyent, Inc. npm is not officially
|
||||
part of the Node.js project, and is neither owned by nor
|
||||
officially affiliated with Joyent, Inc.
|
||||
|
||||
Packages published in the npm registry are not part of npm
|
||||
itself, are the sole property of their respective maintainers,
|
||||
and are not covered by this license.
|
||||
|
||||
"npm Logo" created by Mathias Pettersson and Brian Hammond,
|
||||
used with permission.
|
||||
|
||||
This program uses "node-uuid", Copyright (c) 2010 Robert Kieffer,
|
||||
according to the terms of the MIT license.
|
||||
|
||||
This program uses "request", Copyright (c) 2011 Mikeal Rogers,
|
||||
according to the terms of the Apache license.
|
||||
|
||||
This program uses "mkdirp", Copyright (c) 2010 James Halliday,
|
||||
according to the terms of the MIT/X11 license.
|
||||
136
deps/npm/Makefile
vendored
Normal file
136
deps/npm/Makefile
vendored
Normal file
@@ -0,0 +1,136 @@
|
||||
SHELL = bash
|
||||
|
||||
markdowns = $(shell find doc -name '*.md' | grep -v 'index') README.md
|
||||
|
||||
cli_mandocs = $(shell find doc/cli -name '*.md' \
|
||||
|sed 's|.md|.1|g' \
|
||||
|sed 's|doc/cli/|man/man1/|g' ) \
|
||||
man/man1/README.1 \
|
||||
man/man1/index.1
|
||||
|
||||
api_mandocs = $(shell find doc/api -name '*.md' \
|
||||
|sed 's|.md|.3|g' \
|
||||
|sed 's|doc/api/|man/man3/|g' )
|
||||
|
||||
cli_htmldocs = $(shell find doc/cli -name '*.md' \
|
||||
|grep -v 'index.md' \
|
||||
|sed 's|.md|.html|g' \
|
||||
|sed 's|doc/cli/|html/doc/|g' ) \
|
||||
html/doc/README.html \
|
||||
html/doc/index.html
|
||||
|
||||
api_htmldocs = $(shell find doc/api -name '*.md' \
|
||||
|sed 's|.md|.html|g' \
|
||||
|sed 's|doc/api/|html/api/|g' )
|
||||
|
||||
mandocs = $(api_mandocs) $(cli_mandocs)
|
||||
|
||||
htmldocs = $(api_htmldocs) $(cli_htmldocs)
|
||||
|
||||
all: doc
|
||||
|
||||
latest:
|
||||
@echo "Installing latest published npm"
|
||||
@echo "Use 'make install' or 'make link' to install the code"
|
||||
@echo "in this folder that you're looking at right now."
|
||||
node cli.js install -g -f npm
|
||||
|
||||
install: all
|
||||
node cli.js install -g -f
|
||||
|
||||
# backwards compat
|
||||
dev: install
|
||||
|
||||
link: uninstall
|
||||
node cli.js link -f
|
||||
|
||||
clean: doc-clean uninstall
|
||||
rm npmrc
|
||||
node cli.js cache clean
|
||||
|
||||
uninstall:
|
||||
node cli.js rm npm -g -f
|
||||
|
||||
doc: $(mandocs) $(htmldocs)
|
||||
|
||||
docclean: doc-clean
|
||||
doc-clean:
|
||||
rm -rf \
|
||||
node_modules/ronn \
|
||||
node_modules/.bin/ronn \
|
||||
.building_ronn \
|
||||
doc/cli/index.md \
|
||||
doc/api/index.md \
|
||||
$(api_mandocs) \
|
||||
$(cli_mandocs) \
|
||||
$(api_htmldocs) \
|
||||
$(cli_htmldocs) \
|
||||
&>/dev/null || true
|
||||
|
||||
# use `npm install ronn` for this to work.
|
||||
man/man1/README.1: README.md scripts/doc-build.sh package.json
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
man/man1/%.1: doc/cli/%.md scripts/doc-build.sh package.json
|
||||
@[ -d man/man1 ] || mkdir -p man/man1
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
man/man3/%.3: doc/api/%.md scripts/doc-build.sh package.json
|
||||
@[ -d man/man3 ] || mkdir -p man/man3
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
html/doc/README.html: README.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
html/doc/%.html: doc/cli/%.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
html/api/%.html: doc/api/%.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
doc/cli/index.md: $(markdowns) scripts/index-build.js scripts/doc-build.sh package.json
|
||||
node scripts/index-build.js > $@
|
||||
|
||||
node_modules/.bin/ronn:
|
||||
node cli.js install https://github.com/isaacs/ronnjs/tarball/master
|
||||
|
||||
doc: man
|
||||
|
||||
man: $(cli_docs) $(api_docs)
|
||||
|
||||
test:
|
||||
node cli.js test
|
||||
|
||||
version: link
|
||||
git add package.json &&\
|
||||
git ci -m v$(shell npm -v)
|
||||
|
||||
publish: link doc
|
||||
@git tag -d v$(shell npm -v) || true
|
||||
@git push origin :v$(shell npm -v) || true
|
||||
@npm unpublish npm@$(shell npm -v) || true
|
||||
git clean -fd
|
||||
git tag -s -m v$(shell npm -v) v$(shell npm -v) &&\
|
||||
git push origin --tags &&\
|
||||
npm publish &&\
|
||||
npm tag npm@$(shell npm -v) $(shell npm -v | awk -F. '{print $$1 "." $$2}') &&\
|
||||
make doc-publish &&\
|
||||
make zip-publish
|
||||
|
||||
docpublish: doc-publish
|
||||
doc-publish: doc
|
||||
rsync -vazu --stats --no-implied-dirs --delete html/doc/ npmjs.org:/var/www/npmjs.org/public/doc
|
||||
rsync -vazu --stats --no-implied-dirs --delete html/api/ npmjs.org:/var/www/npmjs.org/public/api
|
||||
rsync -vazu --stats --no-implied-dirs --delete html/webfonts/ npmjs.org:/var/www/npmjs.org/public/webfonts
|
||||
scp html/style.css npmjs.org:/var/www/npmjs.org/public/
|
||||
|
||||
zip-publish: release
|
||||
scp release/* npmjs.org:/var/www/npmjs.org/public/dist/
|
||||
|
||||
release:
|
||||
@bash scripts/release.sh
|
||||
|
||||
sandwich:
|
||||
@[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || echo "make it yourself"
|
||||
|
||||
.PHONY: all latest install dev link doc clean uninstall test man doc-publish doc-clean docclean docpublish release zip-publish
|
||||
266
deps/npm/README.md
vendored
Normal file
266
deps/npm/README.md
vendored
Normal file
@@ -0,0 +1,266 @@
|
||||
npm(1) -- node package manager
|
||||
==============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
This is just enough info to get you up and running.
|
||||
|
||||
Much more info available via `npm help` once it's installed.
|
||||
|
||||
## IMPORTANT
|
||||
|
||||
**You need node v0.6 or higher to run this program.**
|
||||
|
||||
To install an old **and unsupported** version of npm that works on node 0.3
|
||||
and prior, clone the git repo and dig through the old tags and branches.
|
||||
|
||||
## Super Easy Install
|
||||
|
||||
npm comes with node now.
|
||||
|
||||
### Windows Computers
|
||||
|
||||
Get the MSI. npm is in it.
|
||||
|
||||
### Apple Macintosh Computers
|
||||
|
||||
Get the pkg. npm is in it.
|
||||
|
||||
### Other Sorts of Unices
|
||||
|
||||
Run `make install`. npm will be installed with node.
|
||||
|
||||
If you want a more fancy pants install (a different version, customized
|
||||
paths, etc.) then read on.
|
||||
|
||||
## Fancy Install (Unix)
|
||||
|
||||
To install npm with one command, do this:
|
||||
|
||||
curl http://npmjs.org/install.sh | sh
|
||||
|
||||
To skip the npm 0.x cleanup, do this:
|
||||
|
||||
curl http://npmjs.org/install.sh | clean=no sh
|
||||
|
||||
To say "yes" to the 0.x cleanup, but skip the prompt:
|
||||
|
||||
curl http://npmjs.org/install.sh | clean=yes sh
|
||||
|
||||
If you get permission errors, you'll need to **run** the script as root.
|
||||
(Note, just putting `sudo` in front of the `curl` will **fetch** the script
|
||||
as root.)
|
||||
|
||||
### Slightly Fancier
|
||||
|
||||
You can set any npm configuration params with that script:
|
||||
|
||||
curl http://npmjs.org/install.sh | npm_config_prefix=/some/path sh
|
||||
|
||||
Or, you can run it in uber-debuggery mode:
|
||||
|
||||
curl http://npmjs.org/install.sh | npm_debug=1 sh
|
||||
|
||||
### Even Fancier
|
||||
|
||||
Get the code with git. Use `make` to build the docs and do other stuff.
|
||||
If you plan on hacking on npm, `make link` is your friend.
|
||||
|
||||
If you've got the npm source code, you can also semi-permanently set
|
||||
arbitrary config keys using the `./configure --key=val ...`, and then
|
||||
run npm commands by doing `node cli.js <cmd> <args>`. (This is helpful
|
||||
for testing, or running stuff without actually installing npm itself.)
|
||||
|
||||
## Fancy Windows Install
|
||||
|
||||
You can download a zip file from <http://npmjs.org/dist/>, and unpack it
|
||||
in the same folder where node.exe lives.
|
||||
|
||||
If that's not fancy enough for you, then you can fetch the code with
|
||||
git, and mess with it directly.
|
||||
|
||||
## Installing on Cygwin
|
||||
|
||||
No.
|
||||
|
||||
## Dev Install
|
||||
|
||||
To install the latest **unstable** development version from git:
|
||||
|
||||
git clone https://github.com/isaacs/npm.git
|
||||
cd npm
|
||||
git submodule update --init --recursive
|
||||
sudo make install # (or: `node cli.js install -gf`)
|
||||
|
||||
If you're sitting in the code folder reading this document in your
|
||||
terminal, then you've already got the code. Just do:
|
||||
|
||||
git submodule update --init --recursive
|
||||
sudo make install
|
||||
|
||||
and npm will install itself.
|
||||
|
||||
Note that github tarballs **do not contain submodules**, so
|
||||
those won't work. You'll have to also fetch the appropriate submodules
|
||||
listed in the .gitmodules file.
|
||||
|
||||
## Permissions when Using npm to Install Other Stuff
|
||||
|
||||
**tl;dr**
|
||||
|
||||
* Use `sudo` for greater safety. Or don't, if you prefer not to.
|
||||
* npm will downgrade permissions if it's root before running any build
|
||||
scripts that package authors specified.
|
||||
|
||||
### More details...
|
||||
|
||||
As of version 0.3, it is recommended to run npm as root.
|
||||
This allows npm to change the user identifier to the `nobody` user prior
|
||||
to running any package build or test commands.
|
||||
|
||||
If you are not the root user, or if you are on a platform that does not
|
||||
support uid switching, then npm will not attempt to change the userid.
|
||||
|
||||
If you would like to ensure that npm **always** runs scripts as the
|
||||
"nobody" user, and have it fail if it cannot downgrade permissions, then
|
||||
set the following configuration param:
|
||||
|
||||
npm config set unsafe-perm false
|
||||
|
||||
This will prevent running in unsafe mode, even as non-root users.
|
||||
|
||||
## Uninstalling
|
||||
|
||||
So sad to see you go.
|
||||
|
||||
sudo npm uninstall npm -g
|
||||
|
||||
Or, if that fails,
|
||||
|
||||
sudo make uninstall
|
||||
|
||||
## More Severe Uninstalling
|
||||
|
||||
Usually, the above instructions are sufficient. That will remove
|
||||
npm, but leave behind anything you've installed.
|
||||
|
||||
If you would like to remove all the packages that you have installed,
|
||||
then you can use the `npm ls` command to find them, and then `npm rm` to
|
||||
remove them.
|
||||
|
||||
To remove cruft left behind by npm 0.x, you can use the included
|
||||
`clean-old.sh` script file. You can run it conveniently like this:
|
||||
|
||||
npm explore npm -g -- sh scripts/clean-old.sh
|
||||
|
||||
npm uses two configuration files, one for per-user configs, and another
|
||||
for global (every-user) configs. You can view them by doing:
|
||||
|
||||
npm config get userconfig # defaults to ~/.npmrc
|
||||
npm config get globalconfig # defaults to /usr/local/etc/npmrc
|
||||
|
||||
Uninstalling npm does not remove configuration files by default. You
|
||||
must remove them yourself manually if you want them gone. Note that
|
||||
this means that future npm installs will not remember the settings that
|
||||
you have chosen.
|
||||
|
||||
## Using npm Programmatically
|
||||
|
||||
If you would like to use npm programmatically, you can do that.
|
||||
It's not very well documented, but it *is* rather simple.
|
||||
|
||||
var npm = require("npm")
|
||||
npm.load(myConfigObject, function (er) {
|
||||
if (er) return handlError(er)
|
||||
npm.commands.install(["some", "args"], function (er, data) {
|
||||
if (er) return commandFailed(er)
|
||||
// command succeeded, and data might have some info
|
||||
})
|
||||
npm.on("log", function (message) { .... })
|
||||
})
|
||||
|
||||
The `load` function takes an object hash of the command-line configs.
|
||||
The various `npm.commands.<cmd>` functions take an **array** of
|
||||
positional argument **strings**. The last argument to any
|
||||
`npm.commands.<cmd>` function is a callback. Some commands take other
|
||||
optional arguments. Read the source.
|
||||
|
||||
You cannot set configs individually for any single npm function at this
|
||||
time. Since `npm` is a singleton, any call to `npm.config.set` will
|
||||
change the value for *all* npm commands in that process.
|
||||
|
||||
See `./bin/npm-cli.js` for an example of pulling config values off of the
|
||||
command line arguments using nopt. You may also want to check out `npm
|
||||
help config` to learn about all the options you can set there.
|
||||
|
||||
## More Docs
|
||||
|
||||
Check out the [docs](http://npmjs.org/doc/),
|
||||
especially the [faq](http://npmjs.org/doc/faq.html).
|
||||
|
||||
You can use the `npm help` command to read any of them.
|
||||
|
||||
If you're a developer, and you want to use npm to publish your program,
|
||||
you should
|
||||
[read this](http://npmjs.org/doc/developers.html)
|
||||
|
||||
## Legal Stuff
|
||||
|
||||
"npm" and "the npm registry" are owned by Isaac Z. Schlueter. All
|
||||
rights not explicitly granted in the MIT license are reserved. See the
|
||||
included LICENSE file for more details.
|
||||
|
||||
"Node.js" and "node" are trademarks owned by Joyent, Inc. npm is not
|
||||
officially part of the Node.js project, and is neither owned by nor
|
||||
officially affiliated with Joyent, Inc.
|
||||
|
||||
The packages in the npm registry are not part of npm itself, and are the
|
||||
sole property of their respective maintainers. While every effort is
|
||||
made to ensure accountability, there is absolutely no guarantee,
|
||||
warrantee, or assertion made as to the quality, fitness for a specific
|
||||
purpose, or lack of malice in any given npm package. Modules
|
||||
published on the npm registry are not affiliated with or endorsed by
|
||||
Joyent, Inc., Isaac Z. Schlueter, Ryan Dahl, or the Node.js project.
|
||||
|
||||
If you have a complaint about a package in the npm registry, and cannot
|
||||
resolve it with the package owner, please express your concerns to
|
||||
Isaac Z. Schlueter at <i@izs.me>.
|
||||
|
||||
### In plain english
|
||||
|
||||
This is mine; not my employer's, not Node's, not Joyent's, not Ryan
|
||||
Dahl's.
|
||||
|
||||
If you publish something, it's yours, and you are solely accountable
|
||||
for it. Not me, not Node, not Joyent, not Ryan Dahl.
|
||||
|
||||
If other people publish something, it's theirs. Not mine, not Node's,
|
||||
not Joyent's, not Ryan Dahl's.
|
||||
|
||||
Yes, you can publish something evil. It will be removed promptly if
|
||||
reported, and we'll lose respect for you. But there is no vetting
|
||||
process for published modules.
|
||||
|
||||
If this concerns you, inspect the source before using packages.
|
||||
|
||||
## BUGS
|
||||
|
||||
When you find issues, please report them:
|
||||
|
||||
* web:
|
||||
<http://github.com/isaacs/npm/issues>
|
||||
* email:
|
||||
<npm-@googlegroups.com>
|
||||
|
||||
Be sure to include *all* of the output from the npm command that didn't work
|
||||
as expected. The `npm-debug.log` file is also helpful to provide.
|
||||
|
||||
You can also look for isaacs in #node.js on irc://irc.freenode.net. He
|
||||
will no doubt tell you to put the output in a gist or email.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm(1)
|
||||
* npm-faq(1)
|
||||
* npm-help(1)
|
||||
* npm-index(1)
|
||||
2
deps/npm/bin/node-gyp-bin/node-gyp
vendored
Executable file
2
deps/npm/bin/node-gyp-bin/node-gyp
vendored
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env sh
|
||||
node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@"
|
||||
1
deps/npm/bin/node-gyp-bin/node-gyp.cmd
vendored
Executable file
1
deps/npm/bin/node-gyp-bin/node-gyp.cmd
vendored
Executable file
@@ -0,0 +1 @@
|
||||
node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %*
|
||||
6
deps/npm/bin/npm
vendored
Executable file
6
deps/npm/bin/npm
vendored
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
if [ -x "`dirname "$0"`/node.exe" ]; then
|
||||
"`dirname "$0"`/node.exe" "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
|
||||
else
|
||||
node "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
|
||||
fi
|
||||
87
deps/npm/bin/npm-cli.js
vendored
Executable file
87
deps/npm/bin/npm-cli.js
vendored
Executable file
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/env node
|
||||
;(function () { // wrapper in case we're in module_context mode
|
||||
|
||||
// windows: running "npm blah" in this folder will invoke WSH, not node.
|
||||
if (typeof WScript !== "undefined") {
|
||||
WScript.echo("npm does not work when run\n"
|
||||
+"with the Windows Scripting Host\n\n"
|
||||
+"'cd' to a different directory,\n"
|
||||
+"or type 'npm.cmd <args>',\n"
|
||||
+"or type 'node npm <args>'.")
|
||||
WScript.quit(1)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
process.title = "npm"
|
||||
|
||||
var log = require("../lib/utils/log.js")
|
||||
log.waitForConfig()
|
||||
log.info("ok", "it worked if it ends with")
|
||||
|
||||
var fs = require("graceful-fs")
|
||||
, path = require("path")
|
||||
, npm = require("../lib/npm.js")
|
||||
, ini = require("../lib/utils/ini.js")
|
||||
, errorHandler = require("../lib/utils/error-handler.js")
|
||||
|
||||
, configDefs = require("../lib/utils/config-defs.js")
|
||||
, shorthands = configDefs.shorthands
|
||||
, types = configDefs.types
|
||||
, nopt = require("nopt")
|
||||
|
||||
// if npm is called as "npmg" or "npm_g", then
|
||||
// run in global mode.
|
||||
if (path.basename(process.argv[1]).slice(-1) === "g") {
|
||||
process.argv.splice(1, 1, "npm", "-g")
|
||||
}
|
||||
|
||||
log.verbose(process.argv, "cli")
|
||||
|
||||
var conf = nopt(types, shorthands)
|
||||
npm.argv = conf.argv.remain
|
||||
if (npm.deref(npm.argv[0])) npm.command = npm.argv.shift()
|
||||
else conf.usage = true
|
||||
|
||||
|
||||
if (conf.version) {
|
||||
console.log(npm.version)
|
||||
return
|
||||
}
|
||||
|
||||
if (conf.versions) {
|
||||
var v = process.versions
|
||||
v.npm = npm.version
|
||||
console.log(v)
|
||||
return
|
||||
}
|
||||
|
||||
log.info("npm@"+npm.version, "using")
|
||||
log.info("node@"+process.version, "using")
|
||||
|
||||
// make sure that this version of node works with this version of npm.
|
||||
var semver = require("semver")
|
||||
, nodeVer = process.version
|
||||
, reqVer = npm.nodeVersionRequired
|
||||
if (reqVer && !semver.satisfies(nodeVer, reqVer)) {
|
||||
return errorHandler(new Error(
|
||||
"npm doesn't work with node " + nodeVer
|
||||
+ "\nRequired: node@" + reqVer), true)
|
||||
}
|
||||
|
||||
process.on("uncaughtException", errorHandler)
|
||||
|
||||
if (conf.usage && npm.command !== "help") {
|
||||
npm.argv.unshift(npm.command)
|
||||
npm.command = "help"
|
||||
}
|
||||
|
||||
// now actually fire up npm and run the command.
|
||||
// this is how to use npm programmatically:
|
||||
conf._exit = true
|
||||
npm.load(conf, function (er) {
|
||||
if (er) return errorHandler(er)
|
||||
npm.commands[npm.command](npm.argv, errorHandler)
|
||||
})
|
||||
|
||||
})()
|
||||
6
deps/npm/bin/npm.cmd
vendored
Normal file
6
deps/npm/bin/npm.cmd
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
:: Created by npm, please don't edit manually.
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
) ELSE (
|
||||
node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
)
|
||||
22
deps/npm/bin/read-package-json.js
vendored
Executable file
22
deps/npm/bin/read-package-json.js
vendored
Executable file
@@ -0,0 +1,22 @@
|
||||
var argv = process.argv
|
||||
if (argv.length < 3) {
|
||||
console.error("Usage: read-package.json <file> [<fields> ...]")
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
var fs = require("fs")
|
||||
, file = argv[2]
|
||||
, readJson = require("../lib/utils/read-json")
|
||||
|
||||
readJson(file, function (er, data) {
|
||||
if (er) throw er
|
||||
if (argv.length === 3) console.log(data)
|
||||
else argv.slice(3).forEach(function (field) {
|
||||
field = field.split(".")
|
||||
var val = data
|
||||
field.forEach(function (f) {
|
||||
val = val[f]
|
||||
})
|
||||
console.log(val)
|
||||
})
|
||||
})
|
||||
2
deps/npm/cli.js
vendored
Executable file
2
deps/npm/cli.js
vendored
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env node
|
||||
require("./bin/npm-cli.js")
|
||||
33
deps/npm/configure
vendored
Executable file
33
deps/npm/configure
vendored
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
# set configurations that will be "sticky" on this system,
|
||||
# surviving npm self-updates.
|
||||
|
||||
CONFIGS=()
|
||||
i=0
|
||||
|
||||
# get the location of this file.
|
||||
unset CDPATH
|
||||
CONFFILE=$(cd $(dirname "$0"); pwd -P)/npmrc
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
conf="$1"
|
||||
case $conf in
|
||||
--help)
|
||||
echo "./configure --param=value ..."
|
||||
exit 0
|
||||
;;
|
||||
--*)
|
||||
CONFIGS[$i]="${conf:2}"
|
||||
;;
|
||||
*)
|
||||
CONFIGS[$i]="$conf"
|
||||
;;
|
||||
esac
|
||||
let i++
|
||||
shift
|
||||
done
|
||||
|
||||
for c in "${CONFIGS[@]}"; do
|
||||
echo "$c" >> "$CONFFILE"
|
||||
done
|
||||
13
deps/npm/doc/api/bin.md
vendored
Normal file
13
deps/npm/doc/api/bin.md
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
npm-bin(3) -- Display npm bin folder
|
||||
====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.bin(args, cb)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Print the folder where npm will install executables.
|
||||
|
||||
This function should not be used programmatically. Instead, just refer
|
||||
to the `npm.bin` member.
|
||||
19
deps/npm/doc/api/bugs.md
vendored
Normal file
19
deps/npm/doc/api/bugs.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
npm-bugs(3) -- Bugs for a package in a web browser maybe
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.bugs(package, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command tries to guess at the likely location of a package's
|
||||
bug tracker URL, and then tries to open it using the `--browser`
|
||||
config param.
|
||||
|
||||
Like other commands, the first parameter is an array. This command only
|
||||
uses the first element, which is expected to be a package name with an
|
||||
optional version number.
|
||||
|
||||
This command will launch a browser, so this command may not be the most
|
||||
friendly for programmatic use.
|
||||
22
deps/npm/doc/api/commands.md
vendored
Normal file
22
deps/npm/doc/api/commands.md
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
npm-commands(3) -- npm commands
|
||||
===============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands[<command>](args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
npm comes with a full set of commands, and each of the commands takes a
|
||||
similar set of arguments.
|
||||
|
||||
In general, all commands on the command object take an **array** of positional
|
||||
argument **strings**. The last argument to any function is a callback. Some
|
||||
commands are special and take other optional arguments.
|
||||
|
||||
All commands have their own man page. See `man npm-<command>` for command-line
|
||||
usage, or `man 3 npm-<command>` for programmatic usage.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-index(1)
|
||||
45
deps/npm/doc/api/config.md
vendored
Normal file
45
deps/npm/doc/api/config.md
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
npm-config(3) -- Manage the npm configuration files
|
||||
===================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.config(args, callback)
|
||||
var val = npm.config.get(key)
|
||||
npm.config.set(key, val)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This function acts much the same way as the command-line version. The first
|
||||
element in the array tells config what to do. Possible values are:
|
||||
|
||||
* `set`
|
||||
|
||||
Sets a config parameter. The second element in `args` is interpreted as the
|
||||
key, and the third element is interpreted as the value.
|
||||
|
||||
* `get`
|
||||
|
||||
Gets the value of a config parameter. The second element in `args` is the
|
||||
key to get the value of.
|
||||
|
||||
* `delete` (`rm` or `del`)
|
||||
|
||||
Deletes a parameter from the config. The second element in `args` is the
|
||||
key to delete.
|
||||
|
||||
* `list` (`ls`)
|
||||
|
||||
Show all configs that aren't secret. No parameters necessary.
|
||||
|
||||
* `edit`:
|
||||
|
||||
Opens the config file in the default editor. This command isn't very useful
|
||||
programmatically, but it is made available.
|
||||
|
||||
To programmatically access npm configuration settings, or set them for
|
||||
the duration of a program, use the `npm.config.set` and `npm.config.get`
|
||||
functions instead.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm(3)
|
||||
32
deps/npm/doc/api/deprecate.md
vendored
Normal file
32
deps/npm/doc/api/deprecate.md
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
npm-deprecate(3) -- Deprecate a version of a package
|
||||
====================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.deprecate(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command will update the npm registry entry for a package, providing
|
||||
a deprecation warning to all who attempt to install it.
|
||||
|
||||
The 'args' parameter must have exactly two elements:
|
||||
|
||||
* `package[@version]`
|
||||
|
||||
The `version` portion is optional, and may be either a range, or a
|
||||
specific version, or a tag.
|
||||
|
||||
* `message`
|
||||
|
||||
The warning message that will be printed whenever a user attempts to
|
||||
install the package.
|
||||
|
||||
Note that you must be the package owner to deprecate something. See the
|
||||
`owner` and `adduser` help topics.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-publish(3)
|
||||
* npm-unpublish(3)
|
||||
* npm-registry(1)
|
||||
19
deps/npm/doc/api/docs.md
vendored
Normal file
19
deps/npm/doc/api/docs.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
npm-docs(3) -- Docs for a package in a web browser maybe
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.docs(package, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command tries to guess at the likely location of a package's
|
||||
documentation URL, and then tries to open it using the `--browser`
|
||||
config param.
|
||||
|
||||
Like other commands, the first parameter is an array. This command only
|
||||
uses the first element, which is expected to be a package name with an
|
||||
optional version number.
|
||||
|
||||
This command will launch a browser, so this command may not be the most
|
||||
friendly for programmatic use.
|
||||
24
deps/npm/doc/api/edit.md
vendored
Normal file
24
deps/npm/doc/api/edit.md
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
npm-edit(3) -- Edit an installed package
|
||||
========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.edit(package, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Opens the package folder in the default editor (or whatever you've
|
||||
configured as the npm `editor` config -- see `npm help config`.)
|
||||
|
||||
After it has been edited, the package is rebuilt so as to pick up any
|
||||
changes in compiled packages.
|
||||
|
||||
For instance, you can do `npm install connect` to install connect
|
||||
into your package, and then `npm.commands.edit(["connect"], callback)`
|
||||
to make a few changes to your locally installed copy.
|
||||
|
||||
The first parameter is a string array with a single element, the package
|
||||
to open. The package can optionally have a version number attached.
|
||||
|
||||
Since this command opens an editor in a new process, be careful about where
|
||||
and how this is used.
|
||||
18
deps/npm/doc/api/explore.md
vendored
Normal file
18
deps/npm/doc/api/explore.md
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
npm-explore(3) -- Browse an installed package
|
||||
=============================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.explore(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Spawn a subshell in the directory of the installed package specified.
|
||||
|
||||
If a command is specified, then it is run in the subshell, which then
|
||||
immediately terminates.
|
||||
|
||||
Note that the package is *not* automatically rebuilt afterwards, so be
|
||||
sure to use `npm rebuild <pkg>` if you make any changes.
|
||||
|
||||
The first element in the 'args' parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.
|
||||
30
deps/npm/doc/api/help-search.md
vendored
Normal file
30
deps/npm/doc/api/help-search.md
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
npm-help-search(3) -- Search the help pages
|
||||
===========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.helpSearch(args, [silent,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command is rarely useful, but it exists in the rare case that it is.
|
||||
|
||||
This command takes an array of search terms and returns the help pages that
|
||||
match in order of best match.
|
||||
|
||||
If there is only one match, then npm displays that help section. If there
|
||||
are multiple results, the results are printed to the screen formatted and the
|
||||
array of results is returned. Each result is an object with these properties:
|
||||
|
||||
* hits:
|
||||
A map of args to number of hits on that arg. For example, {"npm": 3}
|
||||
* found:
|
||||
Total number of unique args that matched.
|
||||
* totalHits:
|
||||
Total number of hits.
|
||||
* lines:
|
||||
An array of all matching lines (and some adjacent lines).
|
||||
* file:
|
||||
Name of the file that matched
|
||||
|
||||
The silent parameter is not neccessary not used, but it may in the future.
|
||||
29
deps/npm/doc/api/init.md
vendored
Normal file
29
deps/npm/doc/api/init.md
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
npm init(3) -- Interactively create a package.json file
|
||||
=======================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.init(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This will ask you a bunch of questions, and then write a package.json for you.
|
||||
|
||||
It attempts to make reasonable guesses about what you want things to be set to,
|
||||
and then writes a package.json file with the options you've selected.
|
||||
|
||||
If you already have a package.json file, it'll read that first, and default to
|
||||
the options in there.
|
||||
|
||||
It is strictly additive, so it does not delete options from your package.json
|
||||
without a really good reason to do so.
|
||||
|
||||
Since this function expects to be run on the command-line, it doesn't work very
|
||||
well as a programmatically. The best option is to roll your own, and since
|
||||
JavaScript makes it stupid simple to output formatted JSON, that is the
|
||||
preferred method. If you're sure you want to handle command-line prompting,
|
||||
then go ahead and use this programmatically.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
npm-json(1)
|
||||
19
deps/npm/doc/api/install.md
vendored
Normal file
19
deps/npm/doc/api/install.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
npm-install(3) -- install a package programmatically
|
||||
====================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.install([where,] packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This acts much the same ways as installing on the command-line.
|
||||
|
||||
The 'where' parameter is optional and only used internally, and it specifies
|
||||
where the packages should be installed to.
|
||||
|
||||
The 'packages' parameter is an array of strings. Each element in the array is
|
||||
the name of a package to be installed.
|
||||
|
||||
Finally, 'callback' is a function that will be called when all packages have been
|
||||
installed or when an error has been encountered.
|
||||
33
deps/npm/doc/api/link.md
vendored
Normal file
33
deps/npm/doc/api/link.md
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
npm-link(3) -- Symlink a package folder
|
||||
=======================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.command.link(callback)
|
||||
npm.command.link(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Package linking is a two-step process.
|
||||
|
||||
Without parameters, link will create a globally-installed
|
||||
symbolic link from `prefix/package-name` to the current folder.
|
||||
|
||||
With a parameters, link will create a symlink from the local `node_modules`
|
||||
folder to the global symlink.
|
||||
|
||||
When creating tarballs for `npm publish`, the linked packages are
|
||||
"snapshotted" to their current state by resolving the symbolic links.
|
||||
|
||||
This is
|
||||
handy for installing your own stuff, so that you can work on it and test it
|
||||
iteratively without having to continually rebuild.
|
||||
|
||||
For example:
|
||||
|
||||
npm.commands.link(cb) # creates global link from the cwd
|
||||
# (say redis package)
|
||||
npm.commands.link('redis', cb) # link-install the package
|
||||
|
||||
Now, any changes to the redis package will be reflected in
|
||||
the package in the current working directory
|
||||
26
deps/npm/doc/api/load.md
vendored
Normal file
26
deps/npm/doc/api/load.md
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
npm-load(3) -- Load config settings
|
||||
===================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.load(conf, cb)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
npm.load() must be called before any other function call. Both parameters are
|
||||
optional, but the second is recommended.
|
||||
|
||||
The first parameter is an object hash of command-line config params, and the
|
||||
second parameter is a callback that will be called when npm is loaded and
|
||||
ready to serve.
|
||||
|
||||
The first parameter should follow a similar structure as the package.json
|
||||
config object.
|
||||
|
||||
For example, to emulate the --dev flag, pass an object that looks like this:
|
||||
|
||||
{
|
||||
"dev": true
|
||||
}
|
||||
|
||||
For a list of all the available command-line configs, see `npm help config`
|
||||
56
deps/npm/doc/api/ls.md
vendored
Normal file
56
deps/npm/doc/api/ls.md
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
npm-ls(3) -- List installed packages
|
||||
======================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.ls(args, [silent,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command will print to stdout all the versions of packages that are
|
||||
installed, as well as their dependencies, in a tree-structure. It will also
|
||||
return that data using the callback.
|
||||
|
||||
This command does not take any arguments, but args must be defined.
|
||||
Beyond that, if any arguments are passed in, npm will politely warn that it
|
||||
does not take positional arguments, though you may set config flags
|
||||
like with any other command, such as `global` to list global packages.
|
||||
|
||||
It will print out extraneous, missing, and invalid packages.
|
||||
|
||||
If the silent parameter is set to true, nothing will be output to the screen,
|
||||
but the data will still be returned.
|
||||
|
||||
Callback is provided an error if one occurred, the full data about which
|
||||
packages are installed and which dependencies they will receive, and a
|
||||
"lite" data object which just shows which versions are installed where.
|
||||
Note that the full data object is a circular structure, so care must be
|
||||
taken if it is serialized to JSON.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### long
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Show extended information.
|
||||
|
||||
### parseable
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Show parseable output instead of tree view.
|
||||
|
||||
### global
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
List packages in the global install prefix instead of in the current
|
||||
project.
|
||||
|
||||
Note, if parseable is set or long isn't set, then duplicates will be trimmed.
|
||||
This means that if a submodule a same dependency as a parent module, then the
|
||||
dependency will only be output once.
|
||||
115
deps/npm/doc/api/npm.md
vendored
Normal file
115
deps/npm/doc/api/npm.md
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
npm(3) -- node package manager
|
||||
==============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
var npm = require("npm")
|
||||
npm.load(configObject, function (er, npm) {
|
||||
// use the npm object, now that it's loaded.
|
||||
|
||||
npm.config.set(key, val)
|
||||
val = npm.config.get(key)
|
||||
|
||||
console.log("prefix = %s", npm.prefix)
|
||||
|
||||
npm.commands.install(["package"], cb)
|
||||
})
|
||||
|
||||
## VERSION
|
||||
|
||||
@VERSION@
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This is the API documentation for npm.
|
||||
To find documentation of the command line
|
||||
client, see `npm(1)`.
|
||||
|
||||
Prior to using npm's commands,
|
||||
`npm.load()` must be called with an object hash of
|
||||
top-level configs. In the npm command line client,
|
||||
this set of configs is parsed from the command line options. Additional
|
||||
configuration params are loaded from two configuration files. See
|
||||
`npm-config(1)` for more information.
|
||||
|
||||
After that, each of the functions are accessible in the
|
||||
commands object: `npm.commands.<cmd>`. See `npm-index(1)` for a list of
|
||||
all possible commands.
|
||||
|
||||
All commands on the command object take an **array** of positional argument
|
||||
**strings**. The last argument to any function is a callback. Some
|
||||
commands take other optional arguments.
|
||||
|
||||
Configs cannot currently be set on a per function basis, as each call to
|
||||
npm.config.set will change the value for *all* npm commands in that process.
|
||||
|
||||
To find API documentation for a specific command, run the `npm apihelp`
|
||||
command.
|
||||
|
||||
## METHODS AND PROPERTIES
|
||||
|
||||
* `npm.load(configs, cb)`
|
||||
|
||||
Load the configuration params, and call the `cb` function once the
|
||||
globalconfig and userconfig files have been loaded as well, or on
|
||||
nextTick if they've already been loaded.
|
||||
|
||||
* `npm.config`
|
||||
|
||||
An object for accessing npm configuration parameters.
|
||||
|
||||
* `npm.config.get(key)`
|
||||
* `npm.config.set(key, val)`
|
||||
* `npm.config.del(key)`
|
||||
|
||||
* `npm.dir` or `npm.root`
|
||||
|
||||
The `node_modules` directory where npm will operate.
|
||||
|
||||
* `npm.prefix`
|
||||
|
||||
The prefix where npm is operating. (Most often the current working
|
||||
directory.)
|
||||
|
||||
* `npm.cache`
|
||||
|
||||
The place where npm keeps JSON and tarballs it fetches from the
|
||||
registry (or uploads to the registry).
|
||||
|
||||
* `npm.tmp`
|
||||
|
||||
npm's temporary working directory.
|
||||
|
||||
* `npm.deref`
|
||||
|
||||
Get the "real" name for a command that has either an alias or
|
||||
abbreviation.
|
||||
|
||||
## MAGIC
|
||||
|
||||
For each of the methods in the `npm.commands` hash, a method is added to
|
||||
the npm object, which takes a set of positional string arguments rather
|
||||
than an array and a callback.
|
||||
|
||||
If the last argument is a callback, then it will use the supplied
|
||||
callback. However, if no callback is provided, then it will print out
|
||||
the error or results.
|
||||
|
||||
For example, this would work in a node repl:
|
||||
|
||||
> npm = require("npm")
|
||||
> npm.load() // wait a sec...
|
||||
> npm.install("dnode", "express")
|
||||
|
||||
Note that that *won't* work in a node program, since the `install`
|
||||
method will get called before the configuration load is completed.
|
||||
|
||||
## ABBREVS
|
||||
|
||||
In order to support `npm ins foo` instead of `npm install foo`, the
|
||||
`npm.commands` object has a set of abbreviations as well as the full
|
||||
method names. Use the `npm.deref` method to find the real name.
|
||||
|
||||
For example:
|
||||
|
||||
var cmd = npm.deref("unp") // cmd === "unpublish"
|
||||
13
deps/npm/doc/api/outdated.md
vendored
Normal file
13
deps/npm/doc/api/outdated.md
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
npm-outdated(3) -- Check for outdated packages
|
||||
==============================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.outdated([packages,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command will check the registry to see if the specified packages are
|
||||
currently outdated.
|
||||
|
||||
If the 'packages' parameter is left out, npm will check all packages.
|
||||
31
deps/npm/doc/api/owner.md
vendored
Normal file
31
deps/npm/doc/api/owner.md
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
npm-owner(3) -- Manage package owners
|
||||
=====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.owner(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
The first element of the 'args' parameter defines what to do, and the subsequent
|
||||
elements depend on the action. Possible values for the action are (order of
|
||||
parameters are given in parenthesis):
|
||||
|
||||
* ls (package):
|
||||
List all the users who have access to modify a package and push new versions.
|
||||
Handy when you need to know who to bug for help.
|
||||
* add (user, package):
|
||||
Add a new user as a maintainer of a package. This user is enabled to modify
|
||||
metadata, publish new versions, and add other owners.
|
||||
* rm (user, package):
|
||||
Remove a user from the package owner list. This immediately revokes their
|
||||
privileges.
|
||||
|
||||
Note that there is only one level of access. Either you can modify a package,
|
||||
or you can't. Future versions may contain more fine-grained access levels, but
|
||||
that is not implemented at this time.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-publish(3)
|
||||
* npm-registry(1)
|
||||
19
deps/npm/doc/api/pack.md
vendored
Normal file
19
deps/npm/doc/api/pack.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
npm-pack(3) -- Create a tarball from a package
|
||||
==============================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.pack([packages,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
For anything that's installable (that is, a package folder, tarball,
|
||||
tarball url, name@tag, name@version, or name), this command will fetch
|
||||
it to the cache, and then copy the tarball to the current working
|
||||
directory as `<name>-<version>.tgz`, and then write the filenames out to
|
||||
stdout.
|
||||
|
||||
If the same package is specified multiple times, then the file will be
|
||||
overwritten the second time.
|
||||
|
||||
If no arguments are supplied, then npm packs the current package folder.
|
||||
15
deps/npm/doc/api/prefix.md
vendored
Normal file
15
deps/npm/doc/api/prefix.md
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
npm-prefix(3) -- Display prefix
|
||||
===============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.prefix(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Print the prefix to standard out.
|
||||
|
||||
'args' is never used and callback is never called with data.
|
||||
'args' must be present or things will break.
|
||||
|
||||
This function is not useful programmatically
|
||||
17
deps/npm/doc/api/prune.md
vendored
Normal file
17
deps/npm/doc/api/prune.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
npm-prune(3) -- Remove extraneous packages
|
||||
==========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.prune([packages,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command removes "extraneous" packages.
|
||||
|
||||
The first parameter is optional, and it specifies packages to be removed.
|
||||
|
||||
No packages are specified, then all packages will be checked.
|
||||
|
||||
Extraneous packages are packages that are not listed on the parent
|
||||
package's dependencies list.
|
||||
30
deps/npm/doc/api/publish.md
vendored
Normal file
30
deps/npm/doc/api/publish.md
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
npm-publish(3) -- Publish a package
|
||||
===================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.publish([packages,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Publishes a package to the registry so that it can be installed by name.
|
||||
Possible values in the 'packages' array are:
|
||||
|
||||
* `<folder>`:
|
||||
A folder containing a package.json file
|
||||
|
||||
* `<tarball>`:
|
||||
A url or file path to a gzipped tar archive containing a single folder
|
||||
with a package.json file inside.
|
||||
|
||||
If the package array is empty, npm will try to publish something in the
|
||||
current working directory.
|
||||
|
||||
This command could fails if one of the packages specified already exists in
|
||||
the registry. Overwrites when the "force" environment variable is set.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-registry(1)
|
||||
* npm-adduser(1)
|
||||
* npm-owner(3)
|
||||
16
deps/npm/doc/api/rebuild.md
vendored
Normal file
16
deps/npm/doc/api/rebuild.md
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
npm-rebuild(3) -- Rebuild a package
|
||||
===================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.rebuild([packages,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command runs the `npm build` command on each of the matched packages. This is useful
|
||||
when you install a new version of node, and must recompile all your C++ addons with
|
||||
the new binary. If no 'packages' parameter is specify, every package will be rebuilt.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
See `npm help build`
|
||||
22
deps/npm/doc/api/restart.md
vendored
Normal file
22
deps/npm/doc/api/restart.md
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
npm-restart(3) -- Start a package
|
||||
=================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.restart(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This runs a package's "restart" script, if one was provided.
|
||||
Otherwise it runs package's "stop" script, if one was provided, and then
|
||||
the "start" script.
|
||||
|
||||
If no version is specified, then it restarts the "active" version.
|
||||
|
||||
npm can run tests on multiple packages. Just specify multiple packages
|
||||
in the `packages` parameter.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-start(3)
|
||||
* npm-stop(3)
|
||||
15
deps/npm/doc/api/root.md
vendored
Normal file
15
deps/npm/doc/api/root.md
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
npm-root(3) -- Display npm root
|
||||
===============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.root(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Print the effective `node_modules` folder to standard out.
|
||||
|
||||
'args' is never used and callback is never called with data.
|
||||
'args' must be present or things will break.
|
||||
|
||||
This function is not useful programmatically.
|
||||
27
deps/npm/doc/api/run-script.md
vendored
Normal file
27
deps/npm/doc/api/run-script.md
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
npm-run-script(3) -- Run arbitrary package scripts
|
||||
==================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.run-script(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This runs an arbitrary command from a package's "scripts" object.
|
||||
|
||||
It is used by the test, start, restart, and stop commands, but can be
|
||||
called directly, as well.
|
||||
|
||||
The 'args' parameter is an array of strings. Behavior depends on the number
|
||||
of elements. If there is only one element, npm assumes that the element
|
||||
represents a command to be run on the local repository. If there is more than
|
||||
one element, then the first is assumed to be the package and the second is
|
||||
assumed to be the command to run. All other elements are ignored.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-scripts(1)
|
||||
* npm-test(3)
|
||||
* npm-start(3)
|
||||
* npm-restart(3)
|
||||
* npm-stop(3)
|
||||
35
deps/npm/doc/api/search.md
vendored
Normal file
35
deps/npm/doc/api/search.md
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
npm-search(3) -- Search for packages
|
||||
====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.search(searchTerms, [silent,] [staleness,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Search the registry for packages matching the search terms. The available parameters are:
|
||||
|
||||
* searchTerms:
|
||||
Array of search terms. These terms are case-insensitive.
|
||||
* silent:
|
||||
If true, npm will not log anything to the console.
|
||||
* staleness:
|
||||
This is the threshold for stale packages. "Fresh" packages are not refreshed
|
||||
from the registry. This value is measured in seconds.
|
||||
* callback:
|
||||
Returns an object where each key is the name of a package, and the value
|
||||
is information about that package along with a 'words' property, which is
|
||||
a space-delimited string of all of the interesting words in that package.
|
||||
The only properties included are those that are searched, which generally include:
|
||||
|
||||
* name
|
||||
* description
|
||||
* maintainers
|
||||
* url
|
||||
* keywords
|
||||
|
||||
A search on the registry excludes any result that does not match all of the
|
||||
search terms. It also removes any items from the results that contain an
|
||||
excluded term (the "searchexclude" config). The search is case insensitive
|
||||
and doesn't try to read your mind (it doesn't do any verb tense matching or the
|
||||
like).
|
||||
20
deps/npm/doc/api/shrinkwrap.md
vendored
Normal file
20
deps/npm/doc/api/shrinkwrap.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
npm-shrinkwrap(3) -- programmatically generate package shrinkwrap file
|
||||
====================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.shrinkwrap(args, [silent,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This acts much the same ways as shrinkwrapping on the command-line.
|
||||
|
||||
This command does not take any arguments, but 'args' must be defined.
|
||||
Beyond that, if any arguments are passed in, npm will politely warn that it
|
||||
does not take positional arguments.
|
||||
|
||||
If the 'silent' parameter is set to true, nothing will be output to the screen,
|
||||
but the shrinkwrap file will still be written.
|
||||
|
||||
Finally, 'callback' is a function that will be called when the shrinkwrap has
|
||||
been saved.
|
||||
13
deps/npm/doc/api/start.md
vendored
Normal file
13
deps/npm/doc/api/start.md
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
npm-start(3) -- Start a package
|
||||
===============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.start(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This runs a package's "start" script, if one was provided.
|
||||
|
||||
npm can run tests on multiple packages. Just specify multiple packages
|
||||
in the `packages` parameter.
|
||||
13
deps/npm/doc/api/stop.md
vendored
Normal file
13
deps/npm/doc/api/stop.md
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
npm-stop(3) -- Stop a package
|
||||
=============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.stop(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This runs a package's "stop" script, if one was provided.
|
||||
|
||||
npm can run stop on multiple packages. Just specify multiple packages
|
||||
in the `packages` parameter.
|
||||
28
deps/npm/doc/api/submodule.md
vendored
Normal file
28
deps/npm/doc/api/submodule.md
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
npm-submodule(3) -- Add a package as a git submodule
|
||||
====================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.submodule(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
For each package specified, npm will check if it has a git repository url
|
||||
in its package.json description then add it as a git submodule at
|
||||
`node_modules/<pkg name>`.
|
||||
|
||||
This is a convenience only. From then on, it's up to you to manage
|
||||
updates by using the appropriate git commands. npm will stubbornly
|
||||
refuse to update, modify, or remove anything with a `.git` subfolder
|
||||
in it.
|
||||
|
||||
This command also does not install missing dependencies, if the package
|
||||
does not include them in its git repository. If `npm ls` reports that
|
||||
things are missing, you can either install, link, or submodule them yourself,
|
||||
or you can do `npm explore <pkgname> -- npm install` to install the
|
||||
dependencies into the submodule folder.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm help json
|
||||
* git help submodule
|
||||
23
deps/npm/doc/api/tag.md
vendored
Normal file
23
deps/npm/doc/api/tag.md
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
npm-tag(3) -- Tag a published version
|
||||
=====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.tag(package@version, tag, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Tags the specified version of the package with the specified tag, or the
|
||||
`--tag` config if not specified.
|
||||
|
||||
The 'package@version' is an array of strings, but only the first two elements are
|
||||
currently used.
|
||||
|
||||
The first element must be in the form package@version, where package
|
||||
is the package name and version is the version number (much like installing a
|
||||
specific version).
|
||||
|
||||
The second element is the name of the tag to tag this version with. If this
|
||||
parameter is missing or falsey (empty), the default froom the config will be
|
||||
used. For more information about how to set this config, check
|
||||
`man 3 npm-config` for programmatic usage or `man npm-config` for cli usage.
|
||||
16
deps/npm/doc/api/test.md
vendored
Normal file
16
deps/npm/doc/api/test.md
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
npm-test(3) -- Test a package
|
||||
=============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.test(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This runs a package's "test" script, if one was provided.
|
||||
|
||||
To run tests as a condition of installation, set the `npat` config to
|
||||
true.
|
||||
|
||||
npm can run tests on multiple packages. Just specify multiple packages
|
||||
in the `packages` parameter.
|
||||
16
deps/npm/doc/api/uninstall.md
vendored
Normal file
16
deps/npm/doc/api/uninstall.md
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
npm-uninstall(3) -- uninstall a package programmatically
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.uninstall(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This acts much the same ways as uninstalling on the command-line.
|
||||
|
||||
The 'packages' parameter is an array of strings. Each element in the array is
|
||||
the name of a package to be uninstalled.
|
||||
|
||||
Finally, 'callback' is a function that will be called when all packages have been
|
||||
uninstalled or when an error has been encountered.
|
||||
20
deps/npm/doc/api/unpublish.md
vendored
Normal file
20
deps/npm/doc/api/unpublish.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
npm-unpublish(3) -- Remove a package from the registry
|
||||
======================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.unpublish(package, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This removes a package version from the registry, deleting its
|
||||
entry and removing the tarball.
|
||||
|
||||
The package parameter must be defined.
|
||||
|
||||
Only the first element in the package parameter is used. If there is no first
|
||||
element, then npm assumes that the package at the current working directory
|
||||
is what is meant.
|
||||
|
||||
If no version is specified, or if all versions are removed then
|
||||
the root package entry is removed from the registry entirely.
|
||||
11
deps/npm/doc/api/update.md
vendored
Normal file
11
deps/npm/doc/api/update.md
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
npm-update(3) -- Update a package
|
||||
=================================
|
||||
|
||||
## SYNOPSIS
|
||||
npm.commands.update(packages, callback)
|
||||
|
||||
# DESCRIPTION
|
||||
|
||||
Updates a package, upgrading it to the latest version. It also installs any missing packages.
|
||||
|
||||
The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.
|
||||
18
deps/npm/doc/api/version.md
vendored
Normal file
18
deps/npm/doc/api/version.md
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
npm-version(3) -- Bump a package version
|
||||
========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.version(newversion, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Run this in a package directory to bump the version and write the new
|
||||
data back to the package.json file.
|
||||
|
||||
If run in a git repo, it will also create a version commit and tag, and
|
||||
fail if the repo is not clean.
|
||||
|
||||
Like all other commands, this function takes a string array as its first
|
||||
parameter. The difference, however, is this function will fail if it does
|
||||
not have exactly one element. The only element should be a version number.
|
||||
93
deps/npm/doc/api/view.md
vendored
Normal file
93
deps/npm/doc/api/view.md
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
npm-view(3) -- View registry info
|
||||
=================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.view(args, [silent,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command shows data about a package and prints it to the stream
|
||||
referenced by the `outfd` config, which defaults to stdout.
|
||||
|
||||
The "args" parameter is an ordered list that closely resembles the command-line
|
||||
usage. The elements should be ordered such that the first element is
|
||||
the package and version (package@version). The version is optional. After that,
|
||||
the rest of the parameters are fields with optional subfields ("field.subfield")
|
||||
which can be used to get only the information desired from the registry.
|
||||
|
||||
The callback will be passed all of the data returned by the query.
|
||||
|
||||
For example, to get the package registry entry for the `connect` package,
|
||||
you can do this:
|
||||
|
||||
npm.commands.view(["connect"], callback)
|
||||
|
||||
If no version is specified, "latest" is assumed.
|
||||
|
||||
Field names can be specified after the package descriptor.
|
||||
For example, to show the dependencies of the `ronn` package at version
|
||||
0.3.5, you could do the following:
|
||||
|
||||
npm.commands.view(["ronn@0.3.5", "dependencies"], callback)
|
||||
|
||||
You can view child field by separating them with a period.
|
||||
To view the git repository URL for the latest version of npm, you could
|
||||
do this:
|
||||
|
||||
npm.commands.view(["npm", "repository.url"], callback)
|
||||
|
||||
For fields that are arrays, requesting a non-numeric field will return
|
||||
all of the values from the objects in the list. For example, to get all
|
||||
the contributor names for the "express" project, you can do this:
|
||||
|
||||
npm.commands.view(["express", "contributors.email"], callback)
|
||||
|
||||
You may also use numeric indices in square braces to specifically select
|
||||
an item in an array field. To just get the email address of the first
|
||||
contributor in the list, you can do this:
|
||||
|
||||
npm.commands.view(["express", "contributors[0].email"], callback)
|
||||
|
||||
Multiple fields may be specified, and will be printed one after another.
|
||||
For exampls, to get all the contributor names and email addresses, you
|
||||
can do this:
|
||||
|
||||
npm.commands.view(["express", "contributors.name", "contributors.email"], callback)
|
||||
|
||||
"Person" fields are shown as a string if they would be shown as an
|
||||
object. So, for example, this will show the list of npm contributors in
|
||||
the shortened string format. (See `npm help json` for more on this.)
|
||||
|
||||
npm.commands.view(["npm", "contributors"], callback)
|
||||
|
||||
If a version range is provided, then data will be printed for every
|
||||
matching version of the package. This will show which version of jsdom
|
||||
was required by each matching version of yui3:
|
||||
|
||||
npm.commands.view(["yui3@'>0.5.4'", "dependencies.jsdom"], callback)
|
||||
|
||||
## OUTPUT
|
||||
|
||||
If only a single string field for a single version is output, then it
|
||||
will not be colorized or quoted, so as to enable piping the output to
|
||||
another command.
|
||||
|
||||
If the version range matches multiple versions, than each printed value
|
||||
will be prefixed with the version it applies to.
|
||||
|
||||
If multiple fields are requested, than each of them are prefixed with
|
||||
the field name.
|
||||
|
||||
Console output can be disabled by setting the 'silent' parameter to true.
|
||||
|
||||
## RETURN VALUE
|
||||
|
||||
The data returned will be an object in this formation:
|
||||
|
||||
{ <version>:
|
||||
{ <field>: <value>
|
||||
, ... }
|
||||
, ... }
|
||||
|
||||
corresponding to the list of fields selected.
|
||||
15
deps/npm/doc/api/whoami.md
vendored
Normal file
15
deps/npm/doc/api/whoami.md
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
npm-whoami(3) -- Display npm username
|
||||
=====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.whoami(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Print the `username` config to standard output.
|
||||
|
||||
'args' is never used and callback is never called with data.
|
||||
'args' must be present or things will break.
|
||||
|
||||
This function is not useful programmatically
|
||||
36
deps/npm/doc/cli/adduser.md
vendored
Normal file
36
deps/npm/doc/cli/adduser.md
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
npm-adduser(1) -- Add a registry user account
|
||||
=============================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm adduser
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Create or verify a user named `<username>` in the npm registry, and
|
||||
save the credentials to the `.npmrc` file.
|
||||
|
||||
The username, password, and email are read in from prompts.
|
||||
|
||||
You may use this command to change your email address, but not username
|
||||
or password.
|
||||
|
||||
To reset your password, go to <http://admin.npmjs.org/>
|
||||
|
||||
You may use this command multiple times with the same user account to
|
||||
authorize on a new machine.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### registry
|
||||
|
||||
Default: http://registry.npmjs.org/
|
||||
|
||||
The base URL of the npm package registry.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-registry(1)
|
||||
* npm-config(1)
|
||||
* npm-owner(1)
|
||||
* npm-whoami(1)
|
||||
17
deps/npm/doc/cli/bin.md
vendored
Normal file
17
deps/npm/doc/cli/bin.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
npm-bin(1) -- Display npm bin folder
|
||||
====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm bin
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Print the folder where npm will install executables.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-prefix(1)
|
||||
* npm-root(1)
|
||||
* npm-folders(1)
|
||||
* npm-config(1)
|
||||
38
deps/npm/doc/cli/bugs.md
vendored
Normal file
38
deps/npm/doc/cli/bugs.md
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
npm-bugs(1) -- Bugs for a package in a web browser maybe
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm bugs <pkgname>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command tries to guess at the likely location of a package's
|
||||
bug tracker URL, and then tries to open it using the `--browser`
|
||||
config param.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### browser
|
||||
|
||||
* Default: OS X: `"open"`, others: `"google-chrome"`
|
||||
* Type: String
|
||||
|
||||
The browser that is called by the `npm bugs` command to open websites.
|
||||
|
||||
### registry
|
||||
|
||||
* Default: https://registry.npmjs.org/
|
||||
* Type: url
|
||||
|
||||
The base URL of the npm package registry.
|
||||
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-docs(1)
|
||||
* npm-view(1)
|
||||
* npm-publish(1)
|
||||
* npm-registry(1)
|
||||
* npm-config(1)
|
||||
* npm-json(1)
|
||||
22
deps/npm/doc/cli/build.md
vendored
Normal file
22
deps/npm/doc/cli/build.md
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
npm-build(1) -- Build a package
|
||||
===============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm build <package-folder>
|
||||
|
||||
* `<package-folder>`:
|
||||
A folder containing a `package.json` file in its root.
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This is the plumbing command called by `npm link` and `npm install`.
|
||||
|
||||
It should generally not be called directly.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-install(1)
|
||||
* npm-link(1)
|
||||
* npm-scripts(1)
|
||||
* npm-json(1)
|
||||
14
deps/npm/doc/cli/bundle.md
vendored
Normal file
14
deps/npm/doc/cli/bundle.md
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
npm-bundle(1) -- REMOVED
|
||||
========================
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
The `npm bundle` command has been removed in 1.0, for the simple reason
|
||||
that it is no longer necessary, as the default behavior is now to
|
||||
install packages into the local space.
|
||||
|
||||
Just use `npm install` now to do what `npm bundle` used to do.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-install(1)
|
||||
70
deps/npm/doc/cli/cache.md
vendored
Normal file
70
deps/npm/doc/cli/cache.md
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
npm-cache(1) -- Manipulates packages cache
|
||||
==========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm cache add <tarball file>
|
||||
npm cache add <folder>
|
||||
npm cache add <tarball url>
|
||||
npm cache add <name>@<version>
|
||||
|
||||
npm cache ls [<path>]
|
||||
|
||||
npm cache clean [<path>]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Used to add, list, or clear the npm cache folder.
|
||||
|
||||
* add:
|
||||
Add the specified package to the local cache. This command is primarily
|
||||
intended to be used internally by npm, but it can provide a way to
|
||||
add data to the local installation cache explicitly.
|
||||
|
||||
* ls:
|
||||
Show the data in the cache. Argument is a path to show in the cache
|
||||
folder. Works a bit like the `find` program, but limited by the
|
||||
`depth` config.
|
||||
|
||||
* clean:
|
||||
Delete data out of the cache folder. If an argument is provided, then
|
||||
it specifies a subpath to delete. If no argument is provided, then
|
||||
the entire cache is cleared.
|
||||
|
||||
## DETAILS
|
||||
|
||||
npm stores cache data in `$HOME/.npm`. For each package that is added
|
||||
to the cache, three pieces of information are stored in
|
||||
`{cache}/{name}/{version}`:
|
||||
|
||||
* .../package/:
|
||||
A folder containing the package contents as they appear in the tarball.
|
||||
* .../package.json:
|
||||
The package.json file, as npm sees it, with overlays applied and a _id attribute.
|
||||
* .../package.tgz:
|
||||
The tarball for that version.
|
||||
|
||||
Additionally, whenever a registry request is made, a `.cache.json` file
|
||||
is placed at the corresponding URI, to store the ETag and the requested
|
||||
data.
|
||||
|
||||
Commands that make non-essential registry requests (such as `search` and
|
||||
`view`, or the completion scripts) generally specify a minimum timeout.
|
||||
If the `.cache.json` file is younger than the specified timeout, then
|
||||
they do not make an HTTP request to the registry.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### cache
|
||||
|
||||
Default: `$HOME/.npm` on Posix, or `$HOME/npm-cache` on Windows.
|
||||
|
||||
The root cache folder.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-folders(1)
|
||||
* npm-config(1)
|
||||
* npm-install(1)
|
||||
* npm-publish(1)
|
||||
* npm-pack(1)
|
||||
80
deps/npm/doc/cli/changelog.md
vendored
Normal file
80
deps/npm/doc/cli/changelog.md
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
npm-changelog(1) -- Changes
|
||||
===========================
|
||||
|
||||
## HISTORY
|
||||
|
||||
### 1.1.3, 1.1.4
|
||||
|
||||
* Update request to support HTTPS-over-HTTP proxy tunneling
|
||||
* Throw on undefined envs in config settings
|
||||
* Update which to 1.0.5
|
||||
* Fix windows UNC busyloop in findPrefix
|
||||
* Bundle nested bundleDependencies properly
|
||||
* Alias adduser to add-user
|
||||
* Doc updates (Christian Howe, Henrik Hodne, Andrew Lunny)
|
||||
* ignore logfd/outfd streams in makeEnv() (Rod Vagg)
|
||||
* shrinkwrap: Behave properly with url-installed deps
|
||||
* install: Support --save with url install targets
|
||||
* Support installing naked tars or single-file modules from urls etc.
|
||||
* init: Don't add engines section
|
||||
* Don't run make clean on rebuild
|
||||
* Added missing unicode replacement (atomizer)
|
||||
|
||||
### 1.1.2
|
||||
|
||||
Dave Pacheco (2):
|
||||
add "npm shrinkwrap"
|
||||
|
||||
Martin Cooper (1):
|
||||
Fix #1753 Make a copy of the cached objects we'll modify.
|
||||
|
||||
Tim Oxley (1):
|
||||
correctly remove readme from default npm view command.
|
||||
|
||||
Tyler Green (1):
|
||||
fix #2187 set terminal columns to Infinity if 0
|
||||
|
||||
isaacs (19):
|
||||
update minimatch
|
||||
update request
|
||||
Experimental: single-file modules
|
||||
Fix #2172 Don't remove global mans uninstalling local pkgs
|
||||
Add --versions flag to show the version of node as well
|
||||
Support --json flag for ls output
|
||||
update request to 2.9.151
|
||||
|
||||
### 1.1
|
||||
* Replace system tar dependency with a JS tar
|
||||
* Continue to refine
|
||||
|
||||
### 1.0
|
||||
* Greatly simplified folder structure
|
||||
* Install locally (bundle by default)
|
||||
* Drastic rearchitecture
|
||||
|
||||
### 0.3
|
||||
* More correct permission/uid handling when running as root
|
||||
* Require node 0.4.0
|
||||
* Reduce featureset
|
||||
* Packages without "main" modules don't export modules
|
||||
* Remove support for invalid JSON (since node doesn't support it)
|
||||
|
||||
### 0.2
|
||||
* First allegedly "stable" release
|
||||
* Most functionality implemented
|
||||
* Used shim files and `name@version` symlinks
|
||||
* Feature explosion
|
||||
* Kind of a mess
|
||||
|
||||
### 0.1
|
||||
* push to beta, and announce
|
||||
* Solaris and Cygwin support
|
||||
|
||||
### 0.0
|
||||
* Lots of sketches and false starts; abandoned a few times
|
||||
* Core functionality established
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm(1)
|
||||
* npm-faq(1)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user