Ryan [Fri, 4 Sep 2009 10:15:21 +0000 (12:15 +0200)]
Fix slowness in debug run of test-tcp-many-clients
I'm not sure what is actually causing
node_g test/mjsunit/test-tcp-many-clients.js
to run slowly, but I traced the problem to
afd9e714d3937288de51116a45234c1e86a9444f.
Somehow it has to do with promoting the compilation of src/util.js. That
change wasn't actually intended to be included in afd9e7 commit anyway, so
I'm reverting it here.
Ryan [Fri, 4 Sep 2009 09:46:56 +0000 (11:46 +0200)]
Upgrade evcom - disable EPIPE error output.
Ryan [Fri, 4 Sep 2009 09:46:31 +0000 (11:46 +0200)]
Add test-mkdir-rmdir.js
Ryan [Thu, 3 Sep 2009 19:59:31 +0000 (21:59 +0200)]
Sort files in readdir test.
Ryan [Thu, 3 Sep 2009 19:57:15 +0000 (21:57 +0200)]
Add node.fs.mkdir()
Ryan [Thu, 3 Sep 2009 19:29:20 +0000 (21:29 +0200)]
Add node.fs.readdir()
Ryan [Tue, 25 Aug 2009 00:29:45 +0000 (02:29 +0200)]
Clean up eio wrappers. Create EIOPromise.
Ryan [Thu, 3 Sep 2009 15:21:08 +0000 (17:21 +0200)]
Clean up text on website.
Ryan [Thu, 3 Sep 2009 14:01:45 +0000 (16:01 +0200)]
Asyncly do getaddrinfo() on Apple.
Ryan [Thu, 3 Sep 2009 13:59:48 +0000 (15:59 +0200)]
Upgrade libeio, increase xthread stacksize to 64kb.
64kb seems to be the magic number for getaddrinfo() to work on Macintosh.
Ryan [Thu, 3 Sep 2009 13:00:06 +0000 (15:00 +0200)]
Add extension API documentation
Ryan [Thu, 3 Sep 2009 08:38:49 +0000 (10:38 +0200)]
Add stack to promise.wait().
The problem was that if promise A was waiting and promise B was created and
then also told to wait (from some callback coming off the event loop), and
then promise A finished, promise B's wait would return. Promise A's wait
would not return until promise B was finished. This is incorrect.
To solve this issue properly, one probably needs to allocate separate
execution stacks. I use, instead, Poor Man's Coroutines. We continue to use
the main execution stack and force promises created most recently to return
first.
That is even if Promise A finishes first, neither wait() returns. Not until
Promise B finishes, will its wait() return. After that is complete, Promise
A's wait() will return.
This introduces the problem of growing the "wait stack" infinitely. Thus
I've added a strong warning to the documentation only to use this operation
sparingly. require() and include() seem to be the proper use case for such a
thing: they are called usually at program start up - they don't take too
long to finish and they won't be called so often.
Let's experiment with this stop-gap. If the infinite promise stack becomes a
problem for many, then I will remove promise.wait() entirely or perhaps only
use it for thread pool events.
Ryan [Wed, 2 Sep 2009 18:19:52 +0000 (20:19 +0200)]
Build natively on x64.
Had to add some waf hackery to override V8's architecture choice. They
probably have a reason for defaulting still to IA32, but all tests are
passing for me, and it makes it easier on users-and I think chrome is using
x64 builds too. So let's go for it!
Ryan [Wed, 2 Sep 2009 18:18:50 +0000 (20:18 +0200)]
Add limits.h to src/node.cc for PATH_MAX
Ryan [Wed, 2 Sep 2009 09:13:46 +0000 (11:13 +0200)]
Upgrade V8 to 1.3.9
Ryan [Tue, 1 Sep 2009 13:43:56 +0000 (15:43 +0200)]
Set module.loaded=true for dll modules.
Ryan [Tue, 1 Sep 2009 13:28:10 +0000 (15:28 +0200)]
Remove --lib option since there is no more libnode
Ryan [Tue, 1 Sep 2009 12:15:29 +0000 (14:15 +0200)]
Revert static library build.
Not necessary to build dll modules after all.
Michael Carter [Tue, 1 Sep 2009 09:39:30 +0000 (11:39 +0200)]
Feature: add node.cwd() to access the current working directory.
Ryan [Mon, 31 Aug 2009 16:57:01 +0000 (18:57 +0200)]
Use Error exceptions where possible in net.cc and file.cc
Ryan [Mon, 31 Aug 2009 16:48:47 +0000 (18:48 +0200)]
Throw Error exceptions from node.dlopen()
Ryan [Mon, 31 Aug 2009 16:22:09 +0000 (18:22 +0200)]
Stack traces for mjsunit errors, better error reporting function.
The error reporting function tries to look at the "stack" element of the
exception.
Ryan [Mon, 31 Aug 2009 16:15:27 +0000 (18:15 +0200)]
Upgrade evcom; Add setTimeout method to node.tcp.Connection
The default timeout is 60 seconds, but it can now be changed.
evcom upgrade includes fixes to force_close.
Ryan [Mon, 31 Aug 2009 14:12:27 +0000 (16:12 +0200)]
Update test script to use new debug build's name: node_g
Ryan [Mon, 31 Aug 2009 09:14:34 +0000 (11:14 +0200)]
Build static executable.
- Fix a few errors with node.dlopen()
- Report errors to stderr (this should probably be a separate commit, but
whatever)
Ryan [Thu, 27 Aug 2009 00:15:11 +0000 (02:15 +0200)]
Add command line arguments for accessing build flags.
node --cflags
node --libs
At the expense of some WAF nastiness.
Ryan [Wed, 26 Aug 2009 23:11:16 +0000 (01:11 +0200)]
Add pkgconfig files to help with dll builds.
Ryan [Sat, 20 Jun 2009 13:07:10 +0000 (15:07 +0200)]
First attempt at node.dlopen
Compiled first working 'hello world' module with this config
Ryan [Thu, 27 Aug 2009 10:31:52 +0000 (12:31 +0200)]
bump version
Ryan [Thu, 27 Aug 2009 10:23:53 +0000 (12:23 +0200)]
Fix text on index.html
Ryan [Wed, 26 Aug 2009 20:11:51 +0000 (22:11 +0200)]
API: rename node.Process to node.ChildProcess
This is to avoid confusion with the global "process" object, especially for
the instances of node.Process.
Ryan [Wed, 26 Aug 2009 20:03:19 +0000 (22:03 +0200)]
lint
Ryan [Wed, 26 Aug 2009 16:51:04 +0000 (18:51 +0200)]
Replace onExit() with process.addListener("exit")
- Update documentation.
- Depreciation message for onExit().
Ryan [Wed, 26 Aug 2009 19:33:57 +0000 (21:33 +0200)]
Introduce 'process' object. Also is the global object.
Ryan [Wed, 26 Aug 2009 16:22:00 +0000 (18:22 +0200)]
Depreciate onLoad
Ryan [Wed, 26 Aug 2009 16:02:45 +0000 (18:02 +0200)]
Synchronous module loading.
`include` and `require now` call `promise.wait` on their retrieval functions
making them synchronous. Introduce `include_async` and `require_async` to
do asynchronous retrievals.
`include_async` and `require_async` need testing and documentation.
Update documentation for include, require(). I am mostly removing
information about onLoad(). onLoad is to be depreciated.
Ryan [Wed, 26 Aug 2009 16:01:54 +0000 (18:01 +0200)]
Add node.assert for internal debugging.
Ryan [Wed, 26 Aug 2009 15:12:44 +0000 (17:12 +0200)]
promise.block() renamed to promise.wait()
promise.wait() now returns the arguments of the "success" event. If there
was only a single argument, then it is returned. If there was more than
one, they are returned as an array. If there was an error, it is thrown.
See documentation.
Ryan [Wed, 26 Aug 2009 09:25:53 +0000 (11:25 +0200)]
Improve Promise documentation.
Ryan [Tue, 25 Aug 2009 22:55:43 +0000 (00:55 +0200)]
Modify website layout.
Ryan [Tue, 25 Aug 2009 14:59:06 +0000 (16:59 +0200)]
API: All EventEmitters emit "newListener" when listeners are added.
The "newListener" event will also be emitted for listeners to "newListener".
Maybe useful?
Ryan [Tue, 25 Aug 2009 14:23:01 +0000 (16:23 +0200)]
Restyle website/api.html. Now looks like the front page.
Made a few other little corrections too.
Ryan [Tue, 25 Aug 2009 11:47:18 +0000 (13:47 +0200)]
Upgrade v8 to 1.3.7
Ryan [Tue, 25 Aug 2009 11:33:19 +0000 (13:33 +0200)]
Fix coupling problems on OSX
Ryan [Tue, 25 Aug 2009 10:56:54 +0000 (12:56 +0200)]
Add close() to coupling pump. Wasn't getting EOF.
Ryan [Tue, 25 Aug 2009 02:10:20 +0000 (04:10 +0200)]
Experimental support for Promise.block()
Ryan [Mon, 24 Aug 2009 23:18:44 +0000 (01:18 +0200)]
API: Remove buffered file object (node.File)
With the addition of non-libeio stdio (
17c6a67f15944962f27326072d9ea2df40ec0491)
this class is no longer being used internally. It has proved buggy and isn't
full-featured enough to be very useful. Since it's implemented entirely in
javascript it will be easy for someone to extra into their own library if
needed.
Ryan [Mon, 24 Aug 2009 23:06:49 +0000 (01:06 +0200)]
Refactor node.Process to take advantage of evcom_reader/writer.
Ryan [Mon, 24 Aug 2009 18:25:24 +0000 (20:25 +0200)]
Introduce node.stdio
Remove old stdout, stderr, stdin objects.
Ryan [Mon, 24 Aug 2009 14:51:37 +0000 (16:51 +0200)]
Speed up test-tcp-throttle.js
Ryan [Mon, 24 Aug 2009 11:02:55 +0000 (13:02 +0200)]
Add sha1 hashes to ChangeLog
Ryan [Mon, 24 Aug 2009 11:00:45 +0000 (13:00 +0200)]
Remove outdated todo list
Ryan [Mon, 24 Aug 2009 10:59:17 +0000 (12:59 +0200)]
Add node node_g to gitignore.
Ryan [Sun, 23 Aug 2009 10:20:25 +0000 (12:20 +0200)]
Use flat object instead of array-of-arrays for HTTP headers.
E.G. { "Content-Length": 10, "Content-Type": "text/html" } instead of
[["Content-Length", 10], ["Content-Type", "text/html"]].
The main reason for this change is object-creation efficiency.
This still needs testing and some further changes (like when receiving
multiple header lines with the same field-name, they are concatenated with a
comma but some headers ("Content-Length") should not be concatenated ; the
new header line should replace the old value).
Various thoughts on this subject:
http://groups.google.com/group/nodejs/browse_thread/thread/
9a67bb32706d9efc#
http://four.livejournal.com/979640.html
http://mail.gnome.org/archives/libsoup-list/2009-March/msg00015.html
Ryan [Sat, 22 Aug 2009 11:07:31 +0000 (13:07 +0200)]
bump version
Ryan [Sat, 22 Aug 2009 10:04:45 +0000 (12:04 +0200)]
evcom upgrade - ignore sigpipe. remove error output.
Ryan [Fri, 21 Aug 2009 16:03:15 +0000 (18:03 +0200)]
bump version
Kevin van Zonneveld [Fri, 21 Aug 2009 15:54:10 +0000 (17:54 +0200)]
Buggy connections could crash node.js. Now check connection before sending data every time
http://groups.google.com/group/nodejs/browse_thread/thread/
16abfa87c32408f3
We have our node.js server monitored by monit, however it seems monit is pretty
agressive / quick about closing its connection and thus we've gotten into a
loop of errors like this:
at #<a ServerResponse>.flush
at #<a ServerResponse>.sendBody
at [object Object].json
at [object Object].[anonymous]
at [object Object].[anonymous]
at [object Object].[anonymous]
http.js:353: Socket is not open for writing
connection.send(out, out.encoding);
^
Below is a patch that basically cause flushMessageQueue to check the connection
state for each item in the queue rather than just a single time in the
beginning.
Ryan [Fri, 21 Aug 2009 12:53:58 +0000 (14:53 +0200)]
Sync evcom
Ryan [Fri, 21 Aug 2009 12:47:33 +0000 (14:47 +0200)]
Don't Close TCP Connection/Server on destruction.
If the connection is open when the destructor is called it's a bug! Don't
want to try to compensate for bugs.
Ryan [Fri, 21 Aug 2009 11:13:04 +0000 (13:13 +0200)]
Upgrade v8 to 1.3.6
Ryan [Wed, 19 Aug 2009 15:46:23 +0000 (17:46 +0200)]
Remove connnection.fullClose() from documentation.
This function was removed in
368ea93bfea5c666e13118e78d2cab937cb692f3.
Ryan [Wed, 19 Aug 2009 15:28:41 +0000 (17:28 +0200)]
Upgrade evcom - fix API issues.
Ryan [Wed, 19 Aug 2009 14:37:15 +0000 (16:37 +0200)]
Upgrade v8 to 1.3.5
Ryan [Wed, 19 Aug 2009 11:29:22 +0000 (13:29 +0200)]
Return the EventEmitter from addListener for chaining.
http://groups.google.com/group/nodejs/browse_thread/thread/
13708eacedb40b36
Abe Fettig [Wed, 19 Aug 2009 10:56:06 +0000 (12:56 +0200)]
Bugfix: stdin fd (0) being ignored by node.File.
In the case of stdin options.fd is 0, which is considered false, therefore fd
gets set to null intead of 0.
http://groups.google.com/group/nodejs/msg/
80849f6aa0b0eaa0
Ryan [Fri, 14 Aug 2009 10:51:46 +0000 (12:51 +0200)]
API: tcp.Connection "disconnect" event renamed to "close".
More semantic, since the event will be emitted on connection error,
when the connection was ever established.
Ryan [Fri, 14 Aug 2009 10:43:46 +0000 (12:43 +0200)]
Clarify some of the TCP API documentation.
Ryan [Thu, 13 Aug 2009 13:52:55 +0000 (15:52 +0200)]
bump version
Ryan [Thu, 13 Aug 2009 13:07:37 +0000 (15:07 +0200)]
Upgrade libev to 3.8
Ryan [Thu, 13 Aug 2009 13:06:34 +0000 (15:06 +0200)]
Upgrade v8 to 1.3.4
Ryan [Thu, 13 Aug 2009 13:04:24 +0000 (15:04 +0200)]
Enable test-tcp-many-clients.
Ryan [Thu, 13 Aug 2009 13:03:28 +0000 (15:03 +0200)]
Remove debugging messages in HTTP client
Ryan [Thu, 13 Aug 2009 11:52:47 +0000 (13:52 +0200)]
Upgrade v8 to 1.3.3
Ryan [Thu, 13 Aug 2009 11:47:16 +0000 (13:47 +0200)]
Sync evcom after refactor; fix binding issues
Ryan [Mon, 10 Aug 2009 10:54:57 +0000 (12:54 +0200)]
Sync evcom.
Ryan [Mon, 10 Aug 2009 10:46:22 +0000 (12:46 +0200)]
(evcom) SOL_SOCKET got renamed in socket,stream renaming
This was breaking the build on Macintosh.
Ryan [Mon, 10 Aug 2009 10:14:41 +0000 (12:14 +0200)]
(evcom) Add fix for pausing against big buffers.
discussion:
http://groups.google.com/group/nodejs/browse_thread/thread/
11a920da4d0ed21d
Ryan [Sun, 9 Aug 2009 17:16:25 +0000 (19:16 +0200)]
Add IncomingMessage.prototype.pause() and resume().
Ryan [Sun, 9 Aug 2009 16:49:51 +0000 (18:49 +0200)]
Add connection.readPause() and connection.readResume()
Ryan [Sun, 9 Aug 2009 16:27:56 +0000 (18:27 +0200)]
Upgrade evcom
Made API changes in evcom and had to make minor change src/net.cc to comply.
Ryan [Sun, 9 Aug 2009 16:10:16 +0000 (18:10 +0200)]
Bugfix: Negative ints in HTTP's on_body and node.fs.read()
Similar to the error fixed in
9d3ed1bb9231798df8a081746fd0dc75900d8276.
Reported by Felix Geisendörfer.
Ryan [Sun, 9 Aug 2009 16:04:10 +0000 (18:04 +0200)]
Bugfix: response.setBodyEncoding("ascii") not working.
This is same error that was fixed in
216fb3b9b2811444228d7af7a450839e58b80713.
Reported by Felix Geisendörfer.
Ryan [Sat, 8 Aug 2009 19:51:28 +0000 (21:51 +0200)]
Fix http benchmark. Wasn't correctly dispatching.
Ryan [Sat, 8 Aug 2009 14:58:06 +0000 (16:58 +0200)]
Add -m32 gcc flag to udns build.
This is a temporary fix until V8 supports 64bit systems natively.
Ryan [Fri, 7 Aug 2009 16:25:25 +0000 (18:25 +0200)]
Upgrade http_parser to v0.2
Ryan [Fri, 7 Aug 2009 13:31:36 +0000 (15:31 +0200)]
Add SHA1 hash values to ChangeLog and fix formating.
Ryan [Fri, 7 Aug 2009 12:10:40 +0000 (14:10 +0200)]
Remove extra ev_timer_stop() in src/dns.cc
Ryan [Thu, 6 Aug 2009 13:08:07 +0000 (15:08 +0200)]
(evcom) Increase recv buffer from 4 bytes (!!!) to 8192
Ryan [Thu, 6 Aug 2009 11:59:38 +0000 (13:59 +0200)]
bump version
Ryan [Thu, 6 Aug 2009 11:59:09 +0000 (13:59 +0200)]
Delete v8 file that was removed in 1.3.2
Ryan [Thu, 6 Aug 2009 11:36:45 +0000 (13:36 +0200)]
Upgrade v8 to 1.3.2
Ryan [Thu, 6 Aug 2009 11:33:42 +0000 (13:33 +0200)]
Remove unused symbols.
Ryan [Thu, 6 Aug 2009 11:29:24 +0000 (13:29 +0200)]
Bugfix: node.http.ServerRequest.setBodyEncoding('ascii') not working
Pointed out by Felix Geisendörfer.
http://groups.google.com/group/nodejs/browse_thread/thread/
d061fe62eba6d3b3#
Ryan [Thu, 6 Aug 2009 11:17:30 +0000 (13:17 +0200)]
Bugfix: node.encodeUtf8 was broken. (Connor Dunn)
http://groups.google.com/group/nodejs/browse_thread/thread/
5ad0660a0959d885#
Ryan [Wed, 5 Aug 2009 13:33:42 +0000 (15:33 +0200)]
Add ranlib to udns Makefile
Thanks to Urban Hafner.
http://groups.google.com/group/nodejs/browse_thread/thread/
25867dba9db11d8
Ryan [Wed, 5 Aug 2009 09:17:26 +0000 (11:17 +0200)]
Add Felix Geisendörfer's HTTP stress test.
Does not pass on Macintosh and FreeBSD.
Ryan [Tue, 4 Aug 2009 12:44:40 +0000 (14:44 +0200)]
Upgrade evcom - fix accepting too many connections issue
Ryan [Tue, 4 Aug 2009 10:05:59 +0000 (12:05 +0200)]
Apply patch for V8 bug 414
http://groups.google.com/group/nodejs/browse_thread/thread/
25867dba9db11d8
http://code.google.com/p/v8/issues/detail?id=414
http://codereview.chromium.org/159659
Ryan [Mon, 3 Aug 2009 16:39:37 +0000 (18:39 +0200)]
Initial support for shebang.
There are some issues with loading modules from shebang-executed scripts
that will still need to be addressed, but this works for simple single
script situations.