Ryan Dahl
095470854b
Move tcp library to /tcp.js
15 years ago
Ryan Dahl
f6657c3c9d
Move http library to /http.js
15 years ago
Ryan Dahl
7abad8b7b3
API: Move node.puts(), node.exec() and others to /utils.js
15 years ago
Felix Geisendörfer
27c750154e
Multipart stream parser
15 years ago
Ryan Dahl
106287c368
Tighten window on timer test.
15 years ago
Ryan Dahl
e0ec0036ca
Add connection.setNoDelay() to disable Nagle algorithm.
15 years ago
Ryan Dahl
07792afe0a
Remove "raw" encoding. Rename "raws" to "binary".
Deprecation warnings have been added to help the conversion to this new API.
15 years ago
Ryan Dahl
cd70d4a9c0
Add "/file.js" buffered disk I/O object.
This is similar to the class node.File which was removed in
82cb1b5acb
.
Needs documentation.
15 years ago
Ryan Dahl
4b8f503fac
Move mjsunit.js to system module directory.
15 years ago
Ryan Dahl
c8b143bf30
Absolute path names for require() refer to node.libraryPaths
15 years ago
Jon Crosby
e57c16bc2d
Add failing spec for node.fs.write
16 years ago
Ryan Dahl
083d150bc4
Add node.exec()
16 years ago
Ryan
dbe116ddfe
API: Change arguments of emit(), emitSuccess(), emitError()
Instead of
myemitter.emit("event", [arg1, arg2, arg3]);
the API is now
myemitter.emit("event", arg1, arg2, arg3);
This change saves the creation of an extra array object for each event.
The implementation is also slightly more simple.
16 years ago
Ryan
241950c1df
Add isDirectory(), isFile(), isSocket(), ... methods to stats object.
Thanks to Felix Geisendörfer for the initial patch.
16 years ago
Ryan
8890070b88
Introduce "raws" encoding. Raw String.
This allows you to have binary data imported into your application via
strings instead of arrays of numbers! This needs testing before release.
16 years ago
Ryan
1a2696f10a
Almost completely remove onExit and onLoad.
They were deprecated in 723c7d9f7c
and
31265be4a6
.
Still retaining error message.
16 years ago
Ryan
9dbd92476e
Bugfix: Trap exceptions in URIParser.
A user was able to crash chat.tinyclouds.org by sending it a malformed URL!
Not good.
16 years ago
Ryan
1bd5277233
Add test-mkdir-rmdir.js
16 years ago
Ryan
b6eed30379
Sort files in readdir test.
16 years ago
Ryan
9b3e2ae192
Add node.fs.readdir()
16 years ago
Ryan
aefbd57514
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.
16 years ago
Ryan
afd9e714d3
Stack traces for mjsunit errors, better error reporting function.
The error reporting function tries to look at the "stack" element of the
exception.
16 years ago
Ryan
7beea2cd5f
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.
16 years ago
Ryan
ad9d683f9f
API: rename node.Process to node.ChildProcess
This is to avoid confusion with the global "process" object, especially for
the instances of node.Process.
16 years ago
Ryan
116f4dea05
lint
16 years ago
Ryan
723c7d9f7c
Replace onExit() with process.addListener("exit")
- Update documentation.
- Depreciation message for onExit().
16 years ago
Ryan
31265be4a6
Depreciate onLoad
16 years ago
Ryan
18d0511777
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.
16 years ago
Ryan
db42ad959d
API: All EventEmitters emit "newListener" when listeners are added.
The "newListener" event will also be emitted for listeners to "newListener".
Maybe useful?
16 years ago
Ryan
19f182a39f
Experimental support for Promise.block()
16 years ago
Ryan
82cb1b5acb
API: Remove buffered file object (node.File)
With the addition of non-libeio stdio (17c6a67f15
)
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.
16 years ago
Ryan
8658999c7d
Refactor node.Process to take advantage of evcom_reader/writer.
16 years ago
Ryan
17c6a67f15
Introduce node.stdio
Remove old stdout, stderr, stdin objects.
16 years ago
Ryan
0727fcc9ed
Speed up test-tcp-throttle.js
16 years ago
Ryan
316e2833f0
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
16 years ago
Ryan
368ea93bfe
Upgrade evcom - fix API issues.
16 years ago
Ryan
7aaab320b3
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.
16 years ago
Ryan
dd5ae3183b
Enable test-tcp-many-clients.
16 years ago
Ryan
3b0408ec1c
Sync evcom after refactor; fix binding issues
16 years ago
Ryan
738d20f6f0
(evcom) Add fix for pausing against big buffers.
discussion:
http://groups.google.com/group/nodejs/browse_thread/thread/11a920da4d0ed21d
16 years ago
Ryan
94e8721771
Add connection.readPause() and connection.readResume()
16 years ago
Ryan
75fc21537a
Bugfix: response.setBodyEncoding("ascii") not working.
This is same error that was fixed in 216fb3b9b2
.
Reported by Felix Geisendörfer.
16 years ago
Ryan
9b3baf3d50
Bugfix: node.encodeUtf8 was broken. (Connor Dunn)
http://groups.google.com/group/nodejs/browse_thread/thread/5ad0660a0959d885#
16 years ago
Ryan
e111ccc014
Add Felix Geisendörfer's HTTP stress test.
Does not pass on Macintosh and FreeBSD.
16 years ago
Ryan
4f46c47773
node.fs.File was not passing args to promise callbacks.
Reported by Jacob Rus.
16 years ago
Ryan
9d3ed1bb92
Bugfix: negative integers in raw encoding stream.
Add test. Reported by Tim Caswell.
16 years ago
Ryan
b27f8ba06d
Default to chunked for client requests without C-Length.
Also add test. Reported by Felix Geisendörfer.
16 years ago
Ryan
41d89f611f
Add DNS API.
Missing functional tests. I'm not sure how to do tests because I don't want
to rely on the fact that users have an internet connection.
16 years ago
Ryan
d41197e02c
Disable test-tcp-many-clients.js. It's broken on macintosh - don't want to fix right now.
16 years ago
Ryan
b1588e78d9
Fix utf8 scripts, add test. Thanks Urban.
16 years ago