117 Commits
Author SHA1 Message Date
Fedor Indutny d87ae24dfe hdr: always define NODE_WANT_INTERNALS
Otherwise the warning could be printed on some systems.

fix #8419
2014-09-26 10:31:10 +04:00
Ben Noordhuis bd8a5755dc src: add default visibility to NODE_MODULE
It's currently not really possible to compile native add-ons with
-fvisibility=hidden because that also hides the struct containing
the module definition.

The NODE_MODULE() and NODE_MODULE_DECL() macros are structured in
a way that makes it impossible to add a visibility attribute manually
so there is no escape hatch there.

That's why this commit adds an explicit visibility attribute to
the module definition.  It doesn't help with node.js releases that
are already out there but at least it improves the situation going
forward.
2014-03-05 15:26:09 +04:00
Timothy J Fontaine 16934d9210 src: add HandleScope in HandleWrap::OnClose
Fixes a 4 byte leak on handles closing. AKA The Walmart leak.

MakeCallback doesn't have a HandleScope. That means the callers scope
will retain ownership of created handles from MakeCallback and related.
There is by default a wrapping HandleScope before uv_run, if the caller
doesn't have a HandleScope on the stack the global will take ownership
which won't be reaped until the uv loop exits.

If a uv callback is fired, and there is no enclosing HandleScope in the
cb, you will appear to leak 4-bytes for every invocation. Take heed.

cc @hueniverse
2013-11-12 11:23:19 -08:00
Rod Vagg ccabd4a6fa process: expose NODE_MODULE_VERSION in process.versions 2013-04-08 16:48:18 +02:00
Ben Noordhuis aff8d9e716 node: don't malloc in FromConstructorTemplate
* allocate space for argv on the stack
* move the declaration to node_internals.h
2013-02-11 17:30:06 +01:00
isaacs 15508589a1 addon: Pass module object to NODE_MODULE init function
mainly to allow native addons to export single functions on
rather than being restricted to operating on an existing
object.

Init functions now receive exports as the first argument, like
before, but also the module object as the second argument, if they
support it.

Related to #4634

cc: @rvagg
2013-01-25 14:25:35 -08:00
Ben Noordhuis 875c1106c6 node: remove ev-emul.h
libev has been deprecated since v0.6. Add-on authors have had two major
release cycles to upgrade. Out it goes.
2013-01-03 19:58:38 +01:00
Ben Noordhuis 8d2753c141 constants: fix wrapping of large constants
Use Number::New() instead of Integer::New(). The latter wraps large values,
e.g. 0x80000000 becomes -2147483648 instead of 2147483648.
2012-11-22 16:10:36 +01:00
Ben Noordhuis 71ba7bc2a0 node: remove eio-emul.h
The purpose of this file was to remap the old libeio API to the new one.
We dropped libeio in ee77a6a and this file has been broken ever since.

Ergo, remove it.
2012-11-16 23:44:44 +01:00
Fedor Indutny 63ff449d87 crypto: bring module into modern age
Introduce 'buffer' encoding, allow returning and giving buffers as
arguments of 'crypto' routines.

Fix #3278
2012-09-18 10:58:37 +04:00
isaacs 3bf1846bb7 Merge remote-tracking branch 'ry/v0.8'
Conflicts:
	ChangeLog
	deps/uv/src/unix/sunos.c
	deps/uv/test/test-tcp-unexpected-read.c
	src/node_version.h
2012-08-03 16:23:14 -07:00
Ben Noordhuis 53f3b128f5 node: tag Encode and friends NODE_EXTERN
Makes the symbols visible on Windows. They were already visible on Unices.

Fixes #3811.
2012-08-02 01:35:54 +02:00
Ben Noordhuis c3d4c3560e node: bump NODE_MODULE_VERSION
Bump NODE_MODULE_VERSION so old modules won't load without recompiling when
the next major release (v0.10) comes out.

This is necessary because the ABI changes between major releases.
2012-07-27 00:55:35 +02:00
isaacs 8988af58f4 Externalize node::no_deprecation 2012-06-21 13:55:40 -07:00
Ben Noordhuis 09150b0616 node: replace NODE_STAT_STRUCT with uv_statbuf_t 2012-06-21 02:42:28 +02:00
Ben Noordhuis 067be2b3fe node: fix namespacing issue in ev-emul.h
Always use C linkage, prevent accidental name mangling.
2012-06-19 23:04:59 +02:00
Ben Noordhuis 7de6eba061 node: preemptively unbreak windows build
No one has complained about it so far but I'm sure MSVC doesn't like things
like __attribute__((unused)). Include the libev and libeio shims only on
non-Windows platforms.
2012-06-19 13:51:00 +02:00
Ben Noordhuis 1b22f5376b build: install eio-emul.h 2012-06-19 02:15:29 +02:00
Ben Noordhuis f405517de1 build: install ev-emul.h 2012-06-19 02:15:29 +02:00
Joel Brandt b9c5eee7d9 add NODE_EXTERN to node::Start 2012-06-06 05:31:09 +02:00
Ben Noordhuis e4a8d2617b addon: add AtExit() function
Lets native addons register exit hooks that run after the event loop has quit
but before the VM is killed.

Fixes #3147.
2012-05-03 16:11:42 +02:00
isaacs ecca7525cc Merge remote-tracking branch 'ry/v0.6' into master
Conflicts:
	AUTHORS
	ChangeLog
	LICENSE
	Makefile
	deps/http_parser/test.c
	deps/npm/AUTHORS
	deps/npm/html/api/bin.html
	deps/npm/html/api/bugs.html
	deps/npm/html/api/commands.html
	deps/npm/html/api/config.html
	deps/npm/html/api/deprecate.html
	deps/npm/html/api/docs.html
	deps/npm/html/api/edit.html
	deps/npm/html/api/explore.html
	deps/npm/html/api/help-search.html
	deps/npm/html/api/init.html
	deps/npm/html/api/install.html
	deps/npm/html/api/link.html
	deps/npm/html/api/load.html
	deps/npm/html/api/ls.html
	deps/npm/html/api/npm.html
	deps/npm/html/api/outdated.html
	deps/npm/html/api/owner.html
	deps/npm/html/api/pack.html
	deps/npm/html/api/prefix.html
	deps/npm/html/api/prune.html
	deps/npm/html/api/publish.html
	deps/npm/html/api/rebuild.html
	deps/npm/html/api/restart.html
	deps/npm/html/api/root.html
	deps/npm/html/api/run-script.html
	deps/npm/html/api/search.html
	deps/npm/html/api/shrinkwrap.html
	deps/npm/html/api/start.html
	deps/npm/html/api/stop.html
	deps/npm/html/api/submodule.html
	deps/npm/html/api/tag.html
	deps/npm/html/api/test.html
	deps/npm/html/api/uninstall.html
	deps/npm/html/api/unpublish.html
	deps/npm/html/api/update.html
	deps/npm/html/api/version.html
	deps/npm/html/api/view.html
	deps/npm/html/api/whoami.html
	deps/npm/html/doc/README.html
	deps/npm/html/doc/adduser.html
	deps/npm/html/doc/bin.html
	deps/npm/html/doc/bugs.html
	deps/npm/html/doc/build.html
	deps/npm/html/doc/bundle.html
	deps/npm/html/doc/cache.html
	deps/npm/html/doc/changelog.html
	deps/npm/html/doc/coding-style.html
	deps/npm/html/doc/completion.html
	deps/npm/html/doc/config.html
	deps/npm/html/doc/deprecate.html
	deps/npm/html/doc/developers.html
	deps/npm/html/doc/disputes.html
	deps/npm/html/doc/docs.html
	deps/npm/html/doc/edit.html
	deps/npm/html/doc/explore.html
	deps/npm/html/doc/faq.html
	deps/npm/html/doc/folders.html
	deps/npm/html/doc/help-search.html
	deps/npm/html/doc/help.html
	deps/npm/html/doc/index.html
	deps/npm/html/doc/init.html
	deps/npm/html/doc/install.html
	deps/npm/html/doc/json.html
	deps/npm/html/doc/link.html
	deps/npm/html/doc/list.html
	deps/npm/html/doc/npm.html
	deps/npm/html/doc/outdated.html
	deps/npm/html/doc/owner.html
	deps/npm/html/doc/pack.html
	deps/npm/html/doc/prefix.html
	deps/npm/html/doc/prune.html
	deps/npm/html/doc/publish.html
	deps/npm/html/doc/rebuild.html
	deps/npm/html/doc/registry.html
	deps/npm/html/doc/removing-npm.html
	deps/npm/html/doc/restart.html
	deps/npm/html/doc/root.html
	deps/npm/html/doc/run-script.html
	deps/npm/html/doc/scripts.html
	deps/npm/html/doc/search.html
	deps/npm/html/doc/semver.html
	deps/npm/html/doc/shrinkwrap.html
	deps/npm/html/doc/star.html
	deps/npm/html/doc/start.html
	deps/npm/html/doc/stop.html
	deps/npm/html/doc/submodule.html
	deps/npm/html/doc/tag.html
	deps/npm/html/doc/test.html
	deps/npm/html/doc/uninstall.html
	deps/npm/html/doc/unpublish.html
	deps/npm/html/doc/update.html
	deps/npm/html/doc/version.html
	deps/npm/html/doc/view.html
	deps/npm/html/doc/whoami.html
	deps/npm/lib/npm.js
	deps/npm/man/man1/npm.1
	deps/npm/man/man3/npm.3
	deps/npm/node_modules/fstream-npm/fstream-npm.js
	deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/package.json
	deps/npm/node_modules/fstream-npm/package.json
	deps/npm/node_modules/node-gyp/LICENSE
	deps/npm/node_modules/node-gyp/lib/build.js
	deps/npm/node_modules/node-gyp/lib/install.js
	deps/npm/node_modules/node-gyp/node_modules/ansi/package.json
	deps/npm/node_modules/node-gyp/node_modules/glob/package.json
	deps/npm/node_modules/node-gyp/package.json
	deps/npm/package.json
	deps/uv/test/test-fs.c
	deps/v8/src/regexp-macro-assembler-tracer.cc
	deps/v8/src/version.cc
	src/node_version.h
	src/platform_sunos.cc
	test/simple/test-net-write-after-close.js
	wscript
2012-04-18 11:57:54 -07:00
isaacs ac1aaddc00 MakeCallback: Return the callback return value 2012-04-17 11:56:33 -07:00
isaacs 7407be896e MakeCallback: Accept Function or Symbol argument 2012-04-17 11:56:32 -07:00
Igor Zinkovsky 052aaa4c4d windows: use 64bit offsets for uv_fs apis 2012-04-05 16:03:11 -07:00
Ben Noordhuis ff4a9d381d core: use proper #include directives 2012-03-10 00:14:14 +01:00
Ben Noordhuis 74a8215a86 Revert support for isolates.
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.
2012-02-06 15:44:42 +01:00
Roman Shtylman e97b961815 add node::SetMethod and node::SetPrototypeMethod
defines cannot be used if the callback is a templated and has
multiple template arguments. The comma separating the arguments
breaks the preprocessor argument handling. Using a templated function
is clearer and more idiomatic in c++.
2012-01-30 20:22:38 +01:00
Igor Zinkovsky 6c0c00a205 fix windows build 2012-01-23 01:35:11 -08:00
Ryan Dahl 20ba454ef9 Add node::Loop() and don't inc node_isolate.h in *.cc
node::Loop() replaces the NODE_LOOP macro. This avoids hitting
v8::Isolate::GetCurrent() for each loop lookup when HAVE_ISOLATE==0
2011-12-29 01:56:11 +01:00
Ryan Dahl f168f7d702 Remove node_isolate.h from node.h 2011-12-29 01:56:10 +01:00
Ben Noordhuis 09dc577931 build: move internals to separate header file 2011-12-29 01:56:09 +01:00
Ben Noordhuis 356992fe4d isolates: isolate-ify the main loop 2011-12-29 01:56:09 +01:00
Bert Belder 823a443321 Rename FSError to UVException and move to node.cc 2011-12-02 02:21:50 +01:00
Ryan Dahl b0030af135 Fixes #2140. Fix illumos build. 2011-11-17 11:39:34 -08:00
Bert Belder 6ee73a2fee Windows: ErrnoException shouldn't mix up crt and win32 errors 2011-11-04 16:24:35 +01:00
Igor Zinkovsky 24a69d22a0 process.kill to use uv_kill 2011-11-02 17:34:17 -07:00
Bert Belder a56a95b652 Export some functions from node.h 2011-10-29 01:06:53 +02:00
Bert Belder 4a1efb2b9c Support native extension loading on Windows 2011-10-29 01:06:51 +02:00
Bert Belder 889620dcd2 Wrap long lines, strip trailing whitespace 2011-10-29 01:06:44 +02:00
Bert Belder 1e2d777601 Remove outdated comment 2011-10-29 01:06:42 +02:00
Ryan Dahl 6cc42927d8 Display sys_errno when UV_UNKNOWN is returned 2011-10-19 16:53:07 -07:00
Ben Noordhuis c4eaf7e5a9 crypto: implement randomBytes() and pseudoRandomBytes() 2011-09-27 20:27:53 +02:00
Igor Zinkovsky bce41fac94 Use new uv_fs_ apis
This will cause master to be unstable for a while as we replace existing eio
calls with uv_fs calls.
2011-08-30 01:36:10 -07:00
Ben Noordhuis 7003d6eff5 Move ARRAY_SIZE macro to node.h 2011-08-24 22:27:24 +02:00
Peter Bright 13d6a1f67f Basic VC++ compatibility work. 2011-08-06 03:31:29 -07:00
Mariano Iglesias 02ebcd8e26 Adding missing v8 namespace to NODE_PSYMBOL 2011-07-04 19:40:19 +02:00
Henry Rawas 47a5d93256 Fix test-net-pingpong.js on windows 2011-06-28 13:52:36 +02:00
Ryan Dahl 650a308634 Move MakeCallback and SetErrno to node.cc 2011-05-28 13:44:03 -07:00
Bert Belder 9cec08e490 Batch of ev -> uv changes 2011-05-23 17:31:29 -07:00