00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:00:32  * brsonjoined
00:00:38  <bnoordhuis>hm, my patch is breaking pummel/test-regress-GH-892
00:00:40  <bnoordhuis>(node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
00:00:43  <bnoordhuis>(node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
00:00:46  <bnoordhuis>(node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
00:00:49  <bnoordhuis>RangeError: Maximum call stack size exceeded
00:00:52  <bnoordhuis>got 22216601 bytes
00:01:01  <bnoordhuis>i suspect that's a bug in the test rather than my patch...
00:01:10  <trevnorris>bnoordhuis: hm. from the last message you're probably filling up nextTickQueue
00:03:06  * kazuponquit (Ping timeout: 256 seconds)
00:03:17  <trevnorris>bnoordhuis: you could verify that by printing "process._tickInfoBox[0]" before it dies.
00:05:58  <bnoordhuis>trevnorris: looks like it comes from lib/net.js or lib/_stream_writable.js
00:06:11  <trevnorris>interesting.
00:06:34  <bnoordhuis>hah
00:06:41  <bnoordhuis>the test tries to upload a big file
00:06:52  <bnoordhuis>and it's going a lot faster now because throughput is so much better
00:07:09  <bnoordhuis>that's why it's hitting the 1,000 tick depth
00:07:20  <trevnorris>lol, awesome
00:07:44  <bnoordhuis>isaacs: ^ i guess that's your department
00:07:54  <trevnorris>hm. that's interesting.
00:08:37  <bnoordhuis>i guess the easy fix is to set process.maxTickDepth to something high in that test
00:08:39  <trevnorris>bnoordhuis: know which nextTick call is being over loaded?
00:08:58  <bnoordhuis>i'm not sure
00:09:15  <bnoordhuis>let me add a console.trace
00:09:16  <trevnorris>ok. i'm going to throw on the patch and track it down.
00:09:52  <trevnorris>because if you're getting the RangeError it seems like the nextTickQueue array is overflowing. which is ridiculously difficult to do.
00:09:53  <bnoordhuis>let me push the latest version
00:10:21  <bnoordhuis>trevnorris: pull my v0.10 branch, it's the newest commit
00:11:58  <trevnorris>bnoordhuis: thanks. need to run, but i'll check it out tonight. that's a really strange bug.
00:12:06  <bnoordhuis> at onwrite (_stream_writable.js:258:15)
00:12:06  <bnoordhuis> at WritableState.onwrite (_stream_writable.js:97:5)
00:12:06  <bnoordhuis> at Socket._write (net.js:634:5)
00:12:06  <bnoordhuis> at doWrite (_stream_writable.js:219:10)
00:12:06  <bnoordhuis> at writeOrBuffer (_stream_writable.js:209:5)
00:12:08  <bnoordhuis> at Socket.Writable.write (_stream_writable.js:180:11)
00:12:49  * stagasquit (Read error: Connection reset by peer)
00:13:14  <bnoordhuis>guess i'll land the patch since the bug is elsewhere
00:14:15  <MI6>joyent/node: Ben Noordhuis v0.10 * fda2b31 : http: save roundtrips, convert buffers to strings - http://git.io/jT-B2g
00:14:58  <isaacs>bnoordhuis: yeah, you can also hit this if you set the write chunk size to 1 byte or something
00:15:49  <isaacs>bnoordhuis: it has to be fixed anyway. i've got a bug assigned to me about this
00:15:58  <bnoordhuis>oh okay, cool
00:16:51  * sblomquit (Ping timeout: 256 seconds)
00:17:59  * trevnorris&
00:18:00  <LOUDBOT>WHY DOES MY MOUTH.. FEEL SO BAD.. WHY DOES MY THROAT.. FEEL SO BAD..
00:18:55  * c4milojoined
00:19:19  <bnoordhuis>haha LOUDBOT
00:23:28  <tjfontaine>bnoordhuis: so were you punting on #5533 until tomorrow?
00:23:38  <tjfontaine>s/tomorrow/later today/ I guess now :)
00:25:42  <MI6>nodejs-v0.10: #206 UNSTABLE linux-x64 (1/585) osx-ia32 (1/585) smartos-x64 (1/585) smartos-ia32 (1/585) http://jenkins.nodejs.org/job/nodejs-v0.10/206/
00:27:59  * AvianFluuuuuuchanged nick to AvianFlu
00:28:37  * qardquit (Quit: Leaving.)
00:31:10  <MI6>nodejs-v0.10-windows: #35 UNSTABLE windows-ia32 (8/585) windows-x64 (9/585) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/35/
00:34:42  <bnoordhuis>tjfontaine: one nit but lgtm
00:35:06  <tjfontaine>bnoordhuis: ok, thanks
00:35:24  * indexzerojoined
00:37:41  * TooTallNatequit (Quit: Computer has gone to sleep.)
00:40:37  * amartensquit (Quit: Leaving.)
00:45:16  * mikealquit (Quit: Leaving.)
00:50:23  * inolenquit (Quit: Leaving.)
00:52:19  * TooTallNatejoined
00:58:49  * kazuponjoined
01:03:44  * kazuponquit (Ping timeout: 256 seconds)
01:09:09  * indexzeroquit (Quit: indexzero)
01:14:16  * bnoordhuisquit (Remote host closed the connection)
01:18:40  * dshaw_quit (Quit: Leaving.)
01:27:14  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
01:29:09  * defunctzombiechanged nick to defunctzombie_zz
01:29:34  * timoxleyjoined
01:31:40  * icarotquit (Read error: Operation timed out)
01:36:28  * mikealjoined
01:45:54  * inolenjoined
01:52:40  <isaacs>so, this http refactoring is starting to look kinda alright.
01:53:05  <isaacs>downsides: request breaks, and i'm pretty sure i'm screwing the old http.createClient-style interface, but I don't think anyone actually uses that.
01:57:40  * dapjoined
01:58:46  * timoxleyquit (Quit: Textual IRC Client: www.textualapp.com)
01:59:24  * kazuponjoined
02:00:41  * timoxleyjoined
02:04:18  * kazuponquit (Ping timeout: 264 seconds)
02:09:52  * brsonquit (Ping timeout: 252 seconds)
02:39:42  * kazuponjoined
02:45:06  * kazuponquit (Ping timeout: 264 seconds)
03:05:47  * kevinswiberquit (Remote host closed the connection)
03:06:23  * kevinswiberjoined
03:10:43  <tjfontaine>the createClient interface was already deprecated right?
03:10:52  * Kjerskiquit (Read error: Operation timed out)
03:10:55  * kevinswiberquit (Ping timeout: 252 seconds)
03:11:20  <tjfontaine>isaacs: you mean request the module breaks?
03:14:30  * Kjerskijoined
03:15:00  * mmalecki[out]changed nick to mmalecki
03:15:09  <MI6>joyent/node: Timothy J Fontaine master * f8193ab : timers: use uv_now instead of Date.now - http://git.io/c2QRQA
03:18:51  * dshaw_joined
03:23:42  * dshaw_quit (Ping timeout: 256 seconds)
03:25:19  <MI6>nodejs-master: #232 UNSTABLE smartos-x64 (3/600) osx-x64 (1/600) http://jenkins.nodejs.org/job/nodejs-master/232/
03:27:23  <MI6>joyent/node: Timothy J Fontaine master * 17e696c : systemtap: add tapset for node user probes (+1 more commits) - http://git.io/Hg-Akw
03:28:19  * brsonjoined
03:29:02  <tjfontaine>wolfeidau: that systemtap stuff is now in master
03:29:36  <tjfontaine>I'm not sure if anyone wants to see that cherry-picked back onto v0.10
03:34:36  <MI6>nodejs-master-windows: #41 UNSTABLE windows-x64 (16/600) windows-ia32 (13/600) http://jenkins.nodejs.org/job/nodejs-master-windows/41/
03:37:12  <MI6>nodejs-master: #233 UNSTABLE smartos-x64 (2/600) osx-x64 (4/600) linux-ia32 (1/600) osx-ia32 (1/600) http://jenkins.nodejs.org/job/nodejs-master/233/
03:40:41  * icarotjoined
03:45:54  * mikealquit (Quit: Leaving.)
03:46:42  * mikealjoined
03:50:04  * defunctzombie_zzchanged nick to defunctzombie
03:54:25  <MI6>nodejs-master-windows: #42 UNSTABLE windows-x64 (16/600) windows-ia32 (15/600) http://jenkins.nodejs.org/job/nodejs-master-windows/42/
03:57:01  * normanmjoined
04:00:31  <wolfeidau>tjfontaine: awesome! I will give it a shot later and hassle you :)
04:01:09  <tjfontaine>wolfeidau: there shouldn't be any real surprises from the last time, or at least I hope so anyway
04:01:32  <wolfeidau>Yeah i am running 13.04 so i want to see if it is easier now
04:01:57  * mikealquit (Quit: Leaving.)
04:05:18  * kazuponjoined
04:13:30  <tjfontaine>tomorrow is going to be the accumulated master-test-failure cleanup day
04:14:32  <MI6>libuv-master: #96 UNSTABLE osx (1/189) windows (3/189) smartos (2/188) http://jenkins.nodejs.org/job/libuv-master/96/
04:16:17  * mikealjoined
04:18:35  * indexzerojoined
04:28:08  <MI6>libuv-node-integration: #65 UNSTABLE linux-ia32 (1/600) osx-x64 (1/600) osx-ia32 (1/600) smartos-x64 (6/600) http://jenkins.nodejs.org/job/libuv-node-integration/65/
04:42:00  <wolfeidau>tjfontaine: did you have any idea whether that mac address thing will ever get in?
04:42:15  <tjfontaine>wolfeidau: for os.networkInterfaces()?
04:42:32  <wolfeidau>yea
04:42:34  <wolfeidau>yeah
04:42:42  <tjfontaine>did that not already?
04:42:56  <tjfontaine>if not the uv stuff is already there and in master, just need to review the node side
04:44:03  <wolfeidau>so anoying they removed search of pull requests :(
04:44:07  <tjfontaine>oh wait, no netmask was what went through
04:44:12  <tjfontaine>it's still there it's at the top now
04:44:41  <wolfeidau>https://github.com/joyent/libuv/pull/502
04:44:43  <tjfontaine>ok, so joyent/libuv#502 needs to land
04:44:47  <wolfeidau>This is still open
04:44:57  <tjfontaine>then joyent/node#4339 can be
04:45:24  <tjfontaine>I'll try and get it through the pipeline
04:45:46  <wolfeidau>tjfontaine: awesome!
04:46:16  <wolfeidau>tjfontaine: chilts will be stoked as his id generator will then work without dependencies in node!
04:46:42  <tjfontaine>heh
04:46:42  <wolfeidau>he is currently using my module, which only works in OSX / Linux / Solaris
04:46:54  <tjfontaine>plumbing ifconfig?
04:46:58  <wolfeidau>no
04:47:07  <wolfeidau>calling native apis
04:47:10  <tjfontaine>ah
04:47:23  <wolfeidau>but the code in that pull request is a TON better than mine
04:47:36  <wolfeidau>and has windows support
04:47:39  <tjfontaine>there are some interesting style issues
04:48:18  <wolfeidau>ok there are quite a few samples, I believe you can use the same code in linux/bsd/osx/solaris if you structure it correctly
04:48:36  <tjfontaine>I'll see if I can sneak this into ben's cycles tomorrow/today, but hopefully over the weekend at the latest
04:48:39  <wolfeidau>as they all have some form of BSD heritage
04:48:42  <tjfontaine>nod
04:48:53  <wolfeidau>yeah awesome, thanks mate
04:49:27  <wolfeidau>Main reason is to support id generation schemes like snowflake and such
04:49:36  <tjfontaine>this was on my hit list a couple weeks ago after someone created a new issue
04:49:50  <wolfeidau>Yeah it is very handy
04:49:52  * timoxleyquit (Quit: Computer has gone to sleep.)
04:50:22  <wolfeidau>And repeats a lot of work already in that module within libuv
04:50:57  <tjfontaine>ya, beyond this though I'm not sure there's anything else that should be included
04:51:09  <tjfontaine>netmask went in last week or so
05:06:09  * mikealquit (Quit: Leaving.)
05:08:31  <isaacs>tjfontaine: yeah
05:08:33  <isaacs>request the module
05:08:50  <isaacs>tjfontaine: once it's closer to mergeable, i'll package up the new Agent for request to use
05:09:13  <tjfontaine>nod, is this in a branch on github that I can look at?
05:10:02  <tjfontaine>ah, http-better
05:16:39  <isaacs>yeah
05:16:58  <isaacs>just landed a fix to make https pool sockets
05:17:57  * brsonquit (Quit: leaving)
05:21:10  * mikealjoined
05:21:57  * timoxleyjoined
05:28:07  * mikealquit (Quit: Leaving.)
05:30:00  * paddybyersjoined
05:31:15  * kazuponquit (Remote host closed the connection)
05:34:42  * kazuponjoined
05:35:42  <trevnorris>isaacs: you still floating around?
05:38:09  * st_lukequit (Remote host closed the connection)
05:41:22  * mikealjoined
05:43:49  * icarotquit (Ping timeout: 256 seconds)
05:45:28  * mikealquit (Client Quit)
05:50:03  * dominictarrquit (Quit: dominictarr)
05:51:45  * kazuponquit (Remote host closed the connection)
05:52:48  * kazuponjoined
05:56:36  * dapquit (Quit: Leaving.)
05:59:00  * mikealjoined
06:09:42  * defunctzombiechanged nick to defunctzombie_zz
06:10:56  * icarotjoined
06:20:43  * wmiljoined
06:25:12  * wmilquit (Ping timeout: 256 seconds)
06:26:04  * indexzeroquit (Quit: indexzero)
06:36:14  * AvianFluquit (Read error: Connection reset by peer)
06:37:35  * AvianFlujoined
06:42:52  * timoxleyquit (Quit: Computer has gone to sleep.)
06:59:35  * timoxleyjoined
07:01:22  * ral_changed nick to ral
07:01:34  * ralquit (Changing host)
07:01:34  * raljoined
07:05:32  * csaohjoined
07:06:08  * stagasjoined
07:07:35  * `3rdEdenjoined
07:08:02  * indexzerojoined
07:11:36  * csaohquit (Quit: csaoh)
07:12:29  * kuebkjoined
07:12:41  * kuebkpart
07:14:34  * icarotquit (Ping timeout: 252 seconds)
07:16:18  * icarotjoined
07:19:35  * dshaw_1joined
07:23:55  * dshaw_1quit (Ping timeout: 252 seconds)
07:25:37  * timoxleyquit (Quit: Computer has gone to sleep.)
07:29:41  * wmiljoined
07:30:28  * syskkjoined
07:30:31  <syskk>> Assertion failed: (!!(events & UV__IO_READ) ^ !!(events & UV__IO_WRITE)), function uv__stream_io, file ../deps/uv/src/
07:30:31  <syskk>unix/stream.c, line 732.
07:30:38  <syskk>anyone knows why I'm getting this error?
07:31:22  <syskk>for some reason, i only see that error when launching my node.js server from Vim (!node server.js) but I dont get it when i launch from bash
07:33:32  <syskk>I'm using node 0.8.9
07:34:34  <syskk>https://github.com/joyent/libuv/blob/node-v0.8.9/src/unix/stream.c#L732
07:34:56  * csaohjoined
07:35:16  <trevnorris>syskk: may want to check out https://github.com/joyent/node/issues/5353
07:35:44  <trevnorris>though i'd first suggest trying out the latest stable.
07:36:43  <syskk>thanks!
07:37:05  <syskk>I know, but I believe I have some dependencies that are incompatible
07:41:30  * icarotquit (Ping timeout: 264 seconds)
07:41:56  <syskk>anyways, glad to know it was a bug in libuv and not in my code eheh :)
07:42:25  * icarotjoined
07:42:42  * rendarjoined
07:43:04  * wmilquit (Remote host closed the connection)
07:43:21  * wmiljoined
07:45:27  * timoxleyjoined
07:48:54  * dominictarrjoined
07:50:16  * dominictarrquit (Read error: Connection reset by peer)
07:53:53  * dominictarrjoined
08:01:04  * indexzeroquit (Quit: indexzero)
08:03:21  * indexzerojoined
08:03:58  * indexzeroquit (Client Quit)
08:06:02  * AvianFluquit (Read error: Connection reset by peer)
08:06:36  * AvianFlujoined
08:09:50  * icarotquit (Remote host closed the connection)
08:10:28  * wmilquit (Remote host closed the connection)
08:21:02  * wmiljoined
08:31:55  * wmilquit (Remote host closed the connection)
08:35:57  * AvianFluquit (Read error: Connection reset by peer)
08:36:31  * AvianFlujoined
08:54:23  * chobie2quit (Ping timeout: 252 seconds)
08:56:06  * chobie2joined
09:01:56  * hzjoined
09:03:02  * hzquit (Client Quit)
09:03:29  * dominictarrquit (Quit: dominictarr)
09:03:57  * hzjoined
09:07:27  * chobie2quit (Ping timeout: 258 seconds)
09:17:41  * chobie2joined
09:21:28  * csaohquit (Quit: csaoh)
09:25:44  * dominictarrjoined
09:25:49  * csaohjoined
09:25:57  * AvianFluquit (Remote host closed the connection)
09:50:03  * dominictarrquit (Quit: dominictarr)
10:25:01  * syskkquit (Read error: Connection reset by peer)
10:25:15  * syskkjoined
10:25:15  * syskkquit (Changing host)
10:25:15  * syskkjoined
10:26:23  * kazuponquit (Read error: Connection reset by peer)
10:26:34  * kazuponjoined
10:26:40  * timoxleyquit (Quit: Computer has gone to sleep.)
10:39:06  * timoxleyjoined
10:43:03  * csaohquit (Quit: csaoh)
10:45:51  * csaohjoined
10:48:27  * kazuponquit (Remote host closed the connection)
10:57:07  * csaohquit (Quit: csaoh)
10:59:28  * csaohjoined
11:00:50  * Linus_joined
11:17:27  * piscisaureus_joined
11:20:15  * dshaw_joined
11:20:16  * syskkquit (Quit: syskk)
11:23:39  * dshaw_quit (Read error: Operation timed out)
11:24:50  <piscisaureus_>ola
11:33:13  * rvaggquit (Quit: ta ta)
11:36:12  * rvaggjoined
11:49:31  * stagasquit (Read error: Connection reset by peer)
11:59:07  * kazuponjoined
12:03:52  * kazuponquit (Ping timeout: 252 seconds)
12:04:19  <indutny>ola
12:04:54  * kazuponjoined
12:08:43  * kazuponquit (Read error: Connection reset by peer)
12:10:14  * kazuponjoined
12:23:41  * benoitcquit (Excess Flood)
12:25:56  * benoitcjoined
12:30:30  * kazuponquit (Remote host closed the connection)
12:40:09  <MI6>joyent/libuv: piscisaureus created branch reviewme - http://git.io/JhKlgw
12:40:23  <piscisaureus_>bnoordhuis or indutny: review ? ^
12:40:51  <indutny>oh gosh
12:40:54  <indutny>lgtm
12:44:05  <MI6>joyent/libuv: Bert Belder reviewme * a56991f : unix: fix assertion failure on signal pipe overflow - http://git.io/7FvW-w
12:45:04  <MI6>joyent/libuv: Bert Belder reviewme * c5d570d : unix: fix assert on signal pipe overflow - http://git.io/yR8unw
12:46:20  <MI6>joyent/libuv: Bert Belder v0.10 * c5d570d : unix: fix assert on signal pipe overflow - http://git.io/--lzTA
12:48:31  <MI6>libuv-v0.10: #70 FAILURE smartos (2/186) windows (4/187) http://jenkins.nodejs.org/job/libuv-v0.10/70/
12:48:48  * bnoordhuisjoined
12:49:04  <piscisaureus_>nodejs.org down?
12:49:50  <piscisaureus_>hmm it seems unreachable
12:52:10  <MI6>libuv-v0.10-gyp: #35 UNSTABLE smartos-x64 (2/186) windows-x64 (3/187) smartos-ia32 (2/186) windows-ia32 (4/187) http://jenkins.nodejs.org/job/libuv-v0.10-gyp/35/
12:52:11  <bnoordhuis>joyent.com as well
12:52:28  <bnoordhuis>oh, works again
12:52:38  * timoxleyquit (Quit: Computer has gone to sleep.)
12:53:10  <piscisaureus_>logs.nodejs.org still work so not their entire cloud is affected
12:53:50  <piscisaureus_>however nodejs.org and joyent.com are still unreachable here and nodejitsu.com is very slow
12:59:24  <bnoordhuis>piscisaureus_: do you know how node-inspector implements watch expressions? i don't think that's part of v8's debugger protocol
13:02:16  <bnoordhuis>it re-evaluates all expressions after each step, it seems?
13:15:32  * loladirojoined
13:17:05  * timoxleyjoined
13:23:48  * timoxleyquit (Quit: Computer has gone to sleep.)
13:37:17  * kevinswiberjoined
13:39:44  * pachetjoined
13:40:57  * kazuponjoined
13:43:57  * stagasjoined
13:45:55  * kazuponquit (Ping timeout: 256 seconds)
14:10:21  <piscisaureus_>bnoordhuis: yeah I think so. We could get away with assigning the object of interest to some global
14:12:27  <piscisaureus_>bnoordhuis: that would work e.g. if you want to watch `b.c` then assign b to some global and evaluate "global._watches[some_key].c"
14:13:11  <piscisaureus_>bnoordhuis: it can't work for top-level variables though - you could watch the current value but not the variable itself
14:17:00  * AvianFlujoined
14:22:45  * kazuponjoined
14:27:25  <piscisaureus_>bnoordhuis: I also think that the v8 engine can assign an object representating the frame scope, namely Debug.MakeMirror.
14:27:51  <piscisaureus_>s/assign/create/
14:28:03  * timoxleyjoined
14:28:22  <piscisaureus_>bnoordhuis: however that means we have to enable --expose-debug-as by default or have another mechanism to turn it on when a debugger attaches
14:33:37  * mikealquit (Quit: Leaving.)
14:42:24  <isaacs>exciting: https://github.com/joyent/node/issues/5504
14:42:42  <isaacs>i think this is the root cause of a few other random issues
14:43:24  * kazuponquit (Remote host closed the connection)
14:51:33  * timoxleyquit (Quit: Computer has gone to sleep.)
14:54:43  * bajtosjoined
15:02:20  * bnoordhuisquit (Ping timeout: 252 seconds)
15:02:31  * bnoordhuisjoined
15:03:04  * kazuponjoined
15:03:19  <bnoordhuis>back. wireless died
15:04:19  * kellabytequit (Quit: Quit)
15:05:16  <bajtos>bnoordhuis: do you have time to discuss "watch object" thing?
15:05:21  <bnoordhuis>sure, shoot
15:05:33  <bajtos>here, or in #node.js or in private?
15:05:39  <bnoordhuis>let's do it here
15:05:42  <bajtos>ok
15:06:06  <bajtos>your assumption was correct, V8 does not support watch - it's inspector that re-evaluates the watch everytime a breakpoint is hit
15:06:07  <bnoordhuis>#node.js is not very conducive to informed discourse
15:06:52  <bnoordhuis>bajtos: right. go on
15:06:57  <bajtos>now to 'foo.bar.baz' scenario: my concern is that if we create a mirror of foo and somebody changes foo value later, we will be watching wrong object
15:08:01  <bajtos>otherwise your idea seems ok to me.
15:08:09  <bnoordhuis>yeah, i guess you're right
15:08:26  <bnoordhuis>i'm not sure if there is a way around that
15:08:29  <bajtos>can we create a mirror of a scope?
15:08:42  <bajtos>I mean it's already happening when you send v8 debug request 'scopes', right?"
15:08:53  <bnoordhuis>well... let me check
15:09:18  <bajtos>I don't know if the mirror object will behave correctly after we resume execution
15:11:05  * kellabytejoined
15:11:46  <bnoordhuis>i confess i'm not sure how the debugger's concept of a scope works
15:11:58  <bnoordhuis>looks like it's just an int wrapped in a js object
15:13:02  <bnoordhuis>if the int refers to a stack frame, then they're probably only valid for as long as the stack frame exists, i.e. until its function returns
15:13:17  * timoxleyjoined
15:14:18  <bajtos>but don't scopes (especially closures) live longer? I mean closures must be stored somewhere inside V8, right?
15:14:55  * mikealjoined
15:15:27  <bnoordhuis>bajtos: yeah, they live on the v8 heap
15:15:43  <bnoordhuis>well, mostly anyways - v8 sometimes inlines values, i think
15:17:11  * mikealquit (Client Quit)
15:17:41  <bajtos>bnoordhuis: so if we assumed that they live on heap and we can get a handle of them, then we should be able to evaluate a watch using the variable value stored in the closure
15:19:08  <bnoordhuis>but what if it's not stored on the heap?
15:19:33  <bajtos>then it must be stored somewhere else. what other storages do V8 have?
15:19:39  <bnoordhuis>okay, let's take a step back
15:20:03  <bnoordhuis>what you want is to watch the contents of the 'foo' stack/heap/whatever slot
15:20:21  <bnoordhuis>rather than take the value of foo once and watch what it points too
15:20:34  <bajtos>maybe watch is misleading, I want to evaluate it's value from a different call frame
15:20:45  <bajtos>yes
15:20:56  * dshaw_joined
15:21:29  <piscisaureus_>bajtos: you'd want to assign a scopemirror to a global I think
15:22:04  <bajtos>what is scopemirror?
15:22:26  <bnoordhuis>a mirror for scopes :)
15:22:43  <bnoordhuis>you can use it to capture a function scope
15:23:03  <bnoordhuis>i'm not 100% sure if it'll work for what you want but maybe it does
15:23:58  <bajtos>it sounds like something we can try
15:24:45  <bnoordhuis>dinner, biab
15:24:55  <bajtos>bnoordhuis: enjoy your meal ;)(
15:24:59  <bnoordhuis>thanks :)
15:25:08  * dshaw_quit (Ping timeout: 240 seconds)
15:36:58  * kazuponquit (Remote host closed the connection)
15:38:53  * `3rdEdenquit (Quit: OMG IR PLAYING CHEF COOK.)
15:43:59  * kazuponjoined
15:46:58  * kevinswiberquit (Remote host closed the connection)
15:47:34  * kevinswiberjoined
15:48:24  * mikealjoined
15:49:15  * kenperkinsquit (Ping timeout: 260 seconds)
15:49:41  * timoxleyquit (Quit: Computer has gone to sleep.)
15:49:57  * kenperkinsjoined
15:52:07  * kevinswiberquit (Ping timeout: 252 seconds)
15:53:41  * hzquit (Ping timeout: 248 seconds)
15:53:49  * hzjoined
15:53:49  * hzquit (Changing host)
15:53:49  * hzjoined
15:54:40  * txdv_quit (Remote host closed the connection)
15:54:54  * kazuponquit (Remote host closed the connection)
15:57:54  * txdvjoined
16:00:54  * mikealquit (Ping timeout: 245 seconds)
16:00:56  <MI6>libuv-v0.10: #71 UNSTABLE smartos (2/186) windows (3/187) http://jenkins.nodejs.org/job/libuv-v0.10/71/
16:07:29  * nerioquit (Ping timeout: 248 seconds)
16:08:31  * TooTallNatejoined
16:12:31  * bajtosquit (Quit: bajtos)
16:14:25  <MI6>libuv-node-integration: #66 UNSTABLE linux-ia32 (1/585) smartos-ia32 (1/585) osx-x64 (2/585) osx-ia32 (2/585) linux-x64 (1/585) smartos-x64 (1/585) http://jenkins.nodejs.org/job/libuv-node-integration/66/
16:18:52  * bajtosjoined
16:22:09  * stagasquit (Read error: Connection reset by peer)
16:24:54  * dapjoined
16:28:46  * mikealjoined
16:29:30  * mikealquit (Client Quit)
16:39:49  * kazuponjoined
16:41:46  * csaohquit (Quit: csaoh)
16:46:59  * inolenquit (Quit: Leaving.)
16:48:10  * amartensjoined
16:51:05  * TooTallNatequit (Quit: Computer has gone to sleep.)
17:01:44  * loladiroquit (Ping timeout: 245 seconds)
17:02:41  * loladirojoined
17:04:32  * TooTallNatejoined
17:05:30  * bajtosquit (Quit: bajtos)
17:08:00  * kevinswiberjoined
17:08:09  * leonvvjoined
17:09:56  * mikealjoined
17:12:30  * bajtosjoined
17:13:18  * brsonjoined
17:20:16  * st_lukejoined
17:27:56  * inolenjoined
17:28:01  * `3rdEdenjoined
17:30:06  * saghulquit (Ping timeout: 264 seconds)
17:30:31  * defunctzombie_zzchanged nick to defunctzombie
17:36:19  <trevnorris>indutny: on 5520, if cleaning up the ring on connection close isn't the answer, when do you think it should happen?
17:38:06  * wmiljoined
17:42:18  * loladiroquit (Quit: loladiro)
17:43:43  * kazuponquit (Remote host closed the connection)
17:44:30  * mjr__joined
17:48:45  * wmilquit (Remote host closed the connection)
17:50:11  * `3rdEdenquit (Quit: brb device switch)
17:53:21  * `3rdEdenjoined
18:04:40  * brsonquit (Ping timeout: 252 seconds)
18:13:58  * saghuljoined
18:18:45  * pachetquit (Quit: leaving)
18:20:50  * stagasjoined
18:23:43  <indutny>trevnorris: on read
18:23:51  <trevnorris>indutny: thanks
18:23:54  <indutny>when ring gets empty or near empty
18:24:00  <indutny>it should shrink
18:24:03  <indutny>to a couple of buffers
18:24:34  * normanmquit (Quit: Computer has gone to sleep.)
18:26:14  * indexzerojoined
18:26:22  <trevnorris>man, still don't understand how to use these new WeakReferenceCallbacks
18:26:35  <trevnorris>only one usage in tests, and it's strange
18:27:34  * abraxasjoined
18:32:30  * abraxasquit (Ping timeout: 264 seconds)
18:34:23  * brsonjoined
18:35:35  * mikealquit (Quit: Leaving.)
18:42:01  * indexzeroquit (Quit: indexzero)
18:59:32  <trevnorris>is there a way to do a declaration like: "Persistent<Object> some_var(node_isolate, Object::New());"
18:59:39  <trevnorris>where some_var already exists?
19:00:21  <trevnorris>or do you have to do something like "Persistent<Object> some_tmp(node_isolate, Object::New());" then "some_var = some_tmp;"?
19:05:45  * defunctzombiechanged nick to defunctzombie_zz
19:06:41  * defunctzombie_zzchanged nick to defunctzombie
19:11:47  * st_lukequit (Read error: Connection reset by peer)
19:12:15  * st_lukejoined
19:12:22  * loladirojoined
19:15:31  * loladiroquit (Client Quit)
19:17:24  * bnoordhu1sjoined
19:18:09  * defunctzombiechanged nick to defunctzombie_zz
19:20:02  <trevnorris>if anyone gets bored: 5540
19:20:04  * trevnorris&
19:20:04  <LOUDBOT>[MCNULTY GETS ON A BOAT FOR SOME REASON]
19:24:16  * mikealjoined
19:29:19  * mikealquit (Ping timeout: 264 seconds)
19:30:24  * indexzerojoined
19:34:01  <bnoordhu1s>https://github.com/v8/v8/commit/aac1cad - "This is done as a courtesy to node.js, as its current stable version (0.10)
19:34:06  <bnoordhu1s>relies on V8 version 3.14.5."
19:34:10  <bnoordhu1s>that's sweet of them :)
19:34:33  <bnoordhu1s>we cannot _not_ upgrade now :)
19:35:56  * amartensquit (Quit: Leaving.)
19:36:34  * leonvvquit (Remote host closed the connection)
19:36:57  * bnoordhuisquit (Quit: leaving)
19:39:49  * bajtosquit (Quit: bajtos)
19:44:42  * kazuponjoined
19:49:56  * bnoordhu1squit (Ping timeout: 240 seconds)
19:51:56  * kazuponquit (Ping timeout: 240 seconds)
20:04:11  * bnoordhuisjoined
20:06:22  * amartensjoined
20:10:04  * dshaw_joined
20:13:00  * st_lukequit (Remote host closed the connection)
20:15:01  * amartensquit (Ping timeout: 252 seconds)
20:19:22  * kazuponjoined
20:23:40  * kazuponquit (Ping timeout: 260 seconds)
20:23:56  * mikealjoined
20:24:03  * amartensjoined
20:27:54  * abraxasjoined
20:31:58  * abraxasquit (Ping timeout: 240 seconds)
20:33:13  * bnoordhuisquit (Ping timeout: 276 seconds)
20:37:34  * piscisaureus_quit (Ping timeout: 245 seconds)
20:39:34  <trevnorris>heh, that's awesome
20:39:55  * `3rdEdenquit (Remote host closed the connection)
20:43:05  <tjfontaine>isaacs: like this? https://github.com/tjfontaine/node/compare/joyent:v0.10...v8up or did you want different commit message for the update?
21:00:38  * indexzeroquit (Quit: indexzero)
21:02:40  <tjfontaine>https://gist.github.com/tjfontaine/5639397
21:07:03  <MI6>joyent/node: Timothy J Fontaine v0.10 * e238583 : v8: re-apply floating patches (+2 more commits) - http://git.io/eKkdnA
21:09:26  * piscisaureus_joined
21:09:37  <isaacs>\o/
21:09:47  <dostoyevsky>Is there a way to get more info on an uv_handle_t?
21:10:08  <dostoyevsky>I experience hangs in libuv and want to dump handles via uv_walk
21:11:05  <tjfontaine>you have the type so you could use a switch to cast and inspect further
21:11:40  <dostoyevsky>Yeah, but e.g. in case of uv_tcp_t I can't find any useful info... it's all in private fields it seesm
21:12:11  <dostoyevsky>If I just could get the port and ip I would be happy
21:12:40  <dostoyevsky>uv__print_handles
21:14:27  <tjfontaine>isn't that what uv_tcp_getpeername is for?
21:14:38  <dostoyevsky>tjfontaine: Let me check!
21:17:47  <dostoyevsky>tjfontaine: Seems so! My libuv seems to be compiled without uv_printf_all_handles() which might be helpful as well
21:18:28  * hzquit
21:19:40  * kazuponjoined
21:21:03  <MI6>nodejs-v0.10: #207 UNSTABLE linux-x64 (1/585) smartos-x64 (5/585) smartos-ia32 (6/585) linux-ia32 (1/585) http://jenkins.nodejs.org/job/nodejs-v0.10/207/
21:24:31  * kazuponquit (Ping timeout: 264 seconds)
21:27:05  <MI6>nodejs-v0.10-windows: #36 UNSTABLE windows-ia32 (9/585) windows-x64 (11/585) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/36/
21:28:10  * paddybyersquit (Ping timeout: 252 seconds)
21:29:25  * mordy_joined
21:30:03  <mordy_>question: if i call uv_read_stop from the alloc_cb (still returning a valid buffer) does the next read callback still get invoked?
21:32:00  <tjfontaine>interesting, is this how you're trying to handle back pressure?
21:32:50  <mordy_>back pressure meaning not allocating too big a read buffer?
21:33:52  <tjfontaine>oh no, I was thinking you were using a free list of sorts and if all your buffers are in use you paused reading until one free'd
21:34:37  <mordy_>tjfontaine: nah, simpler here. i have an iovec[n] and i'm iterating between them. when there are no more iovecs, i want the read to stop
21:34:45  <mordy_>i guess this is sort of a similar concept
21:35:04  <dostoyevsky>mordy_: In my version of libuv it is...
21:35:10  <dostoyevsky>https://github.com/joyent/libuv/issues/752
21:35:26  <dostoyevsky>The issue is still open
21:38:04  <mordy_>hrm, so i guess i need to set a flag from within the alloc_cb and then call uv_close from the read_cb if the flag is set
21:38:14  <mordy_>i don't have the problem of returning an empty buffer though
21:38:17  <dostoyevsky>mordy_: Yeah, that's how I do it
21:38:38  * bnoordhuisjoined
21:41:16  * paddybyersjoined
21:43:01  * bnoordhuisquit (Ping timeout: 248 seconds)
21:43:21  * kevinswiberquit (Remote host closed the connection)
21:43:55  * kevinswiberjoined
21:46:18  * kevinswi_joined
21:46:38  * kevinswiberquit (Read error: Connection reset by peer)
21:53:23  * Benviequit (Ping timeout: 256 seconds)
21:57:42  * kevinswi_quit (Remote host closed the connection)
21:58:04  * bnoordhuisjoined
21:58:15  * kevinswiberjoined
22:02:41  * kevinswiberquit (Ping timeout: 248 seconds)
22:05:27  * trevnorrisfg
22:07:06  <tjfontaine>trevnorris: https://github.com/joyent/node/commit/2cad7a69ce3228b1e40f3bf8117ca739a5d6929d why should line 221 and 222 not throw? because it shouldn't translate into a real write?
22:08:21  <trevnorris>tjfontaine: i dunno. it's been there for a long time. it was because the logic did check for string length before checking for offset, and would return immediately.
22:08:34  <trevnorris>tjfontaine: i've removed that in my master branch buffer changes.
22:08:44  * c4miloquit (Remote host closed the connection)
22:09:05  <bnoordhuis>__main__.ClientLoginError: HTTP Error 403: Forbidden <- *sigh*
22:09:22  <bnoordhuis>always happen when i want to upload something to codereview.chromium.org with my @bnoordhuis.nl address
22:09:33  <tjfontaine>trevnorris: I'm just trying to decide if this failure on master is something that is wrong or right (hard to not write there)
22:10:15  * rendarquit
22:10:20  <trevnorris>tjfontaine: once my buffer changes land it should definitely fail, and the tests reflect that.
22:11:31  <tjfontaine>well, even if the length of what is passed in is 0?
22:11:55  <trevnorris>i'm not going to add an extra check for a case that developers aren't going to use.
22:12:12  <tjfontaine>well it used to pass, so it's possible people are relying on that functionality
22:12:26  <tjfontaine>specifically write('', beyondBufferLength)
22:13:43  <trevnorris>then they can file a bug and I'll consider it.
22:13:49  <trevnorris>but it's not a legitimate use case
22:13:51  <tjfontaine>hehe
22:15:02  <trevnorris>heh: "Buffer(5).write('', Infinity)" -> "TypeError: Unknown encoding: infinity"
22:15:13  <tjfontaine>that's cute
22:17:20  <tjfontaine>I see no general problem with `if(!string || !string.length) return` but I agree that you're probably doing it wrong if you've got to here like that, I'd probably want a stronger check on string being truthy
22:18:54  <trevnorris>following the decision from 5323 any string that is expected to be an argument should be coerced with + ''
22:19:13  <tjfontaine>nod
22:19:31  <trevnorris>specifically http://git.io/uvESVQ
22:20:30  * kazuponjoined
22:20:52  <isaacs>tjfontaine: review? https://github.com/joyent/node/pull/5541
22:23:02  * mikealquit (Quit: Leaving.)
22:23:57  <tjfontaine>isaacs: also lgtm
22:25:08  <MI6>joyent/node: isaacs v0.10 * a2f93cf : http: Return true on empty writes, not false - http://git.io/mj2Gzg
22:25:27  * kazuponquit (Ping timeout: 260 seconds)
22:28:01  * paddybyersquit (Ping timeout: 240 seconds)
22:28:04  <bnoordhuis>fucking codereview, why is always such a pain to upload patches?
22:29:42  <tjfontaine>bnoordhuis: for the GetLocalizedMessage fix?
22:30:09  <bnoordhuis>tjfontaine: no, for this: https://github.com/bnoordhuis/v8/compare/dataview
22:30:14  <tjfontaine>ah
22:30:53  <bnoordhuis>upload.py gives me a 403 and the web interface complains "Patch set contains no recognizable patches"
22:31:30  <bnoordhuis>google may be all all supersmart engineers but their review tool is utter shite
22:31:50  <trevnorris>heh, all this work and your biggest complaint is uploading the changes.
22:31:52  <trevnorris>kinda sad
22:32:14  <isaacs>Any pending libuv patches for stable?
22:34:41  <trevnorris>bnoordhuis: nice patch. looks clean.
22:34:42  <bnoordhuis>isaacs: yes, bert landed a fix
22:34:48  <bnoordhuis>trevnorris: thanks :)
22:35:42  <MI6>nodejs-v0.10: #208 UNSTABLE osx-ia32 (1/586) smartos-x64 (1/586) http://jenkins.nodejs.org/job/nodejs-v0.10/208/
22:35:51  <tjfontaine>bnoordhuis: I think he means anything that he should wait for that isn't already on the v0.10 branch, he wants to do a release tomorrow
22:38:17  <tjfontaine>https://github.com/joyent/node/blob/f044a6f3faa057925813e7ab95a806a6edd0728d/src/node_buffer.cc#L592-594
22:38:24  <tjfontaine>right ok, we used to explicitly handle the empty string case
22:39:32  <bnoordhuis>tjfontaine, isaacs: like that. no, no blockers
22:39:41  <tjfontaine>k
22:44:47  <MI6>nodejs-v0.10-windows: #37 UNSTABLE windows-ia32 (8/586) windows-x64 (9/586) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/37/
22:45:58  * mikealjoined
22:46:33  <trevnorris>isaacs: so remember how we spent some time adding isolate to function parameters? well, now some of them are being moved out again. :P
22:48:43  * brsonquit (Quit: Lost terminal)
22:49:58  * brsonjoined
22:50:41  <isaacs>trevnorris: lovely
22:51:34  <trevnorris>i swear i'm going to figure out how to use these WeakReferenceCallbacks...
22:52:22  * Benviejoined
22:56:05  * brsonquit (Read error: Connection reset by peer)
23:00:56  * AvianFluquit (Remote host closed the connection)
23:01:11  * brsonjoined
23:05:01  <bnoordhuis>trevnorris: i've been going over the persistent changes
23:05:14  <bnoordhuis>i'm not sure what direction the googlers are heading for...
23:05:16  <trevnorris>ha ha! figured it out.
23:05:45  <trevnorris>bnoordhuis: in the end, Local will be removed and Persistent and Handle will be seperate classes
23:05:51  <trevnorris>no inheritance.
23:06:15  <bnoordhuis>yeah, i got that much
23:06:30  <trevnorris>they say it'll boost the performance of isolates.
23:06:36  <bnoordhuis>but how are you supposed to fetch the Handle from the Persistent?
23:06:42  <bnoordhuis>operator*() is going away
23:06:50  <bnoordhuis>there's ClearAndLeak() (lovely name btw)
23:06:56  * inolenquit (Quit: Leaving.)
23:06:57  <trevnorris>heh yeah.
23:07:27  <trevnorris>well, as I understand it, the new syntax "Persistent<Value> arg(Isolate*, Handle<Value>)" will create a "global pointer"
23:07:47  <trevnorris>and you'll still be able to de-reference the Handle from that
23:08:20  <bnoordhuis>you mean with *arg? i thought it had a comment "remove after cutover" or something like that
23:08:32  <bnoordhuis>well, whatever - we'll figure it out when the time comes :)
23:09:25  * brsonquit (Ping timeout: 248 seconds)
23:09:29  <bnoordhuis>tjfontaine: were there patches you wanted me to look at? i see you mentioned my name last night
23:10:01  <tjfontaine>bnoordhuis: if/when you get a chance to re-review the libuv mac address change
23:10:26  * brsonjoined
23:10:40  <bnoordhuis>ah, mac addresses... i don't understand why people want that
23:10:47  <tjfontaine>uuid generation mostly
23:10:51  <bnoordhuis>that is, i _know_ why they want it
23:10:55  <bnoordhuis>i just don't understand it :/
23:11:09  <bnoordhuis>i mean, my mac address is all DEADBABE
23:11:20  <trevnorris>bnoordhuis: well, they're removing the operator*, but because it just "return val_". not completely sure, but now it'll just point directly to the Handle, so no need to defined *
23:11:22  <tjfontaine>maybe they want to do flexlm in js?
23:11:39  <trevnorris>but then again, i'm still not that great at c++ :)
23:12:24  <bnoordhuis>i don't blame you, that part of v8.h is pretty much unreadable now with all the #ifdef-erry
23:12:42  <trevnorris>yeah, seriously.
23:12:52  * dapquit (Read error: Connection reset by peer)
23:12:55  * dap1joined
23:13:36  * inolenjoined
23:16:30  <trevnorris>bnoordhuis: what I can't figure out if possible is recover an existing Persistent from a Local.
23:16:58  <trevnorris>basically I want to Dispose it early, but can't seem to have the thing passed around in js, then back to cc
23:21:12  * kazuponjoined
23:25:52  * kazuponquit (Ping timeout: 252 seconds)
23:27:21  * indexzerojoined
23:28:05  <tjfontaine>isaacs: https://github.com/tjfontaine/node/compare/joyent:v0.10...0lenwrite
23:29:14  <tjfontaine>isaacs: https://github.com/joyent/node/commit/119354f7356de47cb36b5a1cebf9423e89c7f10b#L0L592
23:34:48  <MI6>joyent/node: Timothy J Fontaine v0.10 * 007e63b : buffer: special case empty string writes - http://git.io/GB2uNw
23:34:52  <bnoordhuis>Your branch is behind 'origin/master' by 12572 commits, and can be fast-forwarded. :)
23:34:59  <bnoordhuis>linux moves fast
23:35:05  <tjfontaine>heh
23:35:35  <trevnorris>we have to seriously stop setting object properties in js.
23:35:43  <trevnorris>i mean really really need to stop.
23:35:52  <tjfontaine>you mean cc
23:36:04  <tjfontaine>or you mean Object.defineProperty?
23:36:08  <trevnorris>oh heh, yeah. set js properties in cc
23:36:16  <tjfontaine>k
23:36:32  <tjfontaine>what's the boundary jump cost again??
23:36:35  <tjfontaine>er -?
23:36:39  <trevnorris>now? very little
23:36:49  <trevnorris>recently they've made it a lot faster.
23:36:53  <trevnorris>check out 5539
23:37:05  <tjfontaine>so now it's fast, and in the future it's hella-fast?
23:37:27  <trevnorris>yeah. we're talking the call itself takes less than 20ns
23:37:43  <tjfontaine>excellent
23:38:26  <trevnorris>as those tests show, it's 8x's faster to send arguments to a function, and have that fn return a new object w/ the properties set, then do it in cc
23:38:44  <tjfontaine>cute
23:39:27  <trevnorris>yeah. it's actually the key reason why ArrayBuffers and Typed Arrays take so long to instantiate.
23:39:40  <trevnorris>because they're setting like 5 properties from cc
23:39:56  <tjfontaine>then seems like they have incentive to fix it, that works out well for everyone :)
23:40:18  <isaacs>tjfontaine, trevnorris: In the meantime, yes, if you have any interest in this, please move object property setting out of C and into JS
23:40:43  <trevnorris>isaacs: it's low priority, but I have an issue assigned to me about it.
23:40:50  <trevnorris>but more important stuff to take care of first :)
23:41:06  <trevnorris>figure that's one of those cleanup pieces in prep for v1.0
23:41:51  <tjfontaine>trevnorris: so it's the ->Set when the field wasn't previously defined? but it's fine to ->Set if you defined it on the js side?
23:42:25  <trevnorris>tjfontaine: ->Set should never be used unless you have to ReadOnly the field. otherwise always do it in js
23:42:53  <trevnorris>http_parser right now is the biggest culprit.
23:43:47  <trevnorris>oh, and if it's absolutely necessary to do in cc then Persist the String
23:43:58  <trevnorris>that looses you 40% performance.
23:44:45  <MI6>nodejs-v0.10: #209 UNSTABLE linux-x64 (2/586) smartos-x64 (2/586) http://jenkins.nodejs.org/job/nodejs-v0.10/209/
23:44:48  <isaacs>trevnorris: we do usually do that, don't we?
23:44:54  <isaacs>trevnorris: persist the string in a symbol?
23:45:06  <tjfontaine>most of the time we do use a symbol, unless it's a one off
23:45:21  <tjfontaine>a lot of times we even delay creating the symbol until first use
23:45:24  <trevnorris>hm. think we've gotten lazy
23:45:40  <trevnorris>node_crypto uses String::New in some hot paths
23:46:18  <trevnorris>also, there are a few places that use NewSymbol (e.g. process_wrap), but that still has a hit.
23:47:40  <trevnorris>honestly i'm peeved that it's such a performance hit that I actually worry about it.
23:47:57  <trevnorris>so much so that doing one ->Set() on a Buffer would double its instantiation time.
23:48:10  <trevnorris>that's why the new implementation had to strip out the class
23:51:19  * mjr__quit (Quit: mjr__)
23:54:06  <MI6>nodejs-v0.10-windows: #38 UNSTABLE windows-ia32 (7/586) windows-x64 (8/586) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/38/
23:57:38  * st_lukejoined
23:59:53  * indexzeroquit (Quit: indexzero)