platform/upstream/nodejs.git
14 years agoImplement half-closed streams
Ryan Dahl [Thu, 17 Dec 2009 08:31:10 +0000 (09:31 +0100)]
Implement half-closed streams

14 years agoAdd Stream.prototype.connect() and test-net-server.js
Ryan Dahl [Thu, 17 Dec 2009 07:37:25 +0000 (08:37 +0100)]
Add Stream.prototype.connect() and test-net-server.js

14 years agoRename new streaming code to 'net'
Ryan Dahl [Thu, 17 Dec 2009 06:39:22 +0000 (07:39 +0100)]
Rename new streaming code to 'net'

14 years agoImplement stream.send()
Ryan Dahl [Wed, 16 Dec 2009 12:50:28 +0000 (13:50 +0100)]
Implement stream.send()

14 years agoFix buffer bug, implement tcp recv
Ryan Dahl [Wed, 16 Dec 2009 07:35:09 +0000 (08:35 +0100)]
Fix buffer bug, implement tcp recv

14 years agoIOWatcher callback isn't internal, fix bug in Accept
Ryan Dahl [Tue, 15 Dec 2009 16:17:45 +0000 (17:17 +0100)]
IOWatcher callback isn't internal, fix bug in Accept

14 years agoMore bindings, beginning tcp server code in js
Ryan Dahl [Tue, 15 Dec 2009 08:22:36 +0000 (09:22 +0100)]
More bindings, beginning tcp server code in js

14 years agoStart on net2
Ryan Dahl [Mon, 14 Dec 2009 08:42:02 +0000 (09:42 +0100)]
Start on net2

14 years agoadd io watcher
Ryan Dahl [Sun, 13 Dec 2009 14:43:58 +0000 (15:43 +0100)]
add io watcher

14 years agoMove cb_persist functions out of dns module
Ryan Dahl [Sun, 13 Dec 2009 07:58:12 +0000 (08:58 +0100)]
Move cb_persist functions out of dns module

14 years agoAdd some tests to test-buffer.js
Ryan Dahl [Sun, 13 Dec 2009 07:57:54 +0000 (08:57 +0100)]
Add some tests to test-buffer.js

14 years agoRename blob to buffer.
Ryan Dahl [Sun, 13 Dec 2009 07:42:45 +0000 (08:42 +0100)]
Rename blob to buffer.

14 years agoinitial blobs
Ryan Dahl [Sun, 13 Dec 2009 07:39:20 +0000 (08:39 +0100)]
initial blobs

14 years agoBetter error message on bad ARGV[1]
Ryan Dahl [Tue, 29 Dec 2009 19:31:56 +0000 (20:31 +0100)]
Better error message on bad ARGV[1]

14 years agoSimplify exception reporting
Ryan Dahl [Tue, 29 Dec 2009 19:20:51 +0000 (20:20 +0100)]
Simplify exception reporting

14 years agoStack trace for asserts shouldn't include assert module
Ryan Dahl [Tue, 29 Dec 2009 19:14:58 +0000 (20:14 +0100)]
Stack trace for asserts shouldn't include assert module

14 years agoFix assert.js code style
Ryan Dahl [Tue, 29 Dec 2009 18:37:40 +0000 (19:37 +0100)]
Fix assert.js code style

14 years agoBugfix: libeio race condition
Ryan Dahl [Sun, 27 Dec 2009 21:07:06 +0000 (22:07 +0100)]
Bugfix: libeio race condition

Process at most 10 pending responses from the thread pool in one go.
10 was chosen arbitrarily.
Test and report by Felix Geisendörfer <felix@debuggable.com>

14 years agodon't chunk responses to HTTP/1.0 clients, even if they send Connection: Keep-Alive...
Michaeljohn Clement [Wed, 23 Dec 2009 20:48:14 +0000 (15:48 -0500)]
don't chunk responses to HTTP/1.0 clients, even if they send Connection: Keep-Alive (e.g. wget)

14 years agofix whitespace
Ryan Dahl [Tue, 22 Dec 2009 22:11:54 +0000 (23:11 +0100)]
fix whitespace

14 years agobump version v0.1.23
Ryan Dahl [Tue, 22 Dec 2009 19:31:45 +0000 (20:31 +0100)]
bump version

14 years agoDo not pause request for multipart parsing
Felix Geisendörfer [Sun, 20 Dec 2009 19:27:06 +0000 (20:27 +0100)]
Do not pause request for multipart parsing

This is actually undesireable as it takes away control from the user who
may want to pause/resume to throttle the upload stream, or synchronize
it with disk flushing.

I actually ran into memory issues when trying to stream huge files to
disc as the file module was building up a huge action buffer. This can
now easily be avoided like this:

part.addListener('body', function(chunk) {
  req.pause();
  file.write(chunk).addCallback(function() {
    req.resume();
  });
}

14 years agoposix.cat not using call() correctly
Jonas Pfenniger [Tue, 22 Dec 2009 13:52:40 +0000 (14:52 +0100)]
posix.cat not using call() correctly

'this' will point to "arguments" and the arguments of the callback itself
will not be set.

14 years agoexport path.normalizeArray for the uri module
Ryan Dahl [Tue, 22 Dec 2009 16:50:23 +0000 (17:50 +0100)]
export path.normalizeArray for the uri module

14 years agoFix require("../blah") issues
isaacs [Tue, 22 Dec 2009 15:24:32 +0000 (16:24 +0100)]
Fix require("../blah") issues

Added some more tests, and refactored the uri and path modules to use the
same normalization logic, so that nothing is relying on flaky regexps.

http://groups.google.com/group/nodejs/browse_thread/thread/34779f8c10098c5e
http://groups.google.com/group/nodejs/browse_thread/thread/1aa0146b92582679#msg_9822c03998cb4064

14 years agobump version v0.1.22
Ryan Dahl [Sat, 19 Dec 2009 00:24:59 +0000 (01:24 +0100)]
bump version

14 years agoRevert "Upgrade V8 to 2.0.5"
Ryan Dahl [Sat, 19 Dec 2009 00:04:19 +0000 (01:04 +0100)]
Revert "Upgrade V8 to 2.0.5"

This reverts commit 20b945df706b2b9fcbc1a84230372d288d497544.

Broken on Hagen's Macintosh. Don't have time to investigate.

14 years agoFix test-readdir.js
Ryan Dahl [Fri, 18 Dec 2009 23:45:01 +0000 (00:45 +0100)]
Fix test-readdir.js

Was broken because I added "throws_error.js" to the fixtures directory.
Problem appeared in bfa36136dac787793bc5106da57cccbb8db1ce14.

14 years agoRemove two debug statements that are a bit much.
isaacs [Thu, 17 Dec 2009 22:06:56 +0000 (14:06 -0800)]
Remove two debug statements that are a bit much.

14 years agoBugfix: child modules get wrong id with "index.js"
isaacs [Wed, 16 Dec 2009 23:18:27 +0000 (15:18 -0800)]
Bugfix: child modules get wrong id with "index.js"

Fix for bug brought up by nua in irc, where child modules get the wrong id
when loaded from a parent module with an id of index.js or index.addon.

14 years agoInadvertently introduced a bug in how single-dot path parts are handled.
isaacs [Wed, 16 Dec 2009 22:15:24 +0000 (14:15 -0800)]
Inadvertently introduced a bug in how single-dot path parts are handled.

14 years agoBugfix: require("../foo")
isaacs [Wed, 16 Dec 2009 21:08:14 +0000 (13:08 -0800)]
Bugfix: require("../foo")

If you have a circular require chain in which one or more of the modules are
referenced with a ".." relative path, like require("../foo"), node blows up.
This patch un-blows-up that case.  There still seem to be issues with
circularity, but this solves one of the more obnoxious ones.

14 years agorequire() should throw error if module does.
Ryan Dahl [Fri, 18 Dec 2009 22:58:04 +0000 (23:58 +0100)]
require() should throw error if module does.

Reported by Kris Zyp
http://groups.google.com/group/nodejs/browse_thread/thread/1feab0309bd5402b

14 years agoUpdate to fix failing test. Rewrite of the resolveObject function, and some tweaks...
isaacs [Sun, 13 Dec 2009 00:29:12 +0000 (16:29 -0800)]
Update to fix failing test. Rewrite of the resolveObject function, and some tweaks to format.

14 years agoUse the new uri parser.
isaacs [Fri, 11 Dec 2009 23:46:32 +0000 (15:46 -0800)]
Use the new uri parser.

14 years agoAdd credits, and a "decode" function.
isaacs [Fri, 11 Dec 2009 23:46:10 +0000 (15:46 -0800)]
Add credits, and a "decode" function.

14 years agoPull in the uri.js from Narwhal and create tests, stripping out the cruft from a...
isaacs [Fri, 11 Dec 2009 23:25:35 +0000 (15:25 -0800)]
Pull in the uri.js from Narwhal and create tests, stripping out the cruft from a previous code-surgery.

14 years agoReplaced several Array.prototype.slice.call() calls with Array.prototype.unshift...
visionmedia [Fri, 18 Dec 2009 02:27:48 +0000 (18:27 -0800)]
Replaced several Array.prototype.slice.call() calls with Array.prototype.unshift.call()

Acts in pretty much the same manor just a bit more elegant

14 years agosyntax fixes in src/node.js
Joshaven Potter [Wed, 16 Dec 2009 22:33:33 +0000 (17:33 -0500)]
syntax fixes in src/node.js

14 years agoDocumentation for the assert module
Micheil Smith [Fri, 18 Dec 2009 15:17:10 +0000 (16:17 +0100)]
Documentation for the assert module

14 years agoFix kqueue check (broke it in last commit)
Ryan Dahl [Fri, 18 Dec 2009 14:45:53 +0000 (15:45 +0100)]
Fix kqueue check (broke it in last commit)

14 years agonote about why execinfo detection fails on Darwin even though it exists
Rasmus Andersson [Tue, 15 Dec 2009 22:37:49 +0000 (23:37 +0100)]
note about why execinfo detection fails on Darwin even though it exists

14 years agoFix check for epoll_ctl(). Was broken on Linux
Ryan Dahl [Fri, 18 Dec 2009 14:36:25 +0000 (15:36 +0100)]
Fix check for epoll_ctl(). Was broken on Linux

14 years agodetect nanosleep on OS X and do not look for functions in libraries we know dows...
Rasmus Andersson [Tue, 15 Dec 2009 21:46:38 +0000 (22:46 +0100)]
detect nanosleep on OS X and do not look for functions in libraries we know dows not exist

14 years agofix kqueue feature detection on Mac OS X 10.6
Rasmus Andersson [Tue, 15 Dec 2009 21:32:50 +0000 (22:32 +0100)]
fix kqueue feature detection on Mac OS X 10.6

14 years agoUpgrade V8 to 2.0.5
Ryan Dahl [Fri, 18 Dec 2009 14:05:04 +0000 (15:05 +0100)]
Upgrade V8 to 2.0.5

14 years agoAdded in API documentation concerning the (seemingly undocumented) process.chdir...
Ryan McGrath [Fri, 18 Dec 2009 06:08:10 +0000 (01:08 -0500)]
Added in API documentation concerning the (seemingly undocumented) process.chdir() method, complementary to process.cwd()

14 years agoadd missing semicolon
Ryan Dahl [Wed, 9 Dec 2009 14:59:53 +0000 (15:59 +0100)]
add missing semicolon

14 years agoUse conf.fatal() instead of fatal() in order to abort the configure script
Simon Cornelius P. Umacob [Wed, 9 Dec 2009 12:36:12 +0000 (20:36 +0800)]
Use conf.fatal() instead of fatal() in order to abort the configure script

14 years agoUpgrade waf to 1.5.10
Ryan Dahl [Wed, 9 Dec 2009 13:27:33 +0000 (14:27 +0100)]
Upgrade waf to 1.5.10

14 years agoFix posix.statSync()
Ryan Dahl [Wed, 9 Dec 2009 09:32:19 +0000 (10:32 +0100)]
Fix posix.statSync()

14 years agoStatically define symbols
Ryan Dahl [Wed, 9 Dec 2009 08:02:21 +0000 (09:02 +0100)]
Statically define symbols

~7% improvement in hello world HTTP response bench.

14 years agoRemove accidentally committed files.
Ryan Dahl [Wed, 9 Dec 2009 06:44:44 +0000 (07:44 +0100)]
Remove accidentally committed files.

14 years agofix typo
Ryan Dahl [Tue, 8 Dec 2009 06:20:51 +0000 (07:20 +0100)]
fix typo

14 years agoFix ARGV[0] weirdness
Ryan Dahl [Tue, 8 Dec 2009 05:54:26 +0000 (06:54 +0100)]
Fix ARGV[0] weirdness

14 years agoAdded superCtor to ctor.super_ instead superCtor.prototype.
Johan Dahlberg [Sat, 5 Dec 2009 12:33:15 +0000 (13:33 +0100)]
Added superCtor to ctor.super_ instead superCtor.prototype.

This way let's us do deep comparison between object instances.

I have a suggestion for the sys.inherits function. Today it's impossible to
deep comparison between instance and class.

Take this snippet for example:

function ClassA() {}
function ClassB() {}

sys.inherits(ClassB, ClassA);

var instance = new ClassB();

The instance variable inherits from ClassA but we can't check it (which is
useful sometimes). You can compare the instance against ClassB
(instance.constructor == ClassB) but we can't compare it deeper
(instance.constructor.super == ClassA). The committed change simply assign
super to the super constructor instead of the super prototype.

I can't see any problem with this fix. You can still get the super constructor
by calling super_.prototype.

14 years agoExport STATUS_CODES
visionmedia [Tue, 8 Dec 2009 00:18:43 +0000 (16:18 -0800)]
Export STATUS_CODES

Express (my framework) uses them as a default
response body when non is present. Others
might use them for something as well.

Beats duplicating the list :D

14 years agoGive default encodings for posix.read and posix.write
Ryan Dahl [Mon, 7 Dec 2009 17:03:06 +0000 (18:03 +0100)]
Give default encodings for posix.read and posix.write

14 years agoAttach/Detach -> Ref/Unref
Ryan Dahl [Mon, 7 Dec 2009 16:55:19 +0000 (17:55 +0100)]
Attach/Detach -> Ref/Unref

14 years agooffload method look up to http-parser
Ryan Dahl [Mon, 7 Dec 2009 14:21:12 +0000 (15:21 +0100)]
offload method look up to http-parser

14 years agosys.inspect prints out special chars correctly (\n, \u0001, etc...)
Xavier Shay [Mon, 7 Dec 2009 04:44:41 +0000 (15:44 +1100)]
sys.inspect prints out special chars correctly (\n, \u0001, etc...)

14 years agoUpgrade http-parser; supports webdav extension methods now
Ryan Dahl [Sun, 6 Dec 2009 22:58:16 +0000 (23:58 +0100)]
Upgrade http-parser; supports webdav extension methods now

14 years agoMake process.mixin copy over undefined values
Felix Geisendörfer [Sun, 6 Dec 2009 18:02:55 +0000 (19:02 +0100)]
Make process.mixin copy over undefined values

This is not a bug in process.mixin, but I think it is undesirable
behavior. Right now process.mixin will not copy over keys with undefined
values. To me that is an unexpected filtering that should not happen
unless specifically called for.

14 years agoTwo bug fixes for process.mixin
Felix Geisendörfer [Sun, 6 Dec 2009 17:57:20 +0000 (18:57 +0100)]
Two bug fixes for process.mixin

Bug #1 occurred when trying to use process.mixin on a function and
produced a fatal exception.

Bug #2 occurred when trying to do a deep merge with an object containing
one or more objects with a nodeType property. In those cases the deep
copy for this part of the object was not performed and a shallow one was
performed instead.

Both of these bugs were artifacts of the jQuery.extend port.

14 years agoAdd http.Client.prototype.request()
Christopher Lenz [Wed, 2 Dec 2009 22:25:56 +0000 (23:25 +0100)]
Add http.Client.prototype.request()

Change the http.Client API so that it provides a single request() method
taking an optional parameter to specify the HTTP method (defaulting to
"GET"), instead of the five methods get(), head(), post(), del() and put().

14 years agobump version v0.1.21
Ryan Dahl [Sun, 6 Dec 2009 16:53:52 +0000 (17:53 +0100)]
bump version

14 years agosys.inspect is totally more awesome now
Xavier Shay [Tue, 1 Dec 2009 10:20:14 +0000 (21:20 +1100)]
sys.inspect is totally more awesome now

- No longer relies on JSON.stringify, so it can output nulls and functions
- Handles circular references better
- Has tests

14 years agoImplement promises entirely in JS
Ryan Dahl [Sun, 6 Dec 2009 10:36:22 +0000 (11:36 +0100)]
Implement promises entirely in JS

14 years agoRefactor node_file.cc to not use Promises.
Ryan Dahl [Sun, 6 Dec 2009 09:50:03 +0000 (10:50 +0100)]
Refactor node_file.cc to not use Promises.

At the same time implement synchronous wrappers of the POSIX functions.
These will be undocumented until we settle on an API. Works like this

    // returns promise as before
    posix.mkdir("test").addCallback(function () {
      sys.puts("done");
    });

    // returns undefined, executed synchronously.
    posix.mkdirSync("test");
    sys.puts("done");

This refactoring is a step towards allowing promises to be implemented
purely in javascript.

14 years agoDon't use promises internally in DNS module
Ryan Dahl [Sun, 6 Dec 2009 08:23:38 +0000 (09:23 +0100)]
Don't use promises internally in DNS module

14 years agoUse --jobs=1 with WAF
Ryan Dahl [Sun, 6 Dec 2009 06:35:26 +0000 (07:35 +0100)]
Use --jobs=1 with WAF

Some people were reporting waf erroring with

  thread.error: can't start new thread

this seems to fix that problem.

14 years agoClean up context creation
Ryan Dahl [Sat, 5 Dec 2009 17:25:07 +0000 (18:25 +0100)]
Clean up context creation

14 years agoupgrade v8 to 2.0.3
Ryan Dahl [Sat, 5 Dec 2009 14:27:56 +0000 (15:27 +0100)]
upgrade v8 to 2.0.3

14 years agoBugfix: Don't use chunked encoding for 1.0 requests.
Ryan Dahl [Sat, 5 Dec 2009 07:37:46 +0000 (08:37 +0100)]
Bugfix: Don't use chunked encoding for 1.0 requests.

http://groups.google.com/group/nodejs/browse_thread/thread/b2edb76691b1848c

14 years agoExpose versionMajor versionMinor to http messages
Ryan Dahl [Sat, 5 Dec 2009 06:52:05 +0000 (07:52 +0100)]
Expose versionMajor versionMinor to http messages

14 years agoDependency free assert module with unit tests
Karl Guertin [Mon, 30 Nov 2009 02:20:37 +0000 (21:20 -0500)]
Dependency free assert module with unit tests

14 years agoCommonJS testing for node.js
Felix Geisendörfer [Sat, 28 Nov 2009 17:26:59 +0000 (18:26 +0100)]
CommonJS testing for node.js

Refactored test suite to use the assert module for testing rather than
mjsunit.

14 years agofixed HTTP duplicated header bug
Michaeljohn Clement [Wed, 2 Dec 2009 05:38:42 +0000 (00:38 -0500)]
fixed HTTP duplicated header bug

added test case for HTTP duplicated header bug on keepalive

14 years agoAdd HTTP client TLS support
Rhys Jones [Mon, 30 Nov 2009 15:51:20 +0000 (16:51 +0100)]
Add HTTP client TLS support

14 years agofixed check on header type, to check member instead of object.
jed [Sun, 29 Nov 2009 08:00:30 +0000 (01:00 -0700)]
fixed check on header type, to check member instead of object.

14 years agosys.puts should not kill the process when giving it undefined
Friedemann Altrock [Sat, 28 Nov 2009 11:15:37 +0000 (12:15 +0100)]
sys.puts should not kill the process when giving it undefined

14 years agobump version v0.1.20
Ryan Dahl [Sat, 28 Nov 2009 16:04:42 +0000 (17:04 +0100)]
bump version

14 years agoAdd V8 heap info to process.memoryUsage()
Ryan Dahl [Sat, 28 Nov 2009 15:31:29 +0000 (16:31 +0100)]
Add V8 heap info to process.memoryUsage()

14 years agoAdd gnutls version to configure script
Ryan Dahl [Sat, 28 Nov 2009 14:25:10 +0000 (15:25 +0100)]
Add gnutls version to configure script

14 years agoStat::Callback has 2 arguments for callback: current stat info and previous stat...
choonkeat [Sat, 28 Nov 2009 13:52:27 +0000 (14:52 +0100)]
Stat::Callback has 2 arguments for callback: current stat info and previous stat info

http://groups.google.com/group/nodejs/msg/f8e51a8e0c74bd85

14 years agobump version v0.1.19
Ryan Dahl [Sat, 28 Nov 2009 00:49:11 +0000 (01:49 +0100)]
bump version

14 years agoFix v8 SConstruct for freebsd
Ryan Dahl [Sat, 28 Nov 2009 00:38:32 +0000 (01:38 +0100)]
Fix v8 SConstruct for freebsd

14 years agoDocumented repl.scope for explicitly exposing variables within the repl.
simonw [Tue, 24 Nov 2009 11:13:21 +0000 (04:13 -0700)]
Documented repl.scope for explicitly exposing variables within the repl.

14 years agoUpgrade v8 to 2.0.2
Ryan Dahl [Fri, 27 Nov 2009 21:53:39 +0000 (22:53 +0100)]
Upgrade v8 to 2.0.2

14 years agoAdd process.loop() process.unloop()!!!
Ryan Dahl [Sun, 22 Nov 2009 23:59:36 +0000 (00:59 +0100)]
Add process.loop() process.unloop()!!!

Move the event loop calls into javascript.
Makes life so much easier.

14 years agodetect ccache and bail out since v8 doens't like to build with ccache
Jan Lehnardt [Sun, 22 Nov 2009 22:32:53 +0000 (23:32 +0100)]
detect ccache and bail out since v8 doens't like to build with ccache

14 years agoadd process.umask()
Friedemann Altrock [Sun, 22 Nov 2009 18:52:52 +0000 (19:52 +0100)]
add process.umask()

14 years agoPromises should not be able to be canceled more than once.
Friedemann Altrock [Sun, 22 Nov 2009 18:18:24 +0000 (19:18 +0100)]
Promises should not be able to be canceled more than once.

14 years agoReduce multipart memory footprint
Felix Geisendörfer [Sun, 22 Nov 2009 12:47:20 +0000 (13:47 +0100)]
Reduce multipart memory footprint

Multipart parts kept the first chunk of data after their headers in
memory, even so that was no longer needed.

14 years agoInitial TLS support
Rhys Jones [Sun, 22 Nov 2009 02:58:08 +0000 (03:58 +0100)]
Initial TLS support

14 years agoFix memory leak on fs.write()
Ryan Dahl [Sat, 21 Nov 2009 23:47:26 +0000 (00:47 +0100)]
Fix memory leak on fs.write()

Reported by onne@onnlucky.com.

14 years agoUpgrade http_parser (fixes bug reported by Felix)
Ryan Dahl [Sat, 21 Nov 2009 21:03:52 +0000 (22:03 +0100)]
Upgrade http_parser (fixes bug reported by Felix)

14 years agoMultipart improvements
Felix Geisendörfer [Sat, 21 Nov 2009 15:37:29 +0000 (16:37 +0100)]
Multipart improvements

Multipart parts now have a name and filename property. Those are the
same as:

part.headers['content-disposition'].name
part.headers['content-disposition'].filename

This patch also updates and improves the docs for the multipart module.

14 years agoRemove debug message
Ryan Dahl [Sat, 21 Nov 2009 16:15:39 +0000 (17:15 +0100)]
Remove debug message

14 years agoNew http-parser
Ryan Dahl [Sat, 21 Nov 2009 15:27:02 +0000 (16:27 +0100)]
New http-parser

No longer based on Ragel, but hand-written.

Had to add HTTPConnection.resetParser() because the parser is stricter and
will error out when you try to give it a message after the previous had
"Connection: close". The HTTP client was doing that. Thus we reset the
parser manually after each new connection.