It has been conclusively demonstrated that the -fstrict-aliasing bugs in gcc's
optimizer are not limited to the 4.5.x releases only.
Fixes #3601 among others.
The heuristic introduced in f78ce08 ("build: handle output of localized gcc or
clang") does not handle "branded" versions of gcc, i.e. a gcc whose output has
been customized by the distro vendor.
Fixes #3601.
Before this commit, we used to scan the output of `$CC -v` for strings like
"gcc version x.y.z".
It was pointed out that this approach fails with localized versions of gcc
because those print (for example) "gcc versión x.y.z".
Use the output of `$CC --version` instead and only look at the first line.
For consistency's sake, rename:
--openssl-use-sys
--openssl-includes
--openssl-libpath
To:
--shared-openssl
--shared-openssl-includes
--shared-openssl-libpath
And add --shared-openssl-libname while we're at it.
The old switches still work but `./configure --help` won't print them.
Fixes #3591.
Make configure start gyp with the same python interpreter that is used to
run configure itself.
Fixes an issue where configure fails with a SyntaxError because the user
has multiple python binaries on his $PATH and the default one is too old.
This commit enables ETW events to be fired on Windows for existing
DTrace probes. ETW instrumentation is enabled by default. It
is possible to build node.exe without ETW instrumentation by
using --without-etw option with configure script.
* fixes #2110
* includes V8 postmortem metadata in Solaris builds
* adds GYP support for DTrace probes and ustack helper
* ustack helper derives constants dynamically from libv8_base.a
* build with DTrace support by default on SunOS
A compiler bug in older versions of gcc makes it do unsafe optimizations at -O1
and higher. This manifested itself with (at least) gcc 4.5.2 on SmartOS because
it made V8 hang in a busy loop.
See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45883
On one of my OS X Lion machines, it always reports i386, even though 64-bit
is supported. This lookup better matches how WAF determines the host arch,
which was correctly getting 64-bit even on this screwy machine.
It was decided that the performance benefits that isolates offer (faster spin-up
times for worker processes, faster inter-worker communication, possibly a lower
memory footprint) are not actual bottlenecks for most people and do not outweigh
the potential stability issues and intrusive changes to the code base that
first-class support for isolates requires.
Hence, this commit backs out all isolates-related changes.
Good bye, isolates. We hardly knew ye.
We keep around WAF for node-waf only.
We need great diligence by people over the next couple weeks to work out all
the kinks in the GYP build system. We realize that it is currently several
times slower than the WAF build. Please lend a hand.
Fixes #1504
Fixes #1500
To use the benchmarks:
node benchmarks/run.js
or:
make benchmark
The numbers reported are the elapsed milliseconds the script took to
complete. Currently only benching HTTP code and timers.
This is sloppy: after each ObjectWrap allocation the user needs to
call ObjectWrap::InformV8ofAllocation(). In addition each class deriving
from ObjectWrap needs to implement the virtual method size() which should
return the size of the derived class. If I was better at C++ I could
possibly make this less ugly. For now this is how it is.
Memory usage looks much better after this commit.