platform/upstream/nodejs.git
15 years agoUse "platform.architecture()" to find the proper architecture.
Jeff Smick [Sat, 12 Sep 2009 10:40:27 +0000 (12:40 +0200)]
Use "platform.architecture()" to find the proper architecture.

In Snow Leopard "platform.machine()" returns "i386" while
"platform.architecture()" returns ('64bit',''). Using information from both
we can determine the proper architecture

This reverts commit ea29e137b5a9acda27bd9601448639aacfc1cd9e re-enabling the
64bit build on Macintosh.

15 years agoLint
Ryan [Sat, 12 Sep 2009 12:18:42 +0000 (14:18 +0200)]
Lint

15 years agoAPI: Change arguments of emit(), emitSuccess(), emitError()
Ryan [Sat, 12 Sep 2009 11:01:03 +0000 (13:01 +0200)]
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.

15 years agospell check api.txt
Ryan [Fri, 11 Sep 2009 19:27:20 +0000 (21:27 +0200)]
spell check api.txt

15 years agobump version v0.1.10
Ryan [Fri, 11 Sep 2009 19:06:50 +0000 (21:06 +0200)]
bump version

15 years agoAdd doc note about 'raws' encoding
Ryan [Fri, 11 Sep 2009 19:04:02 +0000 (21:04 +0200)]
Add doc note about 'raws' encoding

15 years agoJust add the gernerated doc files. Make life easier.
Ryan [Fri, 11 Sep 2009 18:51:39 +0000 (20:51 +0200)]
Just add the gernerated doc files. Make life easier.

15 years agoRevert "Add xsl files to doc directory so people can build docs easily"
Ryan [Fri, 11 Sep 2009 18:47:45 +0000 (20:47 +0200)]
Revert "Add xsl files to doc directory so people can build docs easily"

This reverts commit 412b4636c8b7edfa05b7cb97691a1ddb656cea55.

15 years agoAdd xsl files to doc directory so people can build docs easily
Ryan [Fri, 11 Sep 2009 18:34:55 +0000 (20:34 +0200)]
Add xsl files to doc directory so people can build docs easily

15 years agoAdd node-repl
Ryan [Fri, 11 Sep 2009 18:32:24 +0000 (20:32 +0200)]
Add node-repl

15 years agoAdd '--' to seperate v8 args from program args
Ryan [Fri, 11 Sep 2009 18:05:22 +0000 (20:05 +0200)]
Add '--' to seperate v8 args from program args

15 years agocpplint.py node.cc and node.h
Ryan [Fri, 11 Sep 2009 14:02:29 +0000 (16:02 +0200)]
cpplint.py node.cc and node.h

15 years agoAdd isDirectory(), isFile(), isSocket(), ... methods to stats object.
Ryan [Fri, 11 Sep 2009 11:41:47 +0000 (13:41 +0200)]
Add isDirectory(), isFile(), isSocket(), ... methods to stats object.

Thanks to Felix Geisendörfer for the initial patch.

15 years agoAdd 'extern char **environ' so that the new ENV code compiles.
Ryan [Thu, 10 Sep 2009 14:48:38 +0000 (16:48 +0200)]
Add 'extern char **environ' so that the new ENV code compiles.

Problem appeared in dc39e8202456686513c43a4e2c4e5e505eb3a901.

15 years agoAdd access to user environment via ENV
Ryan [Thu, 10 Sep 2009 12:07:35 +0000 (14:07 +0200)]
Add access to user environment via ENV

15 years agoMan page generation.
Ryan [Thu, 10 Sep 2009 11:40:38 +0000 (13:40 +0200)]
Man page generation.

15 years agoRemove debug agent. It shouldn't have been commited!
Ryan [Thu, 10 Sep 2009 10:41:18 +0000 (12:41 +0200)]
Remove debug agent. It shouldn't have been commited!

Appeared accidentally in 6dd850aa.

15 years agoMove arg parsing to beginning of main()
Ryan [Thu, 10 Sep 2009 10:34:29 +0000 (12:34 +0200)]
Move arg parsing to beginning of main()

For faster "./node -v"

15 years agoAdd a few fflush(stderr) calls to track down missing stacktraces.
Ryan [Wed, 9 Sep 2009 20:35:40 +0000 (22:35 +0200)]
Add a few fflush(stderr) calls to track down missing stacktraces.

15 years agoUpgrade v8 to 1.3.10
Ryan [Wed, 9 Sep 2009 20:01:54 +0000 (22:01 +0200)]
Upgrade v8 to 1.3.10

15 years agoRemove compiler warning with extra assert.
Ryan [Wed, 9 Sep 2009 16:06:58 +0000 (18:06 +0200)]
Remove compiler warning with extra assert.

15 years agoAdd Exception::Error where missing.
Ryan [Wed, 9 Sep 2009 15:35:59 +0000 (17:35 +0200)]
Add Exception::Error where missing.

15 years agoIntroduce "raws" encoding. Raw String.
Ryan [Wed, 9 Sep 2009 15:22:20 +0000 (17:22 +0200)]
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.

15 years agoByte stream to V8 decoding and encoding.
Ryan [Wed, 9 Sep 2009 13:51:49 +0000 (15:51 +0200)]
Byte stream to V8 decoding and encoding.

This does not (should not) change behavior.  Pulls those two functions
(encode/decode) out into node.cc.

15 years agonode.assert() was broken.
Ryan [Tue, 8 Sep 2009 12:59:43 +0000 (14:59 +0200)]
node.assert() was broken.

15 years agoInternally use full paths when loading modules.
Ryan [Mon, 7 Sep 2009 12:09:18 +0000 (14:09 +0200)]
Internally use full paths when loading modules.

This completes shebang support begun in
6acac912dd4da0479a0630a8d1b2878ca83b22de.

15 years agoAlmost completely remove onExit and onLoad.
Ryan [Mon, 7 Sep 2009 12:20:41 +0000 (14:20 +0200)]
Almost completely remove onExit and onLoad.

They were deprecated in 723c7d9f7c4e5ba9600adae95bd481fad70a3d60 and
31265be4a6584ff1b9a1ed0dedb5bc6c2f1c2e56.

Still retaining error message.

15 years agoExit the process on module load error. (temporary)
Ryan [Mon, 7 Sep 2009 12:13:01 +0000 (14:13 +0200)]
Exit the process on module load error. (temporary)

15 years agoAdd note about sendBody buffering to docs
Ryan [Mon, 7 Sep 2009 10:56:10 +0000 (12:56 +0200)]
Add note about sendBody buffering to docs

15 years agoAdd some links to the website
Ryan [Mon, 7 Sep 2009 10:54:08 +0000 (12:54 +0200)]
Add some links to the website

15 years agoCreate NODE_UNIXTIME macros
Ryan [Mon, 7 Sep 2009 10:52:55 +0000 (12:52 +0200)]
Create NODE_UNIXTIME macros

15 years agobump version v0.1.9
Ryan [Sat, 5 Sep 2009 12:47:56 +0000 (14:47 +0200)]
bump version

15 years agoHack for compiling on Snow Leopard.
Ryan [Sat, 5 Sep 2009 12:13:06 +0000 (14:13 +0200)]
Hack for compiling on Snow Leopard.

I don't have access to this OS to fix the issue properly, so for the moment
I'm reverting back to 32bit build on Darwin. We changed to native 64bit in
8ddf930901c03a0a6c03b8da22da6f7b35f445af.

Thanks to Johan Dahlberg and Tim Caswell for reporting and debugging this.

15 years agoSmall change to website index.html
Ryan [Sat, 5 Sep 2009 12:32:19 +0000 (14:32 +0200)]
Small change to website index.html

15 years agoBugfix: Trap exceptions in URIParser.
Ryan [Fri, 4 Sep 2009 15:35:38 +0000 (17:35 +0200)]
Bugfix: Trap exceptions in URIParser.

A user was able to crash chat.tinyclouds.org by sending it a malformed URL!
Not good.

15 years agobump version v0.1.8
Ryan [Fri, 4 Sep 2009 10:35:30 +0000 (12:35 +0200)]
bump version

15 years agoFix slowness in debug run of test-tcp-many-clients
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.

15 years agoUpgrade evcom - disable EPIPE error output.
Ryan [Fri, 4 Sep 2009 09:46:56 +0000 (11:46 +0200)]
Upgrade evcom - disable EPIPE error output.

15 years agoAdd test-mkdir-rmdir.js
Ryan [Fri, 4 Sep 2009 09:46:31 +0000 (11:46 +0200)]
Add test-mkdir-rmdir.js

15 years agoSort files in readdir test.
Ryan [Thu, 3 Sep 2009 19:59:31 +0000 (21:59 +0200)]
Sort files in readdir test.

15 years agoAdd node.fs.mkdir()
Ryan [Thu, 3 Sep 2009 19:57:15 +0000 (21:57 +0200)]
Add node.fs.mkdir()

15 years agoAdd node.fs.readdir()
Ryan [Thu, 3 Sep 2009 19:29:20 +0000 (21:29 +0200)]
Add node.fs.readdir()

15 years agoClean up eio wrappers. Create EIOPromise.
Ryan [Tue, 25 Aug 2009 00:29:45 +0000 (02:29 +0200)]
Clean up eio wrappers. Create EIOPromise.

15 years agoClean up text on website.
Ryan [Thu, 3 Sep 2009 15:21:08 +0000 (17:21 +0200)]
Clean up text on website.

15 years agoAsyncly do getaddrinfo() on Apple.
Ryan [Thu, 3 Sep 2009 14:01:45 +0000 (16:01 +0200)]
Asyncly do getaddrinfo() on Apple.

15 years agoUpgrade libeio, increase xthread stacksize to 64kb.
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.

15 years agoAdd extension API documentation
Ryan [Thu, 3 Sep 2009 13:00:06 +0000 (15:00 +0200)]
Add extension API documentation

15 years agoAdd stack to promise.wait().
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.

15 years agoBuild natively on x64.
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!

15 years agoAdd limits.h to src/node.cc for PATH_MAX
Ryan [Wed, 2 Sep 2009 18:18:50 +0000 (20:18 +0200)]
Add limits.h to src/node.cc for PATH_MAX

15 years agoUpgrade V8 to 1.3.9
Ryan [Wed, 2 Sep 2009 09:13:46 +0000 (11:13 +0200)]
Upgrade V8 to 1.3.9

15 years agoSet module.loaded=true for dll modules.
Ryan [Tue, 1 Sep 2009 13:43:56 +0000 (15:43 +0200)]
Set module.loaded=true for dll modules.

15 years agoRemove --lib option since there is no more libnode
Ryan [Tue, 1 Sep 2009 13:28:10 +0000 (15:28 +0200)]
Remove --lib option since there is no more libnode

15 years agoRevert static library build.
Ryan [Tue, 1 Sep 2009 12:15:29 +0000 (14:15 +0200)]
Revert static library build.

Not necessary to build dll modules after all.

15 years agoFeature: add node.cwd() to access the current working directory.
Michael Carter [Tue, 1 Sep 2009 09:39:30 +0000 (11:39 +0200)]
Feature: add node.cwd() to access the current working directory.

15 years agoUse Error exceptions where possible in net.cc and file.cc
Ryan [Mon, 31 Aug 2009 16:57:01 +0000 (18:57 +0200)]
Use Error exceptions where possible in net.cc and file.cc

15 years agoThrow Error exceptions from node.dlopen()
Ryan [Mon, 31 Aug 2009 16:48:47 +0000 (18:48 +0200)]
Throw Error exceptions from node.dlopen()

15 years agoStack traces for mjsunit errors, better error reporting function.
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.

15 years agoUpgrade evcom; Add setTimeout method to node.tcp.Connection
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.

15 years agoUpdate test script to use new debug build's name: node_g
Ryan [Mon, 31 Aug 2009 14:12:27 +0000 (16:12 +0200)]
Update test script to use new debug build's name: node_g

15 years agoBuild static executable.
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)

15 years agoAdd command line arguments for accessing build flags.
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.

15 years agoAdd pkgconfig files to help with dll builds.
Ryan [Wed, 26 Aug 2009 23:11:16 +0000 (01:11 +0200)]
Add pkgconfig files to help with dll builds.

15 years agoFirst attempt at node.dlopen
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

15 years agobump version v0.1.7
Ryan [Thu, 27 Aug 2009 10:31:52 +0000 (12:31 +0200)]
bump version

15 years agoFix text on index.html
Ryan [Thu, 27 Aug 2009 10:23:53 +0000 (12:23 +0200)]
Fix text on index.html

15 years agoAPI: rename node.Process to node.ChildProcess
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.

15 years agolint
Ryan [Wed, 26 Aug 2009 20:03:19 +0000 (22:03 +0200)]
lint

15 years agoReplace onExit() with process.addListener("exit")
Ryan [Wed, 26 Aug 2009 16:51:04 +0000 (18:51 +0200)]
Replace onExit() with process.addListener("exit")

- Update documentation.

- Depreciation message for onExit().

15 years agoIntroduce 'process' object. Also is the global object.
Ryan [Wed, 26 Aug 2009 19:33:57 +0000 (21:33 +0200)]
Introduce 'process' object. Also is the global object.

15 years agoDepreciate onLoad
Ryan [Wed, 26 Aug 2009 16:22:00 +0000 (18:22 +0200)]
Depreciate onLoad

15 years agoSynchronous module loading.
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.

15 years agoAdd node.assert for internal debugging.
Ryan [Wed, 26 Aug 2009 16:01:54 +0000 (18:01 +0200)]
Add node.assert for internal debugging.

15 years agopromise.block() renamed to promise.wait()
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.

15 years agoImprove Promise documentation.
Ryan [Wed, 26 Aug 2009 09:25:53 +0000 (11:25 +0200)]
Improve Promise documentation.

15 years agoModify website layout.
Ryan [Tue, 25 Aug 2009 22:55:43 +0000 (00:55 +0200)]
Modify website layout.

15 years agoAPI: All EventEmitters emit "newListener" when listeners are added.
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?

15 years agoRestyle website/api.html. Now looks like the front page.
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.

15 years agoUpgrade v8 to 1.3.7
Ryan [Tue, 25 Aug 2009 11:47:18 +0000 (13:47 +0200)]
Upgrade v8 to 1.3.7

15 years agoFix coupling problems on OSX
Ryan [Tue, 25 Aug 2009 11:33:19 +0000 (13:33 +0200)]
Fix coupling problems on OSX

15 years agoAdd close() to coupling pump. Wasn't getting EOF.
Ryan [Tue, 25 Aug 2009 10:56:54 +0000 (12:56 +0200)]
Add close() to coupling pump. Wasn't getting EOF.

15 years agoExperimental support for Promise.block()
Ryan [Tue, 25 Aug 2009 02:10:20 +0000 (04:10 +0200)]
Experimental support for Promise.block()

15 years agoAPI: Remove buffered file object (node.File)
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.

15 years agoRefactor node.Process to take advantage of evcom_reader/writer.
Ryan [Mon, 24 Aug 2009 23:06:49 +0000 (01:06 +0200)]
Refactor node.Process to take advantage of evcom_reader/writer.

15 years agoIntroduce node.stdio
Ryan [Mon, 24 Aug 2009 18:25:24 +0000 (20:25 +0200)]
Introduce node.stdio

Remove old stdout, stderr, stdin objects.

15 years agoSpeed up test-tcp-throttle.js
Ryan [Mon, 24 Aug 2009 14:51:37 +0000 (16:51 +0200)]
Speed up test-tcp-throttle.js

15 years agoAdd sha1 hashes to ChangeLog
Ryan [Mon, 24 Aug 2009 11:02:55 +0000 (13:02 +0200)]
Add sha1 hashes to ChangeLog

15 years agoRemove outdated todo list
Ryan [Mon, 24 Aug 2009 11:00:45 +0000 (13:00 +0200)]
Remove outdated todo list

15 years agoAdd node node_g to gitignore.
Ryan [Mon, 24 Aug 2009 10:59:17 +0000 (12:59 +0200)]
Add node node_g to gitignore.

15 years agoUse flat object instead of array-of-arrays for HTTP headers.
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

15 years agobump version v0.1.6
Ryan [Sat, 22 Aug 2009 11:07:31 +0000 (13:07 +0200)]
bump version

15 years agoevcom upgrade - ignore sigpipe. remove error output.
Ryan [Sat, 22 Aug 2009 10:04:45 +0000 (12:04 +0200)]
evcom upgrade - ignore sigpipe. remove error output.

15 years agobump version v0.1.5
Ryan [Fri, 21 Aug 2009 16:03:15 +0000 (18:03 +0200)]
bump version

15 years agoBuggy connections could crash node.js. Now check connection before sending data every...
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.

15 years agoSync evcom
Ryan [Fri, 21 Aug 2009 12:53:58 +0000 (14:53 +0200)]
Sync evcom

15 years agoDon't Close TCP Connection/Server on destruction.
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.

15 years agoUpgrade v8 to 1.3.6
Ryan [Fri, 21 Aug 2009 11:13:04 +0000 (13:13 +0200)]
Upgrade v8 to 1.3.6

15 years agoRemove connnection.fullClose() from documentation.
Ryan [Wed, 19 Aug 2009 15:46:23 +0000 (17:46 +0200)]
Remove connnection.fullClose() from documentation.

This function was removed in 368ea93bfea5c666e13118e78d2cab937cb692f3.

15 years agoUpgrade evcom - fix API issues.
Ryan [Wed, 19 Aug 2009 15:28:41 +0000 (17:28 +0200)]
Upgrade evcom - fix API issues.

15 years agoUpgrade v8 to 1.3.5
Ryan [Wed, 19 Aug 2009 14:37:15 +0000 (16:37 +0200)]
Upgrade v8 to 1.3.5