node: rename from io.js to node

This commit replaces instances of io.js with Node.js, based on the
recent convergence. There are some remaining instances of io.js,
related to build and the installer.

Fixes: https://github.com/nodejs/node/issues/2361
PR-URL: https://github.com/nodejs/node/pull/2367
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: João Reis <reis@janeasystems.com>
This commit is contained in:
cjihrig 2015-08-13 12:14:34 -04:00
parent ae8d436623
commit a69ab27ab4
96 changed files with 2162 additions and 2187 deletions

2
.gitignore vendored
View File

@ -12,6 +12,8 @@ tmp/
test/tmp*/ test/tmp*/
iojs iojs
iojs_g iojs_g
node
node_g
*.swp *.swp
.benchmark_reports .benchmark_reports
/.project /.project

View File

@ -4,7 +4,7 @@ FLAGS=${.MAKEFLAGS:C/\-J ([0-9]+,?)+//W}
all: .DEFAULT all: .DEFAULT
.DEFAULT: .DEFAULT:
@which gmake > /dev/null 2>&1 ||\ @which gmake > /dev/null 2>&1 ||\
(echo "GMake is required for io.js to build.\ (echo "GMake is required for node.js to build.\
Install and try again" && exit 1) Install and try again" && exit 1)
@gmake ${.FLAGS} ${.TARGETS} @gmake ${.FLAGS} ${.TARGETS}

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
# io.js Collaborator Guide # Node.js Collaborator Guide
**Contents** **Contents**
@ -9,7 +9,7 @@
- [Technical HOWTO](#technical-howto) - [Technical HOWTO](#technical-howto)
- [I Just Made a Mistake](#i-just-made-a-mistake) - [I Just Made a Mistake](#i-just-made-a-mistake)
This document contains information for Collaborators of the io.js This document contains information for Collaborators of the Node.js
project regarding maintaining the code, documentation and issues. project regarding maintaining the code, documentation and issues.
Collaborators should be familiar with the guidelines for new Collaborators should be familiar with the guidelines for new
@ -20,7 +20,7 @@ understand the project governance model as outlined in
## Issues and Pull Requests ## Issues and Pull Requests
Courtesy should always be shown to individuals submitting issues and Courtesy should always be shown to individuals submitting issues and
pull requests to the io.js project. pull requests to the Node.js project.
Collaborators should feel free to take full responsibility for Collaborators should feel free to take full responsibility for
managing issues and pull requests they feel qualified to handle, as managing issues and pull requests they feel qualified to handle, as
@ -28,16 +28,16 @@ long as this is done while being mindful of these guidelines, the
opinions of other Collaborators and guidance of the TC. opinions of other Collaborators and guidance of the TC.
Collaborators may **close** any issue or pull request they believe is Collaborators may **close** any issue or pull request they believe is
not relevant for the future of the io.js project. Where this is not relevant for the future of the Node.js project. Where this is
unclear, the issue should be left open for several days to allow for unclear, the issue should be left open for several days to allow for
additional discussion. Where this does not yield input from io.js additional discussion. Where this does not yield input from Node.js
Collaborators or additional evidence that the issue has relevance, the Collaborators or additional evidence that the issue has relevance, the
issue may be closed. Remember that issues can always be re-opened if issue may be closed. Remember that issues can always be re-opened if
necessary. necessary.
## Accepting Modifications ## Accepting Modifications
All modifications to the io.js code and documentation should be All modifications to the Node.js code and documentation should be
performed via GitHub pull requests, including modifications by performed via GitHub pull requests, including modifications by
Collaborators and TC members. Collaborators and TC members.
@ -101,7 +101,7 @@ information regarding the change process:
appropriate. appropriate.
See the commit log for examples such as See the commit log for examples such as
[this one](https://github.com/nodejs/io.js/commit/b636ba8186) if unsure [this one](https://github.com/nodejs/node/commit/b636ba8186) if unsure
exactly how to format your commit messages. exactly how to format your commit messages.
Additionally: Additionally:
@ -137,7 +137,7 @@ $ git merge --ff-only origin/master
Apply external patches Apply external patches
```text ```text
$ curl -L https://github.com/nodejs/io.js/pull/xxx.patch | git am --whitespace=fix $ curl -L https://github.com/nodejs/node/pull/xxx.patch | git am --whitespace=fix
``` ```
Check and re-review the changes Check and re-review the changes
@ -223,7 +223,7 @@ With `git`, there's a way to override remote trees by force pushing
(`git push -f`). This should generally be seen as forbidden (since (`git push -f`). This should generally be seen as forbidden (since
you're rewriting history on a repository other people are working you're rewriting history on a repository other people are working
against) but is allowed for simpler slip-ups such as typos in commit against) but is allowed for simpler slip-ups such as typos in commit
messages. However, you are only allowed to force push to any io.js messages. However, you are only allowed to force push to any Node.js
branch within 10 minutes from your original push. If someone else branch within 10 minutes from your original push. If someone else
pushes to the branch or the 10 minute period passes, consider the pushes to the branch or the 10 minute period passes, consider the
commit final. commit final.

View File

@ -1,10 +1,10 @@
# Contributing to io.js # Contributing to Node.js
## Issue Contributions ## Issue Contributions
When opening new issues or commenting on existing issues on this repository When opening new issues or commenting on existing issues on this repository
please make sure discussions are related to concrete technical issues with the please make sure discussions are related to concrete technical issues with the
io.js software. Node.js software.
Discussion of non-technical topics including subjects like intellectual Discussion of non-technical topics including subjects like intellectual
property, trademark and high level project questions should move to the property, trademark and high level project questions should move to the
@ -13,7 +13,7 @@ instead.
## Code Contributions ## Code Contributions
The io.js project has an open governance model and welcomes new contributors. The Node.js project has an open governance model and welcomes new contributors.
Individuals making significant and valuable contributions are made Individuals making significant and valuable contributions are made
_Collaborators_ and given commit-access to the project. See the _Collaborators_ and given commit-access to the project. See the
[GOVERNANCE.md](./GOVERNANCE.md) document for more information about how this [GOVERNANCE.md](./GOVERNANCE.md) document for more information about how this
@ -23,13 +23,13 @@ This document will guide you through the contribution process.
### Step 1: Fork ### Step 1: Fork
Fork the project [on GitHub](https://github.com/nodejs/io.js) and check out your Fork the project [on GitHub](https://github.com/nodejs/node) and check out your
copy locally. copy locally.
```text ```text
$ git clone git@github.com:username/io.js.git $ git clone git@github.com:username/node.git
$ cd io.js $ cd node
$ git remote add upstream git://github.com/nodejs/io.js.git $ git remote add upstream git://github.com/nodejs/node.git
``` ```
#### Which branch? #### Which branch?
@ -48,14 +48,14 @@ always welcome but API or behavioral changes to modules at stability level 3
#### Dependencies #### Dependencies
io.js has several bundled dependencies in the *deps/* and the *tools/* Node.js has several bundled dependencies in the *deps/* and the *tools/*
directories that are not part of the project proper. Any changes to files directories that are not part of the project proper. Any changes to files
in those directories or its subdirectories should be sent to their respective in those directories or its subdirectories should be sent to their respective
projects. Do not send your patch to us, we cannot accept it. projects. Do not send your patch to us, we cannot accept it.
In case of doubt, open an issue in the In case of doubt, open an issue in the
[issue tracker](https://github.com/nodejs/io.js/issues/) or contact one of the [issue tracker](https://github.com/nodejs/node/issues/) or contact one of the
[project Collaborators](https://github.com/nodejs/io.js/#current-project-team-members). [project Collaborators](https://github.com/nodejs/node/#current-project-team-members).
([IRC](http://webchat.freenode.net/?channels=io.js) is often the best medium.) Especially do so if you plan to work on something big. Nothing is more ([IRC](http://webchat.freenode.net/?channels=io.js) is often the best medium.) Especially do so if you plan to work on something big. Nothing is more
frustrating than seeing your hard work go to waste because your vision frustrating than seeing your hard work go to waste because your vision
does not align with the project team. does not align with the project team.
@ -139,10 +139,10 @@ can use this syntax to run it exactly as the test harness would:
$ python tools/test.py -v --mode=release parallel/test-stream2-transform $ python tools/test.py -v --mode=release parallel/test-stream2-transform
``` ```
You can run tests directly with iojs: You can run tests directly with node:
```text ```text
$ ./iojs ./test/parallel/test-stream2-transform.js $ ./node ./test/parallel/test-stream2-transform.js
``` ```
Remember to recompile with `make -j8` in between test runs if you change Remember to recompile with `make -j8` in between test runs if you change
@ -154,7 +154,7 @@ core modules.
$ git push origin my-feature-branch $ git push origin my-feature-branch
``` ```
Go to https://github.com/yourusername/io.js and select your feature branch. Go to https://github.com/yourusername/node and select your feature branch.
Click the 'Pull Request' button and fill out the form. Click the 'Pull Request' button and fill out the form.
Pull requests are usually reviewed within a few days. If there are comments Pull requests are usually reviewed within a few days. If there are comments

View File

@ -1,11 +1,11 @@
# io.js Project Governance # Node.js Project Governance
## Technical Committee ## Technical Committee
The io.js project is jointly governed by a Technical Committee (TC) The Node.js project is jointly governed by a Technical Steering Committee (TSC)
which is responsible for high-level guidance of the project. which is responsible for high-level guidance of the project.
The TC has final authority over this project including: The TSC has final authority over this project including:
* Technical direction * Technical direction
* Project governance and process (including this policy) * Project governance and process (including this policy)
@ -14,17 +14,17 @@ The TC has final authority over this project including:
* Conduct guidelines * Conduct guidelines
* Maintaining the list of additional Collaborators * Maintaining the list of additional Collaborators
Initial membership invitations to the TC were given to individuals who Initial membership invitations to the TSC were given to individuals who
had been active contributors to io.js, and who have significant had been active contributors to Node.js, and who have significant
experience with the management of the io.js project. Membership is experience with the management of the Node.js project. Membership is
expected to evolve over time according to the needs of the project. expected to evolve over time according to the needs of the project.
For the current list of TC members, see the project For the current list of TSC members, see the project
[README.md](./README.md#current-project-team-members). [README.md](./README.md#current-project-team-members).
## Collaborators ## Collaborators
The [iojs/io.js](https://github.com/nodejs/io.js) GitHub repository is The [nodejs/node](https://github.com/nodejs/node) GitHub repository is
maintained by the TC and additional Collaborators who are added by the maintained by the TC and additional Collaborators who are added by the
TC on an ongoing basis. TC on an ongoing basis.
@ -37,7 +37,7 @@ _Note:_ If you make a significant contribution and are not considered
for commit-access, log an issue or contact a TC member directly and it for commit-access, log an issue or contact a TC member directly and it
will be brought up in the next TC meeting. will be brought up in the next TC meeting.
Modifications of the contents of the iojs/io.js repository are made on Modifications of the contents of the nodejs/node repository are made on
a collaborative basis. Anybody with a GitHub account may propose a a collaborative basis. Anybody with a GitHub account may propose a
modification via pull request and it will be considered by the project modification via pull request and it will be considered by the project
Collaborators. All pull requests must be reviewed and accepted by a Collaborators. All pull requests must be reviewed and accepted by a

12
LICENSE
View File

@ -1,7 +1,7 @@
io.js is licensed for use as follows: Node.js is licensed for use as follows:
""" """
Copyright io.js contributors. All rights reserved. Copyright Node.js contributors. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to of this software and associated documentation files (the "Software"), to
@ -22,7 +22,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE. IN THE SOFTWARE.
""" """
This license applies to parts of io.js originating from the This license applies to parts of Node.js originating from the
https://github.com/joyent/node repository: https://github.com/joyent/node repository:
""" """
@ -46,10 +46,10 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE. IN THE SOFTWARE.
""" """
The io.js license applies to all parts of io.js that are not externally The Node.js license applies to all parts of Node.js that are not externally
maintained libraries. maintained libraries.
The externally maintained libraries used by io.js are: The externally maintained libraries used by Node.js are:
- V8, located at deps/v8. V8's license follows: - V8, located at deps/v8. V8's license follows:
""" """
@ -612,7 +612,7 @@ The externally maintained libraries used by io.js are:
included for use in the npm website and documentation, included for use in the npm website and documentation,
used with permission. used with permission.
This program uses several io.js modules contained in the node_modules/ This program uses several Node.js modules contained in the node_modules/
subdirectory, according to the terms of their respective licenses. subdirectory, according to the terms of their respective licenses.
""" """

View File

@ -5,7 +5,7 @@ PYTHON ?= python
DESTDIR ?= DESTDIR ?=
SIGN ?= SIGN ?=
PREFIX ?= /usr/local PREFIX ?= /usr/local
STAGINGSERVER ?= iojs-www STAGINGSERVER ?= node-www
OSTYPE := $(shell uname -s | tr '[A-Z]' '[a-z]') OSTYPE := $(shell uname -s | tr '[A-Z]' '[a-z]')
@ -13,9 +13,9 @@ OSTYPE := $(shell uname -s | tr '[A-Z]' '[a-z]')
EXEEXT := $(shell $(PYTHON) -c \ EXEEXT := $(shell $(PYTHON) -c \
"import sys; print('.exe' if sys.platform == 'win32' else '')") "import sys; print('.exe' if sys.platform == 'win32' else '')")
NODE ?= ./iojs$(EXEEXT) NODE ?= ./node$(EXEEXT)
NODE_EXE = iojs$(EXEEXT) NODE_EXE = node$(EXEEXT)
NODE_G_EXE = iojs_g$(EXEEXT) NODE_G_EXE = node_g$(EXEEXT)
# Flags for packaging. # Flags for packaging.
BUILD_DOWNLOAD_FLAGS ?= --download=all BUILD_DOWNLOAD_FLAGS ?= --download=all
@ -267,7 +267,7 @@ ifeq ($(DESTCPU),ia32)
override DESTCPU=x86 override DESTCPU=x86
endif endif
TARNAME=iojs-$(FULLVERSION) TARNAME=node-$(FULLVERSION)
TARBALL=$(TARNAME).tar TARBALL=$(TARNAME).tar
BINARYNAME=$(TARNAME)-$(PLATFORM)-$(ARCH) BINARYNAME=$(TARNAME)-$(PLATFORM)-$(ARCH)
BINARYTAR=$(BINARYNAME).tar BINARYTAR=$(BINARYNAME).tar
@ -311,11 +311,11 @@ $(PKG): release-only
$(MAKE) install V=$(V) DESTDIR=$(PKGDIR) $(MAKE) install V=$(V) DESTDIR=$(PKGDIR)
SIGN="$(CODESIGN_CERT)" PKGDIR="$(PKGDIR)" bash tools/osx-codesign.sh SIGN="$(CODESIGN_CERT)" PKGDIR="$(PKGDIR)" bash tools/osx-codesign.sh
cat tools/osx-pkg.pmdoc/index.xml.tmpl \ cat tools/osx-pkg.pmdoc/index.xml.tmpl \
| sed -E "s/\\{iojsversion\\}/$(FULLVERSION)/g" \ | sed -E "s/\\{nodeversion\\}/$(FULLVERSION)/g" \
| sed -E "s/\\{npmversion\\}/$(NPMVERSION)/g" \ | sed -E "s/\\{npmversion\\}/$(NPMVERSION)/g" \
> tools/osx-pkg.pmdoc/index.xml > tools/osx-pkg.pmdoc/index.xml
$(PACKAGEMAKER) \ $(PACKAGEMAKER) \
--id "org.iojs.pkg" \ --id "org.node.pkg" \
--doc tools/osx-pkg.pmdoc \ --doc tools/osx-pkg.pmdoc \
--out $(PKG) --out $(PKG)
SIGN="$(PRODUCTSIGN_CERT)" PKG="$(PKG)" bash tools/osx-productsign.sh SIGN="$(PRODUCTSIGN_CERT)" PKG="$(PKG)" bash tools/osx-productsign.sh
@ -324,13 +324,13 @@ pkg: $(PKG)
pkg-upload: pkg pkg-upload: pkg
ssh $(STAGINGSERVER) "mkdir -p staging/$(DISTTYPEDIR)/$(FULLVERSION)" ssh $(STAGINGSERVER) "mkdir -p staging/$(DISTTYPEDIR)/$(FULLVERSION)"
scp -p iojs-$(FULLVERSION).pkg $(STAGINGSERVER):staging/$(DISTTYPEDIR)/$(FULLVERSION)/iojs-$(FULLVERSION).pkg scp -p node-$(FULLVERSION).pkg $(STAGINGSERVER):staging/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).pkg
ssh $(STAGINGSERVER) "touch staging/$(DISTTYPEDIR)/$(FULLVERSION)/iojs-$(FULLVERSION).pkg.done" ssh $(STAGINGSERVER) "touch staging/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).pkg.done"
$(TARBALL): release-only $(NODE_EXE) doc $(TARBALL): release-only $(NODE_EXE) doc
git checkout-index -a -f --prefix=$(TARNAME)/ git checkout-index -a -f --prefix=$(TARNAME)/
mkdir -p $(TARNAME)/doc/api mkdir -p $(TARNAME)/doc/api
cp doc/iojs.1 $(TARNAME)/doc/iojs.1 cp doc/node.1 $(TARNAME)/doc/node.1
cp -r out/doc/api/* $(TARNAME)/doc/api/ cp -r out/doc/api/* $(TARNAME)/doc/api/
rm -rf $(TARNAME)/deps/v8/{test,samples,tools/profviz} # too big rm -rf $(TARNAME)/deps/v8/{test,samples,tools/profviz} # too big
rm -rf $(TARNAME)/doc/images # too big rm -rf $(TARNAME)/doc/images # too big
@ -350,11 +350,11 @@ tar: $(TARBALL)
tar-upload: tar tar-upload: tar
ssh $(STAGINGSERVER) "mkdir -p staging/$(DISTTYPEDIR)/$(FULLVERSION)" ssh $(STAGINGSERVER) "mkdir -p staging/$(DISTTYPEDIR)/$(FULLVERSION)"
scp -p iojs-$(FULLVERSION).tar.gz $(STAGINGSERVER):staging/$(DISTTYPEDIR)/$(FULLVERSION)/iojs-$(FULLVERSION).tar.gz scp -p node-$(FULLVERSION).tar.gz $(STAGINGSERVER):staging/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.gz
ssh $(STAGINGSERVER) "touch staging/$(DISTTYPEDIR)/$(FULLVERSION)/iojs-$(FULLVERSION).tar.gz.done" ssh $(STAGINGSERVER) "touch staging/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.gz.done"
ifeq ($(XZ), 0) ifeq ($(XZ), 0)
scp -p iojs-$(FULLVERSION).tar.xz $(STAGINGSERVER):staging/$(DISTTYPEDIR)/$(FULLVERSION)/iojs-$(FULLVERSION).tar.xz scp -p node-$(FULLVERSION).tar.xz $(STAGINGSERVER):staging/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.xz
ssh $(STAGINGSERVER) "touch staging/$(DISTTYPEDIR)/$(FULLVERSION)/iojs-$(FULLVERSION).tar.xz.done" ssh $(STAGINGSERVER) "touch staging/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION).tar.xz.done"
endif endif
doc-upload: tar doc-upload: tar
@ -415,11 +415,11 @@ binary: $(BINARYTAR)
binary-upload: binary binary-upload: binary
ssh $(STAGINGSERVER) "mkdir -p staging/$(DISTTYPEDIR)/$(FULLVERSION)" ssh $(STAGINGSERVER) "mkdir -p staging/$(DISTTYPEDIR)/$(FULLVERSION)"
scp -p iojs-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz $(STAGINGSERVER):staging/$(DISTTYPEDIR)/$(FULLVERSION)/iojs-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz scp -p node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz $(STAGINGSERVER):staging/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz
ssh $(STAGINGSERVER) "touch staging/$(DISTTYPEDIR)/$(FULLVERSION)/iojs-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz.done" ssh $(STAGINGSERVER) "touch staging/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.gz.done"
ifeq ($(XZ), 0) ifeq ($(XZ), 0)
scp -p iojs-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz $(STAGINGSERVER):staging/$(DISTTYPEDIR)/$(FULLVERSION)/iojs-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz scp -p node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz $(STAGINGSERVER):staging/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz
ssh $(STAGINGSERVER) "touch staging/$(DISTTYPEDIR)/$(FULLVERSION)/iojs-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz.done" ssh $(STAGINGSERVER) "touch staging/$(DISTTYPEDIR)/$(FULLVERSION)/node-$(FULLVERSION)-$(OSTYPE)-$(ARCH).tar.xz.done"
endif endif
haswrk=$(shell which wrk > /dev/null 2>&1; echo $$?) haswrk=$(shell which wrk > /dev/null 2>&1; echo $$?)

View File

@ -1,41 +1,34 @@
io.js Node.js
===== =====
[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/nodejs/io.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/nodejs/node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
This repository began as a GitHub fork of This repository began as a GitHub fork of
[joyent/node](https://github.com/joyent/node). [joyent/node](https://github.com/joyent/node).
io.js contributions, releases, and contributorship are under an Node.js contributions, releases, and contributorship are under an
[open governance model](./GOVERNANCE.md). [open governance model](./GOVERNANCE.md).
We intend to land, with increasing regularity, releases which are We intend to land, with increasing regularity, releases which are
compatible with the npm ecosystem that has been built to date for compatible with the npm ecosystem that has been built to date for
Node.js. Node.js.
## Is it io.js or IO.js or iojs or IOjs or iOjS?
The official name is **io.js**, which should never be capitalized,
especially not at the start of a sentence, unless it is being
displayed in a location that is customarily all-caps (such as
the title of man pages).
## Download ## Download
Binaries, installers, and source tarballs are available at Binaries, installers, and source tarballs are available at
<https://iojs.org>. <https://nodejs.org>.
**Releases** are available at <https://iojs.org/dist/>, listed under **Releases** are available at <https://nodejs.org/dist/>, listed under
their version string. The <https://iojs.org/dist/latest/> symlink their version string. The <https://nodejs.org/dist/latest/> symlink
will point to the latest release directory. will point to the latest release directory.
**Nightly** builds are available at **Nightly** builds are available at
<https://iojs.org/download/nightly/>, listed under their version <https://nodejs.org/download/nightly/>, listed under their version
string which includes their date (in UTC time) and the commit SHA at string which includes their date (in UTC time) and the commit SHA at
the HEAD of the release. the HEAD of the release.
**API documentation** is available in each release and nightly **API documentation** is available in each release and nightly
directory under _docs_. <https://iojs.org/api/> points to the latest version. directory under _docs_. <https://nodejs.org/api/> points to the latest version.
### Verifying Binaries ### Verifying Binaries
@ -45,10 +38,10 @@ download. To check that a downloaded file matches the checksum, run
it through `sha256sum` with a command such as: it through `sha256sum` with a command such as:
``` ```
$ grep iojs-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c - $ grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c -
``` ```
_(Where "iojs-vx.y.z.tar.gz" is the name of the file you have _(Where "node-vx.y.z.tar.gz" is the name of the file you have
downloaded)_ downloaded)_
Additionally, releases (not nightlies) have GPG signed copies of Additionally, releases (not nightlies) have GPG signed copies of
@ -68,7 +61,7 @@ $ gpg --keyserver pool.sks-keyservers.net \
_(Include each of the key fingerprints at the end of this command.)_ _(Include each of the key fingerprints at the end of this command.)_
You can then use `gpg --verify SHASUMS256.txt.asc` to verify that the You can then use `gpg --verify SHASUMS256.txt.asc` to verify that the
file has been signed by an authorized member of the io.js team. file has been signed by an authorized member of the Node.js team.
Once verified, use the SHASUMS256.txt.asc file to get the checksum for Once verified, use the SHASUMS256.txt.asc file to get the checksum for
the binary verification command above. the binary verification command above.
@ -116,13 +109,13 @@ $ make doc
To read the documentation: To read the documentation:
```text ```text
$ man doc/iojs.1 $ man doc/node.1
``` ```
To test if io.js was built correctly: To test if Node.js was built correctly:
``` ```
$ iojs -e "console.log('Hello from io.js ' + process.version)" $ node -e "console.log('Hello from node.js ' + process.version)"
``` ```
### Windows ### Windows
@ -146,10 +139,10 @@ To run the tests:
> vcbuild test > vcbuild test
``` ```
To test if io.js was built correctly: To test if Node.js was built correctly:
``` ```
$ iojs -e "console.log('Hello from io.js ' + process.version)" $ node -e "console.log('Hello from node.js ' + process.version)"
``` ```
### Android / Android based devices, aka. Firefox OS ### Android / Android based devices, aka. Firefox OS
@ -262,11 +255,11 @@ as `deps/icu` (You'll have: `deps/icu/source/...`)
> vcbuild full-icu > vcbuild full-icu
``` ```
# Building io.js with FIPS-compliant OpenSSL # Building Node.js with FIPS-compliant OpenSSL
NOTE: Windows is not yet supported NOTE: Windows is not yet supported
It is possible to build io.js with It is possible to build Node.js with
[OpenSSL FIPS module](https://www.openssl.org/docs/fips/fipsnotes.html). [OpenSSL FIPS module](https://www.openssl.org/docs/fips/fipsnotes.html).
**Note** that building in this way does **not** allow you to **Note** that building in this way does **not** allow you to
@ -302,26 +295,25 @@ Instructions:
(http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf). (http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf).
The only exception is that `./config no-asm` can be The only exception is that `./config no-asm` can be
used in place of `./config` ) used in place of `./config` )
6. Get into io.js checkout folder 6. Get into Node.js checkout folder
7. `./configure --openssl-fips=/path/to/openssl-fips/installdir` 7. `./configure --openssl-fips=/path/to/openssl-fips/installdir`
For example on ubuntu 12 the installation directory was For example on ubuntu 12 the installation directory was
/usr/local/ssl/fips-2.0 /usr/local/ssl/fips-2.0
8. Build io.js with `make -j` 8. Build Node.js with `make -j`
9. Verify with `node -p "process.versions.openssl"` (`1.0.2a-fips`) 9. Verify with `node -p "process.versions.openssl"` (`1.0.2a-fips`)
## Resources for Newcomers ## Resources for Newcomers
* [CONTRIBUTING.md](./CONTRIBUTING.md) * [CONTRIBUTING.md](./CONTRIBUTING.md)
* [GOVERNANCE.md](./GOVERNANCE.md) * [GOVERNANCE.md](./GOVERNANCE.md)
* IRC: * IRC:
[#io.js on Freenode.net](http://webchat.freenode.net?channels=io.js&uio=d4) [#io.js on Freenode.net](http://webchat.freenode.net?channels=io.js&uio=d4)
* [iojs/io.js on Gitter](https://gitter.im/nodejs/io.js) * [nodejs/node on Gitter](https://gitter.im/nodejs/node)
## Security ## Security
All security bugs in io.js are taken seriously and should be reported by All security bugs in node.js are taken seriously and should be reported by
emailing security@iojs.org. This will be delivered to a subset of the project emailing security@nodejs.org. This will be delivered to a subset of the project
team who handle security issues. Please don't disclose security bugs team who handle security issues. Please don't disclose security bugs
public until they have been handled by the security team. public until they have been handled by the security team.
@ -331,9 +323,9 @@ handling your report.
## Current Project Team Members ## Current Project Team Members
The io.js project team comprises a group of core collaborators and a sub-group The Node.js project team comprises a group of core collaborators and a sub-group
that forms the _Technical Steering Committee_ (TSC) which governs the project. For more that forms the _Technical Steering Committee_ (TSC) which governs the project. For more
information about the governance of the io.js project, see information about the governance of the Node.js project, see
[GOVERNANCE.md](./GOVERNANCE.md). [GOVERNANCE.md](./GOVERNANCE.md).
======= =======
@ -392,4 +384,4 @@ information about the governance of the io.js project, see
* **João Reis** &lt;reis@janeasystems.com&gt; ([@joaocgreis](https://github.com/joaocgreis)) * **João Reis** &lt;reis@janeasystems.com&gt; ([@joaocgreis](https://github.com/joaocgreis))
Collaborators & TSC members follow the [COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md) in Collaborators & TSC members follow the [COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md) in
maintaining the io.js project. maintaining the Node.js project.

View File

@ -1,4 +1,4 @@
# io.js Roadmap # Node.js Roadmap
***This is a living document, it describes the policy and priorities as they exist today but can evolve over time.*** ***This is a living document, it describes the policy and priorities as they exist today but can evolve over time.***
@ -6,15 +6,15 @@
The most important consideration in every code change is the impact it will have, positive or negative, on the ecosystem (modules and applications). The most important consideration in every code change is the impact it will have, positive or negative, on the ecosystem (modules and applications).
io.js does not remove stdlib JS API. Node.js does not remove stdlib JS API.
Shipping with current and well supported dependencies is the best way to ensure long term stability of the platform. When those dependencies are no longer maintained io.js will take on their continued maintenance as part of our [Long Term Support policy](#long-term-support). Shipping with current and well supported dependencies is the best way to ensure long term stability of the platform. When those dependencies are no longer maintained Node.js will take on their continued maintenance as part of our [Long Term Support policy](#long-term-support).
io.js will continue to adopt new V8 releases. Node.js will continue to adopt new V8 releases.
* When V8 ships a breaking change to their C++ API that can be handled by [`nan`](https://github.com/rvagg/nan) * When V8 ships a breaking change to their C++ API that can be handled by [`nan`](https://github.com/rvagg/nan)
the *minor* version of io.js will be increased. the *minor* version of Node.js will be increased.
* When V8 ships a breaking change to their C++ API that can NOT be handled by [`nan`](https://github.com/rvagg/nan) * When V8 ships a breaking change to their C++ API that can NOT be handled by [`nan`](https://github.com/rvagg/nan)
the *major* version of io.js will be increased. the *major* version of Node.js will be increased.
* When new features in the JavaScript language are introduced by V8 the * When new features in the JavaScript language are introduced by V8 the
*minor* version number will be increased. TC39 has stated clearly that no *minor* version number will be increased. TC39 has stated clearly that no
backwards incompatible changes will be made to the language so it is backwards incompatible changes will be made to the language so it is
@ -26,23 +26,23 @@ Any API addition will cause an increase in the *minor* version.
### Long Term Support ### Long Term Support
io.js supports old versions for as long as community members are fixing bugs in them. Node.js supports old versions for as long as community members are fixing bugs in them.
As long as there is a community back porting bug fixes we will push patch releases for those versions of io.js. As long as there is a community back porting bug fixes we will push patch releases for those versions of Node.js.
When old versions of dependencies like V8 are no longer supported by their project io.js will take on the responsibility of maintenance to ensure continued long term support in io.js patch releases. When old versions of dependencies like V8 are no longer supported by their project Node.js will take on the responsibility of maintenance to ensure continued long term support in Node.js patch releases.
## Channels ## Channels
Channels are points of collaboration with the broader community and are not strictly scoped to a repository or branch. Channels are points of collaboration with the broader community and are not strictly scoped to a repository or branch.
* Release - Stable production ready builds. Unique version numbers following semver. * Release - Stable production ready builds. Unique version numbers following semver.
* Canary - Nightly builds w/ V8 version in Chrome Canary + changes landing to io.js. No version designation. * Canary - Nightly builds w/ V8 version in Chrome Canary + changes landing to Node.js. No version designation.
* NG - "Next Generation." No version designation. * NG - "Next Generation." No version designation.
## NG (Next Generation) ## NG (Next Generation)
In order for io.js to stay competitive we need to work on the next generation of the platform which will more accurately integrate and reflect the advancements in the language and the ecosystem. In order for Node.js to stay competitive we need to work on the next generation of the platform which will more accurately integrate and reflect the advancements in the language and the ecosystem.
While this constitutes a great leap forward for the platform we will be making this leap without breaking backwards compatibility with the existing ecosystem of modules. While this constitutes a great leap forward for the platform we will be making this leap without breaking backwards compatibility with the existing ecosystem of modules.
@ -50,9 +50,9 @@ While this constitutes a great leap forward for the platform we will be making t
## Debugging and Tracing ## Debugging and Tracing
Debugging is one of the first things from everyone's mouth, both developer and enterprise, when describing trouble they've had with node.js/io.js. Debugging is one of the first things from everyone's mouth, both developer and enterprise, when describing trouble they've had with Node.js.
The goal of io.js' effort is to build a healthy debugging and tracing ecosystem and not to try and build any "silver bullet" features for core (like the domains debacle). The goal of Node.js' effort is to build a healthy debugging and tracing ecosystem and not to try and build any "silver bullet" features for core (like the domains debacle).
The [Tracing WG](https://github.com/nodejs/tracing-wg) is driving this effort: The [Tracing WG](https://github.com/nodejs/tracing-wg) is driving this effort:
@ -60,8 +60,8 @@ The [Tracing WG](https://github.com/nodejs/tracing-wg) is driving this effort:
* async-listener - userland module that will dogfood AsyncWrap as well as provide many often requested debugging features. * async-listener - userland module that will dogfood AsyncWrap as well as provide many often requested debugging features.
* Tracing * Tracing
* Add tracing support for more platforms (LTTng, etc). * Add tracing support for more platforms (LTTng, etc).
* [Unify the Tracing endpoint](https://github.com/nodejs/io.js/issues/729). * [Unify the Tracing endpoint](https://github.com/nodejs/node/issues/729).
* New Chrome Debugger - Google is working on a version of Chrome's debugger that is without Chrome and can be used with io.js. * New Chrome Debugger - Google is working on a version of Chrome's debugger that is without Chrome and can be used with Node.js.
## Ecosystem Automation ## Ecosystem Automation

View File

@ -1,11 +1,11 @@
# io.js Working Groups # Node.js Working Groups
io.js Working Groups are autonomous projects created by the Node.js Working Groups are autonomous projects created by the
[Technical Committee (TC)](https://github.com/nodejs/io.js/blob/master/GOVERNANCE.md#technical-committee). [Technical Steering Committee (TSC)](https://github.com/nodejs/node/blob/master/GOVERNANCE.md#technical-committee).
Working Groups can be formed at any time but must be ratified by the TC. Working Groups can be formed at any time but must be ratified by the TSC.
Once formed the work defined in the Working Group charter is the Once formed the work defined in the Working Group charter is the
responsibility of the WG rather than the TC. responsibility of the WG rather than the TSC.
It is important that Working Groups are not formed pre-maturely. Working It is important that Working Groups are not formed pre-maturely. Working
Groups are not formed to *begin* a set of tasks but instead are formed Groups are not formed to *begin* a set of tasks but instead are formed
@ -14,7 +14,7 @@ think it would benefit from being done as an autonomous project.
If the work defined in a Working Group charter is completed the Working If the work defined in a Working Group charter is completed the Working
Group should be dissolved and the responsibility for governance absorbed Group should be dissolved and the responsibility for governance absorbed
back in to the TC. back in to the TSC.
## Current Working Groups ## Current Working Groups
@ -33,30 +33,30 @@ back in to the TC.
### [Website](https://github.com/nodejs/website) ### [Website](https://github.com/nodejs/website)
The website working group's purpose is to build and maintain a public The website working group's purpose is to build and maintain a public
website for the `io.js` project. website for the `Node.js` project.
Its responsibilities are: Its responsibilities are:
* Develop and maintain a build and automation system for `iojs.org`. * Develop and maintain a build and automation system for `nodejs.org`.
* Ensure the site is regularly updated with changes made to `io.js` like * Ensure the site is regularly updated with changes made to `Node.js` like
releases and features. releases and features.
* Foster and enable a community of translators. * Foster and enable a community of translators.
### [Streams](https://github.com/nodejs/readable-stream) ### [Streams](https://github.com/nodejs/readable-stream)
The Streams WG is dedicated to the support and improvement of the Streams API The Streams WG is dedicated to the support and improvement of the Streams API
as used in io.js and the npm ecosystem. We seek to create a composable API that as used in Node.js and the npm ecosystem. We seek to create a composable API that
solves the problem of representing multiple occurrences of an event over time solves the problem of representing multiple occurrences of an event over time
in a humane, low-overhead fashion. Improvements to the API will be driven by in a humane, low-overhead fashion. Improvements to the API will be driven by
the needs of the ecosystem; interoperability and backwards compatibility with the needs of the ecosystem; interoperability and backwards compatibility with
other solutions and prior versions are paramount in importance. Our other solutions and prior versions are paramount in importance. Our
responsibilities include: responsibilities include:
* Addressing stream issues on the io.js issue tracker. * Addressing stream issues on the Node.js issue tracker.
* Authoring and editing stream documentation within the io.js project. * Authoring and editing stream documentation within the Node.js project.
* Reviewing changes to stream subclasses within the io.js project. * Reviewing changes to stream subclasses within the Node.js project.
* Redirecting changes to streams from the io.js project to this project. * Redirecting changes to streams from the Node.js project to this project.
* Assisting in the implementation of stream providers within io.js. * Assisting in the implementation of stream providers within Node.js.
* Recommending versions of readable-stream to be included in io.js. * Recommending versions of readable-stream to be included in Node.js.
* Messaging about the future of streams to give the community advance notice of changes. * Messaging about the future of streams to give the community advance notice of changes.
@ -75,7 +75,7 @@ Its responsibilities are:
### [Tracing](https://github.com/nodejs/tracing-wg) ### [Tracing](https://github.com/nodejs/tracing-wg)
The tracing working group's purpose is to increase the The tracing working group's purpose is to increase the
transparency of software written in io.js. transparency of software written in Node.js.
Its responsibilities are: Its responsibilities are:
* Collaboration with V8 to integrate with `trace_event`. * Collaboration with V8 to integrate with `trace_event`.
@ -95,12 +95,12 @@ language community might then produce multiple localizations for
various project resources. various project resources.
Their responsibilities are: Their responsibilities are:
* Translations of any io.js materials they believe are relevant to their * Translations of any Node.js materials they believe are relevant to their
community. community.
* Review processes for keeping translations up * Review processes for keeping translations up
to date and of high quality. to date and of high quality.
* Social media channels in their language. * Social media channels in their language.
* Promotion of io.js speakers for meetups and conferences in their * Promotion of Node.js speakers for meetups and conferences in their
language. language.
Each language community maintains its own membership. Each language community maintains its own membership.
@ -144,7 +144,7 @@ Each language community maintains its own membership.
### [Evangelism](https://github.com/nodejs/evangelism) ### [Evangelism](https://github.com/nodejs/evangelism)
The evangelism working group promotes the accomplishments The evangelism working group promotes the accomplishments
of io.js and lets the community know how they can get involved. of Node.js and lets the community know how they can get involved.
Their responsibilities are: Their responsibilities are:
* Project messaging. * Project messaging.
@ -158,7 +158,7 @@ content.
### [Roadmap](https://github.com/nodejs/roadmap) ### [Roadmap](https://github.com/nodejs/roadmap)
The roadmap working group is responsible for user community outreach The roadmap working group is responsible for user community outreach
and the translation of their concerns into a plan of action for io.js. and the translation of their concerns into a plan of action for Node.js.
The final [ROADMAP](./ROADMAP.md) document is still owned by the TC and requires The final [ROADMAP](./ROADMAP.md) document is still owned by the TC and requires
the same approval for changes as any other project asset. the same approval for changes as any other project asset.
@ -172,10 +172,10 @@ Their responsibilities are:
### [Docker](https://github.com/nodejs/docker-iojs) ### [Docker](https://github.com/nodejs/docker-iojs)
The Docker working group's purpose is to build, maintain, and improve official The Docker working group's purpose is to build, maintain, and improve official
Docker images for the `io.js` project. Docker images for the `Node.js` project.
Their responsibilities are: Their responsibilities are:
* Keep the official Docker images updated in line with new `io.js` releases. * Keep the official Docker images updated in line with new `Node.js` releases.
* Decide and implement image improvements and/or fixes. * Decide and implement image improvements and/or fixes.
* Maintain and improve the images' documentation. * Maintain and improve the images' documentation.
@ -184,9 +184,9 @@ Their responsibilities are:
The Addon API Working Group is responsible for maintaining the NAN project and The Addon API Working Group is responsible for maintaining the NAN project and
corresponding _nan_ package in npm. The NAN project makes available an corresponding _nan_ package in npm. The NAN project makes available an
abstraction layer for native add-on authors for both Node.js and io.js, abstraction layer for native add-on authors for both Node.js and Node.js,
assisting in the writing of code that is compatible with many actively used assisting in the writing of code that is compatible with many actively used
versions of Node.js, io.js, V8 and libuv. versions of Node.js, Node.js, V8 and libuv.
Their responsibilities are: Their responsibilities are:
@ -194,12 +194,12 @@ Their responsibilities are:
including code, issues and documentation. including code, issues and documentation.
* Maintaining the [addon-examples](https://github.com/nodejs/node-addon-examples) * Maintaining the [addon-examples](https://github.com/nodejs/node-addon-examples)
GitHub repository, including code, issues and documentation. GitHub repository, including code, issues and documentation.
* Maintaining the C++ Addon API within the io.js project, in subordination to * Maintaining the C++ Addon API within the Node.js project, in subordination to
the io.js TC. the Node.js TSC.
* Maintaining the Addon documentation within the io.js project, in * Maintaining the Addon documentation within the Node.js project, in
subordination to the io.js TC. subordination to the Node.js TSC.
* Maintaining the _nan_ package in npm, releasing new versions as appropriate. * Maintaining the _nan_ package in npm, releasing new versions as appropriate.
* Messaging about the future of the io.js and NAN interface to give the * Messaging about the future of the Node.js and NAN interface to give the
community advance notice of changes. community advance notice of changes.
The current members can be found in their The current members can be found in their
@ -239,7 +239,7 @@ governance process, hence the term "bootstrap."
### *[insert WG name]* Working Group ### *[insert WG name]* Working Group
The io.js *[insert WG name]* is jointly governed by a Working Group (WG) The Node.js *[insert WG name]* is jointly governed by a Working Group (WG)
that is responsible for high-level guidance of the project. that is responsible for high-level guidance of the project.
The WG has final authority over this project including: The WG has final authority over this project including:

View File

@ -1,7 +1,7 @@
# io.js core benchmark tests # Node.js core benchmark tests
This folder contains benchmark tests to measure the performance for certain This folder contains benchmark tests to measure the performance for certain
io.js APIs. Node.js APIs.
## Prerequisites ## Prerequisites

View File

@ -19,7 +19,7 @@ if (module === require.main) {
var type = process.argv[2]; var type = process.argv[2];
var testFilter = process.argv[3]; var testFilter = process.argv[3];
if (!type) { if (!type) {
console.error('usage:\n ./iojs benchmark/common.js <type> [testFilter]'); console.error('usage:\n ./node benchmark/common.js <type> [testFilter]');
process.exit(1); process.exit(1);
} }

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
cd "$(dirname "$(dirname $0)")" cd "$(dirname "$(dirname $0)")"
node=${NODE:-./iojs} node=${NODE:-./node}
name=${NAME:-stacks} name=${NAME:-stacks}
@ -22,7 +22,7 @@ fi
ulimit -n 100000 ulimit -n 100000
$node benchmark/http_simple.js & $node benchmark/http_simple.js &
nodepid=$! nodepid=$!
echo "iojs pid = $nodepid" echo "node pid = $nodepid"
sleep 1 sleep 1
# has to stay alive until dtrace exits # has to stay alive until dtrace exits
@ -62,7 +62,7 @@ echo 'Turn the stacks into a svg'
stackvis dtrace flamegraph-svg < "$name".src > "$name".raw.svg stackvis dtrace flamegraph-svg < "$name".src > "$name".raw.svg
echo 'Prune tiny stacks out of the graph' echo 'Prune tiny stacks out of the graph'
iojs -e ' node -e '
var infile = process.argv[1]; var infile = process.argv[1];
var outfile = process.argv[2]; var outfile = process.argv[2];
var output = ""; var output = "";

View File

@ -24,7 +24,7 @@ if [ "$k" = "no" ]; then
else else
k="-k" k="-k"
fi fi
node=${NODE:-./iojs} node=${NODE:-./node}
$node benchmark/http_simple.js & $node benchmark/http_simple.js &
npid=$! npid=$!

View File

@ -4,7 +4,7 @@ SERVER=127.0.0.1
PORT=${PORT:=8000} PORT=${PORT:=8000}
# You may want to configure your TCP settings to make many ports available # You may want to configure your TCP settings to make many ports available
# to node and ab. On macintosh use: # to node and ab. On macintosh use:
# sudo sysctl -w net.inet.ip.portrange.first=32768 # sudo sysctl -w net.inet.ip.portrange.first=32768
# sudo sysctl -w net.inet.tcp.msl=1000 # sudo sysctl -w net.inet.tcp.msl=1000
@ -14,7 +14,7 @@ if [ ! -d benchmark/ ]; then
fi fi
if [ $SERVER == "127.0.0.1" ]; then if [ $SERVER == "127.0.0.1" ]; then
./iojs benchmark/http_simple.js & ./node benchmark/http_simple.js &
node_pid=$! node_pid=$!
sleep 1 sleep 1
fi fi
@ -24,7 +24,7 @@ date=`date "+%Y%m%d%H%M%S"`
ab_hello_world() { ab_hello_world() {
local type="$1" local type="$1"
local ressize="$2" local ressize="$2"
if [ $type == "string" ]; then if [ $type == "string" ]; then
local uri="bytes/$ressize" local uri="bytes/$ressize"
else else
local uri="buffer/$ressize" local uri="buffer/$ressize"
@ -54,7 +54,7 @@ ab_hello_world() {
echo "webserver-rev: $rev" >> $summary_fn echo "webserver-rev: $rev" >> $summary_fn
echo "webserver-uname: $uname" >> $summary_fn echo "webserver-uname: $uname" >> $summary_fn
grep Req $summary_fn grep Req $summary_fn
echo "Summary: $summary_fn" echo "Summary: $summary_fn"
echo echo
@ -64,7 +64,7 @@ ab_hello_world() {
ab_hello_world 'string' '1024' ab_hello_world 'string' '1024'
ab_hello_world 'buffer' '1024' ab_hello_world 'buffer' '1024'
# 100k # 100k
ab_hello_world 'string' '102400' ab_hello_world 'string' '102400'
ab_hello_world 'buffer' '102400' ab_hello_world 'buffer' '102400'

View File

@ -1,14 +1,14 @@
#!/usr/bin/env Rscript #!/usr/bin/env Rscript
# To use this script you'll need to install R: http://www.r-project.org/ # To use this script you'll need to install R: http://www.r-project.org/
# and a library for R called ggplot2 # and a library for R called ggplot2
# Which can be done by starting R and typing install.packages("ggplot2") # Which can be done by starting R and typing install.packages("ggplot2")
# like this: # like this:
# #
# shell% R # shell% R
# R version 2.11.0 beta (2010-04-12 r51689) # R version 2.11.0 beta (2010-04-12 r51689)
# > install.packages("ggplot2") # > install.packages("ggplot2")
# (follow prompt) # (follow prompt)
# #
# Then you can try this script by providing a full path to .data file # Then you can try this script by providing a full path to .data file
# outputed from 'make bench' # outputed from 'make bench'
@ -17,7 +17,7 @@
# > make bench # > make bench
# ... # ...
# > ./benchmark/plot.R .benchmark_reports/ab-hello-world-buffer-1024/ff456b38862de3fd0118c6ac6b3f46edb1fbb87f/20101013162056.data # > ./benchmark/plot.R .benchmark_reports/ab-hello-world-buffer-1024/ff456b38862de3fd0118c6ac6b3f46edb1fbb87f/20101013162056.data
# #
# This will generate a PNG file which you can view # This will generate a PNG file which you can view
# #
# #
@ -39,20 +39,20 @@ ab.load <- function (filename, name) {
#ab.tsPoint <- function (d) { #ab.tsPoint <- function (d) {
# qplot(time_s, ttime, data=d, facets=server~., # qplot(time_s, ttime, data=d, facets=server~.,
# geom="point", alpha=I(1/15), ylab="response time (ms)", # geom="point", alpha=I(1/15), ylab="response time (ms)",
# xlab="time (s)", main="c=30, res=26kb", # xlab="time (s)", main="c=30, res=26kb",
# ylim=c(0,100)) # ylim=c(0,100))
#} #}
# #
#ab.tsLine <- function (d) { #ab.tsLine <- function (d) {
# qplot(time_s, ttime, data=d, facets=server~., # qplot(time_s, ttime, data=d, facets=server~.,
# geom="line", ylab="response time (ms)", # geom="line", ylab="response time (ms)",
# xlab="time (s)", main="c=30, res=26kb", # xlab="time (s)", main="c=30, res=26kb",
# ylim=c(0,100)) # ylim=c(0,100))
#} #}
filename <- args[0:1] filename <- args[0:1]
data <- ab.load(filename, "iojs") data <- ab.load(filename, "node")
# histogram # histogram

View File

@ -5,7 +5,7 @@
# #
# Once installed, you can generate some CSV output with a command like this: # Once installed, you can generate some CSV output with a command like this:
# #
# $ OUTPUT_FORMAT=csv iojs benchmark/http/client-request-body.js > data.csv # $ OUTPUT_FORMAT=csv node benchmark/http/client-request-body.js > data.csv
# $ ./benchmark/plot_csv.R data.csv data.png bytes type # $ ./benchmark/plot_csv.R data.csv data.png bytes type
# #
# Where the 3rd argument to this script is the graph's X coordinate, the 4th is # Where the 3rd argument to this script is the graph's X coordinate, the 4th is

8
configure vendored
View File

@ -40,7 +40,7 @@ shared_optgroup = optparse.OptionGroup(parser, "Shared libraries",
"built-in dependencies or its shared representations. If necessary, " "built-in dependencies or its shared representations. If necessary, "
"provide multiple libraries with comma.") "provide multiple libraries with comma.")
intl_optgroup = optparse.OptionGroup(parser, "Internationalization", intl_optgroup = optparse.OptionGroup(parser, "Internationalization",
"Flags that lets you enable i18n features in io.js as well as which " "Flags that lets you enable i18n features in Node.js as well as which "
"library you want to build against.") "library you want to build against.")
# Options should be in alphabetical order but keep --prefix at the top, # Options should be in alphabetical order but keep --prefix at the top,
@ -406,7 +406,7 @@ def get_llvm_version(cc):
proc = subprocess.Popen(shlex.split(cc) + ['-v'], stdin=subprocess.PIPE, proc = subprocess.Popen(shlex.split(cc) + ['-v'], stdin=subprocess.PIPE,
stderr=subprocess.PIPE, stdout=subprocess.PIPE) stderr=subprocess.PIPE, stdout=subprocess.PIPE)
except OSError: except OSError:
print '''io.js configure error: No acceptable C compiler found! print '''Node.js configure error: No acceptable C compiler found!
Please make sure you have a C compiler installed on your system and/or Please make sure you have a C compiler installed on your system and/or
consider adjusting the CC environment variable if you installed consider adjusting the CC environment variable if you installed
@ -431,7 +431,7 @@ def get_gas_version(cc):
stdin=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE,
stdout=subprocess.PIPE) stdout=subprocess.PIPE)
except OSError: except OSError:
print '''io.js configure error: No acceptable C compiler found! print '''Node.js configure error: No acceptable C compiler found!
Please make sure you have a C compiler installed on your system and/or Please make sure you have a C compiler installed on your system and/or
consider adjusting the CC environment variable if you installed consider adjusting the CC environment variable if you installed
@ -489,7 +489,7 @@ def cc_macros():
stdout=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE) stderr=subprocess.PIPE)
except OSError: except OSError:
print '''io.js configure error: No acceptable C compiler found! print '''Node.js configure error: No acceptable C compiler found!
Please make sure you have a C compiler installed on your system and/or Please make sure you have a C compiler installed on your system and/or
consider adjusting the CC environment variable if you installed consider adjusting the CC environment variable if you installed

View File

@ -10,7 +10,7 @@ solaris64-x86_64-gcc
CFG = opensslconf.h CFG = opensslconf.h
SRC_CFG = ../openssl/crypto/$(CFG) SRC_CFG = ../openssl/crypto/$(CFG)
BACKUP_FILES = ../openssl/Makefile ../openssl/Makefile.bak $(SRC_CFG) BACKUP_FILES = ../openssl/Makefile ../openssl/Makefile.bak $(SRC_CFG)
BACKUP_EXT = iojsbackup BACKUP_EXT = nodebackup
# OPENSSL_CPUID_OBJ is defined in openssl.gypi for use --openssl-no-asm # OPENSSL_CPUID_OBJ is defined in openssl.gypi for use --openssl-no-asm
CPUIDFIX = 's/\#define OPENSSL_CPUID_OBJ$$//;' CPUIDFIX = 's/\#define OPENSSL_CPUID_OBJ$$//;'
@ -29,7 +29,7 @@ $(ARCHS):
# The current openssl release does not use RC4 asm since it explicitly # The current openssl release does not use RC4 asm since it explicitly
# specified as `$asm=~s/rc4\-[^:]+//;` in # specified as `$asm=~s/rc4\-[^:]+//;` in
# https://github.com/openssl/openssl/blob/OpenSSL_1_0_1-stable/Configure#L584 # https://github.com/openssl/openssl/blob/OpenSSL_1_0_1-stable/Configure#L584
# But iojs has used RC4 asm on MacOS for long time. Fix type of RC4_INT # But node has used RC4 asm on MacOS for long time. Fix type of RC4_INT
# into `unsigned int` in opensslconf.h of darwin64-x86_64-cc to work on # into `unsigned int` in opensslconf.h of darwin64-x86_64-cc to work on
# the RC4 asm. # the RC4 asm.
fixdarwin64: fixdarwin64:

View File

@ -3,7 +3,7 @@
specifying a target argument, where it includes several defines that specifying a target argument, where it includes several defines that
depend on OS and architecture platform. depend on OS and architecture platform.
In iojs, we statically mapped --dest-os and --dest-cpu options in In node, we statically mapped --dest-os and --dest-cpu options in
configure to the target of Configure in OpenSSL and make configure to the target of Configure in OpenSSL and make
`deps/openssl/conf/openssconf.h` so as to include each file `deps/openssl/conf/openssconf.h` so as to include each file
according to its target by checking pre-defined compiler macros. according to its target by checking pre-defined compiler macros.
@ -11,9 +11,9 @@
Included opnesslconf.h files for supported target architectures can Included opnesslconf.h files for supported target architectures can
be generated by `Makefile` and stored under be generated by `Makefile` and stored under
`archs/{target}/opensslconf.h`. The Makefile also fixes several `archs/{target}/opensslconf.h`. The Makefile also fixes several
defines to meet iojs build requirements. defines to meet node build requirements.
Here is a map table of configure options in iojs, target arch of Here is a map table of configure options in node, target arch of
Configure in OpenSSL and CI support. Configure in OpenSSL and CI support.
| --dest-os | --dest-cpu | OpenSSL target arch | CI | | --dest-os | --dest-cpu | OpenSSL target arch | CI |

View File

@ -1,7 +1,7 @@
## How to upgrade openssl library in io.js ## How to upgrade openssl library in Node.js
This document describes the procedure to upgrade openssl from 1.0.2a This document describes the procedure to upgrade openssl from 1.0.2a
to 1.0.2c in io.js. to 1.0.2c in Node.js.
### Build System and Upgrading Overview ### Build System and Upgrading Overview
@ -17,16 +17,16 @@ hardware performance according to the type of cpus.
`Configure TABLE` shows various build parameters that depend on each `Configure TABLE` shows various build parameters that depend on each
os and arch. os and arch.
In io.js, build target is defined as `--dest-os` and `--dest-cpu` in In Node.js, build target is defined as `--dest-os` and `--dest-cpu` in
configure options which are different from the one that is defined in configure options which are different from the one that is defined in
openssl and it's build system is gyp that is based on python, openssl and it's build system is gyp that is based on python,
therefore we cannot use the openssl build system directly. therefore we cannot use the openssl build system directly.
In order to build openssl with gyp in iojs, files of opensslconf.h and In order to build openssl with gyp in node, files of opensslconf.h and
asm are generated in advance for several supported platforms. asm are generated in advance for several supported platforms.
Here is a map table to show conf(opensslconf.h) and asm between Here is a map table to show conf(opensslconf.h) and asm between
the openssl target and configuration parameters of os and cpu in iojs. the openssl target and configuration parameters of os and cpu in node.
The tested platform in CI are also listed. The tested platform in CI are also listed.
| --dest-os | --dest-cpu | conf | asm | openssl target | CI | | --dest-os | --dest-cpu | conf | asm | openssl target | CI |
@ -74,7 +74,7 @@ build. Furthermore, these perl scripts check the version of assembler
and generate asm files according to the supported instructions in each and generate asm files according to the supported instructions in each
compiler. compiler.
Since perl is not a build requirement in iojs, they all should be Since perl is not a build requirement in node, they all should be
generated in advance and statically stored in the repository. We generated in advance and statically stored in the repository. We
provide two sets of asm files, one is asm_latest(avx2 and addx provide two sets of asm files, one is asm_latest(avx2 and addx
supported) in `deps/openssl/asm` and the other asm_obsolete(without supported) in `deps/openssl/asm` and the other asm_obsolete(without
@ -91,7 +91,7 @@ https://github.com/openssl/openssl/blob/OpenSSL_1_0_2-stable/crypto/sha/asm/sha5
otherwise asm_obsolete are used. otherwise asm_obsolete are used.
The following is the detail instruction steps how to upgrade openssl The following is the detail instruction steps how to upgrade openssl
version from 1.0.2a to 1.0.2c in iojs. version from 1.0.2a to 1.0.2c in node.
### 1. Replace openssl source in `deps/openssl/openssl` ### 1. Replace openssl source in `deps/openssl/openssl`
Remove old openssl sources in `deps/openssl/openssl` . Remove old openssl sources in `deps/openssl/openssl` .
@ -104,7 +104,7 @@ There are three kinds of private patches to be applied in openssl-1.0.2c.
- The two fixes of assembly error on ia32 win32. masm is no longer - The two fixes of assembly error on ia32 win32. masm is no longer
supported in openssl. We should move to use nasm or yasm in future supported in openssl. We should move to use nasm or yasm in future
version of iojs. version of node.
- The fix of openssl-cli built on win. Key press requirement of - The fix of openssl-cli built on win. Key press requirement of
openssl-cli in win causes timeout failures of several tests. openssl-cli in win causes timeout failures of several tests.

View File

@ -6,7 +6,7 @@ knowledge of several libraries:
- V8 JavaScript, a C++ library. Used for interfacing with JavaScript: - V8 JavaScript, a C++ library. Used for interfacing with JavaScript:
creating objects, calling functions, etc. Documented mostly in the creating objects, calling functions, etc. Documented mostly in the
`v8.h` header file (`deps/v8/include/v8.h` in the io.js source `v8.h` header file (`deps/v8/include/v8.h` in the Node.js source
tree), which is also available tree), which is also available
[online](https://v8docs.nodesource.com/). [online](https://v8docs.nodesource.com/).
@ -16,12 +16,12 @@ knowledge of several libraries:
to interface with libuv. That is, if you perform any I/O, libuv will to interface with libuv. That is, if you perform any I/O, libuv will
need to be used. need to be used.
- Internal io.js libraries. Most importantly is the `node::ObjectWrap` - Internal Node.js libraries. Most importantly is the `node::ObjectWrap`
class which you will likely want to derive from. class which you will likely want to derive from.
- Others. Look in `deps/` for what else is available. - Others. Look in `deps/` for what else is available.
io.js statically compiles all its dependencies into the executable. Node.js statically compiles all its dependencies into the executable.
When compiling your module, you don't need to worry about linking to When compiling your module, you don't need to worry about linking to
any of these libraries. any of these libraries.
@ -64,7 +64,7 @@ First we create a file `hello.cc`:
} // namespace demo } // namespace demo
Note that all io.js addons must export an initialization function: Note that all Node.js addons must export an initialization function:
void Initialize(Local<Object> exports); void Initialize(Local<Object> exports);
NODE_MODULE(module_name, Initialize) NODE_MODULE(module_name, Initialize)
@ -99,7 +99,7 @@ command.
Now you have your compiled `.node` bindings file! The compiled bindings end up Now you have your compiled `.node` bindings file! The compiled bindings end up
in `build/Release/`. in `build/Release/`.
You can now use the binary addon in an io.js project `hello.js` by pointing You can now use the binary addon in an Node.js project `hello.js` by pointing
`require` to the recently built `hello.node` module: `require` to the recently built `hello.node` module:
// hello.js // hello.js
@ -656,7 +656,7 @@ Test it with:
### Passing wrapped objects around ### Passing wrapped objects around
In addition to wrapping and returning C++ objects, you can pass them around In addition to wrapping and returning C++ objects, you can pass them around
by unwrapping them with io.js's `node::ObjectWrap::Unwrap` helper function. by unwrapping them with Node.js's `node::ObjectWrap::Unwrap` helper function.
In the following `addon.cc` we introduce a function `add()` that can take on two In the following `addon.cc` we introduce a function `add()` that can take on two
`MyObject` objects: `MyObject` objects:

View File

@ -4,7 +4,7 @@
Pure JavaScript is Unicode friendly but not nice to binary data. When Pure JavaScript is Unicode friendly but not nice to binary data. When
dealing with TCP streams or the file system, it's necessary to handle octet dealing with TCP streams or the file system, it's necessary to handle octet
streams. io.js has several strategies for manipulating, creating, and streams. Node.js has several strategies for manipulating, creating, and
consuming octet streams. consuming octet streams.
Raw data is stored in instances of the `Buffer` class. A `Buffer` is similar Raw data is stored in instances of the `Buffer` class. A `Buffer` is similar
@ -33,7 +33,7 @@ encoding method. Here are the different string encodings.
* `'binary'` - A way of encoding raw binary data into strings by using only * `'binary'` - A way of encoding raw binary data into strings by using only
the first 8 bits of each character. This encoding method is deprecated and the first 8 bits of each character. This encoding method is deprecated and
should be avoided in favor of `Buffer` objects where possible. This encoding should be avoided in favor of `Buffer` objects where possible. This encoding
will be removed in future versions of io.js. will be removed in future versions of Node.js.
* `'hex'` - Encode each byte as two hexadecimal characters. * `'hex'` - Encode each byte as two hexadecimal characters.
@ -295,7 +295,7 @@ so the legal range is between `0x00` and `0xFF` hex or `0` and `255`.
Example: copy an ASCII string into a buffer, one byte at a time: Example: copy an ASCII string into a buffer, one byte at a time:
str = "io.js"; str = "Node.js";
buf = new Buffer(str.length); buf = new Buffer(str.length);
for (var i = 0; i < str.length ; i++) { for (var i = 0; i < str.length ; i++) {
@ -304,7 +304,7 @@ Example: copy an ASCII string into a buffer, one byte at a time:
console.log(buf); console.log(buf);
// io.js // Node.js
### buf.equals(otherBuffer) ### buf.equals(otherBuffer)

View File

@ -2,12 +2,12 @@
Stability: 2 - Stable Stability: 2 - Stable
io.js provides a tri-directional `popen(3)` facility through the Node.js provides a tri-directional `popen(3)` facility through the
`child_process` module. `child_process` module.
It is possible to stream data through a child's `stdin`, `stdout`, and It is possible to stream data through a child's `stdin`, `stdout`, and
`stderr` in a fully non-blocking way. (Note that some programs use `stderr` in a fully non-blocking way. (Note that some programs use
line-buffered I/O internally. That doesn't affect io.js but it means line-buffered I/O internally. That doesn't affect Node.js but it means
data you send to the child process may not be immediately consumed.) data you send to the child process may not be immediately consumed.)
To create a child process use `require('child_process').spawn()` or To create a child process use `require('child_process').spawn()` or
@ -61,7 +61,7 @@ of the signal, otherwise `null`.
Note that the child process stdio streams might still be open. Note that the child process stdio streams might still be open.
Also, note that io.js establishes signal handlers for `'SIGINT'` and Also, note that Node.js establishes signal handlers for `'SIGINT'` and
`'SIGTERM`', so it will not terminate due to receipt of those signals, `'SIGTERM`', so it will not terminate due to receipt of those signals,
it will exit. it will exit.
@ -253,7 +253,7 @@ instead, see
There is a special case when sending a `{cmd: 'NODE_foo'}` message. All messages There is a special case when sending a `{cmd: 'NODE_foo'}` message. All messages
containing a `NODE_` prefix in its `cmd` property will not be emitted in containing a `NODE_` prefix in its `cmd` property will not be emitted in
the `message` event, since they are internal messages used by io.js core. the `message` event, since they are internal messages used by Node.js core.
Messages containing the prefix are emitted in the `internalMessage` event. Messages containing the prefix are emitted in the `internalMessage` event.
Avoid using this feature; it is subject to change without notice. Avoid using this feature; it is subject to change without notice.
@ -300,7 +300,8 @@ a `message` event instead of `connection` and use `server.bind` instead of
Here is an example of sending a socket. It will spawn two children and handle Here is an example of sending a socket. It will spawn two children and handle
connections with the remote address `74.125.127.100` as VIP by sending the connections with the remote address `74.125.127.100` as VIP by sending the
socket to a "special" child process. Other sockets will go to a "normal" process. socket to a "special" child process. Other sockets will go to a "normal"
process.
var normal = require('child_process').fork('child.js', ['normal']); var normal = require('child_process').fork('child.js', ['normal']);
var special = require('child_process').fork('child.js', ['special']); var special = require('child_process').fork('child.js', ['special']);
@ -365,8 +366,8 @@ callback or returning an EventEmitter).
* `gid` {Number} Sets the group identity of the process. (See setgid(2).) * `gid` {Number} Sets the group identity of the process. (See setgid(2).)
* return: {ChildProcess object} * return: {ChildProcess object}
Launches a new process with the given `command`, with command line arguments in `args`. Launches a new process with the given `command`, with command line arguments in
If omitted, `args` defaults to an empty Array. `args`. If omitted, `args` defaults to an empty Array.
The third argument is used to specify additional options, with these defaults: The third argument is used to specify additional options, with these defaults:
@ -463,19 +464,19 @@ index corresponds to a fd in the child. The value is one of the following:
between parent and child. A ChildProcess may have at most *one* IPC stdio between parent and child. A ChildProcess may have at most *one* IPC stdio
file descriptor. Setting this option enables the ChildProcess.send() method. file descriptor. Setting this option enables the ChildProcess.send() method.
If the child writes JSON messages to this file descriptor, then this will If the child writes JSON messages to this file descriptor, then this will
trigger ChildProcess.on('message'). If the child is an io.js program, then trigger ChildProcess.on('message'). If the child is an Node.js program, then
the presence of an IPC channel will enable process.send() and the presence of an IPC channel will enable process.send() and
process.on('message'). process.on('message').
3. `'ignore'` - Do not set this file descriptor in the child. Note that io.js 3. `'ignore'` - Do not set this file descriptor in the child. Note that Node.js
will always open fd 0 - 2 for the processes it spawns. When any of these is will always open fd 0 - 2 for the processes it spawns. When any of these is
ignored io.js will open `/dev/null` and attach it to the child's fd. ignored Node.js will open `/dev/null` and attach it to the child's fd.
4. `Stream` object - Share a readable or writable stream that refers to a tty, 4. `Stream` object - Share a readable or writable stream that refers to a tty,
file, socket, or a pipe with the child process. The stream's underlying file, socket, or a pipe with the child process. The stream's underlying
file descriptor is duplicated in the child process to the fd that file descriptor is duplicated in the child process to the fd that
corresponds to the index in the `stdio` array. Note that the stream must corresponds to the index in the `stdio` array. Note that the stream must
have an underlying descriptor (file streams do not until the `'open'` have an underlying descriptor (file streams do not until the `'open'`
event has occurred). event has occurred).
5. Positive integer - The integer value is interpreted as a file descriptor 5. Positive integer - The integer value is interpreted as a file descriptor
that is is currently open in the parent process. It is shared with the child that is is currently open in the parent process. It is shared with the child
process, similar to how `Stream` objects can be shared. process, similar to how `Stream` objects can be shared.
6. `null`, `undefined` - Use default value. For stdio fds 0, 1 and 2 (in other 6. `null`, `undefined` - Use default value. For stdio fds 0, 1 and 2 (in other
@ -499,7 +500,7 @@ Example:
#### options.detached #### options.detached
If the `detached` option is set, the child process will be made the leader of a If the `detached` option is set, the child process will be made the leader of a
new process group. This makes it possible for the child to continue running new process group. This makes it possible for the child to continue running
after the parent exits. after the parent exits.
By default, the parent will wait for the detached child to exit. To prevent By default, the parent will wait for the detached child to exit. To prevent
@ -632,17 +633,17 @@ leaner than `child_process.exec`. It has the same options.
* `gid` {Number} Sets the group identity of the process. (See setgid(2).) * `gid` {Number} Sets the group identity of the process. (See setgid(2).)
* Return: ChildProcess object * Return: ChildProcess object
This is a special case of the `spawn()` functionality for spawning io.js This is a special case of the `spawn()` functionality for spawning Node.js
processes. In addition to having all the methods in a normal ChildProcess processes. In addition to having all the methods in a normal ChildProcess
instance, the returned object has a communication channel built-in. See instance, the returned object has a communication channel built-in. See
`child.send(message, [sendHandle])` for details. `child.send(message, [sendHandle])` for details.
These child io.js processes are still whole new instances of V8. Assume at These child Node.js processes are still whole new instances of V8. Assume at
least 30ms startup and 10mb memory for each new io.js. That is, you cannot least 30ms startup and 10mb memory for each new Node.js. That is, you cannot
create many thousands of them. create many thousands of them.
The `execPath` property in the `options` object allows for a process to be The `execPath` property in the `options` object allows for a process to be
created for the child rather than the current `iojs` executable. This should be created for the child rather than the current `node` executable. This should be
done with care and by default will talk over the fd represented an done with care and by default will talk over the fd represented an
environmental variable `NODE_CHANNEL_FD` on the child process. The input and environmental variable `NODE_CHANNEL_FD` on the child process. The input and
output on this fd is expected to be line delimited JSON objects. output on this fd is expected to be line delimited JSON objects.

View File

@ -2,8 +2,8 @@
Stability: 2 - Stable Stability: 2 - Stable
A single instance of io.js runs in a single thread. To take advantage of A single instance of Node.js runs in a single thread. To take advantage of
multi-core systems the user will sometimes want to launch a cluster of io.js multi-core systems the user will sometimes want to launch a cluster of Node.js
processes to handle the load. processes to handle the load.
The cluster module allows you to easily create child processes that The cluster module allows you to easily create child processes that
@ -31,9 +31,9 @@ all share server ports.
}).listen(8000); }).listen(8000);
} }
Running io.js will now share port 8000 between the workers: Running Node.js will now share port 8000 between the workers:
% NODE_DEBUG=cluster iojs server.js % NODE_DEBUG=cluster node server.js
23521,Master Worker 23524 online 23521,Master Worker 23524 online
23521,Master Worker 23526 online 23521,Master Worker 23526 online
23521,Master Worker 23523 online 23521,Master Worker 23523 online
@ -74,7 +74,7 @@ out of a total of eight.
Because `server.listen()` hands off most of the work to the master Because `server.listen()` hands off most of the work to the master
process, there are three cases where the behavior between a normal process, there are three cases where the behavior between a normal
io.js process and a cluster worker differs: Node.js process and a cluster worker differs:
1. `server.listen({fd: 7})` Because the message is passed to the master, 1. `server.listen({fd: 7})` Because the message is passed to the master,
file descriptor 7 **in the parent** will be listened on, and the file descriptor 7 **in the parent** will be listened on, and the
@ -91,7 +91,7 @@ io.js process and a cluster worker differs:
want to listen on a unique port, generate a port number based on the want to listen on a unique port, generate a port number based on the
cluster worker ID. cluster worker ID.
There is no routing logic in io.js, or in your program, and no shared There is no routing logic in Node.js, or in your program, and no shared
state between the workers. Therefore, it is important to design your state between the workers. Therefore, it is important to design your
program such that it does not rely too heavily on in-memory data objects program such that it does not rely too heavily on in-memory data objects
for things like sessions and login. for things like sessions and login.
@ -99,7 +99,7 @@ for things like sessions and login.
Because workers are all separate processes, they can be killed or Because workers are all separate processes, they can be killed or
re-spawned depending on your program's needs, without affecting other re-spawned depending on your program's needs, without affecting other
workers. As long as there are some workers still alive, the server will workers. As long as there are some workers still alive, the server will
continue to accept connections. io.js does not automatically manage the continue to accept connections. Node.js does not automatically manage the
number of workers for you, however. It is your responsibility to manage number of workers for you, however. It is your responsibility to manage
the worker pool for your application's needs. the worker pool for your application's needs.
@ -121,8 +121,8 @@ values are `"rr"` and `"none"`.
## cluster.settings ## cluster.settings
* {Object} * {Object}
* `execArgv` {Array} list of string arguments passed to the io.js executable. * `execArgv` {Array} list of string arguments passed to the Node.js
(Default=`process.execArgv`) executable. (Default=`process.execArgv`)
* `exec` {String} file path to worker file. (Default=`process.argv[1]`) * `exec` {String} file path to worker file. (Default=`process.argv[1]`)
* `args` {Array} string arguments passed to worker. * `args` {Array} string arguments passed to worker.
(Default=`process.argv.slice(2)`) (Default=`process.argv.slice(2)`)

View File

@ -86,7 +86,7 @@ dictionary with keys:
<http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT> <http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT>
for details on the format. for details on the format.
If no 'ca' details are given, then io.js will use the default If no 'ca' details are given, then Node.js will use the default
publicly trusted list of CAs as given in publicly trusted list of CAs as given in
<http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt>. <http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt>.
@ -750,7 +750,7 @@ unified Stream API, and before there were Buffer objects for handling
binary data. binary data.
As such, the streaming classes don't have the typical methods found on As such, the streaming classes don't have the typical methods found on
other io.js classes, and many methods accepted and returned other Node.js classes, and many methods accepted and returned
Binary-encoded strings by default rather than Buffers. This was Binary-encoded strings by default rather than Buffers. This was
changed to use Buffers by default instead. changed to use Buffers by default instead.

View File

@ -6,10 +6,10 @@
V8 comes with an extensive debugger which is accessible out-of-process via a V8 comes with an extensive debugger which is accessible out-of-process via a
simple [TCP protocol](http://code.google.com/p/v8/wiki/DebuggerProtocol). simple [TCP protocol](http://code.google.com/p/v8/wiki/DebuggerProtocol).
io.js has a built-in client for this debugger. To use this, start io.js with the Node.js has a built-in client for this debugger. To use this, start Node.js with
`debug` argument; a prompt will appear: the `debug` argument; a prompt will appear:
% iojs debug myscript.js % node debug myscript.js
< debugger listening on port 5858 < debugger listening on port 5858
connecting... ok connecting... ok
break in /home/indutny/Code/git/indutny/myscript.js:1 break in /home/indutny/Code/git/indutny/myscript.js:1
@ -18,7 +18,7 @@ io.js has a built-in client for this debugger. To use this, start io.js with the
3 debugger; 3 debugger;
debug> debug>
io.js's debugger client doesn't support the full range of commands, but Node.js's debugger client doesn't support the full range of commands, but
simple step and inspection is possible. By putting the statement `debugger;` simple step and inspection is possible. By putting the statement `debugger;`
into the source code of your script, you will enable a breakpoint. into the source code of your script, you will enable a breakpoint.
@ -34,7 +34,7 @@ For example, suppose `myscript.js` looked like this:
Then once the debugger is run, it will break on line 4. Then once the debugger is run, it will break on line 4.
% iojs debug myscript.js % node debug myscript.js
< debugger listening on port 5858 < debugger listening on port 5858
connecting... ok connecting... ok
break in /home/indutny/Code/git/indutny/myscript.js:1 break in /home/indutny/Code/git/indutny/myscript.js:1
@ -113,7 +113,7 @@ on line 1
It is also possible to set a breakpoint in a file (module) that It is also possible to set a breakpoint in a file (module) that
isn't loaded yet: isn't loaded yet:
% ./iojs debug test/fixtures/break-in-module/main.js % ./node debug test/fixtures/break-in-module/main.js
< debugger listening on port 5858 < debugger listening on port 5858
connecting to port 5858... ok connecting to port 5858... ok
break in test/fixtures/break-in-module/main.js:1 break in test/fixtures/break-in-module/main.js:1
@ -158,13 +158,13 @@ breakpoint)
## Advanced Usage ## Advanced Usage
The V8 debugger can be enabled and accessed either by starting io.js with The V8 debugger can be enabled and accessed either by starting Node.js with
the `--debug` command-line flag or by signaling an existing io.js process the `--debug` command-line flag or by signaling an existing Node.js process
with `SIGUSR1`. with `SIGUSR1`.
Once a process has been set in debug mode with this it can be connected to Once a process has been set in debug mode with this it can be connected to
with the io.js debugger. Either connect to the `pid` or the URI to the debugger. with the Node.js debugger. Either connect to the `pid` or the URI to the
The syntax is: debugger. The syntax is:
* `iojs debug -p <pid>` - Connects to the process via the `pid` * `node debug -p <pid>` - Connects to the process via the `pid`
* `iojs debug <URI>` - Connects to the process via the URI such as localhost:5858 * `node debug <URI>` - Connects to the process via the URI such as localhost:5858

View File

@ -172,7 +172,7 @@ and the `callback`(if specified) is called. Specifying both a
"listening" event listener and `callback` is not harmful but not very "listening" event listener and `callback` is not harmful but not very
useful. useful.
A bound datagram socket keeps the io.js process running to receive A bound datagram socket keeps the Node.js process running to receive
datagrams. datagrams.
If binding fails, an "error" event is generated. In rare case (e.g. If binding fails, an "error" event is generated. In rare case (e.g.

View File

@ -103,7 +103,7 @@ It's only an operating system facility that can associate name with addresses,
and vice versa. and vice versa.
Its implementation can have subtle but important consequences on the behavior Its implementation can have subtle but important consequences on the behavior
of any io.js program. Please take some time to consult the [Implementation of any Node.js program. Please take some time to consult the [Implementation
considerations section](#dns_implementation_considerations) before using it. considerations section](#dns_implementation_considerations) before using it.
## dns.lookupService(address, port, callback) ## dns.lookupService(address, port, callback)
@ -276,7 +276,7 @@ on some operating systems (e.g FreeBSD 10.1).
Although `dns.lookup` and `dns.resolve*/dns.reverse` functions have the same Although `dns.lookup` and `dns.resolve*/dns.reverse` functions have the same
goal of associating a network name with a network address (or vice versa), goal of associating a network name with a network address (or vice versa),
their behavior is quite different. These differences can have subtle but their behavior is quite different. These differences can have subtle but
significant consequences on the behavior of io.js programs. significant consequences on the behavior of Node.js programs.
### dns.lookup ### dns.lookup

View File

@ -2,7 +2,7 @@
<!-- type=misc --> <!-- type=misc -->
The goal of this documentation is to comprehensively explain the io.js The goal of this documentation is to comprehensively explain the Node.js
API, both from a reference as well as a conceptual point of view. Each API, both from a reference as well as a conceptual point of view. Each
section describes a built-in module or high-level concept. section describes a built-in module or high-level concept.
@ -16,7 +16,7 @@ experimental, and added for the benefit of IDEs and other utilities that
wish to do programmatic things with the documentation. wish to do programmatic things with the documentation.
Every `.html` and `.json` file is generated based on the corresponding Every `.html` and `.json` file is generated based on the corresponding
`.markdown` file in the `doc/api/` folder in io.js's source tree. The `.markdown` file in the `doc/api/` folder in Node.js's source tree. The
documentation is generated using the `tools/doc/generate.js` program. documentation is generated using the `tools/doc/generate.js` program.
The HTML template is located at `doc/template.html`. The HTML template is located at `doc/template.html`.
@ -25,7 +25,7 @@ The HTML template is located at `doc/template.html`.
<!--type=misc--> <!--type=misc-->
Throughout the documentation, you will see indications of a section's Throughout the documentation, you will see indications of a section's
stability. The io.js API is still somewhat changing, and as it stability. The Node.js API is still somewhat changing, and as it
matures, certain parts are more reliable than others. Some are so matures, certain parts are more reliable than others. Some are so
proven, and so relied upon, that they are unlikely to ever change at proven, and so relied upon, that they are unlikely to ever change at
all. Others are brand new and experimental, or known to be hazardous all. Others are brand new and experimental, or known to be hazardous

View File

@ -38,7 +38,7 @@ time, and stop listening for new requests in that worker.
In this way, `domain` usage goes hand-in-hand with the cluster module, In this way, `domain` usage goes hand-in-hand with the cluster module,
since the master process can fork a new worker when a worker since the master process can fork a new worker when a worker
encounters an error. For io.js programs that scale to multiple encounters an error. For Node.js programs that scale to multiple
machines, the terminating proxy or service registry can take note of machines, the terminating proxy or service registry can take note of
the failure, and react accordingly. the failure, and react accordingly.

View File

@ -2,7 +2,7 @@
<!--type=misc--> <!--type=misc-->
Errors generated by io.js fall into two categories: JavaScript errors and system Errors generated by Node.js fall into two categories: JavaScript errors and system
errors. All errors inherit from or are instances of JavaScript's [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) errors. All errors inherit from or are instances of JavaScript's [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error)
class and are guaranteed to provide *at least* the attributes available on that class and are guaranteed to provide *at least* the attributes available on that
class. class.
@ -34,14 +34,14 @@ denote any specific circumstance of why the error occurred. Errors capture a
"stack trace" detailing the point in the program at which they were "stack trace" detailing the point in the program at which they were
instantiated, and may provide a description of the error. instantiated, and may provide a description of the error.
**Note**: io.js will generate this class of error to encapsulate system **Note**: Node.js will generate this class of error to encapsulate system
errors as well as plain JavaScript errors. errors as well as plain JavaScript errors.
#### new Error(message) #### new Error(message)
Instantiates a new Error object and sets its `.message` property to the provided Instantiates a new Error object and sets its `.message` property to the provided
message. Its `.stack` will represent the point in the program at which `new Error` message. Its `.stack` will represent the point in the program at which `new Error`
was called. Stack traces are subject to [V8's stack trace API](https://code.google.com/p/v8-wiki/wiki/JavaScriptStackTraceApi). was called. Stack traces are subject to [V8's stack trace API](https://code.google.com/p/v8-wiki/wiki/JavaScriptStackTraceApi).
Stack traces only extend to the beginning of synchronous code execution, *or* a number of frames given by Stack traces only extend to the beginning of synchronous code execution, *or* a number of frames given by
`Error.stackTraceLimit`, whichever is smaller. `Error.stackTraceLimit`, whichever is smaller.
@ -65,15 +65,15 @@ at which this error was instantiated. An example stacktrace follows:
The first line is formatted as `<error class name>: <error message>`, and it is followed The first line is formatted as `<error class name>: <error message>`, and it is followed
by a series of stack frames (each line beginning with "at "). Each frame describes by a series of stack frames (each line beginning with "at "). Each frame describes
a call site in the program that lead to the error being generated. V8 attempts to a call site in the program that lead to the error being generated. V8 attempts to
display a name for each function (by variable name, function name, or object display a name for each function (by variable name, function name, or object
method name), but occasionally it will not be able to find a suitable name. If method name), but occasionally it will not be able to find a suitable name. If
V8 cannot determine a name for the function, only location information will be V8 cannot determine a name for the function, only location information will be
displayed for that frame. Otherwise, the determined function name will be displayed displayed for that frame. Otherwise, the determined function name will be displayed
with location information appended in parentheses. with location information appended in parentheses.
Frames are **only** generated for JavaScript functions. If, for example, execution Frames are **only** generated for JavaScript functions. If, for example, execution
synchronously passes through a C++ addon function called `cheetahify`, which itself synchronously passes through a C++ addon function called `cheetahify`, which itself
calls a JavaScript function, the frame representing the `cheetahify` call will **not** calls a JavaScript function, the frame representing the `cheetahify` call will **not**
be present in stacktraces: be present in stacktraces:
```javascript ```javascript
@ -103,14 +103,14 @@ makeFaster(); // will throw:
// at node.js:906:3 // at node.js:906:3
``` ```
The location information will be one of: The location information will be one of:
* `native`, if the frame represents a call internal to V8 (as in `[].forEach`). * `native`, if the frame represents a call internal to V8 (as in `[].forEach`).
* `plain-filename.js:line:column`, if the frame represents a call internal to io.js. * `plain-filename.js:line:column`, if the frame represents a call internal to Node.js.
* `/absolute/path/to/file.js:line:column`, if the frame represents a call in a user program, or its dependencies. * `/absolute/path/to/file.js:line:column`, if the frame represents a call in a user program, or its dependencies.
It is important to note that the string representing the stacktrace is only It is important to note that the string representing the stacktrace is only
generated on **access**: it is lazily generated. generated on **access**: it is lazily generated.
The number of frames captured by the stack trace is bounded by the smaller of The number of frames captured by the stack trace is bounded by the smaller of
`Error.stackTraceLimit` or the number of available frames on the current event `Error.stackTraceLimit` or the number of available frames on the current event
@ -138,7 +138,7 @@ message`, will be the result of `targetObject.toString()`.
`constructorOpt` optionally accepts a function. If given, all frames above `constructorOpt` optionally accepts a function. If given, all frames above
`constructorOpt`, including `constructorOpt`, will be omitted from the generated `constructorOpt`, including `constructorOpt`, will be omitted from the generated
stack trace. stack trace.
This is useful for hiding implementation details of error generation from the This is useful for hiding implementation details of error generation from the
end user. A common way of using this parameter is to pass the current Error end user. A common way of using this parameter is to pass the current Error
@ -177,8 +177,8 @@ range, or outside the set of options for a given function parameter. An example:
require('net').connect(-1); // throws RangeError, port should be > 0 && < 65536 require('net').connect(-1); // throws RangeError, port should be > 0 && < 65536
``` ```
io.js will generate and throw RangeError instances *immediately* -- they are a form Node.js will generate and throw RangeError instances *immediately* -- they are a form
of argument validation. of argument validation.
### Class: TypeError ### Class: TypeError
@ -190,7 +190,7 @@ be considered a TypeError.
require('url').parse(function() { }); // throws TypeError, since it expected a string require('url').parse(function() { }); // throws TypeError, since it expected a string
``` ```
io.js will generate and throw TypeError instances *immediately* -- they are a form Node.js will generate and throw TypeError instances *immediately* -- they are a form
of argument validation. of argument validation.
### Class: ReferenceError ### Class: ReferenceError
@ -219,7 +219,7 @@ Unless the userland program is dynamically generating and running code,
ReferenceErrors should always be considered a bug in the program, or its ReferenceErrors should always be considered a bug in the program, or its
dependencies. dependencies.
### Class: SyntaxError ### Class: SyntaxError
A subclass of Error that indicates that a program is not valid JavaScript. A subclass of Error that indicates that a program is not valid JavaScript.
These errors may only be generated and propagated as a result of code These errors may only be generated and propagated as a result of code
@ -244,9 +244,9 @@ by other contexts.
A JavaScript "exception" is a value that is thrown as a result of an invalid operation or A JavaScript "exception" is a value that is thrown as a result of an invalid operation or
as the target of a `throw` statement. While it is not required that these values inherit from as the target of a `throw` statement. While it is not required that these values inherit from
`Error`, all exceptions thrown by io.js or the JavaScript runtime *will* be instances of Error. `Error`, all exceptions thrown by Node.js or the JavaScript runtime *will* be instances of Error.
Some exceptions are *unrecoverable* at the JavaScript layer. These exceptions will always bring Some exceptions are *unrecoverable* at the JavaScript layer. These exceptions will always bring
down the process. These are usually failed `assert()` checks or `abort()` calls in the C++ layer. down the process. These are usually failed `assert()` checks or `abort()` calls in the C++ layer.
## System Errors ## System Errors
@ -257,7 +257,7 @@ react to. They are generated at the syscall level: an exhaustive list of error
codes and their meanings is available by running `man 2 intro` or `man 3 errno` codes and their meanings is available by running `man 2 intro` or `man 3 errno`
on most Unices; or [online](http://man7.org/linux/man-pages/man3/errno.3.html). on most Unices; or [online](http://man7.org/linux/man-pages/man3/errno.3.html).
In io.js, system errors are represented as augmented Error objects -- not full In Node.js, system errors are represented as augmented Error objects -- not full
subclasses, but instead an error instance with added members. subclasses, but instead an error instance with added members.
### Class: System Error ### Class: System Error
@ -275,7 +275,7 @@ letters, and may be referenced in `man 2 intro`.
### Common System Errors ### Common System Errors
This list is **not exhaustive**, but enumerates many of the common system errors when This list is **not exhaustive**, but enumerates many of the common system errors when
writing a io.js program. An exhaustive list may be found [here](http://man7.org/linux/man-pages/man3/errno.3.html). writing a Node.js program. An exhaustive list may be found [here](http://man7.org/linux/man-pages/man3/errno.3.html).
#### EPERM: Operation not permitted #### EPERM: Operation not permitted
@ -289,7 +289,7 @@ does not exist -- no entity (file or directory) could be found by the given path
#### EACCES: Permission denied #### EACCES: Permission denied
An attempt was made to access a file in a way forbidden by its file access An attempt was made to access a file in a way forbidden by its file access
permissions. permissions.
#### EEXIST: File exists #### EEXIST: File exists
@ -300,7 +300,7 @@ not exist.
#### ENOTDIR: Not a directory #### ENOTDIR: Not a directory
A component of the given pathname existed, but was not a directory as expected. A component of the given pathname existed, but was not a directory as expected.
Commonly raised by [fs.readdir](fs.html#fs_fs_readdir_path_callback). Commonly raised by [fs.readdir](fs.html#fs_fs_readdir_path_callback).
#### EISDIR: Is a directory #### EISDIR: Is a directory
@ -315,7 +315,7 @@ at least one has been closed.
Commonly encountered when opening many files at once in parallel, especially Commonly encountered when opening many files at once in parallel, especially
on systems (in particular, OS X) where there is a low file descriptor limit on systems (in particular, OS X) where there is a low file descriptor limit
for processes. To remedy a low limit, run `ulimit -n 2048` in the same shell for processes. To remedy a low limit, run `ulimit -n 2048` in the same shell
that will run the io.js process. that will run the Node.js process.
#### EPIPE: Broken pipe #### EPIPE: Broken pipe
@ -356,7 +356,7 @@ often a sign that a connected socket was not `.end()`'d appropriately.
<!--type=misc--> <!--type=misc-->
All io.js APIs will treat invalid arguments as exceptional -- that is, if passed All Node.js APIs will treat invalid arguments as exceptional -- that is, if passed
invalid arguments, they will *immediately* generate and throw the error as an invalid arguments, they will *immediately* generate and throw the error as an
exception, even if they are an otherwise asynchronous API. exception, even if they are an otherwise asynchronous API.
@ -364,7 +364,7 @@ Synchronous APIs (like
[fs.readFileSync](fs.html#fs_fs_readfilesync_filename_options)) will throw the [fs.readFileSync](fs.html#fs_fs_readfilesync_filename_options)) will throw the
error. The act of *throwing* a value (in this case, the error) turns the value error. The act of *throwing* a value (in this case, the error) turns the value
into an **exception**. Exceptions may be caught using the `try { } catch(err) into an **exception**. Exceptions may be caught using the `try { } catch(err)
{ }` construct. { }` construct.
Asynchronous APIs have **two** mechanisms for error propagation; one mechanism Asynchronous APIs have **two** mechanisms for error propagation; one mechanism
for APIs that represent a single operation, and one for APIs that represent for APIs that represent a single operation, and one for APIs that represent
@ -450,7 +450,7 @@ connection.pipe(process.stdout);
``` ```
The "throw when no error handlers are attached behavior" is not limited to APIs The "throw when no error handlers are attached behavior" is not limited to APIs
provided by io.js -- even user created event emitters and streams will throw provided by Node.js -- even user created event emitters and streams will throw
errors when no error handlers are attached. An example: errors when no error handlers are attached. An example:
```javascript ```javascript

View File

@ -4,7 +4,7 @@
<!--type=module--> <!--type=module-->
Many objects in io.js emit events: a `net.Server` emits an event each time Many objects in Node.js emit events: a `net.Server` emits an event each time
a peer connects to it, a `fs.readStream` emits an event when the file is a peer connects to it, a `fs.readStream` emits an event when the file is
opened. All objects which emit events are instances of `events.EventEmitter`. opened. All objects which emit events are instances of `events.EventEmitter`.
You can access this module by doing: `require("events");` You can access this module by doing: `require("events");`
@ -28,7 +28,7 @@ var EventEmitter = require('events');
When an `EventEmitter` instance experiences an error, the typical action is When an `EventEmitter` instance experiences an error, the typical action is
to emit an `'error'` event. Error events are treated as a special case in to emit an `'error'` event. Error events are treated as a special case in
io.js. If there is no listener for it, then the default action is to print Node.js. If there is no listener for it, then the default action is to print
a stack trace and exit the program. a stack trace and exit the program.
All EventEmitters emit the event `'newListener'` when new listeners are All EventEmitters emit the event `'newListener'` when new listeners are

View File

@ -72,7 +72,7 @@ site, set the NODE_DEBUG environment variable:
} }
bad(); bad();
$ env NODE_DEBUG=fs iojs script.js $ env NODE_DEBUG=fs node script.js
fs.js:66 fs.js:66
throw err; throw err;
^ ^
@ -511,14 +511,14 @@ to `'utf8'`.
Example: Example:
fs.writeFile('message.txt', 'Hello io.js', function (err) { fs.writeFile('message.txt', 'Hello Node.js', function (err) {
if (err) throw err; if (err) throw err;
console.log('It\'s saved!'); console.log('It\'s saved!');
}); });
If `options` is a string, then it specifies the encoding. Example: If `options` is a string, then it specifies the encoding. Example:
fs.writeFile('message.txt', 'Hello io.js', 'utf8', callback); fs.writeFile('message.txt', 'Hello Node.js', 'utf8', callback);
## fs.writeFileSync(filename, data[, options]) ## fs.writeFileSync(filename, data[, options])
@ -794,7 +794,7 @@ The times in the stat object have the following semantics:
an earlier value than the current `birthtime` using the `utimes(2)` an earlier value than the current `birthtime` using the `utimes(2)`
system call. system call.
Prior to io.js v1.0 and Node v0.12, the `ctime` held the `birthtime` on Windows Prior to Node v0.12, the `ctime` held the `birthtime` on Windows
systems. Note that as of v0.12, `ctime` is not "creation time", and systems. Note that as of v0.12, `ctime` is not "creation time", and
on Unix systems, it never was. on Unix systems, it never was.

View File

@ -13,8 +13,8 @@ actually in the global scope but in the module scope - this will be noted.
In browsers, the top-level scope is the global scope. That means that in In browsers, the top-level scope is the global scope. That means that in
browsers if you're in the global scope `var something` will define a global browsers if you're in the global scope `var something` will define a global
variable. In io.js this is different. The top-level scope is not the global variable. In Node.js this is different. The top-level scope is not the global
scope; `var something` inside an io.js module will be local to that module. scope; `var something` inside an Node.js module will be local to that module.
## process ## process
@ -74,9 +74,9 @@ Process files with the extension `.sjs` as `.js`:
require.extensions['.sjs'] = require.extensions['.js']; require.extensions['.sjs'] = require.extensions['.js'];
**Deprecated** In the past, this list has been used to load **Deprecated** In the past, this list has been used to load
non-JavaScript modules into io.js by compiling them on-demand. non-JavaScript modules into Node.js by compiling them on-demand.
However, in practice, there are much better ways to do this, such as However, in practice, there are much better ways to do this, such as
loading modules via some other io.js program, or compiling them to loading modules via some other Node.js program, or compiling them to
JavaScript ahead of time. JavaScript ahead of time.
Since the Module system is locked, this feature will probably never go Since the Module system is locked, this feature will probably never go
@ -94,7 +94,7 @@ of this code file. For a main program this is not necessarily the same
filename used in the command line. The value inside a module is the path filename used in the command line. The value inside a module is the path
to that module file. to that module file.
Example: running `iojs example.js` from `/Users/mjr` Example: running `node example.js` from `/Users/mjr`
console.log(__filename); console.log(__filename);
// /Users/mjr/example.js // /Users/mjr/example.js
@ -109,7 +109,7 @@ Example: running `iojs example.js` from `/Users/mjr`
The name of the directory that the currently executing script resides in. The name of the directory that the currently executing script resides in.
Example: running `iojs example.js` from `/Users/mjr` Example: running `node example.js` from `/Users/mjr`
console.log(__dirname); console.log(__dirname);
// /Users/mjr // /Users/mjr

View File

@ -4,7 +4,7 @@
To use the HTTP server and client one must `require('http')`. To use the HTTP server and client one must `require('http')`.
The HTTP interfaces in io.js are designed to support many features The HTTP interfaces in Node.js are designed to support many features
of the protocol which have been traditionally difficult to use. of the protocol which have been traditionally difficult to use.
In particular, large, possibly chunk-encoded, messages. The interface is In particular, large, possibly chunk-encoded, messages. The interface is
careful to never buffer entire requests or responses--the careful to never buffer entire requests or responses--the
@ -20,7 +20,7 @@ HTTP message headers are represented by an object like this:
Keys are lowercased. Values are not modified. Keys are lowercased. Values are not modified.
In order to support the full spectrum of possible HTTP applications, io.js's In order to support the full spectrum of possible HTTP applications, Node.js's
HTTP API is very low-level. It deals with stream handling and message HTTP API is very low-level. It deals with stream handling and message
parsing only. It parses a message into headers and body but it does not parsing only. It parses a message into headers and body but it does not
parse the actual headers or the body. parse the actual headers or the body.
@ -302,7 +302,7 @@ Note that Content-Length is given in bytes not characters. The above example
works because the string `'hello world'` contains only single byte characters. works because the string `'hello world'` contains only single byte characters.
If the body contains higher coded characters then `Buffer.byteLength()` If the body contains higher coded characters then `Buffer.byteLength()`
should be used to determine the number of bytes in a given encoding. should be used to determine the number of bytes in a given encoding.
And io.js does not check whether Content-Length and the length of the body And Node.js does not check whether Content-Length and the length of the body
which has been transmitted are equal or not. which has been transmitted are equal or not.
### response.setTimeout(msecs, callback) ### response.setTimeout(msecs, callback)
@ -412,7 +412,7 @@ higher-level multi-part body encodings that may be used.
The first time `response.write()` is called, it will send the buffered The first time `response.write()` is called, it will send the buffered
header information and the first body to the client. The second time header information and the first body to the client. The second time
`response.write()` is called, io.js assumes you're going to be streaming `response.write()` is called, Node.js assumes you're going to be streaming
data, and sends that separately. That is, the response is buffered up to the data, and sends that separately. That is, the response is buffered up to the
first chunk of body. first chunk of body.
@ -459,7 +459,7 @@ as `false`. After `response.end()` executes, the value will be `true`.
## http.request(options[, callback]) ## http.request(options[, callback])
io.js maintains several connections per server to make HTTP requests. Node.js maintains several connections per server to make HTTP requests.
This function allows one to transparently issue requests. This function allows one to transparently issue requests.
`options` can be an object or a string. If `options` is a string, it is `options` can be an object or a string. If `options` is a string, it is
@ -547,7 +547,7 @@ on the returned request object.
There are a few special headers that should be noted. There are a few special headers that should be noted.
* Sending a 'Connection: keep-alive' will notify io.js that the connection to * Sending a 'Connection: keep-alive' will notify Node.js that the connection to
the server should be persisted until the next request. the server should be persisted until the next request.
* Sending a 'Content-length' header will disable the default chunked encoding. * Sending a 'Content-length' header will disable the default chunked encoding.
@ -562,7 +562,7 @@ There are a few special headers that should be noted.
## http.get(options[, callback]) ## http.get(options[, callback])
Since most requests are GET requests without bodies, io.js provides this Since most requests are GET requests without bodies, Node.js provides this
convenience method. The only difference between this method and `http.request()` convenience method. The only difference between this method and `http.request()`
is that it sets the method to GET and calls `req.end()` automatically. is that it sets the method to GET and calls `req.end()` automatically.
@ -582,7 +582,7 @@ requests.
The HTTP Agent also defaults client requests to using The HTTP Agent also defaults client requests to using
Connection:keep-alive. If no pending HTTP requests are waiting on a Connection:keep-alive. If no pending HTTP requests are waiting on a
socket to become free the socket is closed. This means that io.js's socket to become free the socket is closed. This means that Node.js's
pool has the benefit of keep-alive when under load but still does not pool has the benefit of keep-alive when under load but still does not
require developers to manually close the HTTP clients using require developers to manually close the HTTP clients using
KeepAlive. KeepAlive.
@ -591,7 +591,7 @@ If you opt into using HTTP KeepAlive, you can create an Agent object
with that flag set to `true`. (See the [constructor with that flag set to `true`. (See the [constructor
options](#http_new_agent_options) below.) Then, the Agent will keep options](#http_new_agent_options) below.) Then, the Agent will keep
unused sockets in a pool for later use. They will be explicitly unused sockets in a pool for later use. They will be explicitly
marked so as to not keep the io.js process running. However, it is marked so as to not keep the Node.js process running. However, it is
still a good idea to explicitly [`destroy()`](#http_agent_destroy) still a good idea to explicitly [`destroy()`](#http_agent_destroy)
KeepAlive agents when they are no longer in use, so that the Sockets KeepAlive agents when they are no longer in use, so that the Sockets
will be shut down. will be shut down.
@ -723,7 +723,7 @@ Until the data is consumed, the `'end'` event will not fire. Also, until
the data is read it will consume memory that can eventually lead to a the data is read it will consume memory that can eventually lead to a
'process out of memory' error. 'process out of memory' error.
Note: io.js does not check whether Content-Length and the length of the body Note: Node.js does not check whether Content-Length and the length of the body
which has been transmitted are equal or not. which has been transmitted are equal or not.
The request implements the [Writable Stream][] interface. This is an The request implements the [Writable Stream][] interface. This is an
@ -772,7 +772,7 @@ A client server pair that show you how to listen for the `connect` event.
var srvUrl = url.parse('http://' + req.url); var srvUrl = url.parse('http://' + req.url);
var srvSocket = net.connect(srvUrl.port, srvUrl.hostname, function() { var srvSocket = net.connect(srvUrl.port, srvUrl.hostname, function() {
cltSocket.write('HTTP/1.1 200 Connection Established\r\n' + cltSocket.write('HTTP/1.1 200 Connection Established\r\n' +
'Proxy-agent: io.js-Proxy\r\n' + 'Proxy-agent: Node.js-Proxy\r\n' +
'\r\n'); '\r\n');
srvSocket.write(head); srvSocket.write(head);
srvSocket.pipe(cltSocket); srvSocket.pipe(cltSocket);
@ -879,7 +879,7 @@ emitted on the first call to `abort()`.
Flush the request headers. Flush the request headers.
For efficiency reasons, io.js normally buffers the request headers until you For efficiency reasons, Node.js normally buffers the request headers until you
call `request.end()` or write the first chunk of request data. It then tries call `request.end()` or write the first chunk of request data. It then tries
hard to pack the request headers and data into a single TCP packet. hard to pack the request headers and data into a single TCP packet.
@ -1043,7 +1043,7 @@ Then `request.url` will be:
If you would like to parse the URL into its parts, you can use If you would like to parse the URL into its parts, you can use
`require('url').parse(request.url)`. Example: `require('url').parse(request.url)`. Example:
iojs> require('url').parse('/status?name=ryan') node> require('url').parse('/status?name=ryan')
{ href: '/status?name=ryan', { href: '/status?name=ryan',
search: '?name=ryan', search: '?name=ryan',
query: 'name=ryan', query: 'name=ryan',
@ -1053,7 +1053,7 @@ If you would like to extract the params from the query string,
you can use the `require('querystring').parse` function, or pass you can use the `require('querystring').parse` function, or pass
`true` as the second argument to `require('url').parse`. Example: `true` as the second argument to `require('url').parse`. Example:
iojs> require('url').parse('/status?name=ryan', true) node> require('url').parse('/status?name=ryan', true)
{ href: '/status?name=ryan', { href: '/status?name=ryan',
search: '?name=ryan', search: '?name=ryan',
query: { name: 'ryan' }, query: { name: 'ryan' },

View File

@ -2,7 +2,7 @@
Stability: 2 - Stable Stability: 2 - Stable
HTTPS is the HTTP protocol over TLS/SSL. In io.js this is implemented as a HTTPS is the HTTP protocol over TLS/SSL. In Node.js this is implemented as a
separate module. separate module.
## Class: https.Server ## Class: https.Server

View File

@ -4,8 +4,8 @@
<!--name=module--> <!--name=module-->
io.js has a simple module loading system. In io.js, files and modules are in Node.js has a simple module loading system. In Node.js, files and modules are
one-to-one correspondence. As an example, `foo.js` loads the module in one-to-one correspondence. As an example, `foo.js` loads the module
`circle.js` in the same directory. `circle.js` in the same directory.
The contents of `foo.js`: The contents of `foo.js`:
@ -100,7 +100,7 @@ provided to the `a.js` module.
By the time `main.js` has loaded both modules, they're both finished. By the time `main.js` has loaded both modules, they're both finished.
The output of this program would thus be: The output of this program would thus be:
$ iojs main.js $ node main.js
main starting main starting
a starting a starting
b starting b starting
@ -117,10 +117,10 @@ plan accordingly.
<!--type=misc--> <!--type=misc-->
io.js has several modules compiled into the binary. These modules are Node.js has several modules compiled into the binary. These modules are
described in greater detail elsewhere in this documentation. described in greater detail elsewhere in this documentation.
The core modules are defined in io.js's source in the `lib/` folder. The core modules are defined in Node.js's source in the `lib/` folder.
Core modules are always preferentially loaded if their identifier is Core modules are always preferentially loaded if their identifier is
passed to `require()`. For instance, `require('http')` will always passed to `require()`. For instance, `require('http')` will always
@ -130,7 +130,7 @@ return the built in HTTP module, even if there is a file by that name.
<!--type=misc--> <!--type=misc-->
If the exact filename is not found, then io.js will attempt to load the If the exact filename is not found, then Node.js will attempt to load the
required filename with the added extension of `.js`, `.json`, and then `.node`. required filename with the added extension of `.js`, `.json`, and then `.node`.
`.js` files are interpreted as JavaScript text files, and `.json` files are `.js` files are interpreted as JavaScript text files, and `.json` files are
@ -156,7 +156,7 @@ If the given path does not exist, `require()` will throw an Error with its
<!--type=misc--> <!--type=misc-->
If the module identifier passed to `require()` is not a native module, If the module identifier passed to `require()` is not a native module,
and does not begin with `'/'`, `'../'`, or `'./'`, then io.js starts at the and does not begin with `'/'`, `'../'`, or `'./'`, then Node.js starts at the
parent directory of the current module, and adds `/node_modules`, and parent directory of the current module, and adds `/node_modules`, and
attempts to load the module from that location. attempts to load the module from that location.
@ -164,7 +164,7 @@ If it is not found there, then it moves to the parent directory, and so
on, until the root of the file system is reached. on, until the root of the file system is reached.
For example, if the file at `'/home/ry/projects/foo.js'` called For example, if the file at `'/home/ry/projects/foo.js'` called
`require('bar.js')`, then io.js would look in the following locations, in `require('bar.js')`, then Node.js would look in the following locations, in
this order: this order:
* `/home/ry/projects/node_modules/bar.js` * `/home/ry/projects/node_modules/bar.js`
@ -201,9 +201,9 @@ If this was in a folder at `./some-library`, then
`require('./some-library')` would attempt to load `require('./some-library')` would attempt to load
`./some-library/lib/some-library.js`. `./some-library/lib/some-library.js`.
This is the extent of io.js's awareness of package.json files. This is the extent of Node.js's awareness of package.json files.
If there is no package.json file present in the directory, then io.js If there is no package.json file present in the directory, then Node.js
will attempt to load an `index.js` or `index.node` file out of that will attempt to load an `index.js` or `index.node` file out of that
directory. For example, if there was no package.json file in the above directory. For example, if there was no package.json file in the above
example, then `require('./some-library')` would attempt to load: example, then `require('./some-library')` would attempt to load:
@ -253,10 +253,10 @@ a global but rather local to each module.
* {Object} * {Object}
The `module.exports` object is created by the Module system. Sometimes this is not The `module.exports` object is created by the Module system. Sometimes this is
acceptable; many want their module to be an instance of some class. To do this, not acceptable; many want their module to be an instance of some class. To do
assign the desired export object to `module.exports`. Note that assigning the this, assign the desired export object to `module.exports`. Note that assigning
desired object to `exports` will simply rebind the local `exports` variable, the desired object to `exports` will simply rebind the local `exports` variable,
which is probably not what you want to do. which is probably not what you want to do.
For example suppose we were making a module called `a.js` For example suppose we were making a module called `a.js`
@ -425,29 +425,29 @@ in pseudocode of what require.resolve does:
<!-- type=misc --> <!-- type=misc -->
If the `NODE_PATH` environment variable is set to a colon-delimited list If the `NODE_PATH` environment variable is set to a colon-delimited list
of absolute paths, then io.js will search those paths for modules if they of absolute paths, then Node.js will search those paths for modules if they
are not found elsewhere. (Note: On Windows, `NODE_PATH` is delimited by are not found elsewhere. (Note: On Windows, `NODE_PATH` is delimited by
semicolons instead of colons.) semicolons instead of colons.)
`NODE_PATH` was originally created to support loading modules from `NODE_PATH` was originally created to support loading modules from
varying paths before the current varying paths before the current
[module resolution](https://iojs.org/api/modules.html#modules_all_together) [module resolution](https://nodejs.org/api/modules.html#modules_all_together)
algorithm was frozen. algorithm was frozen.
`NODE_PATH` is still supported, but is less necessary now that the io.js `NODE_PATH` is still supported, but is less necessary now that the Node.js
ecosystem has settled on a convention for locating dependent modules. ecosystem has settled on a convention for locating dependent modules.
Sometimes deployments that rely on `NODE_PATH` show surprising behavior Sometimes deployments that rely on `NODE_PATH` show surprising behavior
when people are unaware that `NODE_PATH` must be set. Sometimes a when people are unaware that `NODE_PATH` must be set. Sometimes a
module's dependencies change, causing a different version (or even a module's dependencies change, causing a different version (or even a
different module) to be loaded as the `NODE_PATH` is searched. different module) to be loaded as the `NODE_PATH` is searched.
Additionally, io.js will search in the following locations: Additionally, Node.js will search in the following locations:
* 1: `$HOME/.node_modules` * 1: `$HOME/.node_modules`
* 2: `$HOME/.node_libraries` * 2: `$HOME/.node_libraries`
* 3: `$PREFIX/lib/node` * 3: `$PREFIX/lib/node`
Where `$HOME` is the user's home directory, and `$PREFIX` is io.js's Where `$HOME` is the user's home directory, and `$PREFIX` is Node.js's
configured `node_prefix`. configured `node_prefix`.
These are mostly for historic reasons. **You are highly encouraged These are mostly for historic reasons. **You are highly encouraged
@ -458,13 +458,13 @@ will be loaded faster, and more reliably.
<!-- type=misc --> <!-- type=misc -->
When a file is run directly from io.js, `require.main` is set to its When a file is run directly from Node.js, `require.main` is set to its
`module`. That means that you can determine whether a file has been run `module`. That means that you can determine whether a file has been run
directly by testing directly by testing
require.main === module require.main === module
For a file `foo.js`, this will be `true` if run via `iojs foo.js`, but For a file `foo.js`, this will be `true` if run via `node foo.js`, but
`false` if run by `require('./foo')`. `false` if run by `require('./foo')`.
Because `module` provides a `filename` property (normally equivalent to Because `module` provides a `filename` property (normally equivalent to
@ -475,10 +475,10 @@ by checking `require.main.filename`.
<!-- type=misc --> <!-- type=misc -->
The semantics of io.js's `require()` function were designed to be general The semantics of Node.js's `require()` function were designed to be general
enough to support a number of sane directory structures. Package manager enough to support a number of sane directory structures. Package manager
programs such as `dpkg`, `rpm`, and `npm` will hopefully find it possible to programs such as `dpkg`, `rpm`, and `npm` will hopefully find it possible to
build native packages from io.js modules without modification. build native packages from Node.js modules without modification.
Below we give a suggested directory structure that could work: Below we give a suggested directory structure that could work:
@ -491,7 +491,7 @@ may have to install a specific version of package `bar`. The `bar` package
may itself have dependencies, and in some cases, these dependencies may even may itself have dependencies, and in some cases, these dependencies may even
collide or form cycles. collide or form cycles.
Since io.js looks up the `realpath` of any modules it loads (that is, Since Node.js looks up the `realpath` of any modules it loads (that is,
resolves symlinks), and then looks for their dependencies in the resolves symlinks), and then looks for their dependencies in the
`node_modules` folders as described above, this situation is very simple to `node_modules` folders as described above, this situation is very simple to
resolve with the following architecture: resolve with the following architecture:
@ -516,10 +516,10 @@ the version that is symlinked into
Furthermore, to make the module lookup process even more optimal, rather Furthermore, to make the module lookup process even more optimal, rather
than putting packages directly in `/usr/lib/node`, we could put them in than putting packages directly in `/usr/lib/node`, we could put them in
`/usr/lib/node_modules/<name>/<version>`. Then io.js will not bother `/usr/lib/node_modules/<name>/<version>`. Then Node.js will not bother
looking for missing dependencies in `/usr/node_modules` or `/node_modules`. looking for missing dependencies in `/usr/node_modules` or `/node_modules`.
In order to make modules available to the io.js REPL, it might be useful to In order to make modules available to the Node.js REPL, it might be useful to
also add the `/usr/lib/node_modules` folder to the `$NODE_PATH` environment also add the `/usr/lib/node_modules` folder to the `$NODE_PATH` environment
variable. Since the module lookups using `node_modules` folders are all variable. Since the module lookups using `node_modules` folders are all
relative, and based on the real path of the files making the calls to relative, and based on the real path of the files making the calls to

View File

@ -147,7 +147,7 @@ would be to wait a second and then try again. This can be done with
} }
}); });
(Note: All sockets in io.js set `SO_REUSEADDR` already) (Note: All sockets in Node.js set `SO_REUSEADDR` already)
### server.listen(path[, callback]) ### server.listen(path[, callback])
@ -324,7 +324,7 @@ following this event. See example in discussion of `server.listen`.
This object is an abstraction of a TCP or local socket. `net.Socket` This object is an abstraction of a TCP or local socket. `net.Socket`
instances implement a duplex Stream interface. They can be created by the instances implement a duplex Stream interface. They can be created by the
user and used as a client (with `connect()`) or they can be created by io.js user and used as a client (with `connect()`) or they can be created by Node.js
and passed to the user through the `'connection'` event of a server. and passed to the user through the `'connection'` event of a server.
### new net.Socket([options]) ### new net.Socket([options])
@ -388,7 +388,7 @@ with options either as either `{port: port, host: host}` or `{path: path}`.
`net.Socket` has the property that `socket.write()` always works. This is to `net.Socket` has the property that `socket.write()` always works. This is to
help users get up and running quickly. The computer cannot always keep up help users get up and running quickly. The computer cannot always keep up
with the amount of data that is written to a socket - the network connection with the amount of data that is written to a socket - the network connection
simply might be too slow. io.js will internally queue up the data written to a simply might be too slow. Node.js will internally queue up the data written to a
socket and send it out over the wire when it is possible. (Internally it is socket and send it out over the wire when it is possible. (Internally it is
polling on the socket's file descriptor for being writable). polling on the socket's file descriptor for being writable).

View File

@ -83,8 +83,8 @@ Examples:
'/tmp/file' '/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif') path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// if currently in /home/myself/iojs, it returns // if currently in /home/myself/node, it returns
'/home/myself/iojs/wwwroot/static_files/gif/image.gif' '/home/myself/node/wwwroot/static_files/gif/image.gif'
*Note:* If the arguments to `resolve` have zero-length strings then the current *Note:* If the arguments to `resolve` have zero-length strings then the current
working directory will be used instead of them. working directory will be used instead of them.
@ -215,11 +215,11 @@ An example on *nix:
An example on Windows: An example on Windows:
console.log(process.env.PATH) console.log(process.env.PATH)
// 'C:\Windows\system32;C:\Windows;C:\Program Files\iojs\' // 'C:\Windows\system32;C:\Windows;C:\Program Files\node\'
process.env.PATH.split(path.delimiter) process.env.PATH.split(path.delimiter)
// returns // returns
['C:\\Windows\\system32', 'C:\\Windows', 'C:\\Program Files\\iojs\\'] ['C:\\Windows\\system32', 'C:\\Windows', 'C:\\Program Files\\node\\']
## path.parse(pathString) ## path.parse(pathString)

View File

@ -7,7 +7,7 @@ It is an instance of [EventEmitter][].
## Exit Codes ## Exit Codes
io.js will normally exit with a `0` status code when no more async Node.js will normally exit with a `0` status code when no more async
operations are pending. The following status codes are used in other operations are pending. The following status codes are used in other
cases: cases:
@ -16,13 +16,13 @@ cases:
handler. handler.
* `2` - Unused (reserved by Bash for builtin misuse) * `2` - Unused (reserved by Bash for builtin misuse)
* `3` **Internal JavaScript Parse Error** - The JavaScript source code * `3` **Internal JavaScript Parse Error** - The JavaScript source code
internal in io.js's bootstrapping process caused a parse error. This internal in Node.js's bootstrapping process caused a parse error. This
is extremely rare, and generally can only happen during development is extremely rare, and generally can only happen during development
of io.js itself. of Node.js itself.
* `4` **Internal JavaScript Evaluation Failure** - The JavaScript * `4` **Internal JavaScript Evaluation Failure** - The JavaScript
source code internal in io.js's bootstrapping process failed to source code internal in Node.js's bootstrapping process failed to
return a function value when evaluated. This is extremely rare, and return a function value when evaluated. This is extremely rare, and
generally can only happen during development of io.js itself. generally can only happen during development of Node.js itself.
* `5` **Fatal Error** - There was a fatal unrecoverable error in V8. * `5` **Fatal Error** - There was a fatal unrecoverable error in V8.
Typically a message will be printed to stderr with the prefix `FATAL Typically a message will be printed to stderr with the prefix `FATAL
ERROR`. ERROR`.
@ -34,17 +34,17 @@ cases:
function itself threw an error while attempting to handle it. This function itself threw an error while attempting to handle it. This
can happen, for example, if a `process.on('uncaughtException')` or can happen, for example, if a `process.on('uncaughtException')` or
`domain.on('error')` handler throws an error. `domain.on('error')` handler throws an error.
* `8` - Unused. In previous versions of io.js, exit code 8 sometimes * `8` - Unused. In previous versions of Node.js, exit code 8 sometimes
indicated an uncaught exception. indicated an uncaught exception.
* `9` - **Invalid Argument** - Either an unknown option was specified, * `9` - **Invalid Argument** - Either an unknown option was specified,
or an option requiring a value was provided without a value. or an option requiring a value was provided without a value.
* `10` **Internal JavaScript Run-Time Failure** - The JavaScript * `10` **Internal JavaScript Run-Time Failure** - The JavaScript
source code internal in io.js's bootstrapping process threw an error source code internal in Node.js's bootstrapping process threw an error
when the bootstrapping function was called. This is extremely rare, when the bootstrapping function was called. This is extremely rare,
and generally can only happen during development of io.js itself. and generally can only happen during development of Node.js itself.
* `12` **Invalid Debug Argument** - The `--debug` and/or `--debug-brk` * `12` **Invalid Debug Argument** - The `--debug` and/or `--debug-brk`
options were set, but an invalid port number was chosen. options were set, but an invalid port number was chosen.
* `>128` **Signal Exits** - If io.js receives a fatal signal such as * `>128` **Signal Exits** - If Node.js receives a fatal signal such as
`SIGKILL` or `SIGHUP`, then its exit code will be `128` plus the `SIGKILL` or `SIGHUP`, then its exit code will be `128` plus the
value of the signal code. This is a standard Unix practice, since value of the signal code. This is a standard Unix practice, since
exit codes are defined to be 7-bit integers, and signal exits set exit codes are defined to be 7-bit integers, and signal exits set
@ -72,9 +72,9 @@ Example of listening for `exit`:
## Event: 'beforeExit' ## Event: 'beforeExit'
This event is emitted when io.js empties its event loop and has nothing else to This event is emitted when Node.js empties its event loop and has nothing else to
schedule. Normally, io.js exits when there is no work scheduled, but a listener schedule. Normally, Node.js exits when there is no work scheduled, but a listener
for 'beforeExit' can make asynchronous calls, and cause io.js to continue. for 'beforeExit' can make asynchronous calls, and cause Node.js to continue.
'beforeExit' is not emitted for conditions causing explicit termination, such as 'beforeExit' is not emitted for conditions causing explicit termination, such as
`process.exit()` or uncaught exceptions, and should not be used as an `process.exit()` or uncaught exceptions, and should not be used as an
@ -104,8 +104,8 @@ Example of listening for `uncaughtException`:
Note that `uncaughtException` is a very crude mechanism for exception Note that `uncaughtException` is a very crude mechanism for exception
handling. handling.
Do *not* use it as the io.js equivalent of `On Error Resume Next`. An Do *not* use it as the Node.js equivalent of `On Error Resume Next`. An
unhandled exception means your application - and by extension io.js itself - unhandled exception means your application - and by extension Node.js itself -
is in an undefined state. Blindly resuming means *anything* could happen. is in an undefined state. Blindly resuming means *anything* could happen.
Think of resuming as pulling the power cord when you are upgrading your system. Think of resuming as pulling the power cord when you are upgrading your system.
@ -202,18 +202,18 @@ programs.
Note: Note:
- `SIGUSR1` is reserved by io.js to start the debugger. It's possible to - `SIGUSR1` is reserved by Node.js to start the debugger. It's possible to
install a listener but that won't stop the debugger from starting. install a listener but that won't stop the debugger from starting.
- `SIGTERM` and `SIGINT` have default handlers on non-Windows platforms that resets - `SIGTERM` and `SIGINT` have default handlers on non-Windows platforms that resets
the terminal mode before exiting with code `128 + signal number`. If one of the terminal mode before exiting with code `128 + signal number`. If one of
these signals has a listener installed, its default behaviour will be removed these signals has a listener installed, its default behaviour will be removed
(io.js will no longer exit). (Node.js will no longer exit).
- `SIGPIPE` is ignored by default, it can have a listener installed. - `SIGPIPE` is ignored by default, it can have a listener installed.
- `SIGHUP` is generated on Windows when the console window is closed, and on other - `SIGHUP` is generated on Windows when the console window is closed, and on other
platforms under various similar conditions, see signal(7). It can have a platforms under various similar conditions, see signal(7). It can have a
listener installed, however io.js will be unconditionally terminated by listener installed, however Node.js will be unconditionally terminated by
Windows about 10 seconds later. On non-Windows platforms, the default Windows about 10 seconds later. On non-Windows platforms, the default
behaviour of `SIGHUP` is to terminate io.js, but once a listener has been behaviour of `SIGHUP` is to terminate Node.js, but once a listener has been
installed its default behaviour will be removed. installed its default behaviour will be removed.
- `SIGTERM` is not supported on Windows, it can be listened on. - `SIGTERM` is not supported on Windows, it can be listened on.
- `SIGINT` from the terminal is supported on all platforms, and can usually be - `SIGINT` from the terminal is supported on all platforms, and can usually be
@ -225,10 +225,10 @@ Note:
only happen on write to the console when the cursor is being moved, or when a only happen on write to the console when the cursor is being moved, or when a
readable tty is used in raw mode. readable tty is used in raw mode.
- `SIGKILL` cannot have a listener installed, it will unconditionally terminate - `SIGKILL` cannot have a listener installed, it will unconditionally terminate
io.js on all platforms. Node.js on all platforms.
- `SIGSTOP` cannot have a listener installed. - `SIGSTOP` cannot have a listener installed.
Note that Windows does not support sending Signals, but io.js offers some Note that Windows does not support sending Signals, but Node.js offers some
emulation with `process.kill()`, and `child_process.kill()`: emulation with `process.kill()`, and `child_process.kill()`:
- Sending signal `0` can be used to search for the existence of a process - Sending signal `0` can be used to search for the existence of a process
- Sending `SIGINT`, `SIGTERM`, and `SIGKILL` cause the unconditional exit of the - Sending `SIGINT`, `SIGTERM`, and `SIGKILL` cause the unconditional exit of the
@ -244,7 +244,7 @@ For example, a `console.log` equivalent could look like this:
process.stdout.write(msg + '\n'); process.stdout.write(msg + '\n');
}; };
`process.stderr` and `process.stdout` are unlike other streams in io.js in `process.stderr` and `process.stdout` are unlike other streams in Node.js in
that they cannot be closed (`end()` will throw), they never emit the `finish` that they cannot be closed (`end()` will throw), they never emit the `finish`
event and that writes are usually blocking. event and that writes are usually blocking.
@ -254,17 +254,17 @@ event and that writes are usually blocking.
- They are blocking in Linux/Unix. - They are blocking in Linux/Unix.
- They are non-blocking like other streams in Windows. - They are non-blocking like other streams in Windows.
To check if io.js is being run in a TTY context, read the `isTTY` property To check if Node.js is being run in a TTY context, read the `isTTY` property
on `process.stderr`, `process.stdout`, or `process.stdin`: on `process.stderr`, `process.stdout`, or `process.stdin`:
$ iojs -p "Boolean(process.stdin.isTTY)" $ node -p "Boolean(process.stdin.isTTY)"
true true
$ echo "foo" | iojs -p "Boolean(process.stdin.isTTY)" $ echo "foo" | node -p "Boolean(process.stdin.isTTY)"
false false
$ iojs -p "Boolean(process.stdout.isTTY)" $ node -p "Boolean(process.stdout.isTTY)"
true true
$ iojs -p "Boolean(process.stdout.isTTY)" | cat $ node -p "Boolean(process.stdout.isTTY)" | cat
false false
See [the tty docs](tty.html#tty_tty) for more information. See [the tty docs](tty.html#tty_tty) for more information.
@ -273,7 +273,7 @@ See [the tty docs](tty.html#tty_tty) for more information.
A writable stream to stderr (on fd `2`). A writable stream to stderr (on fd `2`).
`process.stderr` and `process.stdout` are unlike other streams in io.js in `process.stderr` and `process.stdout` are unlike other streams in Node.js in
that they cannot be closed (`end()` will throw), they never emit the `finish` that they cannot be closed (`end()` will throw), they never emit the `finish`
event and that writes are usually blocking. event and that writes are usually blocking.
@ -318,7 +318,7 @@ mode over "old" one.
## process.argv ## process.argv
An array containing the command line arguments. The first element will be An array containing the command line arguments. The first element will be
'iojs', the second element will be the name of the JavaScript file. The 'node', the second element will be the name of the JavaScript file. The
next elements will be any additional command line arguments. next elements will be any additional command line arguments.
// print process.argv // print process.argv
@ -328,9 +328,9 @@ next elements will be any additional command line arguments.
This will generate: This will generate:
$ iojs process-2.js one two=three four $ node process-2.js one two=three four
0: iojs 0: node
1: /Users/mjr/work/iojs/process-2.js 1: /Users/mjr/work/node/process-2.js
2: one 2: one
3: two=three 3: two=three
4: four 4: four
@ -342,21 +342,21 @@ This is the absolute pathname of the executable that started the process.
Example: Example:
/usr/local/bin/iojs /usr/local/bin/node
## process.execArgv ## process.execArgv
This is the set of io.js-specific command line options from the This is the set of Node.js-specific command line options from the
executable that started the process. These options do not show up in executable that started the process. These options do not show up in
`process.argv`, and do not include the io.js executable, the name of `process.argv`, and do not include the Node.js executable, the name of
the script, or any options following the script name. These options the script, or any options following the script name. These options
are useful in order to spawn child processes with the same execution are useful in order to spawn child processes with the same execution
environment as the parent. environment as the parent.
Example: Example:
$ iojs --harmony script.js --version $ node --harmony script.js --version
results in process.execArgv: results in process.execArgv:
@ -364,12 +364,12 @@ results in process.execArgv:
and process.argv: and process.argv:
['/usr/local/bin/iojs', 'script.js', '--version'] ['/usr/local/bin/node', 'script.js', '--version']
## process.abort() ## process.abort()
This causes io.js to emit an abort. This will cause io.js to exit and This causes Node.js to emit an abort. This will cause Node.js to exit and
generate a core file. generate a core file.
## process.chdir(directory) ## process.chdir(directory)
@ -409,12 +409,12 @@ An example of this object looks like:
SHLVL: '1', SHLVL: '1',
HOME: '/Users/maciej', HOME: '/Users/maciej',
LOGNAME: 'maciej', LOGNAME: 'maciej',
_: '/usr/local/bin/iojs' } _: '/usr/local/bin/node' }
You can write to this object, but changes won't be reflected outside of your You can write to this object, but changes won't be reflected outside of your
process. That means that the following won't work: process. That means that the following won't work:
$ iojs -e 'process.env.foo = "bar"' && echo $foo $ node -e 'process.env.foo = "bar"' && echo $foo
But this will: But this will:
@ -431,7 +431,7 @@ To exit with a 'failure' code:
process.exit(1); process.exit(1);
The shell that executed io.js should see the exit code as 1. The shell that executed Node.js should see the exit code as 1.
## process.exitCode ## process.exitCode
@ -586,7 +586,7 @@ Note: this function is only available on POSIX platforms (i.e. not Windows,
Android) Android)
Returns an array with the supplementary group IDs. POSIX leaves it unspecified Returns an array with the supplementary group IDs. POSIX leaves it unspecified
if the effective group ID is included but io.js ensures it always is. if the effective group ID is included but Node.js ensures it always is.
## process.setgroups(groups) ## process.setgroups(groups)
@ -628,7 +628,7 @@ A compiled-in property that exposes `NODE_VERSION`.
## process.versions ## process.versions
A property exposing version strings of io.js and its dependencies. A property exposing version strings of Node.js and its dependencies.
console.log(process.versions); console.log(process.versions);
@ -646,7 +646,7 @@ Will print something like:
## process.config ## process.config
An Object containing the JavaScript representation of the configure options An Object containing the JavaScript representation of the configure options
that were used to compile the current io.js executable. This is the same as that were used to compile the current Node.js executable. This is the same as
the "config.gypi" file that was produced when running the `./configure` script. the "config.gypi" file that was produced when running the `./configure` script.
An example of the possible output looks like: An example of the possible output looks like:
@ -679,24 +679,24 @@ for the source tarball and headers-only tarball.
`process.release` contains the following properties: `process.release` contains the following properties:
* `name`: a string with a value that will always be `"io.js"` for io.js. * `name`: a string with a value that will always be `"node.js"` for Node.js.
* `sourceUrl`: a complete URL pointing to a _.tar.gz_ file containing the * `sourceUrl`: a complete URL pointing to a _.tar.gz_ file containing the
source of the current release. source of the current release.
* `headersUrl`: a complete URL pointing to a _.tar.gz_ file containing only * `headersUrl`: a complete URL pointing to a _.tar.gz_ file containing only
the header files for the current release. This file is significantly smaller the header files for the current release. This file is significantly smaller
than the full source file and can be used for compiling add-ons against than the full source file and can be used for compiling add-ons against
io.js. Node.js.
* `libUrl`: a complete URL pointing to an _iojs.lib_ file matching the * `libUrl`: a complete URL pointing to an _node.lib_ file matching the
architecture and version of the current release. This file is used for architecture and version of the current release. This file is used for
compiling add-ons against io.js. _This property is only present on Windows compiling add-ons against Node.js. _This property is only present on Windows
builds of io.js and will be missing on all other platforms._ builds of Node.js and will be missing on all other platforms._
e.g. e.g.
{ name: 'io.js', { name: 'node.js',
sourceUrl: 'https://iojs.org/download/release/v2.3.5/iojs-v2.3.5.tar.gz', sourceUrl: 'https://nodejs.org/download/release/v4.0.0/node-v4.0.0.tar.gz',
headersUrl: 'https://iojs.org/download/release/v2.3.5/iojs-v2.3.5-headers.tar.gz', headersUrl: 'https://nodejs.org/download/release/v4.0.0/node-v4.0.0-headers.tar.gz',
libUrl: 'https://iojs.org/download/release/v2.3.5/win-x64/iojs.lib' } libUrl: 'https://nodejs.org/download/release/v4.0.0/win-x64/node.lib' }
In custom builds from non-release versions of the source tree, only the In custom builds from non-release versions of the source tree, only the
`name` property may be present. The additional properties should not be `name` property may be present. The additional properties should not be
@ -729,7 +729,7 @@ Example of sending a signal to yourself:
process.kill(process.pid, 'SIGHUP'); process.kill(process.pid, 'SIGHUP');
Note: When SIGUSR1 is received by io.js it starts the debugger, see Note: When SIGUSR1 is received by Node.js it starts the debugger, see
[Signal Events](#process_signal_events). [Signal Events](#process_signal_events).
## process.pid ## process.pid
@ -771,7 +771,7 @@ What platform you're running on:
## process.memoryUsage() ## process.memoryUsage()
Returns an object describing the memory usage of the io.js process Returns an object describing the memory usage of the Node.js process
measured in bytes. measured in bytes.
var util = require('util'); var util = require('util');
@ -878,7 +878,7 @@ given, otherwise returns the current mask.
## process.uptime() ## process.uptime()
Number of seconds io.js has been running. Number of seconds Node.js has been running.
## process.hrtime() ## process.hrtime()

View File

@ -2,9 +2,9 @@
Stability: 2 - Stable Stability: 2 - Stable
[Punycode.js](https://mths.be/punycode) is bundled with io.js v1.0.0+ and [Punycode.js](https://mths.be/punycode) is bundled with Node.js v0.6.2+. Use
Node.js v0.6.2+. Use `require('punycode')` to access it. (To use it with `require('punycode')` to access it. (To use it with other Node.js versions, use
other io.js versions, use npm to install the `punycode` module first.) npm to install the `punycode` module first.)
## punycode.decode(string) ## punycode.decode(string)

View File

@ -5,7 +5,7 @@
To use this module, do `require('readline')`. Readline allows reading of a To use this module, do `require('readline')`. Readline allows reading of a
stream (such as `process.stdin`) on a line-by-line basis. stream (such as `process.stdin`) on a line-by-line basis.
Note that once you've invoked this module, your io.js program will not Note that once you've invoked this module, your Node.js program will not
terminate until you've closed the interface. Here's how to allow your terminate until you've closed the interface. Here's how to allow your
program to gracefully exit: program to gracefully exit:
@ -16,7 +16,7 @@ program to gracefully exit:
output: process.stdout output: process.stdout
}); });
rl.question("What do you think of io.js? ", function(answer) { rl.question("What do you think of Node.js? ", function(answer) {
// TODO: Log the answer in a database // TODO: Log the answer in a database
console.log("Thank you for your valuable feedback:", answer); console.log("Thank you for your valuable feedback:", answer);
@ -90,8 +90,8 @@ stream.
### rl.setPrompt(prompt) ### rl.setPrompt(prompt)
Sets the prompt, for example when you run `iojs` on the command line, you see Sets the prompt, for example when you run `node` on the command line, you see
`> `, which is io.js's prompt. `> `, which is node.js's prompt.
### rl.prompt([preserveCursor]) ### rl.prompt([preserveCursor])

View File

@ -7,10 +7,10 @@ easily includable in other programs. The REPL provides a way to interactively
run JavaScript and see the results. It can be used for debugging, testing, or run JavaScript and see the results. It can be used for debugging, testing, or
just trying things out. just trying things out.
By executing `iojs` without any arguments from the command-line you will be By executing `node` without any arguments from the command-line you will be
dropped into the REPL. It has simplistic emacs line-editing. dropped into the REPL. It has simplistic emacs line-editing.
mjr:~$ iojs mjr:~$ node
Type '.help' for options. Type '.help' for options.
> a = [ 1, 2, 3]; > a = [ 1, 2, 3];
[ 1, 2, 3 ] [ 1, 2, 3 ]
@ -21,21 +21,21 @@ dropped into the REPL. It has simplistic emacs line-editing.
2 2
3 3
For advanced line-editors, start io.js with the environmental variable For advanced line-editors, start Node.js with the environmental variable
`NODE_NO_READLINE=1`. This will start the main and debugger REPL in canonical `NODE_NO_READLINE=1`. This will start the main and debugger REPL in canonical
terminal settings which will allow you to use with `rlwrap`. terminal settings which will allow you to use with `rlwrap`.
For example, you could add this to your bashrc file: For example, you could add this to your bashrc file:
alias iojs="env NODE_NO_READLINE=1 rlwrap iojs" alias node="env NODE_NO_READLINE=1 rlwrap node"
## Persistent History ## Persistent History
By default, the REPL will persist history between `iojs` REPL sessions by saving By default, the REPL will persist history between `node` REPL sessions by saving
to a `.node_repl_history` file in the user's home directory. This can be to a `.node_repl_history` file in the user's home directory. This can be
disabled by setting the environment variable `NODE_REPL_HISTORY=""`. disabled by setting the environment variable `NODE_REPL_HISTORY=""`.
Previously in io.js v2.x, REPL history was controlled by using a Previously in Node.js/io.js v2.x, REPL history was controlled by using a
`NODE_REPL_HISTORY_FILE` environment variable, and the history was saved in JSON `NODE_REPL_HISTORY_FILE` environment variable, and the history was saved in JSON
format. This variable has now been deprecated, and your REPL history will format. This variable has now been deprecated, and your REPL history will
automatically be converted to using plain text. The new file will be saved to automatically be converted to using plain text. The new file will be saved to
@ -44,7 +44,7 @@ variable, as documented below.
## Environment Variable Options ## Environment Variable Options
The built-in repl (invoked by running `iojs` or `iojs -i`) may be controlled The built-in repl (invoked by running `node` or `node -i`) may be controlled
via the following environment variables: via the following environment variables:
- `NODE_REPL_HISTORY` - When a valid path is given, persistent REPL history - `NODE_REPL_HISTORY` - When a valid path is given, persistent REPL history
@ -108,7 +108,7 @@ You can use your own `eval` function if it has following signature:
On tab completion - `eval` will be called with `.scope` as an input string. It On tab completion - `eval` will be called with `.scope` as an input string. It
is expected to return an array of scope names to be used for the auto-completion. is expected to return an array of scope names to be used for the auto-completion.
Multiple REPLs may be started against the same running instance of io.js. Each Multiple REPLs may be started against the same running instance of Node.js. Each
will share the same global object but will have unique I/O. will share the same global object but will have unique I/O.
Here is an example that starts a REPL on stdin, a Unix socket, and a TCP socket: Here is an example that starts a REPL on stdin, a Unix socket, and a TCP socket:
@ -119,7 +119,7 @@ Here is an example that starts a REPL on stdin, a Unix socket, and a TCP socket:
connections = 0; connections = 0;
repl.start({ repl.start({
prompt: "io.js via stdin> ", prompt: "Node.js via stdin> ",
input: process.stdin, input: process.stdin,
output: process.stdout output: process.stdout
}); });
@ -127,18 +127,18 @@ Here is an example that starts a REPL on stdin, a Unix socket, and a TCP socket:
net.createServer(function (socket) { net.createServer(function (socket) {
connections += 1; connections += 1;
repl.start({ repl.start({
prompt: "io.js via Unix socket> ", prompt: "Node.js via Unix socket> ",
input: socket, input: socket,
output: socket output: socket
}).on('exit', function() { }).on('exit', function() {
socket.end(); socket.end();
}) })
}).listen("/tmp/iojs-repl-sock"); }).listen("/tmp/node-repl-sock");
net.createServer(function (socket) { net.createServer(function (socket) {
connections += 1; connections += 1;
repl.start({ repl.start({
prompt: "io.js via TCP socket> ", prompt: "Node.js via TCP socket> ",
input: socket, input: socket,
output: socket output: socket
}).on('exit', function() { }).on('exit', function() {
@ -152,7 +152,7 @@ for connecting to TCP sockets, and `socat` can be used to connect to both Unix a
TCP sockets. TCP sockets.
By starting a REPL from a Unix socket-based server instead of stdin, you can By starting a REPL from a Unix socket-based server instead of stdin, you can
connect to a long-running io.js process without restarting it. connect to a long-running Node.js process without restarting it.
For an example of running a "full-featured" (`terminal`) REPL over For an example of running a "full-featured" (`terminal`) REPL over
a `net.Server` and `net.Socket` instance, see: https://gist.github.com/2209310 a `net.Server` and `net.Socket` instance, see: https://gist.github.com/2209310
@ -228,7 +228,7 @@ associated with each `REPLServer`. For example:
Things in the `context` object appear as local within the REPL: Things in the `context` object appear as local within the REPL:
mjr:~$ iojs repl_test.js mjr:~$ node repl_test.js
> m > m
'message' 'message'

View File

@ -3,7 +3,7 @@
Stability: 2 - Stable Stability: 2 - Stable
A stream is an abstract interface implemented by various objects in A stream is an abstract interface implemented by various objects in
io.js. For example a [request to an HTTP Node.js. For example a [request to an HTTP
server](http.html#http_http_incomingmessage) is a stream, as is server](http.html#http_http_incomingmessage) is a stream, as is
[stdout][]. Streams are readable, writable, or both. All streams are [stdout][]. Streams are readable, writable, or both. All streams are
instances of [EventEmitter][] instances of [EventEmitter][]
@ -47,8 +47,8 @@ streams in your programs. If you **are** implementing streaming
interfaces in your own program, please also refer to interfaces in your own program, please also refer to
[API for Stream Implementors][] below. [API for Stream Implementors][] below.
Almost all io.js programs, no matter how simple, use Streams in some Almost all Node.js programs, no matter how simple, use Streams in some
way. Here is an example of using Streams in an io.js program: way. Here is an example of using Streams in an Node.js program:
```javascript ```javascript
var http = require('http'); var http = require('http');
@ -504,13 +504,13 @@ Versions of Node.js prior to v0.10 had streams that did not implement the
entire Streams API as it is today. (See "Compatibility" below for entire Streams API as it is today. (See "Compatibility" below for
more information.) more information.)
If you are using an older io.js library that emits `'data'` events and If you are using an older Node.js library that emits `'data'` events and
has a [`pause()`][] method that is advisory only, then you can use the has a [`pause()`][] method that is advisory only, then you can use the
`wrap()` method to create a [Readable][] stream that uses the old stream `wrap()` method to create a [Readable][] stream that uses the old stream
as its data source. as its data source.
You will very rarely ever need to call this function, but it exists You will very rarely ever need to call this function, but it exists
as a convenience for interacting with old io.js programs and libraries. as a convenience for interacting with old Node.js programs and libraries.
For example: For example:
@ -1277,7 +1277,7 @@ simply by using the higher level [Transform][] stream class, similar to
the `parseHeader` and `SimpleProtocol v1` examples above. the `parseHeader` and `SimpleProtocol v1` examples above.
In this example, rather than providing the input as an argument, it In this example, rather than providing the input as an argument, it
would be piped into the parser, which is a more idiomatic io.js stream would be piped into the parser, which is a more idiomatic Node.js stream
approach. approach.
```javascript ```javascript
@ -1466,8 +1466,8 @@ If the internal read buffer is below the `highWaterMark`, and the
stream is not currently reading, then calling `read(0)` will trigger stream is not currently reading, then calling `read(0)` will trigger
a low-level `_read` call. a low-level `_read` call.
There is almost never a need to do this. However, you will see some There is almost never a need to do this. However, you will see some
cases in io.js's internals where this is done, particularly in the cases in Node.js's internals where this is done, particularly in the
Readable stream class internals. Readable stream class internals.
### `stream.push('')` ### `stream.push('')`
@ -1484,7 +1484,7 @@ code) will know when to check again, by calling `stream.read(0)`. In
those cases, you *may* call `stream.push('')`. those cases, you *may* call `stream.push('')`.
So far, the only use case for this functionality is in the So far, the only use case for this functionality is in the
[tls.CryptoStream][] class, which is deprecated in io.js v1.0. If you [tls.CryptoStream][] class, which is deprecated in Node.js/io.js v1.0. If you
find that you have to use `stream.push('')`, please consider another find that you have to use `stream.push('')`, please consider another
approach, because it almost certainly indicates that something is approach, because it almost certainly indicates that something is
horribly wrong. horribly wrong.
@ -1504,7 +1504,7 @@ simpler, but also less powerful and less useful.
meant that you still had to be prepared to receive `'data'` events meant that you still had to be prepared to receive `'data'` events
even when the stream was in a paused state. even when the stream was in a paused state.
In io.js v1.0 and Node.js v0.10, the Readable class described below was added. In Node.js v0.10, the Readable class described below was added.
For backwards compatibility with older Node.js programs, Readable streams For backwards compatibility with older Node.js programs, Readable streams
switch into "flowing mode" when a `'data'` event handler is added, or switch into "flowing mode" when a `'data'` event handler is added, or
when the [`resume()`][] method is called. The effect is that, even if when the [`resume()`][] method is called. The effect is that, even if
@ -1534,7 +1534,7 @@ net.createServer(function(socket) {
``` ```
In versions of Node.js prior to v0.10, the incoming message data would be In versions of Node.js prior to v0.10, the incoming message data would be
simply discarded. However, in io.js v1.0 and Node.js v0.10 and beyond, simply discarded. However, in Node.js v0.10 and beyond,
the socket will remain paused forever. the socket will remain paused forever.
The workaround in this situation is to call the `resume()` method to The workaround in this situation is to call the `resume()` method to
@ -1581,7 +1581,7 @@ return value from `stream.read()` indicates that there is no more
data, and [`stream.push(null)`][] will signal the end of stream data data, and [`stream.push(null)`][] will signal the end of stream data
(`EOF`). (`EOF`).
No streams in io.js core are object mode streams. This pattern is only No streams in Node.js core are object mode streams. This pattern is only
used by userland streaming libraries. used by userland streaming libraries.
You should set `objectMode` in your stream child class constructor on You should set `objectMode` in your stream child class constructor on

View File

@ -2,7 +2,7 @@
<!--type=misc--> <!--type=misc-->
An example of a [web server](http.html) written with io.js which responds with An example of a [web server](http.html) written with node.js which responds with
'Hello World': 'Hello World':
var http = require('http'); var http = require('http');
@ -15,9 +15,9 @@ An example of a [web server](http.html) written with io.js which responds with
console.log('Server running at http://127.0.0.1:8124/'); console.log('Server running at http://127.0.0.1:8124/');
To run the server, put the code into a file called `example.js` and execute To run the server, put the code into a file called `example.js` and execute
it with the iojs program it with the node program
> iojs example.js > node example.js
Server running at http://127.0.0.1:8124/ Server running at http://127.0.0.1:8124/
All of the examples in the documentation can be run similarly. All of the examples in the documentation can be run similarly.

View File

@ -12,7 +12,7 @@ To schedule execution of a one-time `callback` after `delay` milliseconds. Retur
also pass arguments to the callback. also pass arguments to the callback.
It is important to note that your callback will probably not be called in exactly It is important to note that your callback will probably not be called in exactly
`delay` milliseconds - io.js makes no guarantees about the exact timing of when `delay` milliseconds - node.js makes no guarantees about the exact timing of when
the callback will fire, nor of the ordering things will fire in. The callback will the callback will fire, nor of the ordering things will fire in. The callback will
be called as close as possible to the time specified. be called as close as possible to the time specified.

View File

@ -501,7 +501,7 @@ dictionary with keys:
instead of the client preferences. For further details see `tls` module instead of the client preferences. For further details see `tls` module
documentation. documentation.
If no 'ca' details are given, then io.js will use the default If no 'ca' details are given, then node.js will use the default
publicly trusted list of CAs as given in publicly trusted list of CAs as given in
<http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt>. <http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt>.
@ -767,14 +767,14 @@ Example:
{ C: 'UK', { C: 'UK',
ST: 'Acknack Ltd', ST: 'Acknack Ltd',
L: 'Rhys Jones', L: 'Rhys Jones',
O: 'io.js', O: 'node.js',
OU: 'Test TLS Certificate', OU: 'Test TLS Certificate',
CN: 'localhost' }, CN: 'localhost' },
issuerInfo: issuerInfo:
{ C: 'UK', { C: 'UK',
ST: 'Acknack Ltd', ST: 'Acknack Ltd',
L: 'Rhys Jones', L: 'Rhys Jones',
O: 'io.js', O: 'node.js',
OU: 'Test TLS Certificate', OU: 'Test TLS Certificate',
CN: 'localhost' }, CN: 'localhost' },
issuer: issuer:

View File

@ -5,14 +5,14 @@
The `tty` module houses the `tty.ReadStream` and `tty.WriteStream` classes. In The `tty` module houses the `tty.ReadStream` and `tty.WriteStream` classes. In
most cases, you will not need to use this module directly. most cases, you will not need to use this module directly.
When io.js detects that it is being run inside a TTY context, then `process.stdin` When node.js detects that it is being run inside a TTY context, then `process.stdin`
will be a `tty.ReadStream` instance and `process.stdout` will be will be a `tty.ReadStream` instance and `process.stdout` will be
a `tty.WriteStream` instance. The preferred way to check if io.js is being run a `tty.WriteStream` instance. The preferred way to check if node.js is being run
in a TTY context is to check `process.stdout.isTTY`: in a TTY context is to check `process.stdout.isTTY`:
$ iojs -p -e "Boolean(process.stdout.isTTY)" $ node -p -e "Boolean(process.stdout.isTTY)"
true true
$ iojs -p -e "Boolean(process.stdout.isTTY)" | cat $ node -p -e "Boolean(process.stdout.isTTY)" | cat
false false
@ -32,7 +32,7 @@ Deprecated. Use `tty.ReadStream#setRawMode()`
A `net.Socket` subclass that represents the readable portion of a tty. In normal A `net.Socket` subclass that represents the readable portion of a tty. In normal
circumstances, `process.stdin` will be the only `tty.ReadStream` instance in any circumstances, `process.stdin` will be the only `tty.ReadStream` instance in any
io.js program (only when `isatty(0)` is true). node.js program (only when `isatty(0)` is true).
### rs.isRaw ### rs.isRaw

View File

@ -5,12 +5,12 @@
These functions are in the module `'util'`. Use `require('util')` to These functions are in the module `'util'`. Use `require('util')` to
access them. access them.
The `util` module is primarily designed to support the needs of io.js's The `util` module is primarily designed to support the needs of node.js's
internal APIs. Many of these utilities are useful for your own internal APIs. Many of these utilities are useful for your own
programs. If you find that these functions are lacking for your programs. If you find that these functions are lacking for your
purposes, however, you are encouraged to write your own utilities. We purposes, however, you are encouraged to write your own utilities. We
are not interested in any future additions to the `util` module that are not interested in any future additions to the `util` module that
are unnecessary for io.js's internal functionality. are unnecessary for node.js's internal functionality.
## util.debuglog(section) ## util.debuglog(section)
@ -131,7 +131,7 @@ Highlighted styles and their default values are:
* `special` - only function at this time (cyan) * `special` - only function at this time (cyan)
* `name` (intentionally no styling) * `name` (intentionally no styling)
Predefined color codes are: `white`, `grey`, `black`, `blue`, `cyan`, Predefined color codes are: `white`, `grey`, `black`, `blue`, `cyan`,
`green`, `magenta`, `red` and `yellow`. `green`, `magenta`, `red` and `yellow`.
There are also `bold`, `italic`, `underline` and `inverse` codes. There are also `bold`, `italic`, `underline` and `inverse` codes.

View File

@ -3,7 +3,7 @@
Stability: 2 - Stable Stability: 2 - Stable
This module exposes events and interfaces specific to the version of [V8][] This module exposes events and interfaces specific to the version of [V8][]
built with io.js. These interfaces are subject to change by upstream and are built with node.js. These interfaces are subject to change by upstream and are
therefore not covered under the stability index. therefore not covered under the stability index.
## getHeapStatistics() ## getHeapStatistics()
@ -27,8 +27,8 @@ Set additional V8 command line flags. Use with care; changing settings
after the VM has started may result in unpredictable behavior, including after the VM has started may result in unpredictable behavior, including
crashes and data loss. Or it may simply do nothing. crashes and data loss. Or it may simply do nothing.
The V8 options available for a version of io.js may be determined by running The V8 options available for a version of node.js may be determined by running
`iojs --v8-options`. An unofficial, community-maintained list of options `node --v8-options`. An unofficial, community-maintained list of options
and their effects is available and their effects is available
[here](https://github.com/thlorenz/v8-flags/blob/master/flags-0.11.md). [here](https://github.com/thlorenz/v8-flags/blob/master/flags-0.11.md).

View File

@ -260,7 +260,7 @@ See the description of `deflateInit2` and `inflateInit2` at
<!--type=misc--> <!--type=misc-->
From `zlib/zconf.h`, modified to io.js's usage: From `zlib/zconf.h`, modified to node.js's usage:
The memory requirements for deflate are (in bytes): The memory requirements for deflate are (in bytes):
@ -291,7 +291,7 @@ The speed of zlib compression is affected most dramatically by the
will take longer to complete. A lower level will result in less will take longer to complete. A lower level will result in less
compression, but will be much faster. compression, but will be much faster.
In general, greater memory usage options will mean that io.js has to make In general, greater memory usage options will mean that node.js has to make
fewer calls to zlib, since it'll be able to process more data in a fewer calls to zlib, since it'll be able to process more data in a
single `write` operation. So, this is another factor that affects the single `write` operation. So, this is another factor that affects the
speed, at the cost of memory usage. speed, at the cost of memory usage.

View File

@ -1,13 +1,13 @@
.TH IO.JS "1" "2010" "" "" .TH NODE.JS "1" "2010" "" ""
.SH "NAME" .SH "NAME"
iojs \- Server-side JavaScript node \- Server-side JavaScript
.SH SYNOPSIS .SH SYNOPSIS
.B iojs .B node
[ [
.B \-v .B \-v
] ]
@ -35,7 +35,7 @@ Execute without arguments to start the REPL.
.SH DESCRIPTION .SH DESCRIPTION
io.js is a set of libraries for javascript which allows Node.js is a set of libraries for javascript which allows
it to be used outside of the browser. It is primarily it to be used outside of the browser. It is primarily
focused on creating simple, easy to build network clients focused on creating simple, easy to build network clients
and servers. and servers.
@ -43,7 +43,7 @@ and servers.
.SH OPTIONS .SH OPTIONS
-v, --version print iojs's version -v, --version print node's version
-e, --eval script evaluate script -e, --eval script evaluate script
@ -761,7 +761,7 @@ If set to 1 then colors will not be used in the REPL.
.SH RESOURCES AND DOCUMENTATION .SH RESOURCES AND DOCUMENTATION
See the website for documentation http://iojs.org/ See the website for documentation http://nodejs.org/
Mailing list: http://groups.google.com/group/nodejs Mailing list: http://groups.google.com/group/nodejs

View File

@ -1,11 +1,11 @@
io.js Release Process Node.js Release Process
===================== =====================
This document describes the technical aspects of the io.js release process. The intended audience is those who have been authorized by the Node.js Foundation Technical Steering Committee (TSC) to create, promote and sign official release builds for io.js, hosted on <https://iojs.org>. This document describes the technical aspects of the node.js release process. The intended audience is those who have been authorized by the Node.js Foundation Technical Steering Committee (TSC) to create, promote and sign official release builds for node.js, hosted on <https://nodejs.org>.
## Who can make a release? ## Who can make a release?
Release authorization is given by the io.js TC. Once authorized, an individual must be have the following: Release authorization is given by the node.js TSC. Once authorized, an individual must be have the following:
### 1. Jenkins Release Access ### 1. Jenkins Release Access
@ -13,21 +13,21 @@ There are three relevant Jenkins jobs that should be used for a release flow:
**a.** **Test runs:** **[iojs+any-pr+multi](https://jenkins-iojs.nodesource.com/job/iojs+any-pr+multi/)** is used for a final full-test run to ensure that the current *HEAD* is stable. **a.** **Test runs:** **[iojs+any-pr+multi](https://jenkins-iojs.nodesource.com/job/iojs+any-pr+multi/)** is used for a final full-test run to ensure that the current *HEAD* is stable.
**b.** **Nightly builds:** (optional) **[iojs+release](https://jenkins-iojs.nodesource.com/job/iojs+release/)** can be used to create a nightly release for the current *HEAD* if public test releases are required. Builds triggered with this job are published straight to <http://iojs.org/download/nightly/> and are available for public download. **b.** **Nightly builds:** (optional) **[iojs+release](https://jenkins-iojs.nodesource.com/job/iojs+release/)** can be used to create a nightly release for the current *HEAD* if public test releases are required. Builds triggered with this job are published straight to <http://nodejs.org/download/nightly/> and are available for public download.
**c.** **Release builds:** **[iojs+release](https://jenkins-iojs.nodesource.com/job/iojs+release/)** does all of the work to build all required release assets. Promotion of the release files is a manual step once they are ready (see below). **c.** **Release builds:** **[iojs+release](https://jenkins-iojs.nodesource.com/job/iojs+release/)** does all of the work to build all required release assets. Promotion of the release files is a manual step once they are ready (see below).
The [io.js build team](https://github.com/nodejs/build) is able to provide this access to individuals authorized by the TC. The [Node.js build team](https://github.com/nodejs/build) is able to provide this access to individuals authorized by the TC.
### 2. <iojs.org> Access
The _dist_ user on iojs.org controls the assets available in <http://iojs.org/download/> (note that <http://iojs.org/dist/> is an alias for <https://iojs.org/download/release/>). ### 2. <nodejs.org> Access
The _dist_ user on nodejs.org controls the assets available in <http://nodejs.org/download/> (note that <http://nodejs.org/dist/> is an alias for <https://nodejs.org/download/release/>).
The Jenkins release build slaves upload their artifacts to the web server as the _staging_ user, the _dist_ user has access to move these assets to public access (the _staging_ user does not, for security purposes). The Jenkins release build slaves upload their artifacts to the web server as the _staging_ user, the _dist_ user has access to move these assets to public access (the _staging_ user does not, for security purposes).
Nightly builds are promoted automatically on the server by a cron task for the _dist_ user. Nightly builds are promoted automatically on the server by a cron task for the _dist_ user.
Release builds require manual promotion by an individual with SSH access to the server as the _dist_ user. The [io.js build team](https://github.com/nodejs/build) is able to provide this access to individuals authorized by the TC. Release builds require manual promotion by an individual with SSH access to the server as the _dist_ user. The [Node.js build team](https://github.com/nodejs/build) is able to provide this access to individuals authorized by the TC.
### 3. A Publicly Listed GPG Key ### 3. A Publicly Listed GPG Key
@ -41,7 +41,7 @@ gpg --keyserver pool.sks-keyservers.net --recv-keys <FINGERPRINT>
The key you use may be a child/subkey of an existing key. The key you use may be a child/subkey of an existing key.
Additionally, full GPG key fingerprints for individuals authorized to release should be listed in the io.js GitHub README.md file. Additionally, full GPG key fingerprints for individuals authorized to release should be listed in the Node.js GitHub README.md file.
## How to create a release ## How to create a release
@ -56,7 +56,7 @@ Run a **[iojs+any-pr+multi](https://jenkins-iojs.nodesource.com/job/iojs+any-pr+
### 2. Produce a Nightly Build _(optional)_ ### 2. Produce a Nightly Build _(optional)_
If there is a reason to produce a test release for the purpose of having others try out installers or specifics of builds, produce a nightly build using **[iojs+release](https://jenkins-iojs.nodesource.com/job/iojs+release/)** and wait for it to drop in <http://iojs.org/download/nightly/>. Follow the directions and enter a proper length commit sha, a date string and select "nightly" for "disttype". If there is a reason to produce a test release for the purpose of having others try out installers or specifics of builds, produce a nightly build using **[iojs+release](https://jenkins-iojs.nodesource.com/job/iojs+release/)** and wait for it to drop in <http://nodejs.org/download/nightly/>. Follow the directions and enter a proper length commit sha, a date string and select "nightly" for "disttype".
This is particularly recommended if there has been recent work relating to the OS X or Windows installers as they are not tested in any way by CI. This is particularly recommended if there has been recent work relating to the OS X or Windows installers as they are not tested in any way by CI.
@ -88,7 +88,7 @@ The _CHANGELOG.md_ entry should take the following form:
### Known issues ### Known issues
See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues. See https://github.com/nodejs/node/labels/confirmed-bug for complete and current list of known issues.
* Include this section if there are any known problems with this release * Include this section if there are any known problems with this release
* Scan GitHub for unresolved problems that users may need to be aware of * Scan GitHub for unresolved problems that users may need to be aware of
@ -132,7 +132,7 @@ The _CHANGELOG.md_ and _src/node_version.h_ changes should be the final commit t
When committing these to git, use the following message format: When committing these to git, use the following message format:
``` ```
YYYY-MM-DD io.js vx.y.z Release YYYY-MM-DD node.js vx.y.z Release
Notable changes: Notable changes:
@ -141,7 +141,7 @@ Notable changes:
### 6. Push to GitHub ### 6. Push to GitHub
Note that it is not essential that the release builds be created from the io.js repository, they may be created from your own fork if you desire. It is preferable, but not essential that the commits remain the same between that used to build and the tagged commit in the io.js repository. Note that it is not essential that the release builds be created from the Node.js repository, they may be created from your own fork if you desire. It is preferable, but not essential that the commits remain the same between that used to build and the tagged commit in the Node.js repository.
### 7. Produce Release Builds ### 7. Produce Release Builds
@ -160,7 +160,7 @@ Note that you do not have to wait for the ARM builds if they are take longer tha
Tag the release as <b><code>vx.y.z</code></b> and sign **using the same GPG key that will be used to sign SHASUMS256.txt**. Tag the release as <b><code>vx.y.z</code></b> and sign **using the same GPG key that will be used to sign SHASUMS256.txt**.
``` ```
$ git tag <vx.y.z> <commit-sha> -sm 'YYYY-MM-DD io.js vz.y.x Release' $ git tag <vx.y.z> <commit-sha> -sm 'YYYY-MM-DD node.js vz.y.x Release'
``` ```
Push the tag to GitHub. Push the tag to GitHub.
@ -210,13 +210,13 @@ If you didn't wait for ARM builds in the previous step before promoting the rele
### 11. Check the Release ### 11. Check the Release
Your release should be available at <https://iojs.org/dist/vx.y.z/> and also <https://iojs.org/dist/latest/>. Check that the appropriate files are in place, you may also want to check that the binaries are working as appropriate and have the right internal version strings. Check that the API docs are available at <https://iojs.org/api/>. Check that the release catalog files are correct at <https://iojs.org/dist/index.tab> and <https://iojs.org/dist/index.json>. Your release should be available at <https://nodejs.org/dist/vx.y.z/> and also <https://nodejs.org/dist/latest/>. Check that the appropriate files are in place, you may also want to check that the binaries are working as appropriate and have the right internal version strings. Check that the API docs are available at <https://nodejs.org/api/>. Check that the release catalog files are correct at <https://nodejs.org/dist/index.tab> and <https://nodejs.org/dist/index.json>.
### 12. Announce ### 12. Announce
The iojs.org website will automatically rebuild and include the new version. You simply need to announce the build, preferably via twitter with a message such as: The nodejs.org website will automatically rebuild and include the new version. You simply need to announce the build, preferably via twitter with a message such as:
> v2.3.2 of @official_iojs is out @ https://iojs.org/dist/latest/ changelog @ https://github.com/nodejs/io.js/blob/master/CHANGELOG.md#2015-07-01-version-232-rvagg … something here about notable changes > v2.3.2 of @official_iojs is out @ https://nodejs.org/dist/latest/ changelog @ https://github.com/nodejs/node/blob/master/CHANGELOG.md#2015-07-01-version-232-rvagg … something here about notable changes
### 13. Celebrate ### 13. Celebrate

View File

@ -2,18 +2,18 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>__SECTION__ io.js __VERSION__ Manual &amp; Documentation</title> <title>__SECTION__ Node.js __VERSION__ Manual &amp; Documentation</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,700,400italic"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,700,400italic">
<link rel="stylesheet" href="assets/style.css"> <link rel="stylesheet" href="assets/style.css">
<link rel="stylesheet" href="assets/sh.css"> <link rel="stylesheet" href="assets/sh.css">
<link rel="canonical" href="https://iojs.org/api/__FILENAME__.html"> <link rel="canonical" href="https://nodejs.org/api/__FILENAME__.html">
</head> </head>
<body class="alt apidoc" id="api-section-__FILENAME__"> <body class="alt apidoc" id="api-section-__FILENAME__">
<div id="content" class="clearfix"> <div id="content" class="clearfix">
<div id="column2" class="interior"> <div id="column2" class="interior">
<div id="intro" class="interior"> <div id="intro" class="interior">
<a href="/" title="Go back to the home page"> <a href="/" title="Go back to the home page">
io.js (1) Node.js (1)
</a> </a>
</div> </div>
__GTOC__ __GTOC__
@ -21,7 +21,7 @@
<div id="column1" data-id="__ID__" class="interior"> <div id="column1" data-id="__ID__" class="interior">
<header> <header>
<h1>io.js __VERSION__ Documentation</h1> <h1>Node.js __VERSION__ Documentation</h1>
<div id="gtoc"> <div id="gtoc">
<p> <p>
<a href="index.html" name="toc">Index</a> | <a href="index.html" name="toc">Index</a> |

View File

@ -15,9 +15,9 @@ exports.start = function(argv, stdin, stdout) {
argv || (argv = process.argv.slice(2)); argv || (argv = process.argv.slice(2));
if (argv.length < 1) { if (argv.length < 1) {
console.error('Usage: iojs debug script.js'); console.error('Usage: node debug script.js');
console.error(' iojs debug <host>:<port>'); console.error(' node debug <host>:<port>');
console.error(' iojs debug -p <pid>'); console.error(' node debug -p <pid>');
process.exit(1); process.exit(1);
} }

View File

@ -747,7 +747,7 @@ REPLServer.prototype.complete = function(line, callback) {
// Probably a Proxy object without `getOwnPropertyNames` trap. // Probably a Proxy object without `getOwnPropertyNames` trap.
// We simply ignore it here, as we don't want to break the // We simply ignore it here, as we don't want to break the
// autocompletion. Fixes the bug // autocompletion. Fixes the bug
// https://github.com/nodejs/io.js/issues/2119 // https://github.com/nodejs/node/issues/2119
} }
} }
// works for non-objects // works for non-objects

View File

@ -78,7 +78,7 @@
'targets': [ 'targets': [
{ {
'target_name': 'iojs', 'target_name': 'node',
'type': '<(node_target_type)', 'type': '<(node_target_type)',
'dependencies': [ 'dependencies': [
@ -531,10 +531,10 @@
{ {
'action_name': 'node_dtrace_provider_o', 'action_name': 'node_dtrace_provider_o',
'inputs': [ 'inputs': [
'<(OBJ_DIR)/iojs/src/node_dtrace.o', '<(OBJ_DIR)/node/src/node_dtrace.o',
], ],
'outputs': [ 'outputs': [
'<(OBJ_DIR)/iojs/src/node_dtrace_provider.o' '<(OBJ_DIR)/node/src/node_dtrace_provider.o'
], ],
'action': [ 'dtrace', '-G', '-xnolibs', '-s', 'src/node_provider.d', 'action': [ 'dtrace', '-G', '-xnolibs', '-s', 'src/node_provider.d',
'<@(_inputs)', '-o', '<@(_outputs)' ] '<@(_inputs)', '-o', '<@(_outputs)' ]
@ -584,7 +584,7 @@
'<(SHARED_INTERMEDIATE_DIR)/v8constants.h' '<(SHARED_INTERMEDIATE_DIR)/v8constants.h'
], ],
'outputs': [ 'outputs': [
'<(OBJ_DIR)/iojs/src/node_dtrace_ustack.o' '<(OBJ_DIR)/node/src/node_dtrace_ustack.o'
], ],
'conditions': [ 'conditions': [
[ 'target_arch=="ia32"', { [ 'target_arch=="ia32"', {

View File

@ -2768,19 +2768,19 @@ void SetupProcessObject(Environment* env,
// process.release // process.release
Local<Object> release = Object::New(env->isolate()); Local<Object> release = Object::New(env->isolate());
READONLY_PROPERTY(process, "release", release); READONLY_PROPERTY(process, "release", release);
READONLY_PROPERTY(release, "name", OneByteString(env->isolate(), "io.js")); READONLY_PROPERTY(release, "name", OneByteString(env->isolate(), "node.js"));
// if this is a release build and no explicit base has been set // if this is a release build and no explicit base has been set
// substitute the standard release download URL // substitute the standard release download URL
#ifndef NODE_RELEASE_URLBASE #ifndef NODE_RELEASE_URLBASE
# if NODE_VERSION_IS_RELEASE # if NODE_VERSION_IS_RELEASE
# define NODE_RELEASE_URLBASE "https://iojs.org/download/release/" # define NODE_RELEASE_URLBASE "https://nodejs.org/download/release/"
# endif # endif
#endif #endif
#if defined(NODE_RELEASE_URLBASE) #if defined(NODE_RELEASE_URLBASE)
# define _RELEASE_URLPFX NODE_RELEASE_URLBASE "v" NODE_VERSION_STRING "/" # define _RELEASE_URLPFX NODE_RELEASE_URLBASE "v" NODE_VERSION_STRING "/"
# define _RELEASE_URLFPFX _RELEASE_URLPFX "iojs-v" NODE_VERSION_STRING # define _RELEASE_URLFPFX _RELEASE_URLPFX "node-v" NODE_VERSION_STRING
READONLY_PROPERTY(release, READONLY_PROPERTY(release,
"sourceUrl", "sourceUrl",
@ -2794,7 +2794,7 @@ void SetupProcessObject(Environment* env,
READONLY_PROPERTY(release, READONLY_PROPERTY(release,
"libUrl", "libUrl",
OneByteString(env->isolate(), OneByteString(env->isolate(),
_RELEASE_URLPFX "win-" NODE_ARCH "/iojs.lib")); _RELEASE_URLPFX "win-" NODE_ARCH "/node.lib"));
# endif # endif
#endif #endif
@ -3092,11 +3092,11 @@ static bool ParseDebugOpt(const char* arg) {
} }
static void PrintHelp() { static void PrintHelp() {
printf("Usage: iojs [options] [ -e script | script.js ] [arguments] \n" printf("Usage: node [options] [ -e script | script.js ] [arguments] \n"
" iojs debug script.js [arguments] \n" " node debug script.js [arguments] \n"
"\n" "\n"
"Options:\n" "Options:\n"
" -v, --version print io.js version\n" " -v, --version print Node.js version\n"
" -e, --eval script evaluate script\n" " -e, --eval script evaluate script\n"
" -p, --print evaluate script and print result\n" " -p, --print evaluate script and print result\n"
" -i, --interactive always enter the REPL even if stdin\n" " -i, --interactive always enter the REPL even if stdin\n"
@ -3138,7 +3138,7 @@ static void PrintHelp() {
#endif #endif
#endif #endif
"\n" "\n"
"Documentation can be found at https://iojs.org/\n"); "Documentation can be found at https://nodejs.org/\n");
} }
@ -3664,12 +3664,12 @@ void Init(int* argc,
defined(__ARM_ARCH_6T2__) || \ defined(__ARM_ARCH_6T2__) || \
defined(__ARM_ARCH_6ZK__) || \ defined(__ARM_ARCH_6ZK__) || \
defined(__ARM_ARCH_6Z__) defined(__ARM_ARCH_6Z__)
// See https://github.com/nodejs/io.js/issues/1376 // See https://github.com/nodejs/node/issues/1376
// and https://code.google.com/p/v8/issues/detail?id=4019 // and https://code.google.com/p/v8/issues/detail?id=4019
// TODO(bnoordhuis): Remove test/parallel/test-arm-math-exp-regress-1376.js // TODO(bnoordhuis): Remove test/parallel/test-arm-math-exp-regress-1376.js
// and this workaround when v8:4019 has been fixed and the patch back-ported. // and this workaround when v8:4019 has been fixed and the patch back-ported.
V8::SetFlagsFromString("--nofast_math", sizeof("--nofast_math") - 1); V8::SetFlagsFromString("--nofast_math", sizeof("--nofast_math") - 1);
// See https://github.com/nodejs/io.js/pull/2220#issuecomment-126200059 // See https://github.com/nodejs/node/pull/2220#issuecomment-126200059
// and https://code.google.com/p/v8/issues/detail?id=4338 // and https://code.google.com/p/v8/issues/detail?id=4338
// TODO(targos): Remove this workaround when v8:4338 has been fixed and the // TODO(targos): Remove this workaround when v8:4338 has been fixed and the
// patch back-ported. // patch back-ported.

View File

@ -42,26 +42,26 @@
#include "v8.h" // NOLINT(build/include_order) #include "v8.h" // NOLINT(build/include_order)
#include "node_version.h" // NODE_MODULE_VERSION #include "node_version.h" // NODE_MODULE_VERSION
#define IOJS_MAKE_VERSION(major, minor, patch) \ #define NODE_MAKE_VERSION(major, minor, patch) \
((major) * 0x1000 + (minor) * 0x100 + (patch)) ((major) * 0x1000 + (minor) * 0x100 + (patch))
#ifdef __clang__ #ifdef __clang__
# define IOJS_CLANG_AT_LEAST(major, minor, patch) \ # define NODE_CLANG_AT_LEAST(major, minor, patch) \
(IOJS_MAKE_VERSION(major, minor, patch) <= \ (NODE_MAKE_VERSION(major, minor, patch) <= \
IOJS_MAKE_VERSION(__clang_major__, __clang_minor__, __clang_patchlevel__)) NODE_MAKE_VERSION(__clang_major__, __clang_minor__, __clang_patchlevel__))
#else #else
# define IOJS_CLANG_AT_LEAST(major, minor, patch) (0) # define NODE_CLANG_AT_LEAST(major, minor, patch) (0)
#endif #endif
#ifdef __GNUC__ #ifdef __GNUC__
# define IOJS_GNUC_AT_LEAST(major, minor, patch) \ # define NODE_GNUC_AT_LEAST(major, minor, patch) \
(IOJS_MAKE_VERSION(major, minor, patch) <= \ (NODE_MAKE_VERSION(major, minor, patch) <= \
IOJS_MAKE_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)) NODE_MAKE_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__))
#else #else
# define IOJS_GNUC_AT_LEAST(major, minor, patch) (0) # define NODE_GNUC_AT_LEAST(major, minor, patch) (0)
#endif #endif
#if IOJS_CLANG_AT_LEAST(2, 9, 0) || IOJS_GNUC_AT_LEAST(4, 5, 0) #if NODE_CLANG_AT_LEAST(2, 9, 0) || NODE_GNUC_AT_LEAST(4, 5, 0)
# define NODE_DEPRECATED(message, declarator) \ # define NODE_DEPRECATED(message, declarator) \
__attribute__((deprecated(message))) declarator __attribute__((deprecated(message))) declarator
#elif defined(_MSC_VER) #elif defined(_MSC_VER)

View File

@ -561,7 +561,7 @@
JSON.stringify(name) + ' });\n'; JSON.stringify(name) + ' });\n';
// Defer evaluation for a tick. This is a workaround for deferred // Defer evaluation for a tick. This is a workaround for deferred
// events not firing when evaluating scripts from the command line, // events not firing when evaluating scripts from the command line,
// see https://github.com/nodejs/io.js/issues/1600. // see https://github.com/nodejs/node/issues/1600.
process.nextTick(function() { process.nextTick(function() {
var result = module._compile(script, name + '-wrapper'); var result = module._compile(script, name + '-wrapper');
if (process._print_eval) console.log(result); if (process._print_eval) console.log(result);

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -3,7 +3,7 @@
// Application icon // Application icon
1 ICON iojs.ico 1 ICON node.ico
// Version resource // Version resource
@ -29,14 +29,14 @@ BEGIN
BEGIN BEGIN
BLOCK "040904b0" BLOCK "040904b0"
BEGIN BEGIN
VALUE "CompanyName", "io.js" VALUE "CompanyName", "Node.js"
VALUE "ProductName", "io.js" VALUE "ProductName", "Node.js"
VALUE "FileDescription", "io.js: Server-side JavaScript" VALUE "FileDescription", "Node.js: Server-side JavaScript"
VALUE "FileVersion", "NODE_VERSION_STRING" VALUE "FileVersion", "NODE_VERSION_STRING"
VALUE "ProductVersion", "NODE_VERSION_STRING" VALUE "ProductVersion", "NODE_VERSION_STRING"
VALUE "OriginalFilename", "iojs.exe" VALUE "OriginalFilename", "node.exe"
VALUE "InternalName", "iojs" VALUE "InternalName", "node"
VALUE "LegalCopyright", "Copyright io.js contributors. MIT license." VALUE "LegalCopyright", "Copyright Node.js contributors. MIT license."
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View File

@ -7,8 +7,8 @@
<provider name="NodeJS-ETW-provider" <provider name="NodeJS-ETW-provider"
guid="{77754E9B-264B-4D8D-B981-E4135C1ECB0C}" guid="{77754E9B-264B-4D8D-B981-E4135C1ECB0C}"
symbol="NODE_ETW_PROVIDER" symbol="NODE_ETW_PROVIDER"
resourceFileName="iojs.exe" resourceFileName="node.exe"
messageFileName="iojs.exe"> messageFileName="node.exe">
<tasks> <tasks>
<task name="MethodRuntime" value="1" <task name="MethodRuntime" value="1"

View File

@ -6,7 +6,7 @@
<counters xmlns="http://schemas.microsoft.com/win/2005/12/counters" <counters xmlns="http://schemas.microsoft.com/win/2005/12/counters"
schemaVersion="1.1"> schemaVersion="1.1">
<provider symbol="NodeCounterProvider" <provider symbol="NodeCounterProvider"
applicationIdentity="iojs.exe" applicationIdentity="node.exe"
providerType="userMode" providerType="userMode"
providerGuid="{793C9B44-3D6B-4F57-B5D7-4FF80ADCF9A2}"> providerGuid="{793C9B44-3D6B-4F57-B5D7-4FF80ADCF9A2}">
<counterSet symbol="NodeCounterSet" <counterSet symbol="NodeCounterSet"

View File

@ -432,7 +432,7 @@ void TLSWrap::ClearOut() {
// We need to check whether an error occurred or the connection was // We need to check whether an error occurred or the connection was
// shutdown cleanly (SSL_ERROR_ZERO_RETURN) even when read == 0. // shutdown cleanly (SSL_ERROR_ZERO_RETURN) even when read == 0.
// See iojs#1642 and SSL_read(3SSL) for details. // See node#1642 and SSL_read(3SSL) for details.
if (read <= 0) { if (read <= 0) {
int err; int err;
Local<Value> arg = GetSSLError(read, &err, nullptr); Local<Value> arg = GetSSLError(read, &err, nullptr);

View File

@ -115,7 +115,7 @@ Object.defineProperty(exports, 'opensslCli', {get: function() {
// use external command // use external command
opensslCli = 'openssl'; opensslCli = 'openssl';
} else { } else {
// use command built from sources included in io.js repository // use command built from sources included in Node.js repository
opensslCli = path.join(path.dirname(process.execPath), 'openssl-cli'); opensslCli = path.join(path.dirname(process.execPath), 'openssl-cli');
} }

View File

@ -1,6 +1,6 @@
var assert = require('assert'); var assert = require('assert');
// https://github.com/nodejs/io.js/issues/1803 // https://github.com/nodejs/node/issues/1803
// this module is used as a preload module. It should have a parent with the // this module is used as a preload module. It should have a parent with the
// module search paths initialized from the current working directory // module search paths initialized from the current working directory
assert.ok(module.parent); assert.ok(module.parent);

View File

@ -1,5 +1,5 @@
'use strict'; 'use strict';
// See https://github.com/nodejs/io.js/issues/1376 // See https://github.com/nodejs/node/issues/1376
// and https://code.google.com/p/v8/issues/detail?id=4019 // and https://code.google.com/p/v8/issues/detail?id=4019
Math.abs(-0.5); Math.abs(-0.5);

View File

@ -1169,7 +1169,7 @@ assert.throws(function() {
b.equals('abc'); b.equals('abc');
}); });
// Regression test for https://github.com/nodejs/io.js/issues/649. // Regression test for https://github.com/nodejs/node/issues/649.
assert.throws(function() { Buffer(1422561062959).toString('utf8'); }); assert.throws(function() { Buffer(1422561062959).toString('utf8'); });
var ps = Buffer.poolSize; var ps = Buffer.poolSize;

View File

@ -13,7 +13,7 @@ assert.strictEqual(emitter.getMaxListeners(), 0);
emitter.setMaxListeners(3); emitter.setMaxListeners(3);
assert.strictEqual(emitter.getMaxListeners(), 3); assert.strictEqual(emitter.getMaxListeners(), 3);
// https://github.com/nodejs/io.js/issues/523 - second call should not throw. // https://github.com/nodejs/node/issues/523 - second call should not throw.
var recv = {}; var recv = {};
EventEmitter.prototype.on.call(recv, 'event', function() {}); EventEmitter.prototype.on.call(recv, 'event', function() {});
EventEmitter.prototype.on.call(recv, 'event', function() {}); EventEmitter.prototype.on.call(recv, 'event', function() {});

View File

@ -1,24 +1,4 @@
'use strict'; 'use strict';
// Copyright io.js 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 common = require('../common'); var common = require('../common');
var assert = require('assert'); var assert = require('assert');

View File

@ -3,7 +3,7 @@
// These testcases are specific to one uncommon behaviour in path module. Few // These testcases are specific to one uncommon behaviour in path module. Few
// of the functions in path module, treat '' strings as current working // of the functions in path module, treat '' strings as current working
// directory. This test makes sure that the behaviour is intact between commits. // directory. This test makes sure that the behaviour is intact between commits.
// See: https://github.com/nodejs/io.js/pull/2106 // See: https://github.com/nodejs/node/pull/2106
const common = require('../common'); const common = require('../common');
const assert = require('assert'); const assert = require('assert');

View File

@ -81,7 +81,7 @@ child_process.exec(nodeBinary + ' '
assert.ok(/worker terminated with code 43/.test(stdout)); assert.ok(/worker terminated with code 43/.test(stdout));
}); });
// https://github.com/nodejs/io.js/issues/1691 // https://github.com/nodejs/node/issues/1691
var originalCwd = process.cwd(); var originalCwd = process.cwd();
process.chdir(path.join(__dirname, '../fixtures/')); process.chdir(path.join(__dirname, '../fixtures/'));
child_process.exec(nodeBinary + ' ' child_process.exec(nodeBinary + ' '

View File

@ -237,7 +237,7 @@ testMe.complete('cus', common.mustCall(function(error, data) {
})); }));
// Make sure tab completion doesn't crash REPL with half-baked proxy objects. // Make sure tab completion doesn't crash REPL with half-baked proxy objects.
// See: https://github.com/nodejs/io.js/issues/2119 // See: https://github.com/nodejs/node/issues/2119
putIn.run(['.clear']); putIn.run(['.clear']);
putIn.run([ putIn.run([

View File

@ -232,7 +232,7 @@ function error_test() {
{ client: client_unix, send: '\'the\\\n\\\nfourtheye\'\n', { client: client_unix, send: '\'the\\\n\\\nfourtheye\'\n',
expect: prompt_multiline + prompt_multiline + expect: prompt_multiline + prompt_multiline +
'\'thefourtheye\'\n' + prompt_unix }, '\'thefourtheye\'\n' + prompt_unix },
// Regression test for https://github.com/nodejs/io.js/issues/597 // Regression test for https://github.com/nodejs/node/issues/597
{ client: client_unix, { client: client_unix,
send: '/(.)(.)(.)(.)(.)(.)(.)(.)(.)/.test(\'123456789\')\n', send: '/(.)(.)(.)(.)(.)(.)(.)(.)(.)/.test(\'123456789\')\n',
expect: `true\n${prompt_unix}` }, expect: `true\n${prompt_unix}` },

View File

@ -107,7 +107,7 @@ var PRE_3OF4_APEX = Math.ceil((EXTERN_APEX / 4) * 3) - RADIOS;
} }
})(); })();
// https://github.com/nodejs/io.js/issues/1024 // https://github.com/nodejs/node/issues/1024
(function() { (function() {
var a = Array(1 << 20).join('x'); var a = Array(1 << 20).join('x');
var b = Buffer(a, 'ucs2').toString('ucs2'); var b = Buffer(a, 'ucs2').toString('ucs2');

View File

@ -37,7 +37,7 @@ var testCases = [
}, },
errorCode: 'CERT_REVOKED' errorCode: 'CERT_REVOKED'
}, },
// Test 1: for the fix of iojs#2061 // Test 1: for the fix of node#2061
// agent6-cert.pem is signed by intermidate cert of ca3. // agent6-cert.pem is signed by intermidate cert of ca3.
// The server has a cert chain of agent6->ca3->ca1(root) but // The server has a cert chain of agent6->ca3->ca1(root) but
// tls.connect should be failed with an error of // tls.connect should be failed with an error of

View File

@ -14,7 +14,7 @@ var path = require('path');
var cert = fs.readFileSync(path.join(common.fixturesDir, 'test_cert.pem')); var cert = fs.readFileSync(path.join(common.fixturesDir, 'test_cert.pem'));
var key = fs.readFileSync(path.join(common.fixturesDir, 'test_key.pem')); var key = fs.readFileSync(path.join(common.fixturesDir, 'test_key.pem'));
// https://github.com/nodejs/io.js/issues/1489 // https://github.com/nodejs/node/issues/1489
// tls.connect(options) with no options.host should accept a cert with // tls.connect(options) with no options.host should accept a cert with
// CN:'localhost' // CN:'localhost'
tls.createServer({ tls.createServer({

View File

@ -1562,7 +1562,7 @@ relativeTests2.forEach(function(relativeTest) {
}); });
// https://github.com/nodejs/io.js/pull/1036 // https://github.com/nodejs/node/pull/1036
var throws = [ var throws = [
undefined, undefined,
null, null,

View File

@ -29,7 +29,7 @@ assert.strictEqual(vm.runInDebugContext(0), 0);
assert.strictEqual(vm.runInDebugContext(null), null); assert.strictEqual(vm.runInDebugContext(null), null);
assert.strictEqual(vm.runInDebugContext(undefined), undefined); assert.strictEqual(vm.runInDebugContext(undefined), undefined);
// See https://github.com/nodejs/io.js/issues/1190, accessing named interceptors // See https://github.com/nodejs/node/issues/1190, accessing named interceptors
// and accessors inside a debug event listener should not crash. // and accessors inside a debug event listener should not crash.
(function() { (function() {
var Debug = vm.runInDebugContext('Debug'); var Debug = vm.runInDebugContext('Debug');
@ -53,7 +53,7 @@ assert.strictEqual(vm.runInDebugContext(undefined), undefined);
assert.equal(breaks, 1); assert.equal(breaks, 1);
})(); })();
// See https://github.com/nodejs/io.js/issues/1190, fatal errors should not // See https://github.com/nodejs/node/issues/1190, fatal errors should not
// crash the process. // crash the process.
var script = common.fixturesDir + '/vm-run-in-debug-context.js'; var script = common.fixturesDir + '/vm-run-in-debug-context.js';
var proc = spawn(process.execPath, [script]); var proc = spawn(process.execPath, [script]);

View File

@ -108,12 +108,12 @@ def npm_files(action):
if os.environ.get('PORTABLE'): if os.environ.get('PORTABLE'):
# This crazy hack is necessary to make the shebang execute the copy # This crazy hack is necessary to make the shebang execute the copy
# of node relative to the same directory as the npm script. The precompiled # of node relative to the same directory as the npm script. The precompiled
# binary tarballs use a prefix of "/" which gets translated to "/bin/iojs" # binary tarballs use a prefix of "/" which gets translated to "/bin/node"
# in the regular shebang modifying logic, which is incorrect since the # in the regular shebang modifying logic, which is incorrect since the
# precompiled bundle should be able to be extracted anywhere and "just work" # precompiled bundle should be able to be extracted anywhere and "just work"
shebang = '/bin/sh\n// 2>/dev/null; exec "`dirname "$0"`/iojs" "$0" "$@"' shebang = '/bin/sh\n// 2>/dev/null; exec "`dirname "$0"`/node" "$0" "$@"'
else: else:
shebang = os.path.join(node_prefix or '/', 'bin/iojs') shebang = os.path.join(node_prefix or '/', 'bin/node')
update_shebang(link_path, shebang) update_shebang(link_path, shebang)
else: else:
assert(0) # unhandled action type assert(0) # unhandled action type
@ -130,7 +130,7 @@ def files(action):
is_windows = sys.platform == 'win32' is_windows = sys.platform == 'win32'
exeext = '.exe' if is_windows else '' exeext = '.exe' if is_windows else ''
action(['out/Release/iojs' + exeext], 'bin/iojs' + exeext) action(['out/Release/node' + exeext], 'bin/node' + exeext)
if not is_windows: if not is_windows:
# Install iojs -> node compatibility symlink. # Install iojs -> node compatibility symlink.
@ -152,9 +152,9 @@ def files(action):
action(['deps/v8/tools/gdbinit'], 'share/doc/node/') action(['deps/v8/tools/gdbinit'], 'share/doc/node/')
if 'freebsd' in sys.platform or 'openbsd' in sys.platform: if 'freebsd' in sys.platform or 'openbsd' in sys.platform:
action(['doc/iojs.1'], 'man/man1/') action(['doc/node.1'], 'man/man1/')
else: else:
action(['doc/iojs.1'], 'share/man/man1/') action(['doc/node.1'], 'share/man/man1/')
if 'true' == variables.get('node_install_npm'): npm_files(action) if 'true' == variables.get('node_install_npm'): npm_files(action)

View File

@ -3,14 +3,14 @@
<!-- See https://msdn.microsoft.com/en-us/goglobal/bb964664.aspx --> <!-- See https://msdn.microsoft.com/en-us/goglobal/bb964664.aspx -->
<String Id="LocaleId">1031</String> <String Id="LocaleId">1031</String>
<String Id="WelcomeDlgDescription">Dieser Installationsassistent wird [ProductName] auf Ihrem Computer installieren.&#xD;&#xA;&#xD;&#xA;WARNUNG: Wenn Sie von [ProductName] v1.0.0 oder v1.0.1 aus updaten wollen, müssen Sie diese Versionen zuerst manuell deinstallieren.</String> <String Id="WelcomeDlgDescription">Dieser Installationsassistent wird [ProductName] auf Ihrem Computer installieren.&#xD;&#xA;&#xD;&#xA;WARNUNG: Wenn Sie von io.js v1.0.0 oder v1.0.1 aus updaten wollen, müssen Sie diese Versionen zuerst manuell deinstallieren.</String>
<String Id="InstallDirDlgDescription">Wählen Sie einen anderen Installationsort oder klicken Sie auf Weiter zum installieren.</String> <String Id="InstallDirDlgDescription">Wählen Sie einen anderen Installationsort oder klicken Sie auf Weiter zum installieren.</String>
<String Id="MajorUpgrade_DowngradeErrorMessage">Eine neuere Version von [ProductName] ist bereits installiert. Der Installationsassistent wird jetzt geschlossen.</String> <String Id="MajorUpgrade_DowngradeErrorMessage">Eine neuere Version von [ProductName] ist bereits installiert. Der Installationsassistent wird jetzt geschlossen.</String>
<!-- References like [ProductName] or $(var.ProductName) don't seem to work in Title attributes --> <!-- References like [ProductName] or $(var.ProductName) don't seem to work in Title attributes -->
<String Id="NodeRuntime_Title">io.js-Laufzeitumgebung</String> <String Id="NodeRuntime_Title">Node.js-Laufzeitumgebung</String>
<String Id="NodeRuntime_Description">Installation der [ProductName]-Laufzeitumgebung (iojs.exe).</String> <String Id="NodeRuntime_Description">Installation der [ProductName]-Laufzeitumgebung (node.exe).</String>
<String Id="NodeAlias_Title">Verweis von node auf iojs</String> <String Id="NodeAlias_Title">Verweis von node auf iojs</String>
<String Id="NodeAlias_Description">Erstelle node.exe als Verweis für iojs.exe.</String> <String Id="NodeAlias_Description">Erstelle node.exe als Verweis für iojs.exe.</String>
@ -30,12 +30,12 @@
<String Id="EnvironmentPath_Title">Hinzufügen zu PATH</String> <String Id="EnvironmentPath_Title">Hinzufügen zu PATH</String>
<String Id="EnvironmentPath_Description">Fügt [ProductName], npm und globale durch npm installierte Module zur PATH-Umgebungsvariable hinzu.</String> <String Id="EnvironmentPath_Description">Fügt [ProductName], npm und globale durch npm installierte Module zur PATH-Umgebungsvariable hinzu.</String>
<String Id="EnvironmentPathNode_Title">io.js und npm</String> <String Id="EnvironmentPathNode_Title">Node.js und npm</String>
<String Id="EnvironmentPathNode_Description">Fügt [ProductName] und npm (falls installiert) zur PATH-Umgebungsvariable hinzu.</String> <String Id="EnvironmentPathNode_Description">Fügt [ProductName] und npm (falls installiert) zur PATH-Umgebungsvariable hinzu.</String>
<String Id="EnvironmentPathNpmModules_Title">npm-Module</String> <String Id="EnvironmentPathNpmModules_Title">npm-Module</String>
<String Id="EnvironmentPathNpmModules_Description">Fügt globale durch npm installierte Module zur PATH-Umgebungsvariable hinzu. Diese Option funktioniert nur für den aktuellen Benutzer, andere Benutzer müssen ihre PATH-Umgebungsvariable selbst manuell aktualisieren.</String> <String Id="EnvironmentPathNpmModules_Description">Fügt globale durch npm installierte Module zur PATH-Umgebungsvariable hinzu. Diese Option funktioniert nur für den aktuellen Benutzer, andere Benutzer müssen ihre PATH-Umgebungsvariable selbst manuell aktualisieren.</String>
<!-- References like [ProductName] are not resolved for Property tags --> <!-- References like [ProductName] are not resolved for Property tags -->
<String Id="WIXUI_EXITDIALOGOPTIONALTEXT">io.js wurde erfolgreich installiert.</String> <String Id="WIXUI_EXITDIALOGOPTIONALTEXT">Node.js wurde erfolgreich installiert.</String>
</WixLocalization> </WixLocalization>

View File

@ -3,14 +3,14 @@
<!-- See https://msdn.microsoft.com/en-us/goglobal/bb964664.aspx --> <!-- See https://msdn.microsoft.com/en-us/goglobal/bb964664.aspx -->
<String Id="LocaleId">1033</String> <String Id="LocaleId">1033</String>
<String Id="WelcomeDlgDescription">The Setup Wizard will install [ProductName] on your computer.&#xD;&#xA;&#xD;&#xA;WARNING: if you're upgrading from [ProductName] v1.0.0 or v1.0.1, you must first uninstall these versions manually.</String> <String Id="WelcomeDlgDescription">The Setup Wizard will install [ProductName] on your computer.&#xD;&#xA;&#xD;&#xA;WARNING: if you're upgrading from io.js v1.0.0 or v1.0.1, you must first uninstall these versions manually.</String>
<String Id="InstallDirDlgDescription">Choose a custom location or click Next to install.</String> <String Id="InstallDirDlgDescription">Choose a custom location or click Next to install.</String>
<String Id="MajorUpgrade_DowngradeErrorMessage">A later version of [ProductName] is already installed. Setup will now exit.</String> <String Id="MajorUpgrade_DowngradeErrorMessage">A later version of [ProductName] is already installed. Setup will now exit.</String>
<!-- References like [ProductName] or $(var.ProductName) don't seem to work in Title attributes --> <!-- References like [ProductName] or $(var.ProductName) don't seem to work in Title attributes -->
<String Id="NodeRuntime_Title">io.js runtime</String> <String Id="NodeRuntime_Title">Node.js runtime</String>
<String Id="NodeRuntime_Description">Install the core [ProductName] runtime (iojs.exe).</String> <String Id="NodeRuntime_Description">Install the core [ProductName] runtime (node.exe).</String>
<String Id="NodeAlias_Title">Alias node to iojs</String> <String Id="NodeAlias_Title">Alias node to iojs</String>
<String Id="NodeAlias_Description">Create node.exe as an alias for iojs.exe.</String> <String Id="NodeAlias_Description">Create node.exe as an alias for iojs.exe.</String>
@ -30,12 +30,12 @@
<String Id="EnvironmentPath_Title">Add to PATH</String> <String Id="EnvironmentPath_Title">Add to PATH</String>
<String Id="EnvironmentPath_Description">Add [ProductName], npm, and modules that were globally installed by npm to the PATH environment variable.</String> <String Id="EnvironmentPath_Description">Add [ProductName], npm, and modules that were globally installed by npm to the PATH environment variable.</String>
<String Id="EnvironmentPathNode_Title">io.js and npm</String> <String Id="EnvironmentPathNode_Title">Node.js and npm</String>
<String Id="EnvironmentPathNode_Description">Add [ProductName] and npm (if installed) to the PATH environment variable.</String> <String Id="EnvironmentPathNode_Description">Add [ProductName] and npm (if installed) to the PATH environment variable.</String>
<String Id="EnvironmentPathNpmModules_Title">npm modules</String> <String Id="EnvironmentPathNpmModules_Title">npm modules</String>
<String Id="EnvironmentPathNpmModules_Description">Add modules that are installed globally by npm to the PATH environment variable. This option works for the current user only; other users need to update their PATH manually.</String> <String Id="EnvironmentPathNpmModules_Description">Add modules that are installed globally by npm to the PATH environment variable. This option works for the current user only; other users need to update their PATH manually.</String>
<!-- References like [ProductName] are not resolved for Property tags --> <!-- References like [ProductName] are not resolved for Property tags -->
<String Id="WIXUI_EXITDIALOGOPTIONALTEXT">io.js has been successfully installed.</String> <String Id="WIXUI_EXITDIALOGOPTIONALTEXT">Node.js has been successfully installed.</String>
</WixLocalization> </WixLocalization>

View File

@ -6,7 +6,7 @@
<ProductVersion>3.5</ProductVersion> <ProductVersion>3.5</ProductVersion>
<ProjectGuid>{1d808ff0-b5a9-4be9-859d-b334b6f48be2}</ProjectGuid> <ProjectGuid>{1d808ff0-b5a9-4be9-859d-b334b6f48be2}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion> <SchemaVersion>2.0</SchemaVersion>
<OutputName>iojs-v$(FullVersion)-$(Platform)</OutputName> <OutputName>node-v$(FullVersion)-$(Platform)</OutputName>
<OutputType>Package</OutputType> <OutputType>Package</OutputType>
<EnableProjectHarvesting>True</EnableProjectHarvesting> <EnableProjectHarvesting>True</EnableProjectHarvesting>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath> <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>

View File

@ -2,11 +2,11 @@
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<?define ProductName = "io.js" ?> <?define ProductName = "Node.js" ?>
<?define ProductDescription = "io.js" ?> <?define ProductDescription = "Node.js" ?>
<?define ProductAuthor = "io.js contributors" ?> <?define ProductAuthor = "Node.js Foundation" ?>
<?define RegistryKeyPath = "SOFTWARE\io.js" ?> <?define RegistryKeyPath = "SOFTWARE\Node.js" ?>
<?define RepoDir="$(var.ProjectDir)..\..\..\" ?> <?define RepoDir="$(var.ProjectDir)..\..\..\" ?>
<?define SourceDir="$(var.RepoDir)\$(var.Configuration)\" ?> <?define SourceDir="$(var.RepoDir)\$(var.Configuration)\" ?>
@ -25,9 +25,9 @@
<MajorUpgrade AllowSameVersionUpgrades="yes" <MajorUpgrade AllowSameVersionUpgrades="yes"
DowngradeErrorMessage="!(loc.MajorUpgrade_DowngradeErrorMessage)"/> DowngradeErrorMessage="!(loc.MajorUpgrade_DowngradeErrorMessage)"/>
<Icon Id="NodeIcon" SourceFile="$(var.RepoDir)\src\res\iojs.ico"/> <Icon Id="NodeIcon" SourceFile="$(var.RepoDir)\src\res\node.ico"/>
<Property Id="ARPPRODUCTICON" Value="NodeIcon"/> <Property Id="ARPPRODUCTICON" Value="NodeIcon"/>
<Property Id="ApplicationFolderName" Value="iojs"/> <Property Id="ApplicationFolderName" Value="node"/>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/> <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/>
<Property Id="INSTALLDIR"> <Property Id="INSTALLDIR">
@ -110,18 +110,18 @@
<Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramMenuFolder"> <Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="io.js"/> <Directory Id="ApplicationProgramsFolder" Name="Node.js"/>
</Directory> </Directory>
<Directory Id="$(var.ProgramFilesFolderId)"> <Directory Id="$(var.ProgramFilesFolderId)">
<Directory Id="INSTALLDIR" Name="iojs"> <Directory Id="INSTALLDIR" Name="nodejs">
</Directory> </Directory>
</Directory> </Directory>
</Directory> </Directory>
<DirectoryRef Id="INSTALLDIR"> <DirectoryRef Id="INSTALLDIR">
<Component Id="NodeExecutable"> <Component Id="NodeExecutable">
<File Id="iojs.exe" KeyPath="yes" Source="$(var.SourceDir)\iojs.exe"/> <File Id="node.exe" KeyPath="yes" Source="$(var.SourceDir)\node.exe"/>
</Component> </Component>
<Component Id="NodeAlias" Guid="fde09cce-a503-4409-a3c4-61ae2a5a5906"> <Component Id="NodeAlias" Guid="fde09cce-a503-4409-a3c4-61ae2a5a5906">
@ -145,7 +145,7 @@
<?if $(var.NoETW) != 1 ?> <?if $(var.NoETW) != 1 ?>
<Component Id="NodeEtwSupport"> <Component Id="NodeEtwSupport">
<File Id="node_etw_provider.man" Source="$(var.RepoDir)\src\res\node_etw_provider.man"> <File Id="node_etw_provider.man" Source="$(var.RepoDir)\src\res\node_etw_provider.man">
<util:EventManifest MessageFile="[INSTALLDIR]iojs.exe" ResourceFile="[INSTALLDIR]iojs.exe"/> <util:EventManifest MessageFile="[INSTALLDIR]node.exe" ResourceFile="[INSTALLDIR]node.exe"/>
</File> </File>
</Component> </Component>
<?endif?> <?endif?>
@ -165,17 +165,17 @@
Type="string" Type="string"
Value="$(var.ProductVersion)"/> Value="$(var.ProductVersion)"/>
<Shortcut Id="NodeVarsScriptShortcut" <Shortcut Id="NodeVarsScriptShortcut"
Name="io.js command prompt" Name="Node.js command prompt"
Target="[%ComSpec]" Target="[%ComSpec]"
Arguments='/k "[INSTALLDIR]nodevars.bat"' Arguments='/k "[INSTALLDIR]nodevars.bat"'
Show="normal" Show="normal"
WorkingDirectory="INSTALLDIR"/> WorkingDirectory="INSTALLDIR"/>
<Shortcut Id="NodeExecutableShortcut" <Shortcut Id="NodeExecutableShortcut"
Name="io.js" Name="Node.js"
Target="[INSTALLDIR]iojs.exe" Target="[INSTALLDIR]node.exe"
WorkingDirectory="INSTALLDIR"/> WorkingDirectory="INSTALLDIR"/>
<Shortcut Id="UninstallProduct" <Shortcut Id="UninstallProduct"
Name="Uninstall io.js" Name="Uninstall Node.js"
Target="[SystemFolder]msiexec.exe" Target="[SystemFolder]msiexec.exe"
Arguments="/x [ProductCode]"/> Arguments="/x [ProductCode]"/>
<RemoveFolder Id="RemoveApplicationProgramsFolder" <RemoveFolder Id="RemoveApplicationProgramsFolder"
@ -220,12 +220,12 @@
Value="1" Value="1"
KeyPath="yes"/> KeyPath="yes"/>
<util:InternetShortcut Id="WebsiteShortcut" <util:InternetShortcut Id="WebsiteShortcut"
Name="io.js website" Name="Node.js website"
Target="http://iojs.org" Target="http://nodejs.org"
Type="url"/> Type="url"/>
<util:InternetShortcut Id="DocsShortcut" <util:InternetShortcut Id="DocsShortcut"
Name="io.js documentation" Name="Node.js documentation"
Target="https://iojs.org/download/$(var.DistTypeDir)/v$(var.FullVersion)/doc/api/" Target="https://nodejs.org/download/$(var.DistTypeDir)/v$(var.FullVersion)/doc/api/"
Type="url"/> Type="url"/>
</Component> </Component>
</DirectoryRef> </DirectoryRef>

View File

@ -1,24 +1,24 @@
@echo off @echo off
rem Ensure this io.js and npm are first in the PATH rem Ensure this Node.js and npm are first in the PATH
set PATH=%APPDATA%\npm;%~dp0;%PATH% set PATH=%APPDATA%\npm;%~dp0;%PATH%
setlocal enabledelayedexpansion setlocal enabledelayedexpansion
pushd "%~dp0" pushd "%~dp0"
rem Figure out the io.js version. rem Figure out the Node.js version.
set print_version=.\iojs.exe -p -e "process.versions.node + ' (' + process.arch + ')'" set print_version=.\node.exe -p -e "process.versions.node + ' (' + process.arch + ')'"
for /F "usebackq delims=" %%v in (`%print_version%`) do set version=%%v for /F "usebackq delims=" %%v in (`%print_version%`) do set version=%%v
rem Print message. rem Print message.
if exist npm.cmd ( if exist npm.cmd (
echo Your environment has been set up for using io.js !version! and npm. echo Your environment has been set up for using Node.js !version! and npm.
) else ( ) else (
echo Your environment has been set up for using io.js !version!. echo Your environment has been set up for using Node.js !version!.
) )
popd popd
endlocal endlocal
rem If we're in the io.js directory, change to the user's home dir. rem If we're in the Node.js directory, change to the user's home dir.
if "%CD%\"=="%~dp0" cd /d "%HOMEDRIVE%%HOMEPATH%" if "%CD%\"=="%~dp0" cd /d "%HOMEDRIVE%%HOMEPATH%"

View File

@ -1,6 +1,6 @@
<pkgref spec="1.12" uuid="DF0233A3-6B5D-4FBF-8048-8FC57F42278F"> <pkgref spec="1.12" uuid="DF0233A3-6B5D-4FBF-8048-8FC57F42278F">
<config> <config>
<identifier>org.iojs.npm.pkg</identifier> <identifier>org.node.npm.pkg</identifier>
<version>1.0</version> <version>1.0</version>
<description></description> <description></description>
<post-install type="none"/> <post-install type="none"/>

View File

@ -1,6 +1,6 @@
<pkmkdoc spec="1.12"> <pkmkdoc spec="1.12">
<properties> <properties>
<title>io.js</title> <title>Node.js</title>
<build>/Users/iojs/Desktop/iojs.pkg</build> <build>/Users/iojs/Desktop/iojs.pkg</build>
<organization>org.iojs</organization> <organization>org.iojs</organization>
<userSees ui="both"/> <userSees ui="both"/>
@ -12,7 +12,7 @@
<scripts></scripts> <scripts></scripts>
</distribution> </distribution>
<contents> <contents>
<choice title="io.js" id="choice1" starts_selected="true" starts_enabled="true" starts_hidden="false"> <choice title="Node.js" id="choice1" starts_selected="true" starts_enabled="true" starts_hidden="false">
<pkgref id="org.iojs.iojs.pkg"/> <pkgref id="org.iojs.iojs.pkg"/>
</choice> </choice>
<choice title="npm" id="choice2" starts_selected="true" starts_enabled="true" starts_hidden="false"> <choice title="npm" id="choice2" starts_selected="true" starts_enabled="true" starts_hidden="false">
@ -28,13 +28,13 @@
{\colortbl;\red255\green255\blue255;} {\colortbl;\red255\green255\blue255;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\f0\fs26 \cf0 This package will install io.js {iojsversion} and npm {npmversion} into /usr/local/. The binary /usr/local/bin/iojs will also be symlinked as /usr/local/bin/node.}]]></resource> \f0\fs26 \cf0 This package will install Node.js {iojsversion} and npm {npmversion} into /usr/local/. The binary /usr/local/bin/iojs will also be symlinked as /usr/local/bin/node.}]]></resource>
<resource mime-type="text/rtf" kind="embedded" type="conclusion"><![CDATA[{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 <resource mime-type="text/rtf" kind="embedded" type="conclusion"><![CDATA[{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360
{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} {\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
{\colortbl;\red255\green255\blue255;} {\colortbl;\red255\green255\blue255;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\f0\fs26 \cf0 io.js was installed at\ \f0\fs26 \cf0 Node.js was installed at\
\ \
/usr/local/bin/iojs\ /usr/local/bin/iojs\
and symlinked at\ and symlinked at\

View File

@ -8,7 +8,7 @@
set -e set -e
webhost=iojs.org webhost=nodejs.org
webuser=dist webuser=dist
promotablecmd=dist-promotable promotablecmd=dist-promotable
promotecmd=dist-promote promotecmd=dist-promote
@ -91,7 +91,7 @@ function sign {
shafile=$(basename $shapath) shafile=$(basename $shapath)
shadir=$(dirname $shapath) shadir=$(dirname $shapath)
tmpdir="/tmp/_iojs_release.$$" tmpdir="/tmp/_node_release.$$"
mkdir -p $tmpdir mkdir -p $tmpdir

View File

@ -15,14 +15,14 @@
# This is updated by rpmbuild.sh. # This is updated by rpmbuild.sh.
%define _version 0.10.12 %define _version 0.10.12
Name: iojs Name: node
Version: %{_version} Version: %{_version}
Release: 1 Release: 1
Summary: io.js is a platform for building fast, scalable network applications. Summary: Node.js is a platform for building fast, scalable network applications.
Group: Development/Languages Group: Development/Languages
License: MIT License: MIT
URL: http://iojs.org/ URL: http://nodejs.org/
Source0: http://iojs.org/dist/v%{_version}/iojs-v%{_version}.tar.gz Source0: http://nodejs.org/dist/v%{_version}/node-v%{_version}.tar.gz
BuildRequires: gcc BuildRequires: gcc
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: glibc-devel BuildRequires: glibc-devel
@ -37,10 +37,10 @@ Conflicts: nodejs
%description %description
io.js is a platform built on Chrome's JavaScript runtime for easily Node.js is a platform built on Chrome's JavaScript runtime for easily
building fast, scalable network applications. building fast, scalable network applications.
io.js uses an event-driven, non-blocking I/O model that makes it Node.js uses an event-driven, non-blocking I/O model that makes it
lightweight and efficient, perfect for data-intensive real-time lightweight and efficient, perfect for data-intensive real-time
applications that run across distributed devices. applications that run across distributed devices.
@ -94,7 +94,7 @@ done
/usr/include/* /usr/include/*
/usr/lib/node_modules/ /usr/lib/node_modules/
/usr/share/doc/node/gdbinit /usr/share/doc/node/gdbinit
/usr/share/man/man1/iojs.1.gz /usr/share/man/man1/node.1.gz
/usr/share/systemtap/tapset/node.stp /usr/share/systemtap/tapset/node.stp
%{_datadir}/%{name}/ %{_datadir}/%{name}/
%doc CHANGELOG.md LICENSE README.md %doc CHANGELOG.md LICENSE README.md

View File

@ -38,7 +38,7 @@ fi
set -x set -x
sed -re "s/%define _version .+/%define _version ${VERSION}/" \ sed -re "s/%define _version .+/%define _version ${VERSION}/" \
"$TOOLSDIR/iojs.spec" > $RPMBUILD_PATH/SPECS/iojs.spec "$TOOLSDIR/node.spec" > $RPMBUILD_PATH/SPECS/node.spec
tar --exclude-vcs --transform="s|^|iojs-${VERSION}/|" \ tar --exclude-vcs --transform="s|^|node-${VERSION}/|" \
-czf $RPMBUILD_PATH/SOURCES/iojs-v${VERSION}.tar.gz . -czf $RPMBUILD_PATH/SOURCES/node-v${VERSION}.tar.gz .
rpmbuild $* -ba $RPMBUILD_PATH/SPECS/iojs.spec rpmbuild $* -ba $RPMBUILD_PATH/SPECS/node.spec

View File

@ -6,7 +6,7 @@ set -e
cd $(dirname $0)/.. cd $(dirname $0)/..
# pass a $NODE environment variable from something like Makefile # pass a $NODE environment variable from something like Makefile
# it should point to either ./iojs or ./iojs.exe, depending on the platform # it should point to either ./node or ./node.exe, depending on the platform
if [ -z $NODE ]; then if [ -z $NODE ]; then
echo "No node executable provided. Bailing." >&2 echo "No node executable provided. Bailing." >&2
exit 0 exit 0

View File

@ -755,20 +755,20 @@ class Context(object):
def GetVm(self, arch, mode): def GetVm(self, arch, mode):
if arch == 'none': if arch == 'none':
name = 'out/Debug/iojs' if mode == 'debug' else 'out/Release/iojs' name = 'out/Debug/node' if mode == 'debug' else 'out/Release/node'
else: else:
name = 'out/%s.%s/iojs' % (arch, mode) name = 'out/%s.%s/node' % (arch, mode)
# Currently GYP does not support output_dir for MSVS. # Currently GYP does not support output_dir for MSVS.
# http://code.google.com/p/gyp/issues/detail?id=40 # http://code.google.com/p/gyp/issues/detail?id=40
# It will put the builds into Release/iojs.exe or Debug/iojs.exe # It will put the builds into Release/node.exe or Debug/node.exe
if utils.IsWindows(): if utils.IsWindows():
out_dir = os.path.join(dirname(__file__), "..", "out") out_dir = os.path.join(dirname(__file__), "..", "out")
if not exists(out_dir): if not exists(out_dir):
if mode == 'debug': if mode == 'debug':
name = os.path.abspath('Debug/iojs.exe') name = os.path.abspath('Debug/node.exe')
else: else:
name = os.path.abspath('Release/iojs.exe') name = os.path.abspath('Release/node.exe')
else: else:
name = os.path.abspath(name + '.exe') name = os.path.abspath(name + '.exe')

View File

@ -154,14 +154,14 @@ if "%target%" == "Clean" goto exit
@rem Skip signing if the `nosign` option was specified. @rem Skip signing if the `nosign` option was specified.
if defined nosign goto licensertf if defined nosign goto licensertf
signtool sign /a /d "io.js" /t http://timestamp.globalsign.com/scripts/timestamp.dll Release\iojs.exe signtool sign /a /d "node" /t http://timestamp.globalsign.com/scripts/timestamp.dll Release\node.exe
if errorlevel 1 echo Failed to sign exe&goto exit if errorlevel 1 echo Failed to sign exe&goto exit
:licensertf :licensertf
@rem Skip license.rtf generation if not requested. @rem Skip license.rtf generation if not requested.
if not defined licensertf goto msi if not defined licensertf goto msi
%config%\iojs tools\license2rtf.js < LICENSE > %config%\license.rtf %config%\node tools\license2rtf.js < LICENSE > %config%\license.rtf
if errorlevel 1 echo Failed to generate license.rtf&goto exit if errorlevel 1 echo Failed to generate license.rtf&goto exit
:msi :msi
@ -169,12 +169,12 @@ if errorlevel 1 echo Failed to generate license.rtf&goto exit
if not defined msi goto run if not defined msi goto run
:msibuild :msibuild
echo Building iojs-v%FULLVERSION%-%target_arch%.msi echo Building node-v%FULLVERSION%-%target_arch%.msi
msbuild "%~dp0tools\msvs\msi\nodemsi.sln" /m /t:Clean,Build /p:Configuration=%config% /p:Platform=%target_arch% /p:NodeVersion=%NODE_VERSION% /p:FullVersion=%FULLVERSION% /p:DistTypeDir=%DISTTYPEDIR% %noetw_msi_arg% %noperfctr_msi_arg% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo msbuild "%~dp0tools\msvs\msi\nodemsi.sln" /m /t:Clean,Build /p:Configuration=%config% /p:Platform=%target_arch% /p:NodeVersion=%NODE_VERSION% /p:FullVersion=%FULLVERSION% /p:DistTypeDir=%DISTTYPEDIR% %noetw_msi_arg% %noperfctr_msi_arg% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo
if errorlevel 1 goto exit if errorlevel 1 goto exit
if defined nosign goto upload if defined nosign goto upload
signtool sign /a /d "io.js" /t http://timestamp.globalsign.com/scripts/timestamp.dll iojs-v%FULLVERSION%-%target_arch%.msi signtool sign /a /d "node" /t http://timestamp.globalsign.com/scripts/timestamp.dll node-v%FULLVERSION%-%target_arch%.msi
if errorlevel 1 echo Failed to sign msi&goto exit if errorlevel 1 echo Failed to sign msi&goto exit
:upload :upload
@ -185,12 +185,12 @@ if not defined SSHCONFIG (
echo SSHCONFIG is not set for upload echo SSHCONFIG is not set for upload
exit /b 1 exit /b 1
) )
if not defined STAGINGSERVER set STAGINGSERVER=iojs-www if not defined STAGINGSERVER set STAGINGSERVER=node-www
ssh -F %SSHCONFIG% %STAGINGSERVER% "mkdir -p staging/%DISTTYPEDIR%/v%FULLVERSION%/win-%target_arch%" ssh -F %SSHCONFIG% %STAGINGSERVER% "mkdir -p staging/%DISTTYPEDIR%/v%FULLVERSION%/win-%target_arch%"
scp -F %SSHCONFIG% Release\iojs.exe %STAGINGSERVER%:staging/%DISTTYPEDIR%/v%FULLVERSION%/win-%target_arch%/iojs.exe scp -F %SSHCONFIG% Release\node.exe %STAGINGSERVER%:staging/%DISTTYPEDIR%/v%FULLVERSION%/win-%target_arch%/node.exe
scp -F %SSHCONFIG% Release\iojs.lib %STAGINGSERVER%:staging/%DISTTYPEDIR%/v%FULLVERSION%/win-%target_arch%/iojs.lib scp -F %SSHCONFIG% Release\node.lib %STAGINGSERVER%:staging/%DISTTYPEDIR%/v%FULLVERSION%/win-%target_arch%/node.lib
scp -F %SSHCONFIG% iojs-v%FULLVERSION%-%target_arch%.msi %STAGINGSERVER%:staging/%DISTTYPEDIR%/v%FULLVERSION%/ scp -F %SSHCONFIG% node-v%FULLVERSION%-%target_arch%.msi %STAGINGSERVER%:staging/%DISTTYPEDIR%/v%FULLVERSION%/
ssh -F %SSHCONFIG% %STAGINGSERVER% "touch staging/%DISTTYPEDIR%/v%FULLVERSION%/iojs-v%FULLVERSION%-%target_arch%.msi.done staging/%DISTTYPEDIR%/v%FULLVERSION%/win-%target_arch%.done" ssh -F %SSHCONFIG% %STAGINGSERVER% "touch staging/%DISTTYPEDIR%/v%FULLVERSION%/node-v%FULLVERSION%-%target_arch%.msi.done staging/%DISTTYPEDIR%/v%FULLVERSION%/win-%target_arch%.done"
:run :run
@rem Run tests if requested. @rem Run tests if requested.
@ -198,7 +198,7 @@ ssh -F %SSHCONFIG% %STAGINGSERVER% "touch staging/%DISTTYPEDIR%/v%FULLVERSION%/i
:build-node-weak :build-node-weak
@rem Build node-weak if required @rem Build node-weak if required
if "%buildnodeweak%"=="" goto run-tests if "%buildnodeweak%"=="" goto run-tests
"%config%\iojs" deps\npm\node_modules\node-gyp\bin\node-gyp rebuild --directory="%~dp0test\gc\node_modules\weak" --nodedir="%~dp0." "%config%\node" deps\npm\node_modules\node-gyp\bin\node-gyp rebuild --directory="%~dp0test\gc\node_modules\weak" --nodedir="%~dp0."
if errorlevel 1 goto build-node-weak-failed if errorlevel 1 goto build-node-weak-failed
goto run-tests goto run-tests
@ -219,7 +219,7 @@ goto jslint
:jslint :jslint
if not defined jslint goto exit if not defined jslint goto exit
echo running jslint echo running jslint
%config%\iojs tools\eslint\bin\eslint.js src lib test --rulesdir tools\eslint-rules --reset --quiet %config%\node tools\eslint\bin\eslint.js src lib test --rulesdir tools\eslint-rules --reset --quiet
goto exit goto exit
:create-msvs-files-failed :create-msvs-files-failed
@ -250,7 +250,7 @@ set FULLVERSION=
for /F "usebackq tokens=*" %%i in (`python "%~dp0tools\getnodeversion.py"`) do set NODE_VERSION=%%i for /F "usebackq tokens=*" %%i in (`python "%~dp0tools\getnodeversion.py"`) do set NODE_VERSION=%%i
if not defined NODE_VERSION ( if not defined NODE_VERSION (
echo Cannot determine current version of io.js echo Cannot determine current version of Node.js
exit /b 1 exit /b 1
) )