00:12:26  * mikealjoined
00:31:15  * isaacsquit (Quit: isaacs)
01:08:48  <igorzi>bnoordhuis: you there?
01:09:01  <bnoordhuis>igorzi: i am
01:09:52  <igorzi>bnoordhuis: is gethostbyname passing for you on linux? it's timing out for me on windows. if i switch to using dns_server (instead of echo_server) - it passes
01:10:33  <bnoordhuis>igorzi: yes, wfm
01:11:02  <bnoordhuis>igorzi: on darwin and freebsd too btw
01:12:59  <igorzi>bnoordhuis: are you getting anything in hostent argument of the callback? i mean, it can't be getting anything valid there since we're just using an echo_server
01:15:01  <bnoordhuis>igorzi: hostent is always NULL
01:15:39  <bnoordhuis>igorzi: if you're having trouble getting it to work, just revert the c-ares upgrade
01:16:08  <bnoordhuis>it contains some nice to have fixes but i can back-port the important ones by hand
01:16:25  <bnoordhuis>well, by `git apply`
01:16:34  <igorzi>bnoordhuis: it's cool.. i'll poke around some more
01:18:05  <ryah>shutdown semantics suck
01:18:43  <ryah>(unrelated to gethostbyname discussion)
02:10:42  <ryah>indutny:
02:10:43  <ryah>debug> setBreakpoint('afterWrite')
02:10:44  <ryah>Script : afterWrite not found
02:12:13  * brsonquit (Ping timeout: 240 seconds)
02:46:08  <ryah>so. check this out:
02:46:59  <ryah> while (expect_true (
02:46:59  <ryah> activecnt
02:47:00  <ryah> && !loop_done
02:47:00  <ryah> && !(flags & (EVRUN_ONCE | EVRUN_NOWAIT))
02:47:00  <ryah> ));
02:47:05  <ryah>^-- libev's event loop
02:47:18  <ryah>if activecnt is negative, the loop continues
02:47:27  <ryah>activecnt = uv_ref, uv_unref count
02:48:27  <ryah>src/win/core.c has
02:48:27  <ryah>#define UV_LOOP(loop, poll) \
02:48:27  <ryah> while ((loop)->refs > 0) { \
02:48:28  <ryah> uv_update_time((loop));
02:49:04  <ryah>why would he do that?
02:49:13  <ryah>the failure mode is so confusing
02:49:49  <ryah>in many ways i think libev too tweaked
03:01:10  <ryah>changing it to "activecnt > 0" fixes test-regress-GH-1726.js
03:01:11  <bnoordhuis>https://github.com/bnoordhuis/libuv/compare/kqueue <- i've created a monster...
03:01:19  <ryah>fuck that took a long time to figure out
03:01:34  <bnoordhuis>windows issue?
03:01:36  <ryah>(my thing, not kqueue :))
03:01:59  <ryah>bnoordhuis: oh damn
03:02:29  <bnoordhuis>horrible isn't it?
03:03:37  <ryah>i mean - the changes to libev aren't massive
03:04:11  <ryah>bnoordhuis: is it working?
03:08:42  <bnoordhuis>ryah: yes
03:09:01  <bnoordhuis>there's probably some rough edges to take care of but it works
03:12:44  <ryah>bnoordhuis++
03:12:56  <ryah>bnoordhuis: hardcore man
03:13:10  <bnoordhuis>haha, thanks
03:13:23  <bnoordhuis>i'm off to bed
03:13:28  <bnoordhuis>sleep tight, ryah
03:13:55  * bnoordhuisquit (Quit: Leaving)
03:41:30  * ericktquit (Quit: erickt)
03:41:49  * ericktjoined
03:47:58  <ryah>igorzi: did that c-ares upgrade break windows? im having compile problems
03:48:10  <ryah>igorzi: (libuv)
03:53:37  <ryah>yes - it appears so! gosh sorry!
04:09:00  <CIA-53>libuv: Ryan Dahl master * r2c01791 / common.gypi : Make libev verify itself in debug build - http://git.io/lCYVJA
05:01:33  <CIA-53>libuv: Ryan Dahl master * r3e5aa06 / (test/test-list.h test/test-timer.c): Add two timer ref count tests - http://git.io/ZQHJqA
05:51:30  <CIA-53>libuv: Ryan Dahl master * r2ebb227 / (test/test-list.h test/test-tcp-close.c): Add tcp reference count tests - http://git.io/jI-KRA
05:53:14  <ryah>^-- tcp_ref2 broken on unix, i know
05:56:23  <indutny>ryah: breakpoints on functions?
06:05:40  <ryah>indutny: please!
06:05:52  <indutny>ryah: heh :) ok, one minute
06:06:48  <indutny>ryah: don't you mind, if it'll look like this: sb('afterWrite()')
06:06:58  <indutny>ryah: i need this to distinguish it from script's name
06:12:07  <ryah>https://github.com/joyent/node/issues/1726#issuecomment-2207602 <-- annoying bug
06:26:14  <indutny>ryah: heh, piping streams was always a pain
06:26:41  <CIA-53>node: Ryan Dahl master * rfa2eaea / lib/net_uv.js :
06:26:41  <CIA-53>node: write-only streams should not shutdown
06:26:41  <CIA-53>node: See
06:26:41  <CIA-53>node: https://github.com/joyent/node/issues/1726#issuecomment-2207602 - http://git.io/KqfWxA
06:27:11  <indutny>ryah: https://github.com/joyent/node/pull/1777
06:28:31  <indutny>ryah: btw what is a progress of VT100 on win?
06:28:42  <ryah>indutny: test?
06:29:02  <ryah>indutny: vt100 on win is almost landed
06:29:04  <indutny>ryah: ok, just curious if colors in debugger are working
06:29:11  <ryah>it'll be here in the next few days
06:29:15  <indutny>ryah: yep, test...
06:29:26  <ryah>indutny: thanks :)
06:29:46  <indutny>ryah: probably that won't work as you expected :)
06:29:52  <ryah>indutny: it's nice to have someone to bother you to write tests
06:30:00  <ryah>;)
06:30:06  <indutny>haha
06:30:37  <ryah>indutny: http://arlolra.no.de/ is all updated
06:30:38  <indutny>it's pleasure to participate in this project even if that requires me to write tests
06:30:40  <ryah>FYI
06:30:45  <indutny>great
06:31:18  <indutny>ryah: after scrolling, hover is not working
06:31:36  <indutny>ryah: ah, nope
06:31:41  <indutny>ryah: that's much strange
06:31:45  <indutny>http://arlolra.no.de/bench/startup_memory
06:32:07  <indutny>only some commits are catching hover
06:54:08  <indutny>ryah: I don't know how to write test :)
06:54:31  <indutny>ryah: debugger has strange function search
06:54:44  <indutny>ryah: if I'll eval remotely: "a = function a() {}"
06:54:58  <indutny>ryah: then `sb('a()')` will work
06:55:10  <indutny>ryah: if it's declared in file - same won't work
07:02:28  <indutny>ryah: yt?
07:02:48  <indutny>ryah: added test, https://github.com/joyent/node/pull/1777
07:02:58  <indutny>ryah: it works fine on global functions
07:09:07  <indutny>ryah: colours ain't working on windows
07:11:41  <indutny>ryah: well, looks like you're sleeping
07:11:46  <indutny>good night so :P
07:14:08  * piscisaureusjoined
07:30:44  <CIA-53>node: Fedor Indutny master * rf4124e1 / (lib/_debugger.js test/simple/test-debugger-repl.js):
07:30:44  <CIA-53>node: debugger: setBreakpoint('fn()')
07:30:44  <CIA-53>node: Fixes #1777 - http://git.io/M5sI7Q
07:31:02  <ryah>indutny: if there is a node process running somewhere else
07:31:05  <ryah>and you start the debugger
07:31:11  <ryah>it has a bad failure mode
07:32:25  <ryah>nevermind - i can't repeat
07:34:24  <ryah>indutny: we do need to get that uncaughtException handler out of test-debugger-repl.js
07:34:29  <ryah>it's pretty ugly...
07:34:56  * mralephjoined
07:36:28  <indutny>yeah
07:36:42  <indutny>ryah: I opened another pull request for disabling colors on win
07:37:16  <ryah>indutny: why disable colors?
07:37:29  <indutny>ryah: they ain't working in master
07:37:35  <indutny>ryah: escape chars become visible
07:37:47  <indutny>I used same check as in repl
07:37:52  <indutny>hm
07:37:54  <ryah>we should just wait for piscisaureus to land his thing
07:37:55  <indutny>wait a second
07:38:00  <indutny>k
07:38:09  <indutny>anyway it should be similar both in repl and debugger
07:38:14  <indutny>I'll refactor that
07:38:35  <indutny>than I propose you to apply it , and after piscisaureus will land patch - we'll enable colours for both repl and debugger
07:38:40  <indutny>what do you think about it?
07:39:04  <ryah>indutny: discuss with piscisaureus
07:39:09  <indutny>piscisaureus_: yt?
07:39:14  <indutny>piscisaureus: or you?
07:39:43  <indutny>ryah: https://github.com/joyent/node/blob/master/lib/repl.js#L61
07:39:55  <indutny>it's checking not only for platform but for env var too
07:42:04  * piscisaureus_quit (Quit: Leaving.)
07:43:15  <ryah>indutny: oh
07:43:24  * piscisaureus_joined
07:43:29  <indutny>ryah: so that's my proposal : https://github.com/joyent/node/pull/1778
07:43:30  <ryah>indutny: still have piscisaureus look at it. im going to sleep
07:43:47  <indutny>ryah: ok, sleep tight
07:48:17  * piscisaureus_quit (Client Quit)
07:49:30  * dmkbotquit (Remote host closed the connection)
07:49:36  * dmkbotjoined
08:39:01  * mralephquit (Ping timeout: 240 seconds)
08:51:32  * mikealquit (Quit: Leaving.)
09:14:05  * mikealjoined
09:22:04  * mikealquit (Quit: Leaving.)
09:27:08  * mikealjoined
09:43:19  * piscisaureus_joined
09:44:55  <piscisaureus_>indutny: yt?
09:45:13  <indutny>piscisaureus_: yep
09:45:22  <piscisaureus_>indutny: disable colors?
09:45:27  <indutny>piscisaureus_: yep
09:45:31  <indutny>piscisaureus_: colors and win32
09:45:47  <indutny>piscisaureus_: repl has disableColors var
09:46:06  <indutny>piscisaureus_: which is true for platform win32 and if env variables was set
09:46:11  <piscisaureus_>indutny: when we land the new tty wrap win32 will have colors
09:46:12  <indutny>piscisaureus_: https://github.com/joyent/node/pull/1778/files
09:46:18  <indutny>piscisaureus_: that'll be great
09:46:53  <indutny>piscisaureus_: but this patch is not only disabling colors (which are already disabled in repl on win32), but makes debugger behave like repl in case of colors
09:47:05  <piscisaureus_>aah oh
09:47:07  <indutny>so I suggest pulling it anyway
09:47:07  <piscisaureus_>lgtm
09:47:30  <indutny>cool
09:47:45  <indutny>when do you think tty will be finished?
09:47:49  <indutny>I mean for win32
09:48:06  <indutny>if it'll happen in reasonable time - may be better to wait for that changes
09:48:21  <indutny>if not - it would be cool to fix ugly debugger in windows :)
09:48:29  <piscisaureus_>indutny: it is finished in libuv and I think ryah also finished the tty wrap
09:48:39  <piscisaureus_>so, soon
09:48:44  <indutny>piscisaureus_: ok, so lets wait for that to appear in node
09:48:49  <indutny>piscisaureus_: thanks
09:49:07  <piscisaureus_>but propagating NODE_DISABLE_COLORS to the debugger makes sense anyway
09:49:20  <indutny>piscisaureus_: yep, but that's not urgent
09:49:25  <piscisaureus_>oh well
09:49:32  <piscisaureus_>let's do it now :-)
09:49:35  <indutny>piscisaureus_: ok :)
09:51:30  <indutny>piscisaureus_: btw, I want to contribute on libuv. Can I help you guys with it? (and it'll be cool to take some break in debugger's work :) )
09:51:35  <indutny>s/on/to
10:05:38  <CIA-53>node: Fedor Indutny master * r67706b8 / (lib/_debugger.js lib/repl.js): Export disableColors from repl, share with debugger - http://git.io/PmHGfw
10:06:31  <indutny>piscisaureus: sorry ,internet problems - I was afk
10:06:34  <indutny>thanks for pulling
10:06:56  <piscisaureus_>indutny: sure you can help with libuv - I'm not sure what you can do
10:07:07  <indutny>piscisaureus_: is it better to ask ryah about that?
10:07:08  <piscisaureus_>are you a unix guy or a windows guy?
10:07:27  <indutny>piscisaureus_: I think that doesn't matter for me
10:07:31  <indutny>piscisaureus_: :)
10:07:41  <indutny>some unix stuff + some windows stuff
10:07:52  <indutny>can't do anything , but can learn anything in reasonable time
10:08:07  <piscisaureus_>can't do anything? :-)
10:08:12  <piscisaureus_>I think that's not what you mean
10:08:52  <indutny>probably :)
10:09:22  <piscisaureus_>indutny: maybe you should fix some bugs - https://github.com/joyent/libuv/issues?state=open
10:09:37  <piscisaureus_>indutny: although you should talk to us before you start
10:10:01  <piscisaureus_>some stuff may be already be worked on, or we're not sure about it yet, or we have specific ideas about how it should be done
10:10:03  <indutny>ok, sounds good! I'm doing my primary job right now, so I'll tell you later
10:10:29  <piscisaureus_>indutny: but you'll be able to pick anything you feel like working on
10:10:32  <piscisaureus_>:-)
10:10:33  <piscisaureus_>ok
10:10:34  <indutny>:)
10:10:38  <piscisaureus_>go ahead with your day job
10:11:11  <indutny>heh, thanks
10:11:15  <indutny>good luck with yours :)
10:11:22  <indutny>btw is your primary job here at joyent?
10:11:24  <piscisaureus_>thnx
10:14:38  * piscisaureus_quit (Quit: Leaving.)
10:23:48  * dmkbotquit (Remote host closed the connection)
10:23:52  * dmkbotjoined
10:37:10  * piscisaureus__joined
10:37:13  * piscisaureus__quit (Client Quit)
10:37:41  * piscisaureus__joined
10:43:49  <CIA-53>libuv: Bert Belder wintty * rd6b4856 / (45 files in 10 dirs):
10:43:50  <CIA-53>libuv: Revert "c-ares: upgrade to 1.7.5"
10:43:50  <CIA-53>libuv: This reverts commit 083c97e28bd67f3c87ed6cb7636e423c8d18bcb6. (+9 more commits...) - http://git.io/zfYFdw
10:45:18  <CIA-53>libuv: Bert Belder master * r8f563e2 / (46 files in 11 dirs):
10:45:18  <CIA-53>libuv: Revert c-ares upgrade and includes fix
10:45:18  <CIA-53>libuv: It broke the windows build.
10:45:18  <CIA-53>libuv: This reverts commit 083c97e28bd67f3c87ed6cb7636e423c8d18bcb6 and commit b288afdf14a2da3bbd6a2510c043f816ec7c6a42. - http://git.io/ZRD_ZQ
10:45:19  <CIA-53>libuv: Bert Belder master * rb0a9d60 / src/win/tty.c : win: tty fixes - http://git.io/I1PuCA
10:52:23  * mikealquit (Quit: Leaving.)
10:57:49  * dmkbotquit (Remote host closed the connection)
10:57:53  * dmkbotjoined
12:29:14  * mikealjoined
13:13:14  * bnoordhuisjoined
13:14:38  <piscisaureus__>\o/ the new tty binding + tty-win almost works
13:15:12  <piscisaureus__>only whatever node writes to the tty to refresh a line doesn't seem to be picked up by uv-win
13:21:46  <bnoordhuis>piscisaureus__: what does node write?
13:22:30  <piscisaureus__>bnoordhuis: \u033[1K or \u033[2K
13:22:51  <piscisaureus__>bnoordhuis: maybe I just got wrong code in uv - I'm gonna check
13:23:27  <piscisaureus__>bnoordhuis: I was really surprised, I just upgraded uv into the new-tty-binding branch and it worked ;-)
13:23:31  <bnoordhuis>heh
13:23:44  <bnoordhuis>that \u means unicode?
13:23:55  <piscisaureus__>eh sorry leave out the \u
13:24:07  <piscisaureus__>muscle memory does that
13:26:02  <piscisaureus__>hmm
13:29:58  <piscisaureus__>bnoordhuis: ah it writes ESC [1G
13:30:02  <piscisaureus__>somehow that doesn't work
13:31:31  <bnoordhuis>piscisaureus__: not 100% sure but i don't think ESC [1G is a valid code
13:31:35  <piscisaureus__>ah forgot to add it :-/
13:31:48  <piscisaureus__>bnoordhuis: my reference: http://en.wikipedia.org/wiki/ANSI_escape_code
13:31:50  <piscisaureus__>:-)
13:32:40  <bnoordhuis>ah, right
13:32:44  * mikealquit (Quit: Leaving.)
13:33:05  <bnoordhuis>but i don't think it's something a vt100 terminal understands
13:33:08  <piscisaureus__>I also got the x-y pair in the wrong order for H and f
13:33:22  * mikealjoined
13:36:26  <bnoordhuis>https://github.com/joyent/node/pull/1775#issuecomment-2209550 <- this is worrisome
13:38:15  * mikealquit (Ping timeout: 260 seconds)
13:39:28  <piscisaureus__>bnoordhuis: it's a v8 issue I think
13:39:48  <bnoordhuis>piscisaureus__: or a node issue
13:39:58  <bnoordhuis>it seems to be creating an insane number of buffers
13:39:59  <piscisaureus__>bnoordhuis: I retract that statement for a while
13:40:44  <piscisaureus__>but yeah factor 10 slowdown is very worrysome
13:42:11  * mikealjoined
13:42:58  * piscisaureuschanged nick to hoi
13:43:05  * hoichanged nick to ___hoi
13:43:21  * piscisaureus__changed nick to piscisaureus
13:44:18  * ___hoichanged nick to zed__shaw
13:45:10  <bnoordhuis>playing around zed__shaw?
13:46:07  <zed__shaw>bnoordhuis: look at the #node.js ops :-p
13:51:42  <bnoordhuis>piscisaureus: goto... i kinda don't want to go anymore
13:51:57  <piscisaureus>hmm
13:51:57  <bnoordhuis>i thought it was going to be en route to SF but since that's not the case anymore...
13:52:07  <bnoordhuis>hah, mees is vrolijk
13:52:10  <bnoordhuis>weeeeeee
13:52:43  <piscisaureus>bnoordhuis: -(
13:54:35  <bnoordhuis>piscisaureus: so you still want to go?
13:55:09  <piscisaureus>bnoordhuis: no
13:55:16  <piscisaureus>bnoordhuis: yes
13:55:55  <bnoordhuis>piscisaureus: should i interpret that as a maybe?
13:56:02  <piscisaureus>yes
13:56:09  <piscisaureus>yes sure I'm gonna go
13:56:36  <bnoordhuis>okay, i suppose i'll come along
13:56:41  <bnoordhuis>it's only for two days
13:56:54  <piscisaureus>bnoordhuis: you should
13:57:05  <piscisaureus>just stay there for 1 night if you don't feel like it
13:57:32  <piscisaureus>fly in in on tuesday morning, fly back on wednesday or something
13:57:44  <bnoordhuis>sleep off the hangover in the airplane
13:57:51  <piscisaureus>exactly
13:59:05  <piscisaureus>bnoordhuis et al: http://yfrog.com/z/h7zsuhp
14:00:17  <bnoordhuis>woo!
14:01:26  <bnoordhuis>piscisaureus: is your mac up?
14:01:34  <piscisaureus>bnoordhuis: no I'm booted into windows
14:01:41  <bnoordhuis>ah okay, no worries
14:01:51  <bnoordhuis>i'll have joyent send me my own mac
14:02:06  <piscisaureus>I hear they just collected another $ 5M
14:02:10  <piscisaureus>so finally they can afford it
14:02:38  <piscisaureus>bnoordhuis <- http://techcrunch.com/2011/09/27/cloud-software-company-joyent-raises-5-million/
14:04:02  <bnoordhuis>yeah, they wanted to keep me on board a couple months longer
14:04:59  <piscisaureus>yeah. I heard the news that the janitor would be fired soon caused significant stir.
14:05:24  <bnoordhuis>ho ho ho
14:07:20  <piscisaureus>bnoordhuis: c'mon, you were asking for it
14:08:19  <bnoordhuis>that tls-pause thing is odd, libuv writes out the data in much larger chunks so it ought to be faster
14:08:47  <piscisaureus>we're not dealing with strings, are we?
14:09:15  <piscisaureus>bnoordhuis: where does the test most spend its time?
14:09:31  <bnoordhuis>i think i know what's causing it, one sec
14:11:01  <CIA-53>libuv: Bert Belder master * rf5f005d / src/win/tty.c : tty-win: fix absolute cursor positioning - http://git.io/s6Z4pQ
14:17:18  <bnoordhuis>piscisaureus: https://github.com/joyent/node/pull/1775#issuecomment-2211258
14:19:30  <bnoordhuis>ryah: "Windows only makes one reference count for a connecting socket - Unix does too." <- should that be "Unix does not"?
14:19:42  <piscisaureus>that's what he meant yeah
14:19:46  <piscisaureus>bnoordhuis: aah!
14:20:34  <piscisaureus>bnoordhuis: you should add "so that's why it takes 10x as long
14:20:58  <bnoordhuis>i should and i shall
14:21:15  <bnoordhuis>libuv actually seems to be owning legacy pretty hard here
14:21:25  <CIA-53>node: Bert Belder new-tty-binding * r95231b8 / (16 files in 5 dirs): Upgrade libuv to f5f005d51d (+6 more commits...) - http://git.io/zyHY8Q
14:27:24  * bnoordhuisstarts hacking on the http bindings
14:28:50  <piscisaureus>bnoordhuis: http bindings?
14:29:05  <piscisaureus>bnoordhuis: we need to redo these?
14:29:08  <bnoordhuis>piscisaureus: the speed hack ryah mentioned
14:29:17  <bnoordhuis>don't call into v8 for every header
14:29:19  <piscisaureus>Oh I must've missed that
14:29:23  <piscisaureus>makes sense
14:29:34  <piscisaureus>bnoordhuis: you mean, don't call into JS?
14:29:47  <bnoordhuis>v8 == js, yes
14:30:25  <indutny>wow
14:30:29  <indutny>that should increase speed
14:30:40  <indutny>good morning
14:31:41  <piscisaureus>bnoordhuis: is this verified to be a perf killer
14:31:49  <piscisaureus>?
14:32:01  <indutny>I don't think that it'll give us a big speedup
14:32:05  <bnoordhuis>piscisaureus: no - only one way to find out
14:32:40  <indutny>suppose, difference won't be greater than 1ms
14:32:54  <indutny>lets do bids :D
14:33:16  * mikealquit (Quit: Leaving.)
14:34:33  * mikealjoined
14:41:56  <bnoordhuis>indutny: i have a few aces up my sleeve
14:42:13  <indutny>heh
14:42:13  <indutny>:)
14:56:46  <indutny>doing big debugger refactor
15:04:01  * mikealquit (Quit: Leaving.)
15:04:19  <bnoordhuis>funky
15:04:32  <bnoordhuis>var x = some_int || 'some string'
15:04:48  <bnoordhuis>is about 20% slower to reference later on than just `var x = some_int`
15:05:54  <bnoordhuis>mraleph, in case you're reading the logs tonight ^
15:14:11  <bnoordhuis>indutny: https://github.com/bnoordhuis/node/commit/45463a5 <- ace #1
15:15:05  <indutny>bnoordhuis: :)
15:15:12  <indutny>guns & aces
15:15:17  <indutny>shoot next :)
15:16:02  <indutny>that was cheating
15:18:27  <bnoordhuis>it's not cheating if you're winning
15:24:37  <piscisaureus>bnoordhuis: does this simple string comparison make so much difference?
15:24:51  <bnoordhuis>piscisaureus: yes
15:25:01  <bnoordhuis>it won't make much difference in the grand scheme of things
15:25:03  <piscisaureus>bnoordhuis: or is it the String::Utf8Value call?
15:25:12  <bnoordhuis>but alle beetjes helpen, right?
15:25:17  <piscisaureus>bnoordhuis: I think that may be quite inefficient actually
15:25:30  <bnoordhuis>the utf8value constructor?
15:25:35  <piscisaureus>bnoordhuis: yes
15:25:38  <bnoordhuis>yes, it makes a copy of the string
15:25:42  <piscisaureus>bnoordhuis: and mallocs
15:25:49  <piscisaureus>bnoordhuis: and scans the string twice
15:26:05  <bnoordhuis>it does that?
15:26:16  <bnoordhuis>i mean the double scan, not the malloc
15:26:46  <piscisaureus>bnoordhuis: it scans 1 time to find out how much memory the string will need in utf8 form
15:27:02  <piscisaureus>bnoordhuis: probably args[0]->ToString()->WriteAscii(some_static_buffer) is much faster
15:27:21  <bnoordhuis>args[0]->Uint32Value() is faster still :)
15:27:22  <piscisaureus>(I don't know the exact interface, but something like that)
15:27:35  <piscisaureus>bnoordhuis: yes - sure
15:27:49  <piscisaureus>bnoordhuis: this is more a general consideration
15:28:10  <bnoordhuis>are uint32 values packed into the pointer or do they live on the heap?
15:28:18  * bnoordhuischecks the v8 source code
15:28:21  <piscisaureus>bnoordhuis: depends
15:28:54  <piscisaureus>bnoordhuis: if they're small they're packed in the pointer (that's called a SMI)
15:29:13  <bnoordhuis>okay, no worries here then
15:29:16  <bnoordhuis>the value is either 0 or 1
15:29:47  <bnoordhuis>i know v8 uses smis but i don't know what/when the cut-off point is
15:29:51  <piscisaureus>bnoordhuis: I think the limit is somewhere around 2^30 but I'm not sure. It's also arch-dependent
15:29:56  <bnoordhuis>they go up to 31 bits, i think
15:30:50  <bnoordhuis>http://www.nrc.nl/nieuws/2011/06/20/internetgeneratie-ondermijnt-traditionele-bedrijfscultuur/ <- rings true!
15:31:03  <piscisaureus>next time mraleph gives a talk about v8 performance he should focus on API users
15:31:21  <piscisaureus>that'd be nice
15:32:39  <bnoordhuis>the do's and dont's of the v8 api, i'd like that
15:32:53  * mikealjoined
15:38:06  <bnoordhuis>piscisaureus: are you up for a review?
15:38:14  <piscisaureus>sure
15:38:22  <bnoordhuis>completely libuv / windows unrelated btw
15:38:40  <bnoordhuis>piscisaureus: https://github.com/joyent/node/issues/1330#issuecomment-2171838
15:38:54  <bnoordhuis>i ask because i want to get container_of in node :)
15:39:20  <piscisaureus>I don't think windows comes with container_of
15:39:46  <bnoordhuis>it's defined in node.h
15:39:57  <bnoordhuis>windows *does* have offsetof, doesn't it?
15:40:03  <bnoordhuis>it should, it's an ansi c thing
15:40:09  <piscisaureus>the windows kernel calls that FIELD_OFFSET and CONTAINING_RECORD
15:40:19  <piscisaureus>I think it has offsetof yeah
15:40:26  <bnoordhuis>oh, i even defined an offset_of macro
15:40:29  <bnoordhuis>i'm so forward looking
15:41:25  <piscisaureus>bnoordhuis: \ No newline at end of file
15:41:25  <piscisaureus></3 --^
15:41:33  <bnoordhuis>haha
15:41:34  <bnoordhuis>god
15:41:42  <piscisaureus>bnoordhuis: leave it as it is
15:41:49  <piscisaureus>but it fucks up git gui on windows
15:41:55  <bnoordhuis>really? why?
15:42:23  <piscisaureus>I don't know, it says "fatal: corrupt patch!" when you try to stage
15:42:39  <bnoordhuis>do you have crlf conversion set in your gitconfig?
15:42:42  <piscisaureus>(also if the old file has that \ No newline)
15:42:44  <piscisaureus>bnoordhuis: yes
15:42:48  <bnoordhuis>yeah, don't do that
15:43:14  <piscisaureus>bnoordhuis: I convert only crlf->lf, not the other way round
15:43:27  <bnoordhuis>hmm okay
15:43:42  <bnoordhuis>still, crlf <-> lf conversion always seems pretty buggy
15:43:56  <piscisaureus>bnoordhuis: actually I never have issues with it
15:44:33  <piscisaureus>bnoordhuis: I also convert one-way, I'd like to always use \n only but a lot of windows editors etc won't let me
15:44:47  <piscisaureus>they will only use \n if they detected that on open, or not at all
15:45:00  <bnoordhuis>sucks to be you, piscisaureus :/
15:46:18  <piscisaureus>bnoordhuis: btw, // g++ in strict mode complains loudly about the system offsetof() macro
15:46:27  <piscisaureus>what does it complain about?
15:46:43  <bnoordhuis>that it's dereferencing a NULL pointer
15:47:12  <bnoordhuis>it's doing something akin to `((intptr_t) ((char *) &(((type *) 8)->member) - 8))` but with 0 instead 0f 8
15:47:16  <bnoordhuis>*instead of
15:47:42  <bnoordhuis>i should probably expand that comment...
15:47:50  <piscisaureus>use 42 :p
15:48:07  <bnoordhuis>i'll stick to powers of 8, just in case :)
15:48:20  <bnoordhuis>powers of 2!
15:48:38  <piscisaureus>well, it's also a power of 8
15:51:54  * mikealquit (Quit: Leaving.)
15:54:07  * mikealjoined
15:54:24  * bnoordhuisis off to dinner
15:54:27  <piscisaureus>are we now calling uv_default_loop() every time :-/
15:54:36  <piscisaureus>gone so low
16:04:59  <piscisaureus>bnoordhuis: are you sure you don't need to Dispose() the persistent handle you create?
16:05:20  <piscisaureus>I don't think it's done automatically
16:11:43  <indutny>bnoordhuis++
16:20:30  <ryah>good morning
16:20:41  <ryah>slash afternoon
16:28:10  <ryah>bnoordhuis: did koichik improve the tls-pause bench?
16:32:23  <indutny>morning
16:44:10  * mikealquit (Quit: Leaving.)
16:45:35  * mikealjoined
17:00:31  * mikealquit (Quit: Leaving.)
17:06:44  * mikealjoined
17:13:46  <CIA-53>libuv: Bert Belder master * r554cb78 / src/win/tty.c : win tty: Use NULL consistently, don't mix with INVALID_HANDLE_VALUE - http://git.io/9p1MAQ
17:13:47  <CIA-53>libuv: Bert Belder master * rbdac72c / (src/win/handle.c src/win/internal.h src/win/tty.c): win tty: Implement uv_close and uv_shutdown - http://git.io/o1F4pQ
17:13:47  <CIA-53>libuv: Bert Belder master * r2c0fca9 / (src/win/pipe.c src/win/tcp.c): win: Fix crash when calling uv_close from shutdown callback - http://git.io/1LEhKA
17:18:41  <indutny>ryah: https://github.com/joyent/node/pull/1779
17:19:20  <indutny>unmotivated aggression
17:19:22  <indutny>haha :)
17:19:35  <indutny>I think I'll refactor it more, but later
17:20:08  <indutny>code is really bad right now, but this patch is like a break in a clouds
17:21:57  <indutny>ryah: em... yt?
17:24:51  <ryah>indutny: you want to do libuv stuff?
17:24:56  <indutny>ryah: yeah
17:25:04  <ryah>indutny: i have some tasks
17:25:07  <indutny>ryah: great
17:25:10  <indutny>:)
17:25:27  <ryah>https://github.com/joyent/node/blob/master/src/platform.h <-- all of this should go into libuv
17:25:40  <ryah>we've already done uv_exepath
17:26:11  <indutny>ok, understood
17:26:37  <ryah>https://github.com/joyent/libuv/issues/144
17:26:44  <ryah>https://github.com/joyent/libuv/issues/146
17:26:52  <ryah>https://github.com/joyent/libuv/issues/140
17:27:01  <ryah>https://github.com/joyent/libuv/issues/143
17:27:06  <ryah>etc
17:27:17  <indutny>ryah: thanks
17:28:28  <ryah>piscisaureus: should i land new-tty-binding ?
17:28:34  <piscisaureus>ryah: just a sec
17:28:37  <piscisaureus>almost
17:28:54  <piscisaureus>just landed a few fixes in uv, want to test them with node
17:30:46  <ryah>indutny:
17:30:46  <ryah>ryan@mac1234:~/projects/node% ./node test/simple/test-debugger-repl.js
17:30:47  <ryah>Error: timeout!
17:30:58  <indutny>ryah: with refactor?
17:31:29  <indutny>ryah: probably some race condition of v8
17:31:41  <indutny>ryah: still trying to figure out how to reproduce it
17:31:51  <indutny>ryah: can you please try running it again?
17:32:17  <piscisaureus>indutny: it would be nice if pressing ctrl+BREAK twice would exit node
17:32:23  <ryah>oh it's because i had another node's running
17:32:29  <indutny>ryah: ah, yeah
17:32:30  <ryah>piscisaureus's test is still keeping children around
17:32:46  <indutny>ryah: not good :)
17:32:55  <piscisaureus>ryah: I didn't update it - apply bnoordhuis' patches
17:32:55  <indutny>piscisaureus: hm... yep
17:33:01  <ryah>indutny: now i get:
17:33:02  <ryah>ryan@mac1234:~/projects/node% ./node test/simple/test-debugger-repl.js
17:33:02  <ryah>There was an internal error in Node's debugger. Please report this bug.
17:33:15  <indutny>ryah: no stack trace?
17:33:30  <ryah>indutny: no stack trace because of the uncaughtException handler
17:33:41  <CIA-53>node: Bert Belder new-tty-binding * r47b9962 / (5 files): Upgrade libuv to 2c0fca9a41 - http://git.io/HeG3qw
17:33:42  <indutny>oh
17:33:45  <piscisaureus>ryah: yes.
17:33:51  <indutny>strange, because of two points
17:33:52  <piscisaureus>ryah: the new tty wrap can be landed
17:34:01  <indutny>first: I've console.log in uncaughtException
17:34:05  <indutny>second: it wfm
17:34:06  <indutny>:D
17:34:31  <indutny>ryah: probably debugger should not work for you at all
17:34:38  <indutny>ryah: can you try `./node debug lib/fs.js`
17:34:43  <indutny>and some simple `n` and `o`
17:35:19  <indutny>I'm blind w/o stack trace
17:39:55  <indutny>piscisaureus: https://github.com/joyent/node/pull/1780
17:40:52  <piscisaureus>indutny: ok, thanks
17:48:33  <bnoordhuis>call in 10?
17:50:33  <piscisaureus>yes sir
17:51:22  <bnoordhuis>piscisaureus: any comments on that pull request? something about a persistent handle?
17:53:21  <piscisaureus>bnoordhuis: yes you're storing the callback in a persistent handle
17:53:34  <bnoordhuis>fixing that as we speak
17:53:35  <piscisaureus>bnoordhuis: but you're never disposing it - I'm not sure if that is correct
17:54:07  <piscisaureus>bnoordhuis: also you're copying the persistent handle to another persistent handle
17:54:17  <piscisaureus>maybe the second one should just be a Local
17:59:30  * brsonjoined
17:59:34  * piscisaureuscalling
18:01:21  * erickt_joined
18:02:41  * ryahcalling
18:06:40  * erickt_quit (Quit: erickt_)
18:07:13  * erickt_joined
18:18:44  <piscisaureus>Ok. anyone wants to talk to me now? I'll not be available in the next 2 hours.
18:19:31  <piscisaureus>bnoordhuis: can I skype you for a sec?
18:19:36  <piscisaureus>*minute
18:20:00  <bnoordhuis>piscisaureus: sure
18:28:01  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
18:28:24  <CIA-53>node: Ben Noordhuis issue1330-2 * rc4eaf7e / (4 files in 2 dirs): crypto: implement randomBytes() and pseudoRandomBytes() - http://git.io/dMbp_w
18:28:24  <CIA-53>node: Ben Noordhuis issue1330-2 * r413d38c / test/simple/test-crypto-random.js : test: test crypto (P)RNG functions - http://git.io/dQx-HQ
18:28:24  <CIA-53>node: Ben Noordhuis issue1330-2 * rabfcd1f / doc/api/crypto.markdown : docs: document crypto.randomBytes() - http://git.io/bPBPuA
18:28:49  * piscisaureus_joined
18:29:03  * piscisaureus_quit (Client Quit)
18:32:11  * piscisaureusjoined
18:32:12  * brsonquit (Read error: Operation timed out)
18:33:49  <bnoordhuis>piscisaureus: https://github.com/bnoordhuis/node/compare/issue1330-2 <- final check?
18:44:02  <ryah>piscisaureus: im in the process of landing new-tty-binding
18:44:55  <ryah>oh a new v8 has been release :)
18:45:11  <ryah> :(
18:45:11  <indutny>ryah: yeah
18:45:17  <indutny>ryah: merge it
18:45:17  <ryah>just a patch..
18:45:20  <indutny>ryah: it has DisableAgent
18:45:24  <indutny>ryah: has it?
18:45:41  <indutny>ryah: if not - don't merge it :)
18:48:38  <ryah>bnoordhuis: i'll test out the kqueue stuff after this merge
18:48:46  <bnoordhuis>ryah: cool
18:49:13  <bnoordhuis>ryah: btw, it's not going to pass the libuv tests just yet, those still assume you get the filename
18:49:47  <bnoordhuis>need to discuss that with igorzi
18:49:55  <ryah>we should ifdef out those
18:51:35  * dmkbotquit (Remote host closed the connection)
18:51:40  * dmkbotjoined
18:53:06  * brsonjoined
18:53:16  <piscisaureus>bnoordhuis: I'm not seeing a dispose call anywhere
18:53:28  <piscisaureus>bnoordhuis: that wasn't necessary or?
18:55:12  <bnoordhuis>piscisaureus: https://github.com/bnoordhuis/node/commit/c4eaf7e <- sorry, for some reason that other link still points to the old version
18:55:55  <piscisaureus>bnoordhuis: lgtm
18:56:04  <bnoordhuis>piscisaureus: cool, thanks
18:56:54  <CIA-53>node: Ben Noordhuis master * rc4eaf7e / (4 files in 2 dirs): crypto: implement randomBytes() and pseudoRandomBytes() - http://git.io/dMbp_w
18:56:55  <CIA-53>node: Ben Noordhuis master * r413d38c / test/simple/test-crypto-random.js : test: test crypto (P)RNG functions - http://git.io/dQx-HQ
18:56:55  <CIA-53>node: Ben Noordhuis master * rabfcd1f / doc/api/crypto.markdown : docs: document crypto.randomBytes() - http://git.io/bPBPuA
19:08:25  * piscisaureusquit (Read error: Connection reset by peer)
19:08:26  * piscisaureus_joined
19:08:31  * piscisaureus_quit (Remote host closed the connection)
19:14:40  * mikealquit (Quit: Leaving.)
19:16:34  * piscisaureusjoined
19:23:27  <ryah>piscisaureus: actually i want to finish #1726 before landing new-tty-binding
19:23:45  <ryah>piscisaureus: i believe its also fucking up test-regress-GH-1697.js
19:25:52  * mralephjoined
19:26:59  * piscisaureusquit (Ping timeout: 260 seconds)
19:28:22  <ryah>https://github.com/joyent/node/issues/1781 <- win bug
19:34:09  <ryah>indutny: test/simple/test-debugger-client.js is failing with Error: connect EADDRNOTAVAIL
19:34:21  <indutny>ryah: hm...
19:34:34  <ryah>and is also leaving a process hanging around: ryan@mac1234:~% ps aux | grep node
19:34:34  <ryah>ryan 6881 0.3 0.1 3049176 10740 s001 S 12:33PM 0:00.07 /Users/ryan/projects/node/out/Release/node -e setInterval(function () { console.log("blah"); }, 100);
19:34:36  <indutny>ryah: master, I supose?
19:34:40  <ryah>indutny: yes
19:36:05  <ryah>indutny: can you repeat?
19:36:09  <indutny>yep
19:36:21  <indutny>ah
19:36:23  <indutny>I know
19:36:26  <indutny>one second
19:36:37  <indutny>it's using require('_debugger').port
19:36:42  <indutny>which was removed
19:38:55  <indutny>ryah: v
19:38:56  <indutny>https://github.com/joyent/node/pull/1782
19:39:37  <indutny>ryah: where can I initialize static variable in libuv?
19:39:50  <bnoordhuis>indutny: you can't
19:39:52  <ryah>indutny: for what?
19:39:54  <indutny>bnoordhuis: great
19:40:07  <ryah>uv_default_loop() is one place...
19:40:09  <indutny>ryah: for uptime(adjusted=1)
19:40:30  <indutny>ryah: is that rudimentary?
19:40:44  <bnoordhuis>indutny: in almost all cases you need to tie your variable to a loop
19:42:44  <CIA-53>node: Ryan Dahl master * r0f8f863 / (src/node.js src/node_stdio.cc): Fixes #1726, hack to unref process.stdout - http://git.io/nv3mYA
19:42:52  <ryah>^-- awful
19:43:04  <indutny>ryah: so do we need adjusted argument?
19:43:08  <indutny>`adjusted` ^
19:44:22  <indutny>seems like no
19:44:24  <indutny>:)
19:44:30  <ryah>indutny: not sure
19:44:43  <ryah>it seems like we only use adjusted == true
19:44:52  <indutny>aah
19:44:57  <indutny>ryah: yes
19:45:02  <indutny>ryah: for windows
19:50:15  <CIA-53>node: Fedor Indutny master * r95866a6 / lib/_debugger.js :
19:50:16  <CIA-53>node: debugger: export port
19:50:16  <CIA-53>node: Fixes test-debugger-client.js
19:50:16  <CIA-53>node: Fixes #1782. - http://git.io/unsBCg
19:50:18  <ryah>indutny: thanks--^
19:50:22  <indutny>np
19:53:02  <indutny>ryah: don't you mind if I'll extend UV_LOOP_PRIVATE_FIELDS with uv__start_time
19:53:10  <CIA-53>node: Ryan Dahl master * rf5bdce9 / (6 files in 2 dirs): Disable test-dgram-unix.js test-dgram-unix-anon.js test-dgram-multicast.js - http://git.io/HZAPPg
19:53:14  <indutny>or just start_time
19:54:47  <ryah>=== release test-child-process-stdin ===
19:54:47  <ryah>Path: simple/test-child-process-stdin
19:54:47  <ryah>Command: out/Release/node /Users/ryan/projects/node/test/simple/test-child-process-stdin.js
19:54:50  <ryah>--- CRASHED ---
19:54:53  <ryah>=== release test-eval ===
19:54:55  <ryah>Path: simple/test-eval
19:54:58  <ryah>Command: out/Release/node /Users/ryan/projects/node/test/simple/test-eval.js
19:55:00  <ryah>--- CRASHED ---
19:56:51  <ryah>^-- somehow they only crash while in the test runner
20:07:09  <CIA-53>node: Ryan Dahl new-tty-binding * r696210f / test/simple/test-module-load-list.js : Fix test-module-load-list.js (+7 more commits...) - http://git.io/FRhu4A
20:08:58  <ryah>it's going to feel great to remove all this dead code some day
20:11:42  <CIA-53>node: Ryan Dahl new-tty-binding * r41d811f / test/simple/test-module-load-list.js : Fix test-module-load-list.js - http://git.io/DHOvxA
20:15:15  <CIA-53>node: Ryan Dahl master * rf63a1f8 / (26 files in 9 dirs): Merge branch 'new-tty-binding' (+8 more commits...) - http://git.io/FSs0cA
20:15:28  <ryah>\o/
20:16:10  <indutny>yeah!!!!!
20:16:56  <indutny>gtg, going to sleep
20:17:07  <indutny>thank you everyone
20:17:08  <indutny>ttyl
20:18:44  <ryah>indutny: night
20:19:29  * piscisaureusjoined
20:20:31  <ryah>okay. now to review kqueue.
20:22:00  <ryah>piscisaureus: i'll leave the pleasure of removing src/node_stdio_win32.cc to you :)
20:22:39  <ryah>probably we should beat down some bugs for a few days though
20:23:09  <piscisaureus>ryah: :-)
20:23:13  <piscisaureus>probably
20:23:41  <piscisaureus>I am now looking at node-1781
20:25:09  <CIA-53>libuv: Ryan Dahl master * r10c5293 / README.md : Update list of supported features - http://git.io/ctlQsA
20:27:11  <ryah>piscisaureus: i'm interested on your thoughts about this: https://github.com/joyent/node/commit/0f8f8630433a0f33906bcb673b606a0e7843bee7
20:28:56  <piscisaureus>ryah: well it seems inevitable to do that
20:29:18  <piscisaureus>ryah: but why is node in js and not in c++?
20:29:28  <piscisaureus>(iow what am i missing?)
20:30:02  <piscisaureus>(btw this is why it would be nice to have a UV_NOREF flag for uv handles :-))
20:31:22  <erickt_>bnoordhuis: regarding https://github.com/joyent/libuv/pull/200, you're okay if uv_tp*_addr ignores malformed addresses? If so, I can factor out that patch and resubmit
20:32:21  <bnoordhuis>erickt_: well.. i believe that the uv_ip?_addr functions are convenience functions
20:32:34  <bnoordhuis>piscisaureus ryah: right or ... ?
20:36:07  <erickt_>bnoordhuis: ok, no problem. What about making simple convenience functions for ip4/ip6 equivalents to / / etc? We could replace almost all of the uv_ip?_addr uses in the tests with that
20:38:05  <bnoordhuis>erickt_: it's not about the tests per se
20:38:29  <ryah>piscisaureus: i'll put it in c
20:38:42  <bnoordhuis>i agree that the current approach kind of sucks from an error reporting perspective
20:39:49  * piscisaureusquit (Read error: Connection reset by peer)
20:40:02  * piscisaureusjoined
20:43:11  <erickt_>bnoordhuis: what about changing the uv_*_{bind,connect} to accept a sockaddr_in pointer?
20:44:36  <bnoordhuis>erickt_: what would that gain you?
20:46:15  <erickt_>well, it's making the api more similar to the bsd api, and it's working towards a uv_tcp_connect that can take either ipv4 or ipv6
20:48:12  <erickt_>Or we could just make a new function, say uv_connect, that provides that functionality
20:48:22  <bnoordhuis>ah, that was a topic of some debate when we added udp support
20:49:45  * piscisaureusquit (Read error: Connection reset by peer)
20:50:20  * piscisaureusjoined
20:51:10  <erickt_>I figured you all probably talked about it :)
20:58:33  <bnoordhuis>erickt_: i think we decided against it but i kind of forgot why
20:58:38  <bnoordhuis>piscisaureus: do you remember?
21:01:06  <ryah>erickt_: why do you want a pointer?
21:01:18  <ryah>i like copying by value - it's easy :)
21:01:58  <erickt_>well it was work towards a uv_tcp_connect (or uv_connect) to take either ipv4 or ipv6 addresses
21:02:51  <ryah>sockaddr* can also represent AF_UNIX
21:03:12  <erickt_>that too :)
21:04:13  * piscisaureusquit (Ping timeout: 240 seconds)
21:06:17  <erickt_>it wouldn't be too hard keeping the uv_*_{bind/connect} functions, and just have them wrappers for more general uv_bind/uv_connect
21:06:56  <ryah>yeah
21:07:00  <ryah>:/
21:07:27  <ryah>kind of worried about the unix socket/named pipe case
21:07:58  <ryah>i guess i just never liked the complexity of the sockaddr struct and how it was overloaded for so many uses
21:08:37  <erickt_>and windows's uv_udp_t/uv_tcp_t does have different private fields
21:08:46  <erickt_>so that's another thing to contend with
21:11:07  <erickt_>well, I guess it wouldn't be that hard to throw the udp private fields in with the UV_TCP_PRIVATE_FIELDS union
21:12:40  <erickt_>I was figuring on leaving out the named pipes in whatever merges I was going to do
21:13:03  <ryah>erickt_: we're talking about merging uv_tty_t, uv_tcp_t and uv_pipe_t
21:13:19  <erickt_>even better :)
21:13:20  <ryah>just have a single uv_stream_t
21:13:40  <erickt_>that's what I ultimately wanted to do, I just wanted to work in that direction incrementally :)
21:13:43  <ryah>it would save a lot of code at our binding layer
21:15:58  <erickt_>well, since my pull request also has some bug fixes, I can refactor it to just be bug fixes for now. It's a shame github won't let you have parallel requests
21:16:53  <ryah>erickt_: just link me to what you want merged- i'll put it in
21:16:59  <ryah>erickt_: sometimes pull requests slip by
21:17:48  <erickt_>You could skip the first two in the request for now, and try committing 495064a through d2feef9
21:20:43  <ryah>unify os reporting! awesome!
21:20:53  <erickt_>:)
21:22:08  <erickt_>I've started work on unifying common code in uv_tcp_connect and etc too, but I haven't finished that yet
21:22:30  <ryah>erickt_: i want to get bert or igorzi to review the pure win patches
21:23:17  <ryah>although they look fine to me..
21:29:10  <ryah>erickt_: your patches can't be separate from the previous
21:29:17  <ryah>erickt_: because they use -> instead of .
21:29:19  <ryah>for address
21:29:34  <erickt_>I can fix that :)
21:29:58  <ryah>erickt_: can you purge the 787aa4f2e1b7fc57f5f3aa588056e987e4f59f61 and e6fbd75e3d56dd72c03c6c37689aba5458a566eb
21:30:06  <ryah>erickt_: then i'll ake the other 4
21:30:07  <ryah>5
21:32:04  <CIA-53>node: Fedor Indutny master * r0a42266 / src/node.cc :
21:32:04  <CIA-53>node: debugger: double ctrl+break on win should exit node
21:32:05  <CIA-53>node: Fixes #1780. - http://git.io/tphing
21:38:21  * zed__shawchanged nick to piscisaureus
21:38:59  <piscisaureus>ryah: back
21:53:00  <igorzi>bnoordhuis: that uv_fs_event test in libuv should have the check for filename ifdef'ed
21:53:11  <bnoordhuis>igorzi: okay
22:01:54  <CIA-53>node: Ryan Dahl master * r7e62bc9 / (6 files):
22:01:54  <CIA-53>node: Move process.stdout unref hack to handle_wrap.cc
22:01:54  <CIA-53>node: See #1726 - http://git.io/9NYKQg
22:04:22  <CIA-53>node: Ryan Dahl master * r416c14f / src/node.js : Remove a few instances of process.binding('stdio') from src/node.js - http://git.io/BPmJgg
22:04:23  <bnoordhuis>piscisaureus: how do i make msvc always inline a function or method? with gcc i can say __attribute__((always_inline))
22:04:50  <piscisaureus>bnoordhuis: __declspec(forceinline) I think
22:05:16  <piscisaureus>oh
22:05:18  <piscisaureus>bnoordhuis: http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx
22:13:19  <bnoordhuis>piscisaureus: thanks
22:13:47  <bnoordhuis>kinda annoying that gcc wants `int always_inline foo()` and msvc `always_inline int foo()`
22:18:07  <piscisaureus>bnoordhuis: actually I have never seen a valid use case for __forceinline
22:18:23  <bnoordhuis>piscisaureus: prepare to be amazed
22:19:10  <bnoordhuis>piscisaureus: https://gist.github.com/724affcf0e0ea7d0b9ca <- would that work with msvc?
22:19:52  <bnoordhuis>usage is `always_inline(int, foo, char *s, int n)`
22:20:10  <piscisaureus>bnoordhuis: I don't know but I guess it'll work
22:20:25  <piscisaureus>bnoordhuis: actually I think msvc doesn't care so much where you put the __forceinline
22:20:52  <bnoordhuis>good, that makes my life more pleasant
22:21:48  * piscisaureus_joined
22:24:30  <ryah>bnoordhuis: what are you inlining?
22:25:40  <bnoordhuis>ryah: the http_parser callbacks
22:25:42  <bnoordhuis>i don't want to prepend all variable names with parser->
22:25:52  <bnoordhuis>so i'm using them to trampoline to a method
22:26:01  <bnoordhuis>it's probably easier to show than to explain...
22:27:23  <ryah>bnoordhuis: i hope we get 5-10% from this
22:27:35  <ryah>bnoordhuis: the http-parser stuff in general that is (not the inlining)
22:27:52  <bnoordhuis>i'm cautiously optimistic
22:28:20  <ryah>node-repl works on windows HEAD
22:28:24  <ryah>nice!
22:29:14  <ryah>i guess it's a bit anticlimatic since it worked before
22:29:22  <ryah>but having all this in libuv makes it so much cleaner
22:29:55  <piscisaureus_>ryah: also try
22:29:55  <piscisaureus_>>process
22:29:59  <piscisaureus_>:-)
22:30:57  <ryah>piscisaureus_: did that not work before?
22:31:13  * mralephquit (Quit: Leaving.)
22:31:22  <piscisaureus_>ryah: look at the nice rainbow-y output
22:31:25  <piscisaureus_>that didn't work before
22:31:29  <ryah>piscisaureus_: ah :)
22:31:46  <ryah>having ansi codes is really going to help x-platform stuff
22:32:09  <piscisaureus_>I think I need to add a few more
22:32:14  <piscisaureus_>scp/rcp
22:32:18  <piscisaureus_>and show/hide caret
22:32:22  * dmkbotquit (Remote host closed the connection)
22:32:27  * dmkbotjoined
22:32:37  <piscisaureus_>I think SCP/RCP are the most important
22:33:20  <ryah>> ~/node> ./Release/node.exe debug benchmark/http_simple.js
22:33:21  <ryah>debug> There was an internal error in Node's debugger. Please report this bug.
22:33:21  <ryah>read UNKNOWN
22:33:21  <ryah>Error: read UNKNOWN
22:33:21  <ryah> at errnoException (net_uv.js:566:11)
22:33:23  <ryah> at TTY.onread (net_uv.js:330:20)
22:33:25  <ryah>~/node>
22:34:19  * mralephjoined
22:34:28  <bnoordhuis>in case anyone's interested: https://github.com/bnoordhuis/node/commit/31053864bef2ad43d82b6f422daeda2767b23ad8#L1R141
22:34:33  <bnoordhuis>and that let's you do https://github.com/bnoordhuis/node/commit/31053864bef2ad43d82b6f422daeda2767b23ad8#L1R248
22:34:52  <bnoordhuis>mraleph: quick question
22:35:25  <bnoordhuis>i noticed that `var x = some_int || "foo"` is later on ~20% slower to access than a simple `var x= some_int`
22:36:09  <bnoordhuis>is v8 doing something tricky with the variable's type/class or does it generate different asm for code that references x?
22:37:01  <mraleph>to access?
22:37:10  <mraleph>I want to see the code
22:37:11  <piscisaureus_>ryah: also doesn't work for me
22:37:23  <piscisaureus_>the bug hunt season is open
22:37:36  <piscisaureus_>ryah: but the bug I get is different
22:37:45  <mraleph>there should be no difference in access.
22:38:43  <mraleph>bnoordhuis: ^
22:39:31  <bnoordhuis>mraleph: https://gist.github.com/c02d4187096a666a09ed
22:39:55  <bnoordhuis>lines 3-4 are the magic bit
22:40:22  <mraleph>is this a global scope?
22:40:29  <mraleph>ah no it's node
22:40:56  <mraleph>let me see...
22:42:10  <bnoordhuis>it's not hugely important but it got me curious
22:42:53  <mraleph>bnoordhuis: so you say if you make var request_v = HTTPParser.REQUEST || 'request'; into var request_v = HTTPParser.REQUEST; it'll become 20% faster?
22:43:08  <bnoordhuis>mraleph: yes
22:44:00  <bnoordhuis>HTTPParser.REQUEST is an Integer::New(0) with ReadOnly|DontDelete set btw
22:44:24  <bnoordhuis>though that probably doesn't matter much
22:45:35  <bnoordhuis>mraleph: are you running that code? if so, you probably need to cherry-pick the patch that adds REQUEST and RESPONSE
22:46:58  <mraleph>why it's an integer and you || it with a string?
22:47:11  <bnoordhuis>mraleph: because of this: https://github.com/bnoordhuis/node/commit/ae94729
22:47:29  <bnoordhuis>i wanted to run the benchmark with and without ae94729
22:49:44  <mraleph>btw
22:49:58  <mraleph>I hope you know that 0||"x" is "x"
22:50:18  <bnoordhuis>ah fsck
22:50:27  <mraleph>that's javascript
22:50:51  <bnoordhuis>hah, it's so obvious now...
22:50:57  <mraleph>:-)
22:51:14  <mraleph>I think that answers your question
22:51:22  <bnoordhuis>thanks mraleph, i'll go sit in the corner now
22:51:50  <mraleph>you are welcome, better go kick around some printed ecma-262 pages…
22:52:39  <bnoordhuis>better go kick the guy who made the http_parser_type enum start at 0...
22:55:18  * mikealjoined
22:55:54  * mikeal1joined
22:56:13  * mikealquit (Read error: Connection reset by peer)
22:56:49  <piscisaureus_>hmmm...
22:57:03  <piscisaureus_>_get_osfhandle(1) is failing for me :-/
22:57:24  <piscisaureus_>in node
22:57:27  <piscisaureus_>that seems wrong
22:58:02  * mikeal1quit (Client Quit)
23:00:46  <igorzi>finally got c-ares upgrade to work on windows.. should i re-land it in master?
23:01:03  <igorzi>ryah: bnoordhuis: ----^
23:01:15  <bnoordhuis>igorzi: can i test it?
23:01:44  <igorzi>sure.. i'll put it in a branch
23:08:51  <ryah>igorzi: sorry that was so painful - what was wrong?
23:17:25  <piscisaureus_>ryah: I think your TTYWrap is free()ing the wrap too early
23:17:46  * mralephquit (Quit: Leaving.)
23:22:21  <piscisaureus_>hmm not sure actually but somehow the wrap state is being clobbered
23:23:01  <ryah>piscisaureus_: what do you mean?
23:23:14  <ryah>what's the wrap state?
23:23:25  <piscisaureus_>ryah: sorry - the uv_tty_t state
23:23:43  <ryah>piscisaureus_: 'mode' ?
23:23:50  <piscisaureus_>ryah: many fields
23:23:54  <ryah>piscisaureus_: hm
23:24:00  <piscisaureus_>they change to 0xcdcdcdcd
23:24:17  <ryah>piscisaureus_: okay - let me see
23:24:29  <piscisaureus_>ryah: I'm looking at it too
23:25:06  <ryah>piscisaureus_: doesn't seem to free the uv_tty_t until on_close
23:26:54  <ryah>bnoordhuis: let me know when i should test kqueue on darwin :)
23:27:37  <igorzi>bnoordhuis: https://github.com/igorzi/libuv/tree/c-ares
23:27:42  <igorzi>ryah: https://github.com/igorzi/libuv/commit/a1f98d55b10640b98d253ac25e2b5c1776200280#L4R112
23:28:02  <igorzi>that was the problem on windows :)
23:28:07  <ryah>igorzi: ah
23:29:07  <piscisaureus_>ryah: everything after the 68th byte is clobbered
23:29:22  <bnoordhuis>ryah: any ideas about how to easily share it with darwin? probably by having uv-kqueue.[ch] files?
23:29:27  <piscisaureus_>(on x32)
23:30:14  <ryah>bnoordhuis: yeah - that sounds good
23:33:53  <bnoordhuis>igorzi: looks good, good work
23:34:18  <igorzi>bnoordhuis: cool.. landing
23:35:32  <CIA-53>libuv: Ben Noordhuis master * r2e4eca3 / (45 files in 10 dirs): c-ares: upgrade to 1.7.5 - http://git.io/jJziHg
23:35:33  <CIA-53>libuv: Igor Zinkovsky master * ra1f98d5 / (6 files in 4 dirs): fix c-ares on windows - http://git.io/gtblVA
23:35:40  * piscisaureus_quit (Read error: Connection reset by peer)
23:36:18  * piscisaureus__joined
23:36:32  <ryah>igorzi: do you want to discuss fd passing?
23:37:04  <igorzi>ryah: yep
23:37:21  <ryah>i imagine mostly you need to talk with bert about implementation - but i thought maybe we could come up with a way to parallelize writing tests
23:37:50  <igorzi>ryah: ok, that sounds good.. what tests you've got going?
23:37:55  <ryah>i starting with a test which spawns a child, who starts a server, passes the fd back to the parent, who listens on the handle
23:38:36  <ryah>it doesn't do this yet.. it's still in the works
23:38:54  <ryah>is there some other exercise we could have it do that you could write?
23:39:17  <igorzi>can you share the test code once it's somewhat ready?
23:39:25  <ryah>yes
23:39:40  <ryah>hopefully by tomorrow morning i should have something (hopefully)
23:40:09  <ryah>i can't really think of any other tests that we need to do actually..
23:40:15  <igorzi>ryah: we need to test that we can multiplex passing fds & raw data.. maybe i can write a test for that?
23:41:13  <ryah>igorzi: sure - might make sense to just do that in this single test - it's a lot of setup
23:41:42  <ryah>hm
23:42:17  <igorzi>ryah: btw, where's the latest api?
23:43:41  <ryah>igorzi: https://gist.github.com/1238738
23:44:00  <ryah>we can change the names if you'd like "2" is kind of stupid
23:46:13  <CIA-53>libuv: Igor Zinkovsky master * r9b5dfd1 / config-mingw.mk : fix mingw build - http://git.io/J5ap8Q
23:49:09  * erickt_quit (Quit: erickt_)
23:51:42  <igorzi>ryah: i also can't think of anything else to test.. we're only going to support passing tcp listen handles, right? maybe we can add some negative tests (for trying to pass other streams)
23:52:11  <ryah>igorzi: hm - *shrug*
23:52:33  <ryah>igorzi: well maybe you can just start on the implementation and i'll try to finish up the test asap
23:52:59  <igorzi>ryah: k
23:53:32  * piscisaureus__quit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:57:28  <bnoordhuis>wow, cutting down the number of js callbacks boosts the http parser throughput with 30-40%
23:58:28  <bnoordhuis>but let's see what remains when it goes through http2.js