00:00:00  * piscisaureus_joined
00:00:06  <piscisaureus_>bnoordhuis: sup?
00:00:14  <piscisaureus_>bnoordhuis: I wanna leave so be quick :-)
00:00:55  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/node/commit/285d8c6
00:01:10  <bnoordhuis>but i already pushed it
00:01:23  <piscisaureus_>bnoordhuis: why align on 8 byte instead of pointer size?
00:01:43  <bnoordhuis>piscisaureus_: sizeof(void*) == 8
00:01:45  <piscisaureus_>bnoordhuis: btw - you should add 7 not 8
00:01:48  <piscisaureus_>bnoordhuis: lol
00:01:50  <piscisaureus_>bnoordhuis: not here
00:01:56  * travis-cijoined
00:01:56  <travis-ci>[travis-ci] joyent/node#653 (master - b031671 : Ben Noordhuis): The build is still failing.
00:01:56  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/67fc1da...b031671
00:01:56  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/969830
00:01:56  * travis-cipart
00:01:56  <bnoordhuis>you live in the past
00:02:13  <bnoordhuis>anyway, it needs to be 8 because sizeof(double) == 8
00:02:31  <piscisaureus_>bnoordhuis: but I am serious about that you have to add 7 and no 8
00:02:38  <piscisaureus_>So it should read
00:02:45  <piscisaureus_>if (pool.used & 7) pool.used = (pool.used + 7) & ~7;
00:02:58  <piscisaureus_>oh well
00:03:09  <piscisaureus_>the if statement prevents it actually :-)
00:03:16  <bnoordhuis>yes
00:03:17  <piscisaureus_>bnoordhuis: you could as well have done
00:03:35  <piscisaureus_>pool.used = (pool.used + 7) & ~7 :-)
00:04:06  <bnoordhuis>it's a quickie fix, i'm redoing it anyway - see https://github.com/joyent/node/issues/3029
00:04:16  <piscisaureus_>bnoordhuis: also you should add a comment there
00:04:32  <piscisaureus_>bnoordhuis: because the purpose is quite nonovious without the commit message
00:06:11  <bnoordhuis>tomorrow
00:07:05  <piscisaureus_>I'll create an issue for you :-)
00:08:00  <piscisaureus_>I am going now
00:08:04  <piscisaureus_>and bnoordhuis too so I hear
00:08:07  <piscisaureus_>bye all
00:08:12  <TooTallNate>later
00:08:29  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
00:21:52  * piscisaureus_joined
00:35:58  * brsonquit (Read error: Connection reset by peer)
00:39:12  * brsonjoined
00:48:41  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
01:08:36  * CoverSli1ejoined
01:09:21  * CoverSlidequit (Read error: Connection reset by peer)
01:20:19  * bnoordhuisquit (Ping timeout: 248 seconds)
01:22:05  * pieternquit (Quit: pietern)
01:24:54  <isaacs>TooTallNate: hey
01:25:06  <isaacs>TooTallNate: does node-gyp work with minimatch 0.2?
01:25:17  <TooTallNate>isaacs: when did you release that?
01:25:33  <isaacs> '0.2.0': '2012-02-22T11:04:45.694Z',
01:25:33  <isaacs> '0.2.2': '2012-03-22T05:22:24.613Z' }
01:25:52  <isaacs>TooTallNate: because it's pulling in 0.1, which makes 2 extra copies.
01:26:01  <isaacs>not a big deal, but probably unnecessary
01:26:06  <TooTallNate>ok thanks, fixing
01:26:23  <isaacs>there were some slight api change.s
01:26:24  <TooTallNate>isaacs: this is the only place minimatch is used https://github.com/TooTallNate/node-gyp/blob/master/lib/install.js#L292-303
01:26:33  <TooTallNate>should i be ok?
01:27:12  <isaacs>TooTallNate: yeah, should be fine
01:27:26  <isaacs>TooTallNate: should this to set matchBase? (minimatch(file, '*.gypi')
01:27:46  <TooTallNate>does that mean root-level only?
01:27:47  <isaacs>TooTallNate: ie, should it match foo/bar/baz.gypi, or *only* a bare file?
01:27:58  <TooTallNate>it needs tools/addon.gypi too
01:28:15  <isaacs>matchBase means that "*.js" will match if the basename matches, so "x/y/z.js" would match
01:28:23  <isaacs>without that, it'd only match "x.js"
01:28:49  <TooTallNate>oh i see, then i could remove the tools/*.gypi one
01:29:00  <isaacs>> m("x/y/z.js", "*.js")
01:29:00  <isaacs>false
01:29:00  <isaacs>> m("x/y/z.js", "*.js", {matchBase: true})
01:29:01  <isaacs>true
01:29:15  <TooTallNate>same for the *.h files probably
01:29:21  <isaacs>yeah
01:29:31  <isaacs>i should add a .defaults() method on minimatch, like how request has.
01:29:33  <isaacs>it's handy
01:29:37  <dap>bnoordhuis, TooTallNate: thanks to both of you.
01:29:39  <TooTallNate>cool, thanks for the tip; i'm updating
01:29:50  <TooTallNate>dap: :)
01:31:01  * perezdquit (Quit: perezd)
01:35:52  * abraxasjoined
01:47:45  <TooTallNate>isaacs: i did a quick v0.3.9 release for these
01:48:13  <TooTallNate>https://github.com/TooTallNate/node-gyp/compare/v0.3.8...v0.3.9
01:48:29  <isaacs>huzzah
01:49:08  <isaacs>ok, minimatch.defaults(opts) works now on 0.2.4
01:49:37  <isaacs>so you can do: mm = minimatch.defaults({ matchBase: true }); and then later, mm(p, "*.foo")...
01:49:42  <isaacs>and it'll use those opts each time
01:50:02  <TooTallNate>isaacs: cool, i'll integrate that
01:50:13  <TooTallNate>geez, .9 release :) that's pretty good for me
01:50:17  <isaacs>haha
01:51:08  <isaacs>TooTallNate: nice
01:51:20  <isaacs>now i just gotta have npm use ansi for its coloring
01:51:39  <isaacs>i'm planning on writing a blog post on "the modules of npm"
01:51:41  <TooTallNate>:)
01:51:44  <isaacs>like, the things that it uses
01:52:02  <TooTallNate>ya man, it's cool to watch you factor out old parts to using modules
01:52:06  <TooTallNate>like archy
01:52:14  <isaacs>yeah, in the process, i've been pulling stuff out like crazy
01:52:42  <isaacs>i really want npm to be this thing that basically anyone could write, by mostly assembling pieces.
01:53:44  <TooTallNate>isaacs: i've kinda been wanting the npm config stuff in its own module
01:53:51  <isaacs>TooTallNate: I KNOW
01:53:57  <isaacs>TooTallNate: wanna do that?
01:53:59  <isaacs>:)
01:54:13  <isaacs>the logging stuff needs to be pulled out as well.
01:54:20  <isaacs>or, just use bunyan or stoopid or something
01:54:20  <TooTallNate>ohhh, ya that too!
01:54:37  <TooTallNate>i've been meaning to make the logging better in node-gyp
01:54:42  <TooTallNate>at least have different log levels
01:54:47  <isaacs>yeah
01:54:47  <TooTallNate>right now there's just -v or not
01:55:03  <isaacs>honestly, that's enough for the vast majority of programs
01:55:50  <TooTallNate>indeed
01:56:42  <TooTallNate>this little irc client i'm making is taking my free dev time right now (re: config module)
01:57:00  <TooTallNate>using "readline" :)
01:57:27  <TooTallNate>trying to find a good, nosql-ish file-based data store though...
01:57:44  <TooTallNate>TJ's "jog" is really nice, but I doubt it will scale very well
01:57:51  <TooTallNate>he said "it's a logger, not a db" :p
02:06:11  <isaacs>hm.
02:06:18  <isaacs>what do you need a data store for?
02:11:24  <TooTallNate>just saving the history
02:11:38  <TooTallNate>querying it later
02:11:55  <isaacs>oh, i see
02:12:01  <isaacs>you know, you could just like, write to files.
02:12:09  <isaacs>like, fs.createWriteStream() and keep writing to it
02:12:13  * orlandovftwquit (Ping timeout: 276 seconds)
02:12:20  <isaacs>but i guess if you want to query, then that's not so great.
02:12:52  <TooTallNate>ya i want a file-based thing, that has querying built-in
02:12:55  <TooTallNate>hard to find :)
02:13:01  <TooTallNate>leveldb i was told to look into
02:22:18  * brsonquit (Ping timeout: 265 seconds)
02:27:40  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
02:29:55  * dylukesjoined
02:37:28  <CIA-99>node: isaacs master * rcda3b6f / (171 files in 28 dirs): Upgrade npm to 1.1.14 - http://git.io/mxDV5Q
02:45:41  * avalanche123|hjoined
02:46:45  <CIA-99>node: isaacs master * r8a15147 / src/node.js :
02:46:45  <CIA-99>node: Reapply "debug: Wait 50ms before running the main module"
02:46:45  <CIA-99>node: This reapplies commit c781f17742170f2e127f9ee6652c56b406c30586
02:46:45  <CIA-99>node: This reverts commit 00224771e32e4d051e5ea33b7e854f0031359912 - http://git.io/ypf9Yg
02:54:37  * travis-cijoined
02:54:37  <travis-ci>[travis-ci] joyent/node#654 (master - cda3b6f : isaacs): The build is still failing.
02:54:37  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/b031671...cda3b6f
02:54:37  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/970386
02:54:37  * travis-cipart
02:55:58  * orlandovftwjoined
03:02:16  <dap>is there any objection to making —with-dtrace the default on SunOS systems?
03:02:43  <CIA-99>node: isaacs master * r4b64542 / (199 files in 18 dirs): Upgrade V8 to - http://git.io/FKbCkQ
03:02:45  <CIA-99>node: isaacs master * raf90faf / deps/v8/build/common.gypi : Patches floating on V8 - http://git.io/gg374w
03:03:40  * travis-cijoined
03:03:40  <travis-ci>[travis-ci] joyent/node#655 (master - 8a15147 : isaacs): The build is still failing.
03:03:40  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/cda3b6f...8a15147
03:03:40  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/970450
03:03:40  * travis-cipart
03:07:24  * dylukesquit (Quit: Pipes are broken. Sending packets via Fedex.)
03:14:11  <CIA-99>node: Shigeki Ohtsu master * rb521ff3 / lib/tty.js : tty: add keypress event for backwards-compat - http://git.io/d8o9-A
03:14:12  <CIA-99>node: Shigeki Ohtsu master * r238e12a / lib/tty.js : tty: show deprecated warn of tty.setRawMode() - http://git.io/o4r4iQ
03:14:12  <CIA-99>node: Shigeki Ohtsu master * r26b6da1 / (doc/api/readline.markdown doc/api/tty.markdown): doc: change stability index of tty and readline to Unstable - http://git.io/H-mOMg
03:16:55  * Brandon_Rjoined
03:16:59  <Brandon_R>Hey guys
03:17:01  <Brandon_R>anyone here?
03:18:25  * travis-cijoined
03:18:25  <travis-ci>[travis-ci] joyent/node#656 (master - af90faf : isaacs): The build is still failing.
03:18:25  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/8a15147...af90faf
03:18:25  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/970544
03:18:25  * travis-cipart
03:18:39  <isaacs>Brandon_R: on my way out
03:18:40  <isaacs>what's up?
03:19:20  <Brandon_R>nvm. it was an error on my part :P
03:20:33  * hij1nxjoined
03:20:37  * isaacsquit (Remote host closed the connection)
03:25:13  * orlandovftwquit (Ping timeout: 264 seconds)
03:27:43  * dapquit (Quit: Leaving.)
03:28:38  * hij1nxquit (Quit: hij1nx)
03:28:53  * travis-cijoined
03:28:53  <travis-ci>[travis-ci] joyent/node#657 (master - 26b6da1 : Shigeki Ohtsu): The build is still failing.
03:28:53  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/af90faf...26b6da1
03:28:53  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/970585
03:28:53  * travis-cipart
03:35:00  * hij1nxjoined
03:37:56  * pfox___joined
03:40:16  * hij1nxquit (Quit: hij1nx)
03:40:19  * dylukesjoined
03:51:01  * hij1nxjoined
04:17:57  * hij1nxquit (Quit: hij1nx)
04:34:38  * hij1nxjoined
04:46:41  * pfox___quit (Quit: leaving)
05:35:32  * mjr_joined
05:35:54  * mjr_quit (Client Quit)
05:36:07  * mjr_joined
05:43:09  * dylukesquit (Quit: Pipes are broken. Sending packets via Fedex.)
05:44:08  * paddybyersjoined
05:48:55  * sh1mmerjoined
05:52:32  * hij1nxquit (Quit: hij1nx)
05:53:20  * sh1mmerquit (Ping timeout: 246 seconds)
05:58:50  * philipsquit (Excess Flood)
05:59:53  * philipsjoined
06:07:29  * orlandovftwjoined
06:17:42  * paddybyersquit (Quit: paddybyers)
06:34:02  * avalanche123|hquit (Quit: Leaving...)
06:34:26  * mmaleckichanged nick to mmalecki[brb]
06:40:06  * Brandon_Rquit (Ping timeout: 245 seconds)
06:59:19  * paddybyersjoined
07:00:26  * rendarjoined
08:27:12  * Ariaquit (Read error: Connection reset by peer)
08:27:46  * Ariajoined
08:49:23  * orlandovftwquit (Ping timeout: 248 seconds)
09:25:03  * toothrquit (Ping timeout: 252 seconds)
09:29:05  * mmalecki[brb]changed nick to mmalecki
09:30:11  * toothrjoined
09:34:22  * theColejoined
09:55:46  * eli-away_joined
09:55:53  * eli-awayquit (Ping timeout: 246 seconds)
10:22:14  * abraxasquit
11:08:56  * theColequit (Quit: theCole)
11:15:41  * dshaw_quit (Ping timeout: 246 seconds)
11:31:35  * bnoordhuisjoined
11:49:26  * Ariaquit (Remote host closed the connection)
12:24:45  <CIA-99>node: ssuda master * r44eb279 / (lib/zlib.js src/node_zlib.cc):
12:24:45  <CIA-99>node: zlib: don't use C++ templates
12:24:45  <CIA-99>node: Reduces the executable's size by a few kilobytes. - http://git.io/P2sCaw
12:29:04  * Ariajoined
12:40:22  * travis-cijoined
12:40:22  <travis-ci>[travis-ci] joyent/node#658 (master - 44eb279 : ssuda): The build is still failing.
12:40:22  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/26b6da1...44eb279
12:40:22  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/972748
12:40:22  * travis-cipart
12:41:20  * einarosquit (Quit: Reconnecting)
12:41:31  * einarosjoined
12:52:53  * Ariaquit (Remote host closed the connection)
13:23:08  * k-s[AWAY]changed nick to k-s
13:36:13  * pfox___joined
14:03:01  * piscisaureus_joined
14:04:12  * piscisaureus_quit (Client Quit)
14:05:19  * piscisaureus_joined
14:15:02  <piscisaureus_>http://neatdesigns.net/35-extremely-sexist-ads-that-you-should-see/
14:16:16  <bnoordhuis>those were simpler, better times
14:16:31  <bnoordhuis>i've used that first one myself
14:27:47  * philipsquit (Excess Flood)
14:28:53  * philipsjoined
14:30:44  <bnoordhuis>what is simple/test-module-load-list's redeeming quality?
14:30:48  <bnoordhuis>because i don't see it
14:32:52  <piscisaureus_>Ok so I ported epoll to windows moreorless
14:33:20  <piscisaureus_>The only caveat is that it does not work when the user uses LSPs
14:33:49  <piscisaureus_>it seems that microsoft should just have made that functionality official
14:34:08  <piscisaureus_>so LSPs writers would have been forced to implement it
14:35:08  <piscisaureus_>It would not have been hard for them because implementing WSPAsyncSelect forces them to all the work. But WSPAsyncSelect adds another layer of backwards crap on top.
14:35:25  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/node/commit/7f4df91 <- agree/disagree?
14:35:44  <bnoordhuis>what are LSPs writers?
14:36:25  <piscisaureus_>LSP are sort of "hook" drivers that alter functionality of the networking stack
14:36:28  <piscisaureus_>they run in user mode
14:37:00  <bnoordhuis>ah, layered service providers
14:37:01  <piscisaureus_>They are typically used for writing malware
14:37:02  <piscisaureus_>yes
14:37:06  <bnoordhuis>suddenly everything gels
14:37:25  <piscisaureus_>How do you know layered service providers?
14:37:40  <bnoordhuis>oh, from these russian guys
14:37:56  <piscisaureus_>you ever wrote such a thing?
14:38:00  <bnoordhuis>no
14:38:11  <bnoordhuis>did you look at the commit? i want to kill that test
14:38:27  <bnoordhuis>why are you porting epoll to windows btw?
14:38:35  <piscisaureus_>for fun
14:38:40  <piscisaureus_>and for uv_external_fd
14:38:40  <bnoordhuis>and profit?
14:38:44  <bnoordhuis>ah okay
14:39:08  <piscisaureus_>so for people that use non-ifs lsps we have to do something backwards and in high heels
14:39:56  <piscisaureus_>although I am still for the printf with bald man and cream <strike>pie</strike>cake
14:40:27  <bnoordhuis>eh, i'll pass
14:40:46  <bnoordhuis>so about that test...
14:40:53  <piscisaureus_>http://www.youtube.com/watch?v=W2Hcxt_HNZg
14:40:56  <piscisaureus_>I'd go for it
14:41:09  <piscisaureus_>yeah what about that test ben?
14:41:30  <bnoordhuis>agree/disagree with the commit?
14:41:51  <piscisaureus_>the test is there to verify that node doesn't require() too much of its internal libs by just starting up
14:42:09  <piscisaureus_>why do you want to drop it
14:42:25  <bnoordhuis>because every time i move something around it breaks
14:42:47  <bnoordhuis>and it always takes an unholy amount of time to find the right sequence
14:42:52  <piscisaureus_>Maybe you could alter the test so it no longer verifies the order ?
14:43:06  <piscisaureus_>only *which* modules are loaded?
14:43:34  <bnoordhuis>maybe - that doesn't change that it's a stupid test
14:43:41  <bnoordhuis>just look at the commit history
14:44:04  <piscisaureus_>is that possible with github?
14:44:11  <piscisaureus_>ah right
14:44:34  <piscisaureus_>https://github.com/bnoordhuis/node/commits/44eb279ef815cbb9bbeaa3bd6bd7fd7d56dca2da/test/simple/test-module-load-list.js
14:44:44  <piscisaureus_>that doesn't look so bad
14:45:45  <bnoordhuis>lots of them are of the "fix test-module-load-list" variety
14:46:15  <piscisaureus_>yeah
14:46:18  <piscisaureus_>4 or so
14:46:33  <bnoordhuis>that doesn't inspire confidence in the greatness of that test in me
14:46:40  <piscisaureus_>bnoordhuis: ok so I do not agree with removing it
14:46:49  <bnoordhuis>explain
14:47:25  <piscisaureus_>bnoordhuis: because we want to keep startup lean and this means that a change in startup modules does not go unnoticed
14:47:36  <piscisaureus_>however I don't agree with the current implementation of the test
14:47:52  <piscisaureus_>we should just have a list of stuff that is allowed to load at startup and verify against that
14:48:22  <bnoordhuis>yeah...
14:48:36  <piscisaureus_>although...
14:48:40  <bnoordhuis>that's one more reason to hate that test, line 68: switch (process.stdout._type)
14:48:43  <piscisaureus_>almost everything is in there already :-)
14:48:48  <piscisaureus_>yeah that's retarded
14:49:02  <piscisaureus_>Maybe we can do it the other way around
14:49:10  <piscisaureus_>and list stuff that should *not* be loaded at startup
14:49:49  <bnoordhuis>the more i think about it, the more i disagree with the premise of the test
14:50:13  <bnoordhuis>if startup time is important, care about how long it takes to start up, not what gets loaded
14:50:30  <piscisaureus_>also startup memory usage matters
14:50:40  <piscisaureus_>maybe we should assert that tls, dgram, http(s) is not loaded
14:50:51  <piscisaureus_>also cluster, child_process, vm
14:51:22  <bnoordhuis>we need CI
14:51:31  <bnoordhuis>and nice graphs that visualize regressions
14:51:43  <bnoordhuis>not bogus tests like this
14:51:55  <bnoordhuis>for some reason that test really pisses me off :)
14:52:02  <tjfontaine>clearly
14:53:10  <bnoordhuis>and i have such a mild personality
14:57:00  * isaacsjoined
14:57:24  <bnoordhuis>you know what, that test's been broken for the longest time
14:57:40  <bnoordhuis>it only passes because it does something differently when it's running from inside the test runner
14:59:43  <isaacs>yes, we need CI and time/memory tracking of startup
14:59:55  <isaacs>that test is a poor substitute. but, for the moment at least, it's the only substitute we've got
15:00:16  <bnoordhuis>bleh. i've wasted 20 minutes now on getting it to pass
15:00:31  <bnoordhuis>fscking waste of time
15:03:07  <isaacs>bnoordhuis: hm. yeah, the more i think of it, the more this test does seem kind of weird.
15:04:11  <isaacs>the switch is especially weird
15:04:17  <bnoordhuis>yes
15:04:20  <isaacs>bnoordhuis: which modules are you moving around that break it?
15:04:24  <bnoordhuis>and it's actually broken
15:04:35  <bnoordhuis>isaacs: i'm working on better pool/slab allocation
15:04:42  <isaacs>i se
15:05:02  <bnoordhuis>so i added a _pool.js which makes that test break
15:05:24  <bnoordhuis>or rather, more broken - it didn't pass when run from the CLI anyway
15:08:00  <isaacs>i see
15:08:02  <isaacs>yeah, kill it
15:08:24  <bnoordhuis>good
15:08:26  <bnoordhuis>and with pleasure
15:10:45  <isaacs>we should clean up some of the slower tests, too
15:10:51  <isaacs>or move them into pummel
15:11:03  <isaacs>the crypto-dh.js test always takes like a second on my system
15:11:17  <isaacs>rage starts around 200ms for any given test
15:11:50  <bnoordhuis>right, i actually planned to do that
15:11:52  <bnoordhuis>i'll move it
15:14:09  <CIA-99>node: Ben Noordhuis master * r5e7cb68 / test/simple/test-module-load-list.js :
15:14:09  <CIA-99>node: test: remove simple/test-module-load-list
15:14:09  <CIA-99>node: Said test adds little value and only serves to annoy me when moving around
15:14:09  <CIA-99>node: modules. It was broken anyway: it passed inside the test runner and failed
15:14:09  <CIA-99>node: when run from the command line thanks to the environment sniffing it did. - http://git.io/Q06Ljw
15:14:10  <CIA-99>node: Ben Noordhuis master * rdaa6b95 / (test/pummel/test-crypto-dh.js test/simple/test-crypto-dh.js):
15:14:11  <CIA-99>node: test: move simple/test-crypto-dh to pummel/
15:14:11  <CIA-99>node: The test is too slow / CPU intensive for the main test harness. - http://git.io/3t3RkQ
15:14:18  <bnoordhuis>hah, i feel better already
15:14:19  <isaacs>huzzah!
15:14:20  <isaacs>thanks
15:14:35  <isaacs>I'm going to make 0.7.7 today, release tomorrow
15:14:41  <bnoordhuis>yeah, good idea
15:14:42  <isaacs>anything else that ought to get in?
15:14:53  <bnoordhuis>tls fixes that i'll land in a moment
15:15:01  <isaacs>i'm just waiting on dap's dtrace fixes which should be coming today
15:15:09  <isaacs>ok, and tls fixes :)
15:18:13  * bnoordhuisruns `make test` once more
15:22:34  <bnoordhuis>simple/test-crypto -> AssertionError: "1AyaPSr/fmjQXhqhU2K3VY2IcuqxbZvsekQdUUo+dw4=" == "1AyaPSr/fmjQXhqhU2K3VY2IcuqxbZvsekQdUUo+d7A=" at Object.<anonymous> (/home/bnoordhuis/src/nodejs/master/test/simple/test-crypto.js:475:8)
15:22:51  <isaacs>weird
15:22:51  <bnoordhuis>it must be some kind of memory corruption because it happens very infrequently
15:23:33  <isaacs>it's odd that it's only off in the last byte
15:23:41  <tjfontaine>I get that everyonce in a while here
15:24:01  <bnoordhuis>i've never been able to catch it with valgrind :/
15:24:11  <tjfontaine>same
15:27:17  <CIA-99>node: Ben Noordhuis master * r11770bf / (2 files in 2 dirs):
15:27:17  <CIA-99>node: test: move pummel/test-tls-fragmentation to benchmark/
15:27:17  <CIA-99>node: Said test takes over 90 seconds on my Core 2 Duo which is too long, even for
15:27:17  <CIA-99>node: the pummel tests. - http://git.io/zFMzOQ
15:27:21  <CIA-99>node: Yosef Dinerstein master * rd7c96cf / (lib/tls.js test/pummel/test-tls-fragmentation.js):
15:27:21  <CIA-99>node: tls: reduce memory overhead, reuse buffer
15:27:21  <CIA-99>node: Instead of allocating a new 64KB buffer each time when checking if there is
15:27:21  <CIA-99>node: something to transform, continue to use the same buffer. Once the buffer is
15:27:21  <CIA-99>node: exhausted, allocate a new buffer. This solves the problem of huge allocations
15:27:21  <CIA-99>node: when small fragments of data are processed, but will also continue to work
15:27:22  <CIA-99>node: well with big pieces of data. - http://git.io/kk6ToA
15:28:56  <isaacs>nic
15:28:58  <isaacs>nice
15:29:14  <isaacs>i=0; while ./node test/simple/test-crypto.js && [ $i -lt 1000 ]; do let '++i'; echo $i; done
15:29:26  <isaacs>got up to 490 before failing
15:30:06  * travis-cijoined
15:30:06  <travis-ci>[travis-ci] joyent/node#659 (master - daa6b95 : Ben Noordhuis): The build is still failing.
15:30:06  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/44eb279...daa6b95
15:30:06  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/974112
15:30:06  * travis-cipart
15:31:13  <isaacs>bnoordhuis: what's up with eio-race?
15:31:17  * pieternjoined
15:31:28  <isaacs>any idea? it seems to work here, but travis always fails on it. linux breakage?
15:31:38  <bnoordhuis>isaacs: it passes for me
15:32:03  <bnoordhuis>*always passes
15:32:21  <bnoordhuis>mmalecki: ping
15:32:25  <mmalecki>bnoordhuis: pong
15:32:30  <bnoordhuis>that was fast
15:32:34  <mmalecki>bnoordhuis: yes
15:32:40  <bnoordhuis>a twss moment
15:32:48  <mmalecki>lol
15:32:58  <bnoordhuis>mmalecki: what kernels do the travis servers run?
15:33:19  <isaacs>hm, actually, looks like it's timing out
15:33:46  <mmalecki>bnoordhuis: hm, let me check
15:33:49  <isaacs>eeewww fs.read(fd, 1024, 0, 'binary', function(err, chunk, bytesRead)
15:33:53  <isaacs>old skool
15:42:09  * travis-cijoined
15:42:09  <travis-ci>[travis-ci] joyent/node#660 (master - 11770bf : Ben Noordhuis): The build is still failing.
15:42:09  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/daa6b95...11770bf
15:42:09  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/974236
15:42:09  * travis-cipart
15:42:36  <CIA-99>node: isaacs master * r6aa7550 / test/simple/test-eio-race.js :
15:42:36  <CIA-99>node: More logging in simple/test-eio-race
15:42:36  <CIA-99>node: Travis-CI is failing on this test repeatedly, but other Linux systems
15:42:36  <CIA-99>node: seem to be fine with it. Alter the logging so it's more clear which
15:42:36  <CIA-99>node: part is timing out. - http://git.io/zpWgCg
15:43:18  <isaacs>man. it would be *awesome* if our tests passed on travis almost every time
15:43:27  <isaacs>then failures would actually be relevant.
15:44:06  <mmalecki>bnoordhuis: just a sec, I got to fetch the base box
15:54:29  * bnoordhuis_joined
15:54:31  * stephankjoined
15:54:46  * bnoordhuis_quit (Remote host closed the connection)
15:58:45  * travis-cijoined
15:58:45  <travis-ci>[travis-ci] joyent/node#661 (master - 6aa7550 : isaacs): The build is still failing.
15:58:45  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/11770bf...6aa7550
15:58:45  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/974381
15:58:45  * travis-cipart
16:01:52  <isaacs>ah, ok. that logging was unnecessary this time, it seems. it's failing way sooner than that
16:05:04  * orlandovftwjoined
16:05:48  * orlandovftwquit (Client Quit)
16:06:04  * orlandovftwjoined
16:08:11  <piscisaureus_>bnoordhuis: what alloc optimization?
16:09:46  <bnoordhuis>piscisaureus_: i noticed that the current slab allocator doesn't really work well
16:09:59  <bnoordhuis>eh no, i'm skipping a few steps here
16:11:07  <bnoordhuis>piscisaureus_: okay, there's memory pools both in c++ and js land
16:11:11  <piscisaureus_>yes
16:11:34  <bnoordhuis>the c++ one works okay-ish
16:11:55  <piscisaureus_>bnoordhuis: you mean the js SlowBuffer that is used for Buffer::New that does not work well?
16:11:59  <bnoordhuis>yes
16:12:03  <bnoordhuis>the c++ has some issues too btw
16:12:13  <bnoordhuis>*c++ one
16:12:27  <piscisaureus_>so what are the actual issues?
16:13:02  <bnoordhuis>well, the c++ lets you release memory back to the pool
16:13:11  <piscisaureus_>also, you know that I will add this optimization where Buffer::New is skipped entirely when sending an utf8/ascii string to a socket right?
16:13:43  <piscisaureus_>bnoordhuis: well, it only resizes/frees the last slice allocated
16:14:01  <bnoordhuis>piscisaureus_: let's continue this conversation later tonight
16:14:10  <piscisaureus_>bnoordhuis: oh
16:14:16  <bnoordhuis>i'm trying to keep up a conversation with my SO too and it's not really working out :)
16:14:16  <piscisaureus_>bnoordhuis: on skype?
16:14:26  <bnoordhuis>sure
16:14:42  <piscisaureus_>Oh you're also discussing the slab allocator with your SO?
16:14:59  <piscisaureus_>that is nice
16:15:57  <benvie>ever since putty works with node on windows all my wildest dreams have come true
16:16:09  * dapjoined
16:16:10  <bnoordhuis>she has some unconventional ideas about them
16:16:22  <tjfontaine>SO?
16:22:16  <piscisaureus_>http://dailyjs.com/
16:22:30  <piscisaureus_>I didn't know this was moreoreless a node blog
16:24:53  * perezdjoined
16:25:31  * perezdquit (Client Quit)
16:25:45  * perezdjoined
16:26:08  * perezdquit (Client Quit)
16:26:24  * perezdjoined
16:27:09  <isaacs>piscisaureus_: what's the status of the v8 utf8 handling improvements?
16:27:24  <isaacs>piscisaureus_: can i write a poopyface character to a file yet?
16:27:39  <piscisaureus_>isaacs: They landed in bleeding edge at some point.
16:28:03  <piscisaureus_>so I think you would be able to do that now if you want
16:28:09  <piscisaureus_>(if you upgrade v8)
16:28:18  <piscisaureus_>isaacs: also some perf optimizations landed but not all of them,
16:28:52  <isaacs>piscisaureus_: hm. i pulled in
16:28:57  <isaacs>which is the latest "version" tag.
16:29:19  <isaacs>oh, no, .7 landed today, apparently
16:31:27  <isaacs>oh, wait, it seems like it's working..
16:41:38  <piscisaureus_>good
16:42:26  <isaacs>piscisaureus_: this is so hot.
16:43:29  <piscisaureus_>isaacs: actully the current implementation of that was done by Erik
16:44:47  <piscisaureus_>isaacs: so when is the weekly status call going to happen?
16:44:56  <isaacs>piscisaureus_: i need to sit down with a pencil and figure that out.
16:45:08  <isaacs>we might have to not have fedor on it
16:45:08  <piscisaureus_>isaacs: well I think Nate didn't respond yet
16:45:12  <isaacs>the times are just too wild.
16:45:32  <piscisaureus_>He says he can do up to 6pm utc
16:45:36  <piscisaureus_>which is 7pm here
16:45:46  <piscisaureus_>actually 8pm now
16:46:36  <isaacs>6pm UTC is i think 11 here? or 10 maybe? that'd be awesome.
16:46:51  <piscisaureus_>I think it is 11 at you at the moment
16:46:57  <piscisaureus_>and 10 if it is not summer time
16:47:01  <isaacs>yeah
16:47:47  <piscisaureus_>having koichi in there, now that would be hard
16:47:51  <piscisaureus_>or an aussie
16:49:19  <isaacs>heh, indeed.
16:49:31  <isaacs>isn't 6pm utc pretty late for fedor?
16:49:34  <isaacs>like 11pm or something?
16:49:40  <piscisaureus_>where does he live?
16:49:44  <isaacs>omsk
16:50:14  <piscisaureus_>utc +7
16:50:23  <piscisaureus_>so that's more like 1am
16:50:28  <piscisaureus_>yeah that's pretty late
16:51:18  <piscisaureus_>as the dutch saying goes
16:51:32  <piscisaureus_>"Omsk is a nice city but just a little too far away"
16:51:42  <isaacs>that's a dutch saying?
16:51:58  <isaacs>by "dutch saying" do you mean "a thing you said one time"?
16:52:11  <piscisaureus_>well
16:52:24  <piscisaureus_>https://www.google.com/search?q=omsk+is+een+mooie+stad+maar+net+iets+te+ver+weg
17:07:47  * orlandovftwquit (Quit: leaving)
17:19:19  * sh1mmerjoined
17:23:20  * TooTallNatejoined
17:29:04  <TooTallNate>yo guys
17:31:17  <pfox___>quick question: in a tcp server scenario.. in the uv_connection_cb, you get a uv_stream_t* representing the server.. but all communication w/ the client is via a client steam that you init in the callback
17:31:26  <pfox___>so what the is the server used for? nothing but encapsulating the lifetime of the serveR?
17:31:33  <pfox___>what is the server stream used for, even
17:33:22  <benvie>sup nate
17:33:28  <pfox___>i guess its the stream that's bound to the external-facing, known port.
17:33:49  <TooTallNate>bnoordhuis: hey, did you have any thought on that EPIPE thing?
17:34:00  <pfox___>just thinking out loud, here.
17:35:13  * piscisaureus_quit (Ping timeout: 276 seconds)
17:37:05  * sh1mmerquit (Read error: Connection reset by peer)
17:37:21  * sh1mmerjoined
17:48:14  * sh1mmerquit (Quit: sh1mmer)
17:55:04  <dap>has anyone seen this build error on MacOS:
17:55:05  <dap> LINK(target) /Users/dap/work/node-test-1/out/Release/mksnapshot
17:55:06  <dap>collect2: ld terminated with signal 11 [Segmentation fault]
17:55:06  <dap>make[1]: *** [/Users/dap/work/node-test-1/out/Release/mksnapshot] Error 1
17:55:06  <dap>make: *** [node] Error 2
17:55:33  <TooTallNate>eek
17:55:36  <TooTallNate>nope not me
17:55:41  <tjfontaine>probably ran out of memory
17:55:58  <TooTallNate>try to gdb the mksnapshot program if it keeps happening
17:56:02  <dap>macos tools dump core when they run out of memory?
17:56:26  <tjfontaine>ld often crashes when it runs out of memory
17:56:41  <dap>okay, that's good to know. it's plausible in this case that I was low on memory.
18:06:47  * brsonjoined
18:09:17  * orlandovftwjoined
18:24:14  <isaacs>dap: nope, that works for me
18:24:30  <isaacs>dap: oh, right memory
18:24:50  <isaacs>dap: make sure you don't have a JOBS=32 or -j16 or something
18:25:03  <dap>I didn't, but my VM was also doing a node build...
18:25:28  <tjfontaine>c++ and linking, badjuju
18:25:28  <kohai>c has 6 beers
18:29:25  <dap>TooTallNate: I didn't realize that "make all" builds all top-level GYP targets. I think that might have been responsible for some of my build weirdness yesterday. All of my subtargets need to have conditions 'node_use_dtrace=="true"'
18:29:37  <dap>bnoordhuis: ^
18:29:47  <dap>You guys probably already knew that, but just in case...
18:30:11  <dap>bnoordhuis: especially since you wrote yours that way already :)
18:31:01  <TooTallNate>dap: ya i'm not sure if there's a way to specify one target, they've always just built all of them for me
18:39:36  <isaacs>bnoordhuis: hey. https://gist.github.com/2241076
18:39:43  <isaacs>bnoordhuis: how offensive do you find this?
18:39:50  <isaacs>bnoordhuis: on a scale of "mildly" to "omgno"
18:40:24  <mmalecki>isaacs: from what I understand, this allows you to have `return` instead of `module.exports`?
18:40:48  <isaacs>mmalecki: yes, that's what that change would od
18:40:50  <mmalecki>er, `module.exports =`
18:41:16  <TooTallNate>didn't we used to have that? did it get pulled?
18:41:23  <isaacs>TooTallNate: no, that's never been supported in node
18:41:27  <TooTallNate>oh ok
18:41:42  <isaacs>TooTallNate: luvit and candor.io both *only* support return, no exports object or module.exports at all
18:41:43  <mmalecki>isaacs: I'm like -0.1 on this. not sure if people will actually use it.
18:41:55  <isaacs>mmalecki: no one will use it until next year.
18:42:08  <mmalecki>isaacs: why's that?
18:42:09  <isaacs>i mean, not unless they're willing to not work on 0.6
18:42:15  <isaacs>because it's not going in 0.6
18:42:27  <mmalecki>oh haha, no one cares about backward compatibility anyway
18:42:28  <mmalecki>right?
18:42:42  <TooTallNate>i usually try to :p
18:42:53  <TooTallNate>for as long as reasonable at least
18:43:05  <isaacs>i would probably keep using module.exports, becuase i frequently have require() cycles
18:43:17  <TooTallNate>ahh, good point
19:04:30  <creationix>how does one extend ReadStream
19:04:41  <creationix>I know we've had the discussion about exposing the prototypes
19:07:01  <creationix>hmm, I see fs.ReadStream is exposed
19:11:20  <creationix>actually, if the ReadStream constructor would just not call fs.open automatically, it would be perfect
19:11:33  <creationix>could we move that to a .start() method or something?
19:11:47  <creationix>or have an option to not start automatically
19:12:45  <creationix>I think I'll just temporarly monkeypatch fs.open to be noop and put it back
19:20:10  * `3rdEdenjoined
19:24:54  * AndreasMadsenjoined
19:27:15  <isaacs>creationix: yeah, we aren't really doing oop properly there
19:27:51  <isaacs>creationix: it should be a method that can be overridden
19:44:54  * AndreasMadsenquit (Remote host closed the connection)
19:46:44  <creationix>actually I'm just going to do it differently
19:46:54  <creationix>instead of subclassing, I'll wrap in a function and have a callback
19:47:12  <creationix>btw, can fs.fstat ever have ENOENT
19:47:24  <creationix>assuming the fd is a valid one I just got from fs.open
19:48:14  <isaacs>creationix: that would be very surprising
19:49:06  <isaacs>note that fs.open(); fs.stat() CAN enoent, since you can unlink between the open and the stat, so the fd now doesn't have an entry in the file system list.
19:49:14  <creationix>right
19:49:19  <creationix>that's why I'm using an fd
19:49:28  <creationix>fs.ReadFile does allow passing in a custom fd
19:49:31  <creationix>:)
19:50:14  <creationix>maybe on windows a delete can make a fd invalid
19:50:28  <creationix>but inodes make fds pretty solid (till it's closed)
19:51:53  <isaacs>yeah
19:51:59  <isaacs>then if it doesn't have a path, it's gone
19:52:12  <isaacs>just orphaned in hard disk limbo
19:52:50  <creationix>"warning you are in a detached inode state"
20:00:08  * piscisaureus_joined
20:01:33  <piscisaureus_>creationix: nope, on windows fstat also cannot return ENOENT
20:01:50  <piscisaureus_>because on windows deleting a file doesn't really delete it until it is closed
20:01:58  <piscisaureus_>(which is also kind of annoying)
20:02:48  <piscisaureus_>I wish my macbook actually had more than 2 usb ports
20:06:11  * piscisaureus__joined
20:07:51  * piscisaureus__quit (Client Quit)
20:12:59  * dylukesjoined
20:28:47  * dylukesquit (Quit: Pipes are broken. Sending packets via Fedex.)
20:31:13  <isaacs>piscisaureus_: that's not windows-specific. if you delete an open file on any unix, it keeps it around until it's closed.
20:31:44  <isaacs>piscisaureus_: "deleting" a file is just deleting an entry in a table. the disk still has the data, of course.
20:36:58  <creationix>except on unix, you can write a new file where the old one was
20:37:04  <creationix>I think it's stuck in windows
20:37:40  <creationix>so windows delete is like umount's default bahavior, but unix's delete is like umount -l ?
20:39:04  <piscisaureus_>isaacs: on windows the table entry also remains
20:39:35  <isaacs>piscisaureus_: really?
20:39:39  <isaacs>wow, that's kinda dumb
20:39:41  <piscisaureus_>isaacs: that's why cygwin's delete code is 1100 lines... it tries to move the file before deleting it
20:39:51  <isaacs>piscisaureus_: hahahah
20:39:52  <isaacs>i see
20:40:28  <piscisaureus_>isaacs: actually I considered doing that in libuv too (since that would make many of the npm workarounds obsolete) but I am definitely not adding 1100 lines of code for that
20:40:51  <piscisaureus_>(The other reason was that I though cygwin's approach was too brittle)
20:41:15  <isaacs>piscisaureus_: yeah, i think it's not so bad.
20:41:38  <isaacs>piscisaureus_: rimraf works around all the issues anyway, and i'm ok just using that to remove stuff.
20:46:50  <piscisaureus_>igorzi: hey
20:50:21  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
20:51:48  * piscisaureus_joined
20:52:05  <piscisaureus_>ircretary: tell piscisaureus test
20:52:06  <ircretary>piscisaureus_: I'll be sure to tell piscisaureus
20:52:12  * piscisaureus_changed nick to piscisaureus
20:52:44  <TooTallNate>^ what's that do?
20:53:00  <piscisaureus>ircretary: tell TooTallNate hi
20:53:00  <ircretary>piscisaureus: I'll be sure to tell tootallnate
20:53:25  <TooTallNate>:p
20:53:49  * TooTallNatechanged nick to tootallnate
20:54:13  <tootallnate>piscisaureus: did you write that bot?
20:54:24  <piscisaureus>tootallnate: no isaacs did
20:54:32  <tootallnate>ahhh
21:05:24  <CIA-99>node: Nathan Rajlich master * r304f1fc / (doc/api/tty.markdown lib/tty.js):
21:05:24  <CIA-99>node: tty: clarify that tty.setRawMode() has moved to process.stdin
21:05:24  <CIA-99>node: Technically saying `tty.ReadStream#setRawMode()` is correct,
21:05:24  <CIA-99>node: but since a typical use cannot instantiate `tty.ReadStream` themselves,
21:05:24  <CIA-99>node: and 99% of the time the only instance is `process.stdin`,
21:05:24  <CIA-99>node: then a little clarification seemed necessary. - http://git.io/1PUAXw
21:07:16  <isaacs>tootallnate: yeah, ircretary is mine
21:07:18  <isaacs>ircretary: hi
21:07:18  <ircretary>isaacs: Hello :)
21:07:23  <isaacs>ircretary: what time is it?
21:07:23  <ircretary>isaacs: It's 2012-03-29T21:07:23.610Z by my watch, sir.
21:07:31  <isaacs>ircretary: when was tootallnate here last?
21:07:32  <ircretary>isaacs: tootallnate was last seen at 2012-03-29T20:54:32.758Z, in #libuv saying ahhh
21:07:36  <igorzi>piscisaureus_: whatsup?
21:07:38  <tootallnate>haha
21:07:45  <tootallnate>that's cool
21:07:51  <isaacs>ircretary: bomb tootallnate
21:07:51  <ircretary>isaacs: Arming the charges...
21:08:06  <piscisaureus>igorzi: I was just wondering... if an LSP is IFS, is it possible that it is not built on top of MSDAFD?
21:08:16  <piscisaureus>igorzi: or does that never happen?
21:08:50  <piscisaureus>igorzi: the other thing I was wondering about... If an LSP is non-ifs then a socket is not a valid handle. How come that CreateIoCompletionPort still works?
21:10:11  <igorzi>piscisaureus: don't thinks so for 1st question
21:11:00  <igorzi>piscisaureus: don't know
21:11:26  <piscisaureus>igorzi: so - just to be sure - you think IFS lsps are always controlled by AFD in the end?
21:11:54  <igorzi>piscisaureus: yes, but i can find out to be 100% sure
21:12:16  <piscisaureus>igorzi: If it's not too much effort, that would be cool.
21:12:38  <piscisaureus>igorzi: I would try to figure out myself if I knew why...
21:12:43  * sh1mmerjoined
21:12:49  <piscisaureus>er, s/why/how/
21:14:57  * `3rdEdenquit (Quit: Leaving...)
21:15:40  <bnoordhuis>back
21:16:14  <bnoordhuis>tootallnate: haven't looked into it yet
21:16:29  * sh1mmerquit (Client Quit)
21:16:36  <tootallnate>bnoordhuis: no prob
21:16:46  <bnoordhuis>isaacs: inoffensive - but i thought the module system was frozen?
21:16:49  * tootallnatechanged nick to TooTallNate
21:16:57  <isaacs>bnoordhuis: yeah... that's the hazard.
21:17:21  <isaacs>bnoordhuis: make one change in there, and everyone starts wanting to refactor everything to hell.
21:17:46  <isaacs>bnoordhuis: if we add this, it should be under cover of darkness, buried in some "upgrade libuv" commit or something
21:18:01  <TooTallNate>lol
21:18:02  <isaacs>and we should not mention it until 0.9
21:18:12  <piscisaureus>what change to the module system are we talking about?
21:18:19  <isaacs>so we can say "What do you mean? That's been there forever!!"
21:18:36  <isaacs>piscisaureus: https://gist.github.com/2241076
21:18:53  <isaacs>piscisaureus: so you can do return { foo: "bar" } in a module to set module.exprots
21:19:44  <piscisaureus>isaacs: hmm does that not break existing modules?
21:19:50  <isaacs>piscisaureus: nope.
21:20:06  <isaacs>piscisaureus: you have to a) not touch exports, b) not set module.exports, and c) not return undefined
21:20:26  <piscisaureus>isaacs: ah well that sounds reasonable
21:20:38  <TooTallNate>i literally thought we always had that, but no :p
21:20:47  <piscisaureus>isaacs: so why?
21:21:02  * rendarquit
21:21:10  * k-schanged nick to k-s[AWAY]
21:21:33  * travis-cijoined
21:21:33  <travis-ci>[travis-ci] joyent/node#662 (master - 304f1fc : Nathan Rajlich): The build is still failing.
21:21:33  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/6aa7550...304f1fc
21:21:33  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/977107
21:21:33  * travis-cipart
21:21:52  <isaacs>piscisaureus: well, it is a thing people expect to work, and then are surprised when it doesn't.
21:22:32  <bnoordhuis>you guys seen this? https://github.com/arturadib/botio
21:22:40  <isaacs>yeah
21:22:45  <bnoordhuis>want
21:23:02  <isaacs>bnoordhuis: wanna hook it up to node?
21:23:13  <bnoordhuis>isaacs: yeah
21:24:00  <piscisaureus>bnoordhuis: igorzi: any suggestions for naming this handle type that used to be called external_fd ?
21:24:23  <bnoordhuis>isaacs: but i guess you have to do it because i'm not an admin
21:24:24  <piscisaureus>uv_poll_socket_t ?
21:24:47  <piscisaureus>uv_poll_fd_dontusethis_t ?
21:25:42  <piscisaureus>uv_poll_t?
21:29:49  <bnoordhuis>piscisaureus: uv_watch_fd?
21:30:24  <igorzi>piscisaureus: what is it used for?
21:30:28  <TooTallNate>lol, i like the second one
21:30:57  <piscisaureus>igorzi: so people can integrate external libraries that are to be integrated with the event loop via socket readyness notifications
21:31:03  <piscisaureus>igorzi: so, the way c-ares is integrated
21:31:08  <piscisaureus>igorzi: or libssh2
21:31:41  <igorzi>piscisaureus: ahh.. got it
21:31:49  * dshaw_joined
21:31:58  <isaacs>bnoordhuis: oh, yeah, you've gotta add a github hook
21:32:02  <isaacs>bnoordhuis: i'll do it later.
21:32:21  <piscisaureus>igorzi: that is why I am writing "epoll" on windows
21:32:32  <isaacs>bnoordhuis: all the more reason that we need to have 100% tests passing, otherwise it's not so useful. we'll deny 1% of pull requests randomly for race conditions ;)
21:32:44  <igorzi>piscisaureus: oh, i didn't know you were doing that :)
21:32:51  <piscisaureus>heh
21:32:52  <piscisaureus>ok
21:33:00  <igorzi>piscisaureus: where is it?
21:33:33  <piscisaureus>igorzi: I can publish it if you want but it still in an *extremely* messy state
21:34:24  <igorzi>piscisaureus: sure.. i'm just curious
21:34:38  <piscisaureus>igorzi: ok... will do
21:37:42  <dap>What's the correct way to build 64-bit on master?
21:38:44  <bnoordhuis>dap: what os?
21:38:53  <dap>smartos
21:39:08  <bnoordhuis>i should've guessed :)
21:39:15  <bnoordhuis>the configure script tries to guess the arch
21:39:30  <bnoordhuis>but you can override it with --dest-cpu=x64
21:40:40  <dap>I tried that, but the V8 build bombed out because host_arch is still ia32
21:40:46  <dap>and that's not a configure option
21:40:56  <dap>I could change it in config.gypi, but I assumed I was off the rails.
21:41:10  <TooTallNate>dap: is the host_arch guessing incorrect?
21:41:19  <TooTallNate>is it really a 64-bit host?
21:41:47  <dap>TooTallNate: yes, but then, so are all my 32-bit machines :) nobody runs 32-bit solaris any more…
21:42:29  <bnoordhuis>dap: manually updating the config.gypi is fine
21:42:31  <TooTallNate>dap: as a workaround you can modify the host_arch in the config.gypi file manually
21:42:45  <bnoordhuis>fixing the host_arch check would be even better though :)
21:42:54  <TooTallNate>dap: but if it really is a 64-bit host then our guessing isn't working on Solaris
21:43:20  <TooTallNate>dap: when building with waf, does it detect the right arch?
21:43:31  <TooTallNate>i took the detection code pretty much straight from there
21:43:35  <bnoordhuis>come to think of it, --dest-cpu override (or should override) host_arch
21:43:43  <bnoordhuis>*overrides
21:43:51  <TooTallNate>bnoordhuis: it doesnt currently
21:43:59  <bnoordhuis>TooTallNate: why not?
21:44:19  <piscisaureus>igorzi: https://github.com/piscisaureus/forigor
21:44:19  <piscisaureus>igorzi: I am starting flaky-server.js first, then run epoll.c
21:44:19  <piscisaureus>igorzi: note that I am no longer planning to actually implement the epoll interface - so the name is kinda misleading.
21:44:37  <TooTallNate>bnoordhuis: i thought it was better to be correct there (not lie), but if it breaks the build then thats bad
21:44:45  <TooTallNate>bnoordhuis: why are there two different arch values anyways?
21:45:28  <creationix>TooTallNate, how well do you know http range requests
21:45:48  <TooTallNate>creationix: it's been quite a while. what's up?
21:46:04  <bnoordhuis>TooTallNate: it's for cross-compiling...
21:46:14  <bnoordhuis>not that we actually use that but v8 wants it
21:46:29  * rmustaccjoined
21:46:50  <TooTallNate>bnoordhuis: so then we wouldn't always want the target_arch and the host_arch to be the same it sounds like
21:47:01  <creationix>TooTallNate, I'm trying to figure out what the different is between If-None-Match and If-Range on Range requests
21:47:20  <creationix>chrome seems to send both sometimes when scrubbing an html5 video
21:47:53  <creationix>I'm sure there are people who cross-compile node
21:48:12  <bnoordhuis>TooTallNate: indeed
21:48:28  <TooTallNate>dap: does that mean that no.de machines will be 64-bit someday? :D
21:48:43  <TooTallNate>bnoordhuis: so then we just need to fix the detection code it sounds like?
21:48:44  <bnoordhuis>creationix: yes - but it's not like we support that
21:48:57  <bnoordhuis>TooTallNate: yes
21:49:05  <TooTallNate>ok
21:49:05  <dap>TooTallNate: I dunno. Our kernel doesn't care — it transparently supports both. pkgin only supports one or the other at a time.
21:49:20  <TooTallNate>i don't have access to a 64-bit solaris machine atm :\
21:49:29  <TooTallNate>open to easy-to-setup suggestions :)
21:49:53  <dap>ah, fair enough
21:50:27  <bnoordhuis>TooTallNate: you can run smartos in a vm
21:50:34  <TooTallNate>i did try out OpenIllinois or something the other day
21:50:38  <TooTallNate>bnoordhuis: ya, a vm is fine
21:50:41  <bnoordhuis>openindiana?
21:50:45  <TooTallNate>oh, ya
21:50:46  <creationix>I think If-Range means to ignore the Range header if the etag doesn't match
21:50:46  <TooTallNate>haha
21:50:51  <bnoordhuis>heh
21:51:10  <TooTallNate>creationix: http://www.freesoft.org/CIE/RFC/2068/188.htm
21:51:27  <creationix>yep, been reading that
21:51:34  <TooTallNate>figured as much :p
21:51:48  <dap>bnoordhuis, TooTallNate: the bigger problem I'm running into is that a fresh build always works, but "make clean all" fails with this:
21:51:49  <dap>  LINK(target) /home/dap/node-work/node-test-4/out/Release/node
21:51:49  <dap>g++: /home/dap/node-work/node-test-4/out/Release/obj.target/libnode_dtrace_o.a: No such file or directory
21:51:49  <dap> LINK(target) /home/dap/node-work/node-test-4/out/Release/node: Finished
21:51:49  <dap>make[1]: Leaving directory `/home/dap/node-work/node-test-4/out'
21:51:49  <dap>ln -fs out/Release/node node
21:51:49  <kohai>g has 3 beers
21:52:22  <dap>it's like "clean" is removing the library as it should, but GYP's makefile isn't re-building it
21:52:28  <TooTallNate>dap: do you have a branch somewhere?
21:52:32  <TooTallNate>dap: that is very possible
21:52:32  <dap>yeah, 1s
21:52:40  <dap>github.com/davepacheco/node
21:53:06  <TooTallNate>cool
21:53:06  <TooTallNate>https://github.com/davepacheco/node/compare/joyent:master...davepacheco:master
21:53:21  <dap>yeah, that's all the changes.
21:55:45  <bnoordhuis>dap: quick sanity check: does `make clean; make all` work?
21:56:01  <TooTallNate>creationix: it doenst look like Connect's static() middleware handles If-Range
21:56:27  <creationix>probably not
21:56:42  <creationix>I'm working on a new http middleware that supports pluggable fs layers
21:56:44  <dap>bnoordhuis: I don't know, but I'll tell you in about 7 minutes. I assume not.
21:57:13  <creationix>TooTallNate, ok, so I understand If-Range, but what does it mean when chrome sends both If-None-Match and Range?
21:57:25  <creationix>should I 304 if the etag matches?
21:57:26  <bnoordhuis>dap: do you have a JOBS envvar set?
21:57:28  <creationix>or 206?
21:57:34  <dap>bnoordhuis: no
21:58:08  <TooTallNate>bnoordhuis: is OpenIndiana your recommendation?
21:58:24  <bnoordhuis>TooTallNate: i think dap will kill me if i say yes
21:58:53  <bnoordhuis>dap: you can speed up compilation of `make all` with -j <num-cores>
21:59:12  <TooTallNate>i would just as soon use a SmartOs vm, but it's a bit of a process to setup correctly, right?
21:59:31  <dap>TooTallNate: it should be pretty easy
21:59:42  <TooTallNate>dap: instructions posted anywhere?
21:59:47  <dap>yeah, getting them
22:00:04  <dap>http://wiki.smartos.org/display/DOC/Getting+Started+with+SmartOS
22:00:29  <TooTallNate>thanks
22:08:48  * rmustaccpart
22:10:26  <dap>TooTallNate: if target X of type executable depends on target Y of type none, which depends on target Z of type static library, would you expect that X gets linked against Z?
22:14:46  * paddybyersquit (Quit: paddybyers)
22:15:03  * dylukesjoined
22:16:22  * dylukesquit (Client Quit)
22:16:24  <isaacs>ok, dtrace stuff is out for 0.7.7
22:16:32  <isaacs>we've got a make race
22:20:41  * mmaleckichanged nick to mmalecki[zzz]
22:24:51  <isaacs>i'll have a tag to review in a few minutes
22:33:38  <TooTallNate>dap: i wouldn't expect that. but that doesn't mean that's not what gyp is doing :p
22:33:57  <dap>fair enough.
22:34:13  <dap>I've made that dependency more explicit, and I haven't yet reproduced the build problem
22:34:30  * pfox___quit (Ping timeout: 265 seconds)
22:34:34  <dap>ah, there it is.
22:34:47  <TooTallNate>dap: the gyp mailing list has helped in the past; maybe try there
22:35:23  <dap>yeah, you're probably right. I should build a tiny C program with a DTrace provider and try to build it with gyp.
22:35:30  <dap>and send that off as like "how does one do this?"
22:36:01  <TooTallNate>ya definintely, a minimal case would probably get the best response
22:39:09  * TooTallNatechanged nick to tootallnate
22:39:18  * tootallnatechanged nick to TooTallNate
22:44:58  <bnoordhuis>isaacs: make race == v8 build problem?
22:59:48  * dylukesjoined
23:05:39  <CIA-99>node: isaacs v0.7.7-release * r6ebe9e0 / (2 files in 2 dirs): Upgrade V8 to - http://git.io/TqUSGw
23:05:39  <CIA-99>node: isaacs v0.7.7-release * r7abbda8 / (Makefile tools/changelog-head.sh tools/email-footer.md): Make rules for release blog post and email message - http://git.io/5gL0RQ
23:05:40  <CIA-99>node: isaacs v0.7.7-release * r988e9dd / (AUTHORS ChangeLog src/node_version.h): (log message trimmed)
23:05:40  <CIA-99>node: 2012.03.30, Version 0.7.7 (unstable)
23:05:40  <CIA-99>node: * Upgrade V8 to
23:05:40  <CIA-99>node: * Upgrade npm to 1.1.14
23:05:41  <CIA-99>node: * Handle Emoji characters properly (Erik Corry, Bert Belder)
23:05:41  <CIA-99>node: * readline: migrate ansi/vt100 logic from tty to readline (Nathan Rajlich)
23:05:42  <CIA-99>node: * readline: Fix multiline handling (Alex Kocharin)
23:06:36  <isaacs>bnoordhuis: make race = dtrace dance fails
23:06:59  <isaacs>bnoordhuis: there's some pretty underhanded kludging going on, because gyp was not designed with dtrace in mind, sadly
23:07:10  <isaacs>bnoordhuis: so you can't very easily get in at the point where we need to.
23:07:30  <isaacs>bnoordhuis: so, dap's just monkeying with the makefile tomake it work. but it's not working. so... something wrong :)
23:09:14  <isaacs>anyone care to review? https://github.com/joyent/node/commit/v0.7.7-release
23:10:32  <CIA-99>node: isaacs master * r6ebe9e0 / (2 files in 2 dirs): Upgrade V8 to - http://git.io/TqUSGw
23:10:32  <CIA-99>node: isaacs master * r7abbda8 / (Makefile tools/changelog-head.sh tools/email-footer.md): Make rules for release blog post and email message - http://git.io/5gL0RQ
23:10:35  <isaacs>i guess those two other commits are fine on master.
23:20:44  * travis-cijoined
23:20:44  <travis-ci>[travis-ci] joyent/node#663 (v0.7.7-release - 988e9dd : isaacs): The build failed.
23:20:44  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/6ebe9e0^...988e9dd
23:20:44  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/977953
23:20:44  * travis-cipart
23:21:10  <TooTallNate>isaacs: looks good to me
23:21:53  <TooTallNate>dap: i'm probably just being a n00b, but when I try to boot the SmartOS ISO using VMWare: I do the initial config, then it reboots, then it just cycles back to the config again
23:22:17  <bnoordhuis>isaacs: maybe mention that tls patch that went in this afternoon
23:22:49  <dap>TooTallNate: That's odd. You might try #smartos. (The distribution I use bypasses that so I'm not that familiar with how the config works.)
23:23:01  <TooTallNate>dap: ok thanks
23:23:43  <bnoordhuis>isaacs: oh, btw - 285d8c6 fixes a crash that arm users sometimes got thanks to alignment issues
23:24:36  * travis-cijoined
23:24:36  <travis-ci>[travis-ci] joyent/node#664 (master - 7abbda8 : isaacs): The build is still failing.
23:24:36  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/304f1fc...7abbda8
23:24:36  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/977977
23:24:36  * travis-cipart
23:24:59  <bnoordhuis>tls.createServer(honorCipherOrder=true) is a nice addition too
23:25:20  <bnoordhuis>cleartextStream.getCipher()
23:27:00  <bnoordhuis>285d8c6 <- that should be crash / unexpected behavior
23:27:10  <bnoordhuis>what arm does to unaligned loads is unholy
23:33:42  * dylukesquit (Quit: Computer has gone to sleep.)
23:34:46  <isaacs>bnoordhuis: thanks, i'll mention it in the changelog
23:35:07  <isaacs>bnoordhuis: there was a lot of activity, i had to be pretty selective
23:35:15  <piscisaureus>bnoordhuis: then what should it do with unaligned loads?
23:35:48  <piscisaureus>it's not like arm can microcode it or something like that
23:41:01  <piscisaureus>bnoordhuis: btw - people can still slice buffers themselves so unaligned loads can still hapen I thnk
23:52:36  <isaacs>i've gotta run. i'll drop an RC tonight or tomorrow morning.
23:55:49  * isaacsquit (Remote host closed the connection)