diff --git a/AUTHORS b/AUTHORS index 7c260c16513..d5188b3cbfc 100644 --- a/AUTHORS +++ b/AUTHORS @@ -352,3 +352,5 @@ George Shank Mike Morearty Pavel Lang Peter Rybin +Eugen Dueck +Gil Pedersen diff --git a/ChangeLog b/ChangeLog index 9f63bd8b821..d7d86eb6a73 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,7 +21,44 @@ * Fix #3521 Make process.env more like a regular Object (isaacs) -2012.07.25, Version 0.8.4 (Stable) +2012.08.02, Version 0.8.5 (Stable) + +* node: tag Encode and friends NODE_EXTERN (Ben Noordhuis) + +* fs: fix ReadStream / WriteStream missing callback (Gil Pedersen) + +* fs: fix readFileSync("/proc/cpuinfo") regression (Ben Noordhuis) + +* installer: don't assume bash is installed (Ben Noordhuis) + +* Report errors properly from --eval and stdin (isaacs) + +* assert: fix throws() throws an error without message property (koichik) + +* cluster: fix libuv assert in net.listen() (Ben Noordhuis) + +* build: always link sunos builds with libumem (Trent Mick) + +* build: improve armv7 / hard-float detection (Adam Malcontenti-Wilson) + +* https: Use host header as effective servername (isaacs) + +* sunos: work around OS bug to prevent fs.watch() from spinning (Bryan Cantrill) + +* linux: fix 'two watchers, one path' segfault (Ben Noordhuis) + +* windows: fix memory leaks in many fs functions (Bert Belder) + +* windows: don't allow directories to be opened for writing/appending (Bert Belder) + +* windows: make fork() work even when not all stdio handles are valid (Bert Belder) + +* windows: make unlink() not remove mount points, and improve performance (Bert Belder) + +* build: Sign pkg installer for OS X (isaacs) + + +2012.07.25, Version 0.8.4 (Stable), f98562fcd7d1cab573ca4dc1612157d6999befd4 * V8: Upgrade to 3.11.10.17 diff --git a/Makefile b/Makefile index 15546d06d5c..869eafac9a1 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,7 @@ BUILDTYPE ?= Release PYTHON ?= python DESTDIR ?= +SIGN ?= # Default to verbose builds. # To do quiet/pretty builds, run `make V=` to set V to an empty string, @@ -39,10 +40,10 @@ out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/z $(PYTHON) tools/gyp_node -f make install: all - out/Release/node tools/installer.js install $(DESTDIR) + $(PYTHON) tools/install.py $@ $(DESTDIR) uninstall: - out/Release/node tools/installer.js uninstall + $(PYTHON) tools/install.py $@ $(DESTDIR) clean: -rm -rf out/Makefile node node_g out/$(BUILDTYPE)/node blog.html email.md @@ -210,6 +211,7 @@ $(PKG): rm -rf out/deps out/Release ./configure --prefix=$(PKGDIR)/usr/local --without-snapshot --dest-cpu=x64 $(MAKE) install V=$(V) + SIGN="$(SIGN)" PKGDIR="$(PKGDIR)" bash tools/osx-codesign.sh lipo $(PKGDIR)/32/usr/local/bin/node \ $(PKGDIR)/usr/local/bin/node \ -output $(PKGDIR)/usr/local/bin/node-universal \ @@ -217,9 +219,10 @@ $(PKG): mv $(PKGDIR)/usr/local/bin/node-universal $(PKGDIR)/usr/local/bin/node rm -rf $(PKGDIR)/32 $(packagemaker) \ - --id "org.nodejs.NodeJS-$(VERSION)" \ + --id "org.nodejs.Node" \ --doc tools/osx-pkg.pmdoc \ --out $(PKG) + SIGN="$(SIGN)" PKG="$(PKG)" bash tools/osx-productsign.sh $(TARBALL): node doc @if [ "$(shell git status --porcelain | egrep -v '^\?\? ')" = "" ]; then \ diff --git a/configure b/configure index 48d65385e93..3b9c9a3821c 100755 --- a/configure +++ b/configure @@ -164,6 +164,12 @@ parser.add_option("--no-ifaddrs", dest="no_ifaddrs", help="Use on deprecated SunOS systems that do not support ifaddrs.h") +parser.add_option("--with-arm-float-abi", + action="store", + dest="arm_float_abi", + help="Specifies which floating-point ABI to use. Valid values are: " + "soft, softfp, hard") + (options, args) = parser.parse_args() @@ -189,8 +195,8 @@ def pkg_config(pkg): return (libs, cflags) -def host_arch_cc(): - """Host architecture check using the CC command.""" +def cc_macros(): + """Checks predefined macros using the CC command.""" try: p = subprocess.Popen(CC.split() + ['-dM', '-E', '-'], @@ -219,6 +225,52 @@ def host_arch_cc(): key = lst[1] val = lst[2] k[key] = val + return k + + +def is_arch_armv7(): + """Check for ARMv7 instructions""" + cc_macros_cache = cc_macros() + return ('__ARM_ARCH_7__' in cc_macros_cache or + '__ARM_ARCH_7A__' in cc_macros_cache or + '__ARM_ARCH_7R__' in cc_macros_cache or + '__ARM_ARCH_7M__' in cc_macros_cache) + + +def arm_hard_float_abi(): + """Check for hardfloat or softfloat eabi on ARM""" + # GCC versions 4.6 and above define __ARM_PCS or __ARM_PCS_VFP to specify + # the Floating Point ABI used (PCS stands for Procedure Call Standard). + # We use these as well as a couple of other defines to statically determine + # what FP ABI used. + # GCC versions 4.4 and below don't support hard-fp. + # GCC versions 4.5 may support hard-fp without defining __ARM_PCS or + # __ARM_PCS_VFP. + + if compiler_version() >= (4, 6, 0): + return '__ARM_PCS_VFP' in cc_macros() + elif compiler_version() < (4, 5, 0): + return False + elif '__ARM_PCS_VFP' in cc_macros(): + return True + elif ('__ARM_PCS' in cc_macros() or + '__SOFTFP' in cc_macros() or + not '__VFP_FP__' in cc_macros()): + return False + else: + print '''Node.js configure error: Your version of GCC does not report + the Floating-Point ABI to compile for your hardware + + Please manually specify which floating-point ABI to use with the + --with-arm-float-abi option. + ''' + sys.exit() + + +def host_arch_cc(): + """Host architecture check using the CC command.""" + + k = cc_macros() matchup = { '__x86_64__' : 'x64', @@ -277,11 +329,15 @@ def configure_node(o): 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. + # V8 on ARM requires that armv7 is set. CPU Model detected by + # the presence of __ARM_ARCH_7__ and the like defines in compiler if target_arch == 'arm': - o['variables']['armv7'] = 0 # FIXME + if options.arm_float_abi: + hard_float = options.arm_float_abi == 'hard' + else: + hard_float = arm_hard_float_abi() + o['variables']['v8_use_arm_eabi_hardfloat'] = b(hard_float) + o['variables']['armv7'] = 1 if is_arch_armv7() else 0 # clang has always supported -fvisibility=hidden, right? cc_version, is_clang = compiler_version() diff --git a/deps/npm/Makefile b/deps/npm/Makefile index 96e3f37c0a9..9c38f97675e 100644 --- a/deps/npm/Makefile +++ b/deps/npm/Makefile @@ -113,13 +113,21 @@ publish: link doc docpublish: doc-publish doc-publish: doc - rsync -vazu --stats --no-implied-dirs --delete html/doc/ npmjs.org:/var/www/npmjs.org/public/doc - rsync -vazu --stats --no-implied-dirs --delete html/api/ npmjs.org:/var/www/npmjs.org/public/api - rsync -vazu --stats --no-implied-dirs --delete html/webfonts/ npmjs.org:/var/www/npmjs.org/public/webfonts - scp html/style.css npmjs.org:/var/www/npmjs.org/public/ + rsync -vazu --stats --no-implied-dirs --delete \ + html/doc/ \ + node@npmjs.org:/home/node/npm-www/doc + rsync -vazu --stats --no-implied-dirs --delete \ + html/api/ \ + node@npmjs.org:/home/node/npm-www/api + rsync -vazu --stats --no-implied-dirs --delete \ + html/webfonts/ \ + node@npmjs.org:/home/node/npm-www/static/webfonts + rsync -vazu --stats --no-implied-dirs --delete \ + html/style.css \ + node@npmjs.org:/home/node/npm-www/static/ zip-publish: release - scp release/* npmjs.org:/var/www/npmjs.org/public/dist/ + scp release/* izs.me:/var/www/izs.me/static/public/npm/ release: @bash scripts/release.sh diff --git a/deps/npm/doc/cli/npm.md b/deps/npm/doc/cli/npm.md index cd3360d7c56..a325fdf2e8c 100644 --- a/deps/npm/doc/cli/npm.md +++ b/deps/npm/doc/cli/npm.md @@ -64,7 +64,7 @@ following help topics: Especially, installing other peoples code from the registry is done via `npm install` * adduser: - Create an account or log in. Creditials are stored in the + Create an account or log in. Credentials are stored in the user config file. * publish: Use the `npm publish` command to upload your code to the registry. diff --git a/deps/npm/html/api/bin.html b/deps/npm/html/api/bin.html index 7a76479d661..95d225ad710 100644 --- a/deps/npm/html/api/bin.html +++ b/deps/npm/html/api/bin.html @@ -2,7 +2,7 @@ bin - +
@@ -19,7 +19,7 @@

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

- +