00:00:39  <bnoordhuis>it'll probably print a lot of data
00:02:07  <isaacs>hm...
00:02:11  <isaacs>(gdb) bt uv__fs_pwrite
00:02:11  <isaacs>No stack.
00:02:11  <isaacs>(gdb) commands
00:02:11  <isaacs>No breakpoint number 0.
00:02:11  <isaacs>(gdb) silent
00:02:14  <isaacs>Undefined command: "silent". Try "help".
00:02:16  <isaacs>?
00:02:38  <bnoordhuis>isaacs: sorry, b uv__fs_pwrite
00:02:42  <isaacs>right
00:02:46  <isaacs>bt = backtrace, not break
00:02:49  <bnoordhuis>yep
00:03:15  <isaacs>nada
00:03:21  <bnoordhuis>it prints nothing?
00:03:42  <isaacs>yes.
00:03:47  <isaacs>which makes sense, since we're not doing a pwrite.
00:03:52  <isaacs>we're not passing in an offset
00:04:00  <isaacs>so uv__fs_write() should just call write()
00:04:32  <bnoordhuis>do you see lots of write() calls when you dtruss it?
00:05:11  <isaacs>yep.
00:05:26  <bnoordhuis>hm, that's kind of worrisome
00:05:46  <bnoordhuis>pwrite() is known bad but i don't think write() is supposed to have issues
00:06:24  <bnoordhuis>ah... libeio applied the mutex to both write() and pwrite()
00:06:30  <bnoordhuis>or rather, our libeio hack :)
00:06:31  <isaacs>now we see why it did that :)
00:06:41  <bnoordhuis>man, os x is so bad
00:06:47  <bnoordhuis>let me write a quick patch
00:06:52  <isaacs>kk
00:07:11  <isaacs>thanks
00:07:33  <isaacs>test works when running dtruss on it, though.
00:07:35  <isaacs>so... that's nice
00:08:09  <isaacs>oh, no, it still fails
00:08:18  <isaacs>just that all the dtruss output comes after
00:11:12  <bnoordhuis>isaacs: can you try https://github.com/joyent/libuv/commit/a5a8e8f ?
00:11:25  <bnoordhuis>git apply --directory=deps/uv/
00:14:11  <isaacs>bnoordhuis: fixed
00:14:16  <bnoordhuis>good, thanks
00:14:49  <isaacs>i see, yeah, just put the mutext around uv__fs_write
00:14:53  <isaacs>better than having a whole separate function anyway
00:17:38  * loladiroquit (Quit: loladiro)
00:17:56  <MI6>joyent/libuv: Ben Noordhuis master * cb03e3b : darwin: work around concurrent write() kernel bug Simultaneously writing - http://git.io/NFBvpQ
00:18:06  <piscisaureus_>time to sleep
00:18:09  <piscisaureus_>for you too ben
00:18:22  <piscisaureus_>later peepz
00:18:25  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
00:18:57  <MI6>joyent/node: Ben Noordhuis master * 5823290 : deps: upgrade libuv to cb03e3b - http://git.io/us78Yw
00:19:32  <bnoordhuis>sleep tight, bertje
00:19:40  * travis-cijoined
00:19:40  <travis-ci>[travis-ci] joyent/libuv#789 (master - cb03e3b : Ben Noordhuis): The build passed.
00:19:40  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/4affbe70b6f2...cb03e3bd2658
00:19:40  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2728426
00:19:40  * travis-cipart
00:21:57  <mmalecki>bnoordhuis: at what time do you get up?
00:22:08  <bnoordhuis>mmalecki: whenever i wake up
00:22:16  <mmalecki>just curious. trying to compare that to my sleep schedule
00:22:34  <bnoordhuis>usually around 11 or 12 in the morning
00:23:36  <mmalecki>that's still night for me XD
00:26:18  <isaacs>ok, so, if you do stream.write(chunk, cb) and there's an error, do we call cb(er), or emit('error', er)?
00:26:21  <isaacs>or both?
00:26:35  <isaacs>i'm tempted to say, call the cb, but don't emit 'error'
00:26:37  <bnoordhuis>isaacs or anyone feel like trying out an alternative os x workaround? https://gist.github.com/a05bffbf3b0a19e1dd20
00:26:40  <mmalecki>isaacs: in APIs, I usually call cb only
00:26:54  <mmalecki>I think that's what core APIs do too
00:27:02  <bnoordhuis>should be a fair bit faster if you're writing to many files simultaneously
00:27:55  <isaacs>bnoordhuis: doesn't work
00:27:58  <isaacs>bnoordhuis: throws
00:28:07  <bnoordhuis>isaacs: throws?
00:28:12  <isaacs>well, the test fails.
00:28:20  <isaacs>so the test throws, from js, because it fails the assert
00:28:33  <tjfontaine>isaacs: I would say if you cb(err) don't emit
00:28:41  <bnoordhuis>gah, let me guess... flock doesn't work on os x
00:28:52  <bnoordhuis>can you dtruss it to satisfy my curiosity?
00:28:55  <isaacs>sure
00:29:29  <isaacs>flock(0x8, 0x2, 0x102186EB4) = 0 0
00:29:29  <isaacs>write(0x8, "aaaaaaaaaaaaaaaaaaaaaaaaaaaa\n\0", 0x1D) = 29 0
00:29:29  <isaacs>flock(0x8, 0x8, 0x0) = 0 0
00:29:35  <isaacs>seems like flock is working, no?
00:30:03  <bnoordhuis>yes
00:30:17  <isaacs>well, it's not returning error anywya
00:30:24  <isaacs>but it's not actually doing the intended behavior either
00:30:58  <bnoordhuis>okay, i'll scrap it for now
00:32:12  <mmalecki>bnoordhuis: fwiw, nobody runs os x servers :)
00:32:27  <bnoordhuis>mmalecki: no, but a lot of silly people run benchmarks on os x
00:32:51  <mmalecki>ah, the "benchmarked on my MacBook Air" kind of benchmark
00:32:56  <mmalecki>gotta love those
00:39:10  * EhevuTovquit (Quit: This computer has gone to sleep)
00:42:05  <bnoordhuis>i think my gdbjit patch landed in v8: https://github.com/v8/v8/commit/5248303
00:52:09  * TooTallNatejoined
00:55:15  * pastjean_joined
00:55:15  * pastjeanquit (Read error: Connection reset by peer)
01:00:24  * ericktjoined
01:03:06  * harrisonmjoined
01:04:15  * loladirojoined
01:05:06  * perezdquit (Quit: perezd)
01:24:01  * dapquit (Quit: Leaving.)
01:25:08  <isaacs>omg, our crypto module is such utter annoying crap.
01:25:19  <isaacs>indutny: i am relating with your pain.
01:30:53  * harrison1joined
01:31:42  * harrisonmquit (Quit: Reconnecting)
01:37:49  * abraxasjoined
01:40:13  * xaqquit (Remote host closed the connection)
01:40:52  * jmar777joined
01:45:57  * kazuponjoined
01:48:55  * bnoordhuisquit (Ping timeout: 240 seconds)
01:51:40  * kazuponquit (Remote host closed the connection)
02:02:12  * brsonquit (Quit: leaving)
02:08:07  * harrison1changed nick to harrisonm
02:08:20  * mjr_quit (Ping timeout: 246 seconds)
02:08:53  * joshthecoderquit (Quit: Leaving...)
02:12:00  * kazuponjoined
02:20:30  * xaqjoined
02:22:33  * kazuponquit (Remote host closed the connection)
02:24:00  * harrisonmquit (Ping timeout: 255 seconds)
02:30:09  * Ariaquit (Remote host closed the connection)
02:55:22  * joeandaverdequit (Ping timeout: 246 seconds)
02:56:15  * joeandaverdejoined
03:09:45  * joshthecoderjoined
03:14:01  * loladiroquit (Quit: loladiro)
03:30:35  * kazuponjoined
03:36:58  * TooTallNatequit (Quit: Computer has gone to sleep.)
03:38:24  * jmar777quit (Remote host closed the connection)
03:49:26  * dapjoined
03:51:38  * mjr_joined
03:51:46  * dapquit (Client Quit)
04:19:02  * loladirojoined
04:22:22  * ArmyOfBrucequit (Excess Flood)
04:22:54  * ArmyOfBrucejoined
04:24:55  * mjr__joined
04:24:55  * mjr_quit (Read error: Connection reset by peer)
04:24:56  * mjr__changed nick to mjr_
04:44:31  * perezdjoined
04:58:23  * tomshredsquit (Quit: Leaving...)
05:14:05  * pastjean_quit (Read error: Connection reset by peer)
05:14:26  * pastjeanjoined
05:19:38  * perezdquit (Quit: perezd)
05:26:26  * ericktquit (Quit: erickt)
05:34:57  <indutny>isaacs: indeed
05:47:03  * TooTallNatejoined
05:57:16  * paddybyersjoined
06:02:37  * TooTallNatequit (Quit: Computer has gone to sleep.)
06:14:03  * mjr_quit (Quit: mjr_)
06:19:43  * paddybyersquit (Ping timeout: 276 seconds)
06:25:32  * paddybyersjoined
06:32:01  * xaq_joined
06:32:15  * xaqquit (Read error: Connection reset by peer)
06:32:16  * pastjeanquit (Remote host closed the connection)
06:32:47  * pastjeanjoined
06:37:31  * pastjeanquit (Ping timeout: 256 seconds)
06:40:12  * joshthecoderquit (Quit: Linkinus - http://linkinus.com)
06:52:28  * AvianFluquit (Remote host closed the connection)
06:56:35  * xaq_quit (Ping timeout: 260 seconds)
07:03:25  * pastjeanjoined
07:03:34  * rendarjoined
07:09:20  * xaqjoined
07:09:32  * mralephjoined
07:10:08  * Raltjoined
07:11:34  * pastjeanquit (Ping timeout: 244 seconds)
07:38:23  * pastjeanjoined
07:40:03  * loladiroquit (Quit: loladiro)
07:42:11  <indutny>mraleph: hey
07:42:23  <indutny>mraleph: how does idle notification works?
07:42:41  * pastjeanquit (Ping timeout: 248 seconds)
07:42:45  <indutny>mmalecki: it seems that GC is triggering every 500-600 ms after idle notification
07:43:14  * felixgequit (Remote host closed the connection)
07:43:19  <mmalecki>indutny: so does whiskey, what's the big deal?
07:43:35  <mmalecki>wait
07:43:38  <mmalecki>what did I just say
07:43:39  <mmalecki>anyway
07:43:48  <mmalecki>indutny: that sounds plausible
07:43:51  * felixgejoined
07:43:52  * felixgequit (Changing host)
07:43:52  * felixgejoined
07:43:52  <mmalecki>you can disable it tho
07:44:14  <indutny>well
07:44:22  <indutny>disabling is not a solution
07:45:23  * xaqquit (Ping timeout: 246 seconds)
07:45:32  <mmalecki>why not?
07:49:35  <indutny>because it's good thing
07:49:39  <indutny>essentially
07:51:24  * felixge_joined
07:51:24  * felixge_quit (Changing host)
07:51:25  * felixge_joined
07:55:20  * felixgequit (Ping timeout: 260 seconds)
07:55:20  * felixge_changed nick to felixge
07:58:03  <indutny>mmalecki: so
07:58:06  <indutny>mmalecki: about benchmarking
07:58:13  <indutny>mmalecki: you can just clone tlsnappy repo
07:58:32  <indutny>mmalecki: start nginx server with configuration in benchmark/nginx.conf
07:58:42  <indutny>mmalecki: start node example/server --default 44301
07:58:46  <indutny>mmalecki: start node example/server --hybrid 44302
07:58:49  <indutny>mmalecki: start node example/server --cluster 44303
07:58:53  <indutny>mmalecki: start node example/server --https 44304
07:59:03  <indutny>mmalecki: run node benchmark/script.js > bench.log
07:59:09  <indutny>mmalecki: and send me log file once finished
07:59:10  <indutny>:)
07:59:14  <indutny>quite straightforward
08:01:51  <mmalecki>indutny: whiskey disagrees with "straightforward" part
08:01:58  <indutny>mmalecki: hehe
08:03:18  <indutny>brb
08:20:48  * felixgequit (Read error: Connection reset by peer)
08:21:21  * felixge_joined
08:21:21  * felixge_quit (Changing host)
08:21:21  * felixge_joined
08:21:44  * felixge_changed nick to felixge
08:38:52  * pastjeanjoined
08:43:08  * pastjeanquit (Ping timeout: 240 seconds)
08:45:11  * kazuponquit (Remote host closed the connection)
08:51:07  * mmaleckichanged nick to mmalecki[passedo
08:51:13  * mmalecki[passedochanged nick to mmalecki[zzz]
08:53:57  * V1joined
08:54:34  * V1changed nick to `3rdEden
09:09:58  * hzjoined
09:39:22  * pastjeanjoined
09:43:49  * pastjeanquit (Ping timeout: 252 seconds)
10:02:07  * mikealquit (Quit: Leaving.)
10:10:45  * stagasjoined
10:15:56  <txdv>bravo whiskey alpha nine
10:21:10  * mralephquit (Read error: Connection reset by peer)
10:21:22  * mralephjoined
10:34:19  * piscisaureus_joined
10:39:41  * paddybyersquit (Ping timeout: 246 seconds)
10:39:56  * pastjeanjoined
10:44:19  * pastjeanquit (Ping timeout: 256 seconds)
10:46:41  * abraxasquit (Remote host closed the connection)
11:11:49  * felixgequit (Quit: felixge)
11:14:51  * xaqjoined
11:34:46  <indutny>piscisaureus_: hoya
11:40:28  * pastjeanjoined
11:42:19  * felixgejoined
11:45:09  * pastjeanquit (Ping timeout: 255 seconds)
11:57:37  <txdv>1I like turtles
12:14:24  * paddybyersjoined
12:24:09  * AvianFlujoined
12:29:34  <indutny>txdv: congrats
12:40:56  * pastjeanjoined
12:40:58  * xaqquit (Read error: Connection reset by peer)
12:45:00  * xaqjoined
12:45:25  * pastjeanquit (Ping timeout: 260 seconds)
12:51:45  * xaqquit (Remote host closed the connection)
12:57:00  * xaqjoined
13:02:18  * xaqquit (Remote host closed the connection)
13:13:09  * xaqjoined
13:36:36  * pastjeanjoined
13:41:34  * stagasquit (Read error: Connection reset by peer)
13:42:12  * stagasjoined
13:47:45  * mikealjoined
13:51:22  * piscisaureus_quit (Ping timeout: 260 seconds)
13:52:12  * TheJHjoined
13:59:52  * loladirojoined
14:09:13  * piscisaureusjoined
14:09:46  * piscisaureus_joined
14:16:05  <piscisaureus_>indutny: hey, what does ATOMIC_CAST_WORD do?
14:17:40  <indutny>piscisaureus_: casts ssize_t to int32_t or int64_t
14:17:43  <indutny>actually
14:17:51  <indutny>casts volatile ssize_t* to volatile int32_t*
14:18:00  <indutny>it's not really straightforward in C++
14:18:00  <piscisaureus_>indutny: why is that platform specific?
14:18:05  * tomshredsjoined
14:18:12  <indutny>piscisaureus_: it's word size specific
14:18:19  <indutny>on some platforms ssize_t is int32_t
14:18:24  <indutny>on some int64_t
14:18:24  <indutny>;)
14:18:49  <indutny>brb
14:19:06  <piscisaureus_>indutny: size_t is almost always pointer size I think
14:20:44  <piscisaureus_>indutny: why not just do #define WORD_TYPE int32_5
14:20:47  <piscisaureus_>*int32_t
14:20:53  <piscisaureus_>and make the casts generic?
14:22:08  * tomshredsquit (Client Quit)
14:23:33  <indutny>piscisaureus_: not sure I follow
14:23:49  <indutny>piscisaureus_: ah
14:23:51  <indutny>piscisaureus_: I got it
14:24:06  <indutny>well, may be
14:24:07  <piscisaureus_>indutny: hold off btw - I am doing windows first ;_)
14:24:13  <indutny>kk
14:24:26  * c4milojoined
14:26:02  <piscisaureus_>indutny: oh wait - that macro is only for mac ...
14:27:07  * ericktjoined
14:29:33  <indutny>piscisaureus_: yeah, it is
14:29:34  <indutny>:)
14:29:40  <indutny>piscisaureus_: do you need it?
14:37:06  <piscisaureus_>indutny: no
14:37:28  <indutny>ok, good
14:37:32  <piscisaureus_>indutny: I'm sorry but this word casting stuff is really bullshit... I'm fixing your type sloppiness..
14:37:38  <indutny>heh
14:37:40  <indutny>np
14:42:42  * saghul_joined
14:43:02  <piscisaureus_>indutny: ah, so you use int everywhere because the BIO functions have a signature with int's
14:43:14  <indutny>indeed
14:43:51  <piscisaureus_>indutny: so why didn't you specify that all atomics should be int32_t too? :-)
14:44:02  <piscisaureus_>indutny: I recall you had int64_t in there somewhere
14:44:07  <indutny>hm...
14:44:11  <indutny>I don't have it anymore
14:44:14  <indutny>but int32_t makes sense
14:44:19  <indutny>wait
14:44:23  <indutny>it doesn't makes sense
14:44:30  <indutny>why I should limit it to 32bit?
14:44:31  <piscisaureus_>no
14:44:36  <piscisaureus_>I mean, int :-)
14:44:37  <piscisaureus_>sorry
14:44:46  <piscisaureus_>on windows int equals int32_t always
14:45:26  <indutny>oh that
14:45:36  <piscisaureus_>although IMHO using int for sizes is really wrong
14:46:03  * bnoordhuisjoined
14:46:28  * saghulquit (*.net *.split)
14:46:30  * saghul_changed nick to saghul
14:47:54  * ericktquit (Quit: erickt)
14:48:04  * xaq_joined
14:50:24  * xaqquit (Ping timeout: 244 seconds)
14:51:50  <indutny>piscisaureus_: kewl
14:52:11  <piscisaureus_>oh you implemented it in c++
14:52:15  <piscisaureus_>the bio
14:52:22  <indutny>yeah
14:52:51  * loladiroquit (Quit: loladiro)
14:53:27  <piscisaureus_>indutny: btw - the test doesn't work on windows
14:53:36  <indutny>piscisaureus_: huh, really?
14:53:40  <indutny>piscisaureus_: what happens?
14:53:56  <piscisaureus_>indutny: it doesn't compile
14:54:02  <indutny>hahaha
14:54:04  <indutny>nice
14:55:09  <indutny>piscisaureus_: even with your patch?
14:55:42  <piscisaureus_>indutny: it uses pthreads
14:55:52  <piscisaureus_>indutny: and usleep
14:55:55  <indutny>aaah
14:55:57  <indutny>ring test
14:56:02  <indutny>I need to pull it out of binding.gyp
14:56:42  <indutny>piscisaureus_: done
14:58:39  <piscisaureus_>indutny: updated PR
14:59:16  <piscisaureus_>indutny: hmm, it hasn't propagated to the pr yet.
14:59:18  <piscisaureus_>...
15:01:19  <piscisaureus_>ah
15:01:20  <piscisaureus_>indutny: go for it
15:01:48  * xaq_quit (Remote host closed the connection)
15:02:42  <indutny>ok
15:03:51  <bnoordhuis>piscisaureus_: https://github.com/joyent/node/issues/4111 ?
15:04:04  <indutny>piscisaureus_: ah, can you squash it?
15:04:04  <piscisaureus_>bnoordhuis: saw it, could be
15:04:06  <indutny>ok
15:04:09  <indutny>I'll do it for you
15:04:13  <piscisaureus_>indutny: you can squash it yourself
15:05:19  <indutny>piscisaureus_: done
15:06:03  <indutny>bnoordhuis: have you ever dealt with mutrace?
15:06:09  <indutny>bnoordhuis: how can I install it?
15:06:09  <bnoordhuis>indutny: yes
15:06:15  <bnoordhuis>apt-get install mutrace
15:06:22  <indutny>that doesn't work
15:06:26  <indutny>I'm on old ubuntu
15:06:36  <bnoordhuis>then upgrade :)
15:06:49  <bnoordhuis>you may be able to download the .deb and dpkg -i it
15:06:57  <piscisaureus_>bnoordhuis: yep, confirmed
15:07:07  <bnoordhuis>piscisaureus_: any idea why that happens?
15:07:13  <piscisaureus_>bnoordhuis: yes
15:07:26  <piscisaureus_>bnoordhuis: will comment (and fix)
15:07:31  <bnoordhuis>okay, cool
15:08:01  * loladirojoined
15:08:57  * loladiroquit (Client Quit)
15:10:03  <indutny>haha
15:10:08  <indutny>installing it from source
15:11:13  <indutny>oh crap
15:11:33  <indutny>ok
15:11:37  <indutny>better to plockstat on osx
15:17:06  <piscisaureus_>bnoordhuis: is it okay to upgrade uv in node/v0.8 ?
15:17:18  <piscisaureus_>bnoordhuis: (or do you have anything pending in uv?)
15:18:18  <MI6>joyent/libuv: Bert Belder v0.8 * b0c1a38 : windows: fix handle leak in uv_fs_utime (+1 more commits) - http://git.io/R1_ZZA
15:18:38  <bnoordhuis>piscisaureus_: no, nothing
15:18:45  <bnoordhuis>so yes, safe (as it should be)
15:20:03  * travis-cijoined
15:20:03  <travis-ci>[travis-ci] joyent/libuv#790 (v0.8 - b0c1a38 : Bert Belder): The build is still failing.
15:20:03  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/39ca621987e1...b0c1a3803ab9
15:20:03  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2736557
15:20:03  * travis-cipart
15:20:10  <indutny>piscisaureus_: so does tlsnappy work on windows after all?
15:20:15  <piscisaureus_>In theory there is no difference between theory and practice
15:20:21  <piscisaureus_>indutny: don't know
15:20:39  <indutny>oh
15:20:41  <indutny>ok
15:20:47  <piscisaureus_>indutny: I have no node-master-with-openssl-export-patch floating around atm
15:20:57  <indutny>and it works with it/
15:20:57  <piscisaureus_>what happened to that btw?
15:20:57  <indutny>?
15:21:04  <piscisaureus_>indutny: it did last time I checked
15:21:13  <indutny>piscisaureus_: nothing, just interesting how fast it is on windows
15:21:21  <indutny>s/interesting/curious/
15:21:25  <piscisaureus_>indutny: ah. But I have no benchmarking tools that can do ssl
15:21:28  <piscisaureus_>maybe wcat
15:21:31  <indutny>ah
15:21:34  <piscisaureus_>but that's always so painful :-(
15:21:43  <piscisaureus_>tjfontaine: bnoordhuis: did you ever manage to get the openssl-export stuff going on mac?
15:21:44  <indutny>windows is hard on benchmarking
15:22:47  <piscisaureus_>ya
15:23:03  <indutny>odd thing
15:23:13  <indutny>it seems that main thread is wasting a lot of time at parsing http
15:23:33  <indutny>aaah
15:23:34  <indutny>no
15:23:41  <indutny>it waits on kevent() mostly
15:23:42  <indutny>ok
15:23:45  <indutny>that's fine than
15:26:46  <piscisaureus_>bnoordhuis: what are/have you been working on>?
15:28:07  * felixgequit (Quit: felixge)
15:30:50  * mmalecki[zzz]changed nick to mmalecki
15:32:46  * `3rdEdenchanged nick to `3E|DINNER
15:33:56  <MI6>joyent/node: Bert Belder v0.8 * 87518f1 : uv: upgrade to b0c1a38 - http://git.io/E9VJ4Q
15:35:16  * mikealquit (Quit: Leaving.)
15:37:41  * dapjoined
15:38:10  <indutny>bnoordhuis: does guys on openssl-dev are always so silent?
15:38:21  <indutny>or are they spending hard hours reviewing my patches? :D
15:38:27  <indutny>s/does/are
15:38:45  <bnoordhuis>indutny: i think so. openssl development isn't very active
15:38:50  * mikealjoined
15:39:42  <indutny>what about pulling this stuff into node?
15:40:58  * pastjeanquit (Remote host closed the connection)
15:41:10  <bnoordhuis>indutny: hm. i'd rather wait for the review
15:41:29  <bnoordhuis>the patches seem innocuous enough to me but presumably the openssl devs know their codebase better than i do
15:41:42  <indutny>ok
15:41:58  <indutny>OPENSSL_BN_ASM_MONT
15:41:59  <indutny>piscisaureus_: sounds familiar?
15:42:16  <indutny>bnoordhuis: ok
15:43:56  <indutny>nvm
15:43:57  <indutny>this is crap
15:44:10  <bnoordhuis>what is?
15:44:25  <indutny>OPENSSL_BN_ASM_MONT
15:44:35  <indutny>it's relevenatt only with OPENSSL_NO_ASM
15:44:40  <indutny>really nice naming though
15:45:47  <indutny>hm...
15:45:48  <indutny>interesting
15:46:02  * pastjeanjoined
15:47:26  * dapquit (Quit: Leaving.)
15:52:50  * dapjoined
15:56:04  * EhevuTovjoined
16:00:30  * saghulquit (Ping timeout: 240 seconds)
16:01:04  * saghuljoined
16:03:23  * ArmyOfBrucequit (Excess Flood)
16:03:55  * ArmyOfBrucejoined
16:11:17  * EhevuTovquit (Quit: This computer has gone to sleep)
16:11:56  * EhevuTovjoined
16:12:10  * felixgejoined
16:24:32  <indutny>indeed
16:24:49  <indutny>CRYPTO_lock_add is especially important
16:33:52  * perezdjoined
16:37:02  * joshthecoderjoined
16:42:44  <piscisaureus_>indutny: whatsup with BN_ASM_MONT ?
16:44:06  <indutny>piscisaureus_: nothing
16:44:06  <indutny>nvm
16:49:14  <isaacs>indutny: so, remember when we were talking about making the crypto module use buffers by default instead of binary strings?
16:49:21  <isaacs>indutny: we need to do that.
16:49:28  <indutny>sure
16:49:37  <isaacs>indutny: but... this code is very confusing and un-node-like.
16:50:16  <indutny>so?
16:50:36  <indutny>what do you want? :)
16:50:50  <isaacs>indutny: was there something that you had to make it buffers-by-default already? because some of the changes i'm making are not working like how i think they should.
16:50:58  * TooTallNatejoined
16:51:22  <indutny>isaacs: well, it's just matter of few tweaks in node_crypto.cc
16:51:46  <indutny>isaacs: what exactly is failing for you?
16:52:27  <isaacs>indutny: this:
16:52:30  <isaacs>> crypto.createHash('md5').update(f, 'buffer').digest('hex')
16:52:30  <isaacs>'7cfdd07889b3295d6a550914ab35e068'
16:52:30  <isaacs>> crypto.createHash('md5').update(f.toString('binary'), 'binary').digest('hex')
16:52:30  <isaacs>'7cfdd07889b3295d6a550914ab35e068'
16:52:32  <isaacs>> crypto.createHash('md5').update(f.toString('hex'), 'hex').digest('hex')
16:52:35  <isaacs>Assertion failed: (encoding == BINARY), function DecodeWrite, file ../src/node.cc, line 1199.
16:52:53  <indutny>oh crap
16:52:53  <indutny>ok, I'll open pull request :)
16:52:58  <isaacs>oh, nono, it's fine
16:53:18  <isaacs>indutny: i think ti's just because these DecodeWrite and DecodeBytes functions aren't aware of all the new encodings.
16:53:28  <indutny>that's impossible
16:54:03  <indutny>ah
16:54:06  <isaacs>indutny: why? it's broken the same way in 0.8 and 0.6
16:54:09  <indutny>you should not pass BUFFER to DecodeWrite
16:54:11  <indutny>:)
16:54:25  <indutny>or
16:54:25  <indutny>should extend assertion
16:54:25  <indutny>but yeah
16:54:25  <indutny>it's borked
16:54:28  <isaacs>indutny: it's that you should not pass 'hex' to DecodeWrite, i think
16:54:35  <isaacs>indutny: what i'd like to do is get rid of those functions.
16:54:49  <isaacs>indutny: and just move the encoding handling stuff into JS, since we are doing copies anyway
16:55:01  <isaacs>and then the C++ only ever deals with buffers.
16:55:06  <indutny>oh
16:55:08  <indutny>that sounds feasible
16:55:21  <indutny>you can just do all the stuff on buffer instances
16:55:28  <isaacs>it won't be faster, but it probably won't be slower, and it'll be a heck of a lot easier to manage.
16:55:59  <isaacs>so, it seems like the only things i'll need to change are the default out_enc arguments on stuff like .sign(), .digest(), .final(), etc.
16:56:23  <isaacs>but i'd like to also remove some of this complexity from the C++ bits.
16:56:58  <isaacs>indutny: does that sound right to you?
16:57:03  <indutny>yes
16:57:06  <indutny>fuck node_crypto.cc
16:57:15  <indutny>it's so awful
16:57:29  <indutny>mixed classes and code
16:57:29  <indutny>errr
16:57:31  <indutny>I should definitely it address one day
16:59:02  * indutnywrites blog post
16:59:02  <indutny>about new tlsnappy results
16:59:06  <isaacs>indutny: first, i want to get people using the streaming api, and using it with buffers.
16:59:24  <isaacs>indutny: then we can deprecate the lowlevel digest/update/verify/sign/final/etc. api
16:59:49  * Raltquit (Ping timeout: 252 seconds)
17:00:07  <isaacs>and write it in a more reasonable way. maybe even do crypto/hashing stuff on the thread pool.
17:00:59  <indutny>oh
17:00:59  <indutny>:)
17:14:19  * tomshredsjoined
17:17:01  * c4miloquit (Remote host closed the connection)
17:21:18  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
17:22:08  * piscisaureusquit (Quit: Lost terminal)
17:36:39  * `3E|DINNERchanged nick to `3rdEden
17:38:17  * joshthecoderquit (Quit: Leaving...)
17:38:20  * paddybyersquit (Ping timeout: 246 seconds)
17:38:23  * AvianFlu_joined
17:39:29  * AvianFluquit (Ping timeout: 245 seconds)
17:41:04  * AvianFlu_changed nick to AvianFlu
17:43:11  <isaacs>ohhh, man, node_crypto.cc has its own copy of all the buffer encoding mechanisms.
17:43:20  <isaacs>hex, base64, etc.
17:44:03  * c4milojoined
17:49:18  * EhevuTov_joined
17:50:52  <isaacs>basically the entire buffer api is reproduced in here.
17:50:53  <isaacs>jesus.
17:50:58  <isaacs>sweet zombie jesus.
17:51:04  * paddybyersjoined
17:51:37  * EhevuTovquit (Ping timeout: 240 seconds)
17:58:07  <TooTallNate>isaacs: that sounds no fun
17:58:46  * brsonjoined
17:59:24  <isaacs>yeah.
17:59:37  <isaacs>and it's not decoding to a buffer in a lot of cases, it's decoding to a binary string.
18:00:11  <isaacs>but, now that indutny made it *possible* to pass buffers in... i can just move all this encoding/decoding code to JS using the Buffer api, and send buffers to the underlying functions, and then remove this other crap.
18:01:20  <TooTallNate>that sounds like the proper thing to do
18:03:01  * AvianFlu_joined
18:04:25  * AvianFluquit (Ping timeout: 246 seconds)
18:06:10  * AvianFlu_changed nick to AvianFlu
18:07:30  * EhevuTov_quit (Quit: This computer has gone to sleep)
18:08:34  * joshthecoderjoined
18:15:18  * lohkeyjoined
18:22:06  * EhevuTovjoined
18:27:45  <TooTallNate>isaacs: you're probably a good candidate to review https://github.com/joyent/node/commit/881f9c41dd49e17318ea8164e1579d354d8f9569
18:27:49  <TooTallNate>if you got a sec
18:28:51  <indutny>heh
18:30:13  * Raltjoined
18:32:04  * Raltquit (Remote host closed the connection)
18:34:02  * xaqjoined
18:49:39  <ryah>bert is never here when i want him
18:49:42  <ryah>-_-
18:50:07  * `3rdEdenquit (Remote host closed the connection)
18:50:24  <bnoordhuis>mmalecki: ping
18:50:44  <mmalecki>bnoordhuis: pong
18:50:59  <bnoordhuis>mmalecki: do you care about keeping node.js running on smartos?
18:51:17  <mmalecki>bnoordhuis: ...yes?
18:51:26  <mmalecki>I think.
18:51:30  <bnoordhuis>mmalecki: in that case, can you keep bender.no.de somehow in the air? :)
18:52:13  <mmalecki>bnoordhuis: what's that?
18:52:19  <mmalecki>if it's a node app, I obviously can
18:52:26  <mmalecki>I work for that little silly company
18:52:30  <bnoordhuis>mmalecki: my no.de instance
18:52:51  <TooTallNate>bnoordhuis: what's wrong with smartosdrone?
18:52:58  <mmalecki>bnoordhuis: do you need ssh access?
18:53:09  <bnoordhuis>TooTallNate: nothing, i guess, but bender feels like home
18:53:18  <bnoordhuis>mmalecki: i *have* ssh access :)
18:53:20  <TooTallNate>fair enough :)
18:53:30  <bnoordhuis>but i got a mail from nodejitsu that you guys are about to start billing?
18:53:32  * V1joined
18:53:59  <mmalecki>bnoordhuis: [m'ed :)
18:54:02  * V1changed nick to `3rdEden
18:57:11  * EhevuTovquit (Quit: Leaving)
18:57:35  * EhevuTovjoined
19:06:16  * EhevuTovquit (Quit: This computer has gone to sleep)
19:09:34  * tomshredsquit (Quit: Linkinus - http://linkinus.com)
19:19:10  * xaqquit (Remote host closed the connection)
19:24:15  * hnakamurquit (Quit: ZNC - http://znc.in)
19:27:41  * c4miloquit (Remote host closed the connection)
19:27:44  * perezdquit (Quit: perezd)
19:28:02  * perezdjoined
19:30:50  <indutny>o hai
19:31:08  <indutny>bnoordhuis: I don't have 3 bucks too
19:31:12  <indutny>same problem
19:31:20  <indutny>and http://candor-lang.org/ runs on nodejitsu
19:33:31  * joshthecoderquit (Quit: Linkinus - http://linkinus.com)
19:34:00  * xaqjoined
19:34:42  * xaqquit (Remote host closed the connection)
19:39:51  * avalanche123|hjoined
19:45:59  * perezdquit (Quit: perezd)
19:49:20  * TooTallNatequit (Quit: Computer has gone to sleep.)
19:50:22  * Raltjoined
19:51:58  <mmalecki>indutny: pm'ed
19:58:51  * avalanche123|hquit (Quit: Computer has gone to sleep.)
20:08:23  * TooTallNatejoined
20:12:18  * c4milojoined
20:18:45  * Raltquit (Remote host closed the connection)
20:33:18  <MI6>joyent/node: Nathan Rajlich master * 07774e6 : util: make `inspect()` accept an "options" argument Consolidates all the - http://git.io/y3Shwg
20:41:43  * joshthecoderjoined
20:43:46  <bnoordhuis>is anyone else getting mails from packt publishing, asking if you want to write a review for them?
20:43:57  <TooTallNate>bnoordhuis: i did too
20:44:10  * piscisaureus_joined
20:45:29  <tjfontaine>piscisaureus_: no I haven't played with the openssl-asm+mac stuff I may get around to that tonight
20:45:40  <piscisaureus_>tjfontaine: cool
20:45:56  <piscisaureus_>tjfontaine: it's not about asm btw. It's about figuring out this export stuff
20:46:08  <tjfontaine>er right i knew that
20:46:39  <tjfontaine>also https://github.com/joyent/node/issues/4109 we had a conversation once about IPV6_V6ONLY but that was more in libuv
20:52:26  * perezdjoined
20:53:01  <piscisaureus_>hello
20:56:27  <TooTallNate>bnoordhuis: hey wanna review another one?
20:56:31  <TooTallNate>https://github.com/TooTallNate/node/commit/4c46f5833d0857db742af78ebdaa8ce6d0975536
20:59:01  * tomshredsjoined
20:59:45  <piscisaureus_>should we put sourcemaps into node core?
20:59:46  <bnoordhuis>piscisaureus_: bertje, there's a couple of people in node's AUTHORS file that don't show up in any git commits
20:59:57  <piscisaureus_>bnoordhuis: like, who?
21:00:15  <piscisaureus_>bnoordhuis: I think I know what the story is for all of them
21:00:19  <bnoordhuis>piscisaureus_: Erich Ocean, Trevor Blackwell
21:00:31  <bnoordhuis>George Shank
21:01:25  <piscisaureus_>bnoordhuis: I know the first two names, there was a reason for that
21:01:48  <bnoordhuis>piscisaureus_: i thought maybe their commits are in old branches
21:01:54  <bnoordhuis>but i'm not seeing them :)
21:03:18  <piscisaureus_>bnoordhuis: 5547450ca5
21:03:28  <bnoordhuis>that george shank is in there though
21:04:14  <bnoordhuis>oh, and he is
21:04:17  <bnoordhuis>okay, one down
21:04:49  <bnoordhuis>ah, that ryah guy, always complicating our lives
21:05:05  <piscisaureus_>bnoordhuis: also 8721667a2fc07
21:05:25  <piscisaureus_>bnoordhuis: Trevor is the only one that I can't find the commit for but I remember his name still
21:05:46  <bnoordhuis>probably ryan committed a patch from him under his own name
21:06:04  <piscisaureus_>yeah, but I could backtrack that when I last looked at the authors file
21:07:10  <piscisaureus_>ah yes
21:07:12  <piscisaureus_>bnoordhuis: e235aae0181d7b3b479
21:07:29  <bnoordhuis>piscisaureus_: yep, found it
21:07:56  <bnoordhuis>wait, let me rewrite the last 2.5 years of history
21:08:15  <bnoordhuis>(i'm kidding)
21:09:25  <MI6>joyent/node: Ben Noordhuis master * e15f226 : Update AUTHORS and .mailmap - http://git.io/_mR6Gg
21:09:27  <bnoordhuis>or was i?
21:11:21  <piscisaureus_>bnoordhuis: What did Erik Corry contribute?
21:11:33  <piscisaureus_>bnoordhuis: did you check the CLA for all these new guys?
21:11:33  <bnoordhuis>didn't i filter him out?
21:11:47  <bnoordhuis>yes, because i never land patches when people haven't signed the cla
21:11:52  * lohkeyquit (Quit: lohkey)
21:12:11  <bnoordhuis>ah, of course erik corry uses a gmail address...
21:12:51  <MI6>joyent/node: Ben Noordhuis master * bdf3c82 : Update AUTHORS and .mailmap - http://git.io/mnSSaA
21:12:56  <piscisaureus_>bnoordhuis: also, BMC is now doubled up
21:13:17  <piscisaureus_>bnoordhuis: you should add alternative email addresses to the mailmap too
21:14:07  <piscisaureus_>bnoordhuis: same for DAP
21:14:34  <piscisaureus_>bnoordhuis: and tom hughes
21:16:19  <bnoordhuis>well, there
21:16:25  <MI6>joyent/node: Ben Noordhuis master * e3ee289 : Update AUTHORS and .mailmap - http://git.io/db5Klg
21:16:40  <piscisaureus_>bnoordhuis: let's look for other flaws >:-)
21:17:32  * rendarquit
21:17:34  <piscisaureus_>I am surprised that tjfontaine was not in there yet
21:18:51  <piscisaureus_>bnoordhuis: ok, lgtm now
21:19:28  <piscisaureus_>bnoordhuis: I think you had to reorder some stuff because when I last updated it I used toplogical order and not date order (in an attempt to keep the list order stable after merges with a stable branch)
21:20:05  <bnoordhuis>piscisaureus_: oh? i used commits sorted by date
21:20:19  <piscisaureus_>bnoordhuis: well that explains why some names were moved
21:20:22  <piscisaureus_>whatever, this is fine
21:20:36  <piscisaureus_>it's just a chore and it always will be I'm afraid
21:21:18  <bnoordhuis>yep :(
21:24:08  <piscisaureus_>so, can we have sourcemap support?
21:26:12  * `3rdEdenquit (Quit: Zzzzz)
21:30:58  * lohkeyjoined
21:32:11  <bnoordhuis>piscisaureus_: i shot down a feature request for that a while ago
21:32:21  <bnoordhuis>it's a nice feature but otoh it doesn't have to be in core
21:38:10  <piscisaureus_>bnoordhuis: well if it isnt in core then stack traces make no sense
21:38:26  <bnoordhuis>piscisaureus_: how so?
21:38:39  <isaacs>TooTallNate: inspect changes lgtm.
21:38:44  <piscisaureus_>bnoordhuis: well, you know what sourcemaps are right>
21:38:53  <bnoordhuis>i do
21:39:07  <isaacs>TooTallNate: what do you think about a way to make console.log() and friends use different inspect() settings
21:39:10  <piscisaureus_>bnoordhuis: if people use, god forbid, coffeescript, or streamline, or whatever2js then suddenly your code is undebuggable
21:39:32  <piscisaureus_>bnoordhuis: sourcemaps fixes that
21:39:33  <TooTallNate>isaacs: well console.dir() definitely needs to use "customInspect: false"
21:39:37  * AvianFluquit (Remote host closed the connection)
21:39:43  <TooTallNate>isaacs: it's the main reason I added that option
21:39:49  <isaacs>TooTallNate: right, but i mean, for color/depth/etc;
21:40:00  <TooTallNate>isaacs: the other one's i don't care so much, I'm open to whatever
21:40:03  <bnoordhuis>piscisaureus_: i know all that. but what do stack traces have to do with that?
21:40:20  <piscisaureus_>bnoordhuis: well, suppose your program crashes
21:40:37  <isaacs>TooTallNate: it'd be nice to be able to do console.inspectOptions = {..} or something
21:40:46  <piscisaureus_>bnoordhuis: it will show a line number in a generated source file\
21:40:48  <TooTallNate>isaacs: we could set the opts on "console.log" itself. so "console.log.depth", and then use "console.log" as the options argument
21:40:55  <piscisaureus_>instead of the file where the user needs to fix it
21:41:01  <isaacs>TooTallNate: hrm... that's kinda weird.
21:41:20  <TooTallNate>isaacs: ya maybe :p
21:41:46  <bnoordhuis>piscisaureus_: you mean the exception handler of last resort?
21:41:51  <MI6>joyent/node: Nathan Rajlich master * 4eb5399 : util: add a "customInspect" option to `util.inspect()` For disabling cal - http://git.io/zGUw3A
21:41:52  <piscisaureus_>yes
21:42:11  <piscisaureus_>bnoordhuis: don't get me wrong - I am not in a hurry
21:42:17  <piscisaureus_>bnoordhuis: but it seems that browsers are adopting it
21:42:29  <isaacs>bnoordhuis, piscisaureus_: what's this about sourcemaps? what do we have to do to enable them?
21:42:43  <piscisaureus_>isaacs: I don't know yet :-)
21:42:48  <bnoordhuis>piscisaureus_: they are. but i think you can implement most of it as a module
21:42:49  <piscisaureus_>isaacs: I was just toying with the idea
21:42:52  <bnoordhuis>maybe with one or two hooks in core
21:43:07  <piscisaureus_>maybe a module would be a good start indeed
21:43:17  <isaacs>i would not be opposed to adding sourcemap support to node core. but as with all changes, it should start in userland.
21:43:29  <piscisaureus_>people could hook uncaughtexception at first
21:44:23  <isaacs>how are they implemented anyway?
21:44:31  <isaacs>magic comments? some other foolishness?
21:44:46  <piscisaureus_>isaacs: no as external files
21:45:03  <isaacs>mmm...
21:45:07  <piscisaureus_>isaacs: containing mappings between source file lines and generated lines (and for symbols, as well)
21:45:07  <isaacs>this sounds like changes to lib/module.js
21:45:12  <piscisaureus_>HAHAHA
21:45:16  <piscisaureus_>doesn't have to be
21:45:20  <isaacs>ok.
21:45:26  <isaacs>that makes me less resistant to it :)
21:45:37  <isaacs>but, when do we load those files?
21:45:39  <piscisaureus_>maybe v8 will have native sourcemaps
21:45:49  <piscisaureus_>because v8 also generates the stacktrace
21:45:57  <piscisaureus_>I should probably look at how v8 generates the hooks
21:46:05  <piscisaureus_>isaacs: load them as late as possible I suppose
21:46:09  <isaacs>if v8 has some hooks for it, i'd be iwlling to read the sourcemap file and feed it in somewhere when we load the file.
21:46:31  <isaacs>i guess that's as early as possbile
21:46:32  <piscisaureus_>isaacs: I'll take a look at how chrome does it
21:46:35  <isaacs>k
21:46:46  <isaacs>if we're going to read these files, we should read them when we read the js file.
21:46:50  <isaacs>we're already taking a fs hit there.
21:47:07  <piscisaureus_>but it wil eat memory
21:47:10  <piscisaureus_>but hmm maybe
21:47:20  <isaacs>how much memory?
21:47:28  <piscisaureus_>dunno
21:47:33  <isaacs>it can't be THAT much more than the generated js
21:47:42  <piscisaureus_>I think sourcemaps are typically bigger than the original js
21:47:48  <piscisaureus_>like, 2x or so
21:47:53  <piscisaureus_>so the score just before the break
21:48:10  <piscisaureus_>isaacs: +.5
21:48:10  <piscisaureus_>bnoordhuis: -.75
21:49:20  <isaacs>don't take this to mean that i'm pro-sourcemaps
21:49:32  <isaacs>i'm just lazy enough that someone can probably convince me to let them do the work to make it happen
21:49:45  <piscisaureus_>haha
21:49:51  <piscisaureus_>no hurry here
21:49:56  <piscisaureus_>I was just exploring the idea
21:50:01  <isaacs>i think people should just write JavaScript like grownups.
21:50:05  <isaacs>but that's just me.
21:50:19  <isaacs>some people prefer to get their javascript from robots, or dice, or tea leaves. whatever.
21:51:01  <piscisaureus_>I like to get it from far away countries
21:53:39  * pastjeanquit (Remote host closed the connection)
21:54:19  <isaacs>piscisaureus_: like america?
21:54:35  <piscisaureus_>isaacs: sure, that works. You got something for me?
21:57:05  <saghul>bnoordhuis since the faio bench doesn't actually output anything, how do you benchmark it?
21:57:17  <bnoordhuis>saghul: time ./bench
21:57:21  <isaacs>piscisaureus_: workin on it
21:57:22  <bnoordhuis>oh wait, faio
21:57:40  <bnoordhuis>saghul: ab -c 500 -n 200000 http://127.0.0.1:8000/
21:57:58  <saghul>aha
21:58:09  <bnoordhuis>saghul: it's not a very good benchmark though, nearly all cpu time is spent inside the http header parser
21:58:39  * TheJHquit (Ping timeout: 252 seconds)
21:58:40  <bnoordhuis>btw, add -k to test keep-alive performance
21:58:40  <saghul>bnoordhuis ok, thanks! I just wanted to check it out :-)
22:03:45  <saghul>bnoordhuis : Assertion failed: (c->wr.len != 0), function client_write, file bench.c, line 271.
22:03:52  <bnoordhuis>aww :(
22:04:06  <saghul>happens every time, so at least it's consistent
22:04:11  <saghul>need a backtrace?
22:05:42  <bnoordhuis>saghul: yes please
22:06:12  <bnoordhuis>saghul: oh wait, i think i know why that's happening
22:06:56  <saghul>bnoordhuis https://gist.github.com/3868777
22:07:21  <bnoordhuis>saghul: can you run dtruss on it?
22:07:42  <bnoordhuis>i wager the socket is marked writable + error
22:07:50  * stagasquit (Ping timeout: 240 seconds)
22:08:02  <saghul>bnoordhuis dtruss ./bench ?
22:08:09  <bnoordhuis>saghul: yep
22:09:53  * xaqjoined
22:11:39  <saghul>bnoordhuis https://gist.github.com/3868807
22:11:56  <piscisaureus_>bnoordhuis: hey, spawn() throwing an error when the target is not found is only in master right?
22:12:05  <bnoordhuis>piscisaureus_: yes
22:12:45  <bnoordhuis>saghul: ah, that's EMFILE :)
22:13:49  <saghul>hum, by looking at the line number it seems to be a different issue though
22:15:17  <bnoordhuis>yes
22:15:29  <bnoordhuis>what's ulimit -n set to?
22:17:50  <bnoordhuis>piscisaureus_: bertje, in 020 tomorrow (today)?
22:18:19  <piscisaureus_>bnoordhuis: whatever you want. you know friday there's also stuff going on right?
22:18:27  <saghul>bnoordhuis I'm root and it's set to 256 :-S
22:18:38  <bnoordhuis>piscisaureus_: yeah, but i can't make it on friday
22:18:45  <piscisaureus_>bnoordhuis: today is fine too
22:18:52  <bnoordhuis>saghul: may i suggest that you raise that? :)
22:19:16  * hzquit
22:19:20  <saghul>stupid osx is stupid sometimes...
22:20:06  <saghul>raised it to 9999, got the line 271 error
22:20:21  <saghul>bnoordhuis https://gist.github.com/3868859
22:21:15  <bnoordhuis>saghul: can you include some more context? i'm especially interested in the result of the kqueue and kevent syscalls
22:21:31  <bnoordhuis>kevent, not kqueue so much
22:22:43  <saghul>bnoordhuis lets see now: https://gist.github.com/3868859
22:24:26  <bnoordhuis>saghul: thanks. not sure what's going wrong
22:24:40  <TooTallNate>isaacs: here's my little abstraction to make writing parsers on top of Transform stream https://gist.github.com/3868875
22:24:50  <TooTallNate>… easier
22:24:53  <bnoordhuis>there's probably a socket that's in error mode and faio somehow fails to pick it up
22:25:33  <saghul>bnoordhuis let me know if I can help. This is on OSX 10.6, btw
22:25:54  <bnoordhuis>saghul: there's something we can try
22:25:58  <bnoordhuis>can you run it in gdb?
22:26:05  <saghul>sure
22:26:10  * c4miloquit (Remote host closed the connection)
22:26:17  <bnoordhuis>when the assert hits, `f 5` (that's the frame of faio_poll)
22:26:58  <bnoordhuis>what do `p i` and `p events[i]` print?
22:27:43  <saghul>bnoordhuis https://gist.github.com/3868901
22:28:06  <isaacs>TooTallNate: interesting.
22:28:19  <bnoordhuis>saghul: thanks. looks normal
22:28:30  <isaacs>TooTallNate: i feel like there's a better way to do this, though.. you're reproducing some of the work that Readable does
22:28:47  <TooTallNate>isaacs: i need both a way to buffer exactly "x" bytes, and passthrough exactly "x" bytes
22:28:55  <TooTallNate>isaacs: well ya, that's why I wanted to show you :)
22:29:12  <isaacs>TooTallNate: so, i don't have an easy answer off the top of my head
22:29:12  <bnoordhuis>saghul: what does `p n` print?
22:29:22  <isaacs>TooTallNate: but Readable does keep a buffer, right?
22:29:41  <isaacs>TooTallNate: oh.. but you need to buffer what's being *written*
22:29:42  <saghul>bnoordhuis 231
22:29:45  <isaacs>before it's consumed
22:30:19  <isaacs>hm.
22:30:30  <TooTallNate>i mean this little abstractions works, and actually it applies to all Transform's i've implemented so far
22:30:38  <isaacs>TooTallNate: still, you can probaly use the Readable._fromList function somewhere.
22:30:45  <isaacs>TooTallNate: it pulls a buffer out of a list of buffers.
22:30:52  <piscisaureus_>saghul: odd, it works here (with mingw32)
22:31:00  <piscisaureus_>saghul: are you using mingw-w64?
22:31:02  <TooTallNate>oh that might be nice
22:31:08  <saghul>piscisaureus_ nope
22:31:20  <piscisaureus_>neither do i
22:31:25  <TooTallNate>isaacs: but like, it would be super easy to implement HTTP chunked on top of this
22:31:50  <TooTallNate>buffer(1), read byte, passthough(n), repeat...
22:31:53  <bnoordhuis>saghul: thanks. still don't know what's going on :)
22:31:56  <isaacs>TooTallNate: right
22:32:12  <saghul>bnoordhuis np, ping me if you want me to test stuff :-)
22:32:14  <isaacs>TooTallNate: or a netstrings decoder.
22:32:20  <bnoordhuis>saghul: yep, will do
22:32:25  <saghul>piscisaureus_ it's gcc 4.6.2, if that helps
22:32:26  <TooTallNate>yup
22:32:42  <isaacs>TooTallNate: or tar
22:33:09  <TooTallNate>isaacs: my impl doesn't currently allow for doing async stuff but I find with parsers that's not usually the case
22:33:10  <isaacs>TooTallNate: though, tar is a bit different from this because of hte strict block size
22:33:21  <isaacs>TooTallNate: well, i mean, it's fine.
22:33:26  <isaacs>TooTallNate: it's interruptible
22:33:29  <isaacs>that's what matters.
22:33:34  <TooTallNate>right
22:33:46  <isaacs>it'll work properly if you do setInterval(writeOneByte)
22:33:52  <isaacs>it'll just be slower.
22:33:54  <isaacs>that's fine
22:34:14  <piscisaureus_>saghul: I don't think the gcc version matters...
22:34:22  * perezdquit (Quit: perezd)
22:34:36  <saghul>piscisaureus_ could it be that the function is defined on msvcr80? this thing uses msvcr71 IIRC
22:34:40  * perezdjoined
22:35:01  <piscisaureus_>saghul: I think so yes
22:36:15  <saghul>On libreoffice they have it like this
22:36:16  <saghul>+#if defined _MSC_VER // appears unavailable with MinGW
22:36:38  <saghul>maybe we should also do that? piscisaureus_ ?
22:37:04  <piscisaureus_>saghul: well, I suspect that EBADF will crash the program again
22:37:24  <piscisaureus_>saghul: msvcrt 7 is from the stone age ...
22:38:24  <TooTallNate>isaacs: i wanted to think of a better name though
22:38:35  <saghul>piscisaureus_ well, yes, but was working fine (I guess) until now :-S
22:38:49  <TooTallNate>"TransformParser" is the only thing that comes to mind
22:38:54  * c4milojoined
22:39:04  <piscisaureus_>saghul: yeah. I wonder if there is a way to detect the crt version
22:39:26  <saghul>maybe we can try to get it with GetProcAddress ?
22:40:32  * c4miloquit (Remote host closed the connection)
22:40:38  <piscisaureus_>saghul: does that work when teh crt is statically linked?
22:40:51  <piscisaureus_>you are using the crt version that ships with vs2003
22:40:56  <saghul>piscisaureus_ I have no idea
22:40:57  <piscisaureus_>(just sayin')
22:41:31  <saghul>it's the one mingw uses by default, isn't it?
22:42:05  <saghul>I'll switch away from mingw once libuv supports vs2008, but I don't know how to fix that myself :-S
22:44:38  <saghul>maybe we can check if _MSC_VER >= 1400? http://stackoverflow.com/questions/70013/how-to-detect-if-im-compiling-code-under-visual-studio-8
22:45:03  <saghul>piscisaureus_ ^
22:45:12  <piscisaureus_>ahya
22:45:39  * c4milojoined
22:46:14  <isaacs>TooTallNate: Just call it "Parser"
22:46:24  <piscisaureus_>saghul: or maybe some other define that is only available with msvcrt8
22:46:27  <piscisaureus_>saghul: i.e. _WRITE_ABORT_MSG
22:46:33  <TooTallNate>isaacs: nice, i like that :)
22:46:35  <isaacs>TooTallNate: var P = require('stream').Parser
22:46:44  <isaacs>TooTallNate: ftw :)
22:46:53  <TooTallNate>ya could be sweet :)
22:47:01  <piscisaureus_>saghul: can you check if wrapping it within `#ifndef _WRITE_ABORT_MSG` solves it for you?
22:47:15  <saghul>piscisaureus_ sure I'll check it
22:50:33  * c4miloquit (Remote host closed the connection)
22:51:07  <MI6>joyent/node: bnoordhuis created branch buffer-retained-size - http://git.io/EjlpcA
22:51:16  <bnoordhuis>piscisaureus_: ^ you should review that
22:51:22  <saghul>piscisaureus_ wrapping it in #ifdef _WRITE_ABORT_MSG fixes it
22:51:28  <bnoordhuis>isaacs or TooTallNate, you too if you feel like it
22:52:19  <isaacs>bnoordhuis: does it work?
22:52:28  <piscisaureus_>0xBABE
22:52:29  <bnoordhuis>isaacs: *shrug*
22:52:33  <isaacs>:)
22:52:34  <bnoordhuis>isaacs: (yes)
22:53:03  <bnoordhuis>i can't copy/paste it from chrome's profile tab
22:53:24  <bnoordhuis>but before shallow and retained size were reported as 120 and 312 bytes respectively
22:53:47  <bnoordhuis>afterwards, 10494072 and 10494264
22:53:56  <piscisaureus_>bnoordhuis: so this stuff only runs when a heap snapshot is made right?
22:54:01  <bnoordhuis>piscisaureus_: yes
22:54:17  <piscisaureus_>bnoordhuis: (e.g. it is unrelated to AdjustAmountOfExternallyAllocatedMemory)
22:54:24  <bnoordhuis>piscisaureus_: yes
22:54:59  * loladirojoined
22:55:03  * loladiropart
22:57:27  <saghul>piscisaureus_ 0.8 is not merged into master so my pull request would look too involved, here you have https://github.com/saghul/libuv/commit/046f78880e9cb07123d7fce055762385d5f32acf
22:58:36  * lohkey_joined
22:58:36  * lohkey_quit (Client Quit)
23:01:14  * lohkeyquit (Ping timeout: 244 seconds)
23:01:32  * perezdquit (Quit: perezd)
23:01:47  <MI6>joyent/libuv: saghul v0.8 * 9a6f496 : win: fix compilation with MSVCRT < 8.0 - http://git.io/I5iRhA
23:01:49  <piscisaureus_>saghul: ^
23:02:02  * xaqquit (Remote host closed the connection)
23:02:26  <saghul>piscisaureus_ great, thanks!
23:03:31  * travis-cijoined
23:03:31  <travis-ci>[travis-ci] joyent/libuv#791 (v0.8 - 9a6f496 : saghul): The build is still failing.
23:03:31  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/b0c1a3803ab9...9a6f49698582
23:03:31  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2742224
23:03:31  * travis-cipart
23:05:21  <bnoordhuis>piscisaureus_, TooTallNate: lgty?
23:05:29  <piscisaureus_>bnoordhuis: yes
23:05:42  <bnoordhuis>cool
23:05:43  <piscisaureus_>bnoordhuis: looks good for 0.8 as well
23:05:57  * perezdjoined
23:05:59  <bnoordhuis>right. i'll land it there
23:06:53  <piscisaureus_>bnoordhuis: merging master and v0.8 is a pain
23:07:31  <MI6>joyent/node: Ben Noordhuis v0.8 * 6a128e0 : buffer: report proper retained size in profiler Make buffers report the - http://git.io/HOZtSQ
23:07:36  <piscisaureus_>bnoordhuis: you did cleanups on 0.8 (rename i -> fd) and different changes in master
23:07:40  <piscisaureus_>(libuv)
23:07:50  <bnoordhuis>piscisaureus_: c'est la vie
23:09:59  <bnoordhuis>i'll have to fix that for typed arrays sometime as well
23:10:02  <bnoordhuis>but not tonight
23:10:33  <piscisaureus_>bnoordhuis: is that for node-heapdump?
23:10:44  <bnoordhuis>piscisaureus_: yes
23:10:55  <bnoordhuis>node-inspector too, probably
23:11:02  <isaacs>hm... StringDecoder doesn't work properly for base64
23:11:13  <isaacs>that's crappy.
23:17:13  * ericktjoined
23:18:20  <piscisaureus_>I am goink to schliep
23:18:26  <piscisaureus_>bnoordhuis: see you manjana
23:18:37  <bnoordhuis>piscisaureus_: tot morgen, bertje
23:18:43  <bnoordhuis>ik zal zo ook maar eens op bed aan
23:18:56  <piscisaureus_>dat lijkt me een verstandig plan
23:22:46  * c4milojoined
23:27:41  * perezdquit (Quit: perezd)
23:30:20  * perezdjoined
23:31:07  * c4miloquit (Remote host closed the connection)
23:31:36  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:40:55  * paddybyersquit (Ping timeout: 246 seconds)
23:43:12  * loladirojoined
23:57:25  * dapquit (Quit: Leaving.)