diff --git a/AUTHORS b/AUTHORS index 55eeabdc2..e40c249f1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -325,6 +325,7 @@ Garen Torikian EungJun Yi Vincent Voyer Takahiro ANDO +Erwin van der Koogh Brian Schroeder J. Lee Coltrane Javier Hernández diff --git a/ChangeLog b/ChangeLog index 42e81cec4..42ee4fd31 100644 --- a/ChangeLog +++ b/ChangeLog @@ -514,6 +514,38 @@ * Bug fixes +2012.07.10 Version 0.6.20 (maintenance) + +* npm: Upgrade to 1.1.37 (isaacs) + +* benchmark: Backport improvements made in master (isaacs) + +* build: always link with -lz (Trent Mick) + +* core: use proper #include directives (Ben Noordhuis) + +* cluster: don't silently drop messages when the write queue gets big (Bert Belder) + +* windows: don't print error when GetConsoleTitleW returns an empty string (Bert Belder) + + +2012.06.06 Version 0.6.19 (stable), debf552ed2d4a53957446e82ff3c52a8182d5ff4 + +* npm: upgrade to 1.1.24 + +* fs: no end emit after createReadStream.pause() (Andreas Madsen) + +* vm: cleanup module memory leakage (Marcel Laverdet) + +* unix: fix loop starvation under high network load (Ben Noordhuis) + +* unix: remove abort() in ev_unref() (Ben Noordhuis) + +* windows/tty: never report error after forcibly aborting line-buffered read (Bert Belder) + +* windows: skip GetFileAttributes call when opening a file (Bert Belder) + + 2012.05.15 Version 0.6.18 (stable), 4bc1d395de6abed2cf1e4d0b7b3a1480a21c368f * windows: skip GetFileAttributes call when opening a file (Bert Belder) diff --git a/benchmark/http_simple_cluster.js b/benchmark/http_simple_cluster.js index ecc3169ad..9a886f2ee 100644 --- a/benchmark/http_simple_cluster.js +++ b/benchmark/http_simple_cluster.js @@ -3,7 +3,7 @@ var os = require('os'); if (cluster.isMaster) { console.log('master running on pid %d', process.pid); - for (var i = 1, n = os.cpus().length; i < n; ++i) cluster.fork(); + for (var i = 0, n = os.cpus().length; i < n; ++i) cluster.fork(); } else { require(__dirname + '/http_simple.js'); } diff --git a/common.gypi b/common.gypi index e12469ff4..6661166cb 100644 --- a/common.gypi +++ b/common.gypi @@ -8,6 +8,10 @@ 'component%': 'static_library', # NB. these names match with what V8 expects 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way + # Turn on optimizations that may trigger compiler bugs. + # Use at your own risk. Do *NOT* report bugs if this option is enabled. + 'node_unsafe_optimizations%': 0, + # Enable V8's post-mortem debugging only on unix flavors. 'conditions': [ ['OS != "win"', { @@ -41,13 +45,17 @@ }, }, 'Release': { - # Do *NOT* enable -ffunction-sections or -fdata-sections again. - # We don't link with -Wl,--gc-sections so they're effectively no-ops. - # Worse, they trigger very nasty bugs in some versions of gcc, notably - # v4.4.6 on x86_64-redhat-linux (i.e. RHEL and CentOS). - 'cflags!': [ '-ffunction-sections', '-fdata-sections' ], - 'cflags': [ '-O3' ], 'conditions': [ + ['node_unsafe_optimizations==1', { + 'cflags': [ '-O3', '-ffunction-sections', '-fdata-sections' ], + 'ldflags': [ '-Wl,--gc-sections' ], + }, { + 'cflags': [ '-O2', '-fno-strict-aliasing', '-fno-tree-vrp' ], + 'cflags!': [ '-O3', + '-fstrict-aliasing', + '-ffunction-sections', + '-fdata-sections' ], + }], ['target_arch=="x64"', { 'msvs_configuration_platform': 'x64', }], diff --git a/configure b/configure index b7d8498ab..6c724111a 100755 --- a/configure +++ b/configure @@ -250,19 +250,6 @@ def host_arch_win(): return matchup.get(arch, 'ia32') -def host_arch(): - """Host architecture. One of arm, ia32 or x64.""" - if os.name == 'nt': - arch = host_arch_win() - else: - arch = host_arch_cc() - return arch - - -def target_arch(): - return host_arch() - - def compiler_version(): try: proc = subprocess.Popen(CC.split() + ['--version'], stdout=subprocess.PIPE) @@ -278,17 +265,24 @@ def compiler_version(): def configure_node(o): - # TODO add gdb o['variables']['node_prefix'] = os.path.expanduser(options.prefix or '') o['variables']['node_install_npm'] = b(not options.without_npm) o['variables']['node_install_waf'] = b(not options.without_waf) - o['variables']['host_arch'] = host_arch() - o['variables']['target_arch'] = options.dest_cpu or target_arch() o['default_configuration'] = 'Debug' if options.debug else 'Release' - cc_version, is_clang = compiler_version() + host_arch = host_arch_win() if os.name == 'nt' else host_arch_cc() + target_arch = options.dest_cpu or host_arch + o['variables']['host_arch'] = host_arch + o['variables']['target_arch'] = target_arch + + # V8 on ARM requires that armv7 is set. We don't have a good way to detect + # the CPU model right now so we pick a default and hope that it works okay + # for the majority of users. + if target_arch == 'arm': + o['variables']['armv7'] = 0 # FIXME # clang has always supported -fvisibility=hidden, right? + cc_version, is_clang = compiler_version() if not is_clang and cc_version < (4,0,0): o['variables']['visibility'] = '' @@ -297,7 +291,6 @@ def configure_node(o): # SunOS, and we haven't implemented it.) if sys.platform.startswith('sunos'): o['variables']['node_use_dtrace'] = b(not options.without_dtrace) - o['variables']['v8_no_strict_aliasing'] = 1 # work around compiler bug elif b(options.with_dtrace) == 'true': raise Exception('DTrace is currently only supported on SunOS systems.') else: diff --git a/deps/npm/.gitignore b/deps/npm/.gitignore new file mode 100644 index 000000000..842fca968 --- /dev/null +++ b/deps/npm/.gitignore @@ -0,0 +1,17 @@ +*.swp +npm-debug.log +/test/bin +/test/output.log +/test/*/*/node_modules +/test/packages/npm-test-depends-on-spark/which-spark.log +/test/packages/test-package/random-data.txt +/test/root +/node_modules/ronn +/node_modules/tap +/node_modules/.bin +/html/api/ +/html/doc/ +/man/ +/doc/*/index.md +/npmrc +/release/ diff --git a/deps/npm/Makefile b/deps/npm/Makefile index 2663075c6..96e3f37c0 100644 --- a/deps/npm/Makefile +++ b/deps/npm/Makefile @@ -101,16 +101,10 @@ man: $(cli_docs) $(api_docs) test: node cli.js test -version: link - git add package.json &&\ - git ci -m v$(shell npm -v) - publish: link doc - @git tag -d v$(shell npm -v) || true @git push origin :v$(shell npm -v) || true @npm unpublish npm@$(shell npm -v) || true git clean -fd - git tag -s -m v$(shell npm -v) v$(shell npm -v) &&\ git push origin --tags &&\ npm publish &&\ npm tag npm@$(shell npm -v) $(shell npm -v | awk -F. '{print $$1 "." $$2}') &&\ @@ -131,6 +125,6 @@ release: @bash scripts/release.sh sandwich: - @[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || echo "make it yourself" + @[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || echo "make it yourself" && exit 13 .PHONY: all latest install dev link doc clean uninstall test man doc-publish doc-clean docclean docpublish release zip-publish diff --git a/deps/npm/doc/cli/config.md b/deps/npm/doc/cli/config.md index 537af5ca0..7bd46cd43 100644 --- a/deps/npm/doc/cli/config.md +++ b/deps/npm/doc/cli/config.md @@ -694,6 +694,17 @@ character to indicate reverse sort. The shell to run for the `npm explore` command. +### sign-git-tag + +* Default: false +* Type: Boolean + +If set to true, then the `npm version` command will tag the version +using `-s` to add a signature. + +Note that git requires you to have set up GPG keys in your git configs +for this to work properly. + ### strict-ssl * Default: true diff --git a/deps/npm/doc/cli/version.md b/deps/npm/doc/cli/version.md index 480c90d3b..ca9b5fbfa 100644 --- a/deps/npm/doc/cli/version.md +++ b/deps/npm/doc/cli/version.md @@ -3,7 +3,7 @@ npm-version(1) -- Bump a package version ## SYNOPSIS - npm version [--message commit-message] + npm version [ | major | minor | patch | build] ## DESCRIPTION @@ -11,14 +11,23 @@ Run this in a package directory to bump the version and write the new data back to the package.json file. The `newversion` argument should be a valid semver string, *or* a valid -second argument to semver.inc (one of "patch", "minor", or "major"). In -the second case, the existing version will be incremented by that amount. +second argument to semver.inc (one of "build", "patch", "minor", or +"major"). In the second case, the existing version will be incremented +by 1 in the specified field. If run in a git repo, it will also create a version commit and tag, and fail if the repo is not clean. -If supplied with `--message` (shorthand: `-m`) command line option, npm -will use it as a commit message when creating a version commit. +If supplied with `--message` (shorthand: `-m`) config option, npm will +use it as a commit message when creating a version commit. If the +`message` config contains `%s` then that will be replaced with the +resulting version number. For example: + + npm version patch -m "Upgrade to %s for reasons" + +If the `sign-git-tag` config is set, then the tag will be signed using +the `-s` flag to git. Note that you must have a default GPG key set up +in your git config for this to work properly. ## SEE ALSO diff --git a/deps/npm/html/api/bin.html b/deps/npm/html/api/bin.html index 15821178a..1053a36a3 100644 --- a/deps/npm/html/api/bin.html +++ b/deps/npm/html/api/bin.html @@ -19,7 +19,7 @@

This function should not be used programmatically. Instead, just refer to the npm.bin member.

- +