--- Log opened Tue Feb 04 00:00:04 2014 00:13 < WalrusPony> I'm trying to work with TTY, but uv_tty_set_mode is returning UV_EINVAL 00:14 < WalrusPony> And according to the implementation, its doing so because the tty is not set to readable 00:15 < WalrusPony> Is there a reason for why I cannot switch between raw and normal mode when the tty is blocking? 00:19 < WalrusPony> I'm following the examples here: http://nikhilm.github.io/uvbook/utilities.html#tty 00:19 < WalrusPony> and they have readable to false, and yet they call set_mode 00:21 < trevnorris> tjfontaine: you wouldn't happen to have a window vm laying around that already has node setup to build, would you? 00:26 <@tjfontaine> taken care of in another window :) 00:26 <@tjfontaine> WalrusPony: stick around, I don't have time to research and answer that question for you, but I'm sure someone will be able to 00:51 < trevnorris> tjfontaine: ok, so now I have the bones setup to filter providers: https://github.com/joyent/node/pull/6923 00:52 < trevnorris> erm. that has some cruft from a cherry-picked commit 00:58 <@tjfontaine> it's not checking if a provider is watched at the moment? 00:59 <@tjfontaine> I see it checking if an event is, create/before/after style 01:08 < WalrusPony> tjfontaine: In how many business days can I expect to get an answer? 01:27 <@isaacs> rvagg: you still around? sorry, was busy businessing 01:27 <@isaacs> mmalecki: this affects you, too 01:27 <@isaacs> rvagg: the back-fill is proceeding apace. 01:27 < rvagg> ok 01:28 <@isaacs> rvagg: it's actually got almost everythign, but there are a few broken records and the script now fixes them 01:28 <@isaacs> rvagg: so i started it over from since=0, and it's about 25% of the way thorugh now 01:29 < rvagg> isaacs: I'm tempted to try out the skimdb+fastly approach for npm.nodejs.org.au, still thinking about it 01:29 <@isaacs> rvagg: it's probably fine, actually 01:29 <@isaacs> rvagg: though, if you're doing that, why not just use the "real" registry? 01:30 < rvagg> I have a local full mirror here in my network though, still want to use that cause it's nice carrying around ALL OF NPM on an external drive 01:30 <@isaacs> rvagg: yeah, but that's just cuz you feel cool doing that :) 01:31 < rvagg> ultimate Node nerd accessory 01:32 < rvagg> but anyway, I don't think I've maintained a stable enough AU mirror for many people to bother using it 01:32 < rvagg> hopefully we can stabilise as fullfatdb settles down 01:47 < trevnorris> tjfontaine: get anywhere w/ the issue you were working on? 01:47 -!- mode/#libuv [+o TooTallNate] by ChanServ 01:53 < trevnorris> othiym23 / groundwater: ping 01:54 < othiym23> trevnorris: yo 01:54 < trevnorris> othiym23: so, i'm scrapping sending the context to the create() callback. 01:54 < othiym23> aaaaaaaaaghghghglglgl 01:55 < othiym23> I *Just* fixed up the polyfill around that 01:55 < trevnorris> othiym23: it'll still arrive to the error() callback. 01:55 < trevnorris> ooh. sorry. :( 01:55 < othiym23> (people are complaining that New Relic doesn't work with 0.11.11) 01:55 < trevnorris> ah, yeah. 01:55 < trevnorris> though. I don't think we're passing the context in 11.11 01:55 < othiym23> just so you know, because of how the polyfill works, the error handler in the polyfill quite often gets undefined for the context 01:56 < trevnorris> ok. i'd be impressed if you could do that 100% of the time 01:56 < othiym23> I make a best effort to pass it along in 0.10, but in 0.8, given how uncaughtException works, it's more or less impossible to intercept it all correctly 01:58 < othiym23> trevnorris: so far all of the AL error tests I've brought over from v0.11.11-release are passing with my new version 01:59 < othiym23> trevnorris: I also should have that stuff mostly finished by the end of the week, so I can get New Relic ready for 0.12 01:59 < othiym23> trevnorris: if you're going to make any more breaking changes to the AL JavaScript, this week would be a good time to do them 02:03 < trevnorris> othiym23: trying to get them done before my maternity leave starts next week. 02:04 < trevnorris> othiym23: the big one is https://github.com/joyent/node/pull/6923 02:04 < trevnorris> but that's more for the "tracing" module, but it'll allow users to specify what they want to track 02:04 < WalrusPony> You know what, fuck it, I'll just do non-blocking tty 02:10 < othiym23> trevnorris: is asyncListener going to move to the tracing module before 0.12 drops? 02:10 < othiym23> i.e. is it going to be removed from process? 02:23 < trevnorris> othiym23: not sure. possibly. we were thinking about something like tracing.onAsync('provider'[, callbackObj[, storage]]); 02:23 < trevnorris> othiym23: but need to solidify how we're going to do all this w/ tjfontaine 02:25 < othiym23> trevnorris: OK. I'd like to see that nailed down well in advance of the release of 0.12, and if 0.12 is really going out at the end of this month, that means sooooon 02:25 < othiym23> sorry to sound like a broken record about this, but it'll be a bummer if New Relic and CLS break when 0.12 are released 02:28 < WalrusPony> fucking 02:28 < WalrusPony> if I make it blocking, then I can't write, it just returns UV_EPIPE 02:32 < WalrusPony> Damn it, and TTY isn't actually coloring my stuff on windows :( 02:38 < trevnorris> othiym23: totally understand. just been difficult and bad timing 02:42 < othiym23> trevnorris: I'm amazed you're still working on this ;) 02:43 < othiym23> trevnorris: and also, of course, congratulations to you and your wife! 03:05 < WalrusPony> Okay, got TTY colors working 03:05 < WalrusPony> Had to dig into the implementation to see exactly how libuv treated different codes 03:05 < WalrusPony> http://puu.sh/6JfVv.png 05:45 < groundwater> WalrusPony what are you working on? 06:15 < WalrusPony> groundwater: A multiplayer my little pony game 06:16 < groundwater> WalrusPony terminal based? 06:16 < WalrusPony> The server runs in the terminal 06:17 < WalrusPony> The client is being developed by an independent party in.... Java. 07:53 <@indutny> morning 14:44 < AlexisMocha> I am wondering why 32-bit windows builds are not working on nodejs-master-windows 14:44 < AlexisMocha> http://jenkins.nodejs.org/view/node/job/nodejs-master-windows/707/DESTCPU=ia32,label=windows/ 15:23 < calid> hello, while browsing ohloh i noticed libuv doesn't have a logo set 15:24 < calid> would there be any issue if i set this to the joyent logo? 15:24 < calid> https://www.ohloh.net/p/libuv 15:43 < creationix> isaacs, would it be factual if I said in a bio "I'm part of the original node.js core team from 2009". I dropped out of being part of core right before there was an official core team in 2010 15:43 < creationix> *"I was part of the original..." 15:49 <@isaacs> creationix: you were a part of the Node Illuminati 15:49 <@isaacs> which was not quite the core team, because the core team was just ryan 15:49 < creationix> good point 15:49 <@isaacs> but it was you, me, ryah, mikeal, pquerna, and mranney, i think, right? 15:50 < creationix> even in 2012, Ryan still had written like 50% of all code 15:50 < creationix> I had 0.4% 15:50 <@isaacs> which was like half of all the node users in SF? 15:50 < creationix> you had 4% 15:50 < creationix> this was 2010, I tihnk there were more users then 15:50 < creationix> I lived in Texas and started howtonode in 2009 15:52 < pquerna> there were more users then :x 15:54 < creationix> remember that node surged in popularity after Ryan's talk fall 2009 15:54 < creationix> Sencha was willing to pay me full-time to evangelize node by summer 2010 15:54 < creationix> there were users 16:01 < calid> i went ahead and updated the logo, if it's a problem I can remove it (or anyone can for that matter) 16:04 < creationix> there's a logo for libuv? 16:05 < calid> well not really, so i went with the joyent logo 16:05 < calid> libuv should get a logo though, it deserves one :) 16:06 < mmalecki> +1 calid 16:57 <@tjfontaine> AlexisMocha: test.tap getting eperm means there's a stuck build out there 17:04 < AlexisMocha> tjfontaine: how to get it unstuck? 17:04 <@tjfontaine> I went in and cleaned it up, should be good now 17:04 < AlexisMocha> thank you! 17:12 < drs> is it safe to call a uv_write function on a stream via the uv_after_work_cb, when that stream is also in the main event loop being read from? 17:14 < drs> or maybe that's the preferred method? My question is more on the line of, do people somehow pass a baton back from a uv_queue_work into the main thread? 17:44 -!- mode/#libuv [+o TooTallNate] by ChanServ 17:45 <@tjfontaine> seriously, node's cluster module is pretty well knackered by design 17:49 < drs> knackered? 17:58 < groundwater> tjfontaine ++ 18:00 < mmalecki> tjfontaine: imo cluster shouldn't have gotten into core at all 18:04 < ryah> hey. have you all seen gn yet? 18:04 < ryah> https://code.google.com/p/chromium/wiki/GNLanguage 18:04 < ryah> https://code.google.com/p/chromium/wiki/gn 18:05 < andrewrk> is it possible to do cluster in userspace? 18:05 < ryah> "generate ninja" 18:06 < andrewrk> looks like yet another DSL I'd rather not have to learn 18:06 < ryah> it's like gyp 2.0 18:06 < creationix> ryah, what platforms does it run on? 18:07 < ryah> seems it's very much under dev right now. i dont think it builds chrome yet 18:07 < creationix> andrewrk, we used to do it in userspace before. 18:07 < andrewrk> does the lib/* folder (full of javascript) in the node repo count as userspace? 18:08 <@tjfontaine> mmalecki: yes, cluster was a huge mistake, and implementation wise is really painful 18:08 <@tjfontaine> mmalecki: live and learn 18:09 < andrewrk> if I looked at the implementation of cluster I'd probably agree with you guys, but as a user I gotta say I think this is a pretty neat usage of it: https://github.com/andrewrk/naught 18:10 <@tjfontaine> we need to get the children being able to listen on ports without going through the master 18:10 <@tjfontaine> otherwise it's pretty painful 18:10 <@tjfontaine> andrewrk: cute 18:11 <@tjfontaine> prefer that to pm2's painful work 18:12 < creationix> andrewrk, yeah, before you just had to manually pass the fd from the master process to the children. Now it automagically does it somehow. 18:12 <@tjfontaine> the accept() portion of the automagic isn't really that difficult 18:12 <@tjfontaine> the fact that it is automagic though on .listen(port) is just bonkers 18:12 < creationix> tjfontaine, agreed 18:13 < creationix> wasn't someone writing libuv bindings for v8? 18:13 <@tjfontaine> I'm sure lots of people have done so 18:13 <@tjfontaine> trevor has some stuff he's doing that he likes 18:13 < creationix> like vanilla bindings that expose the uv api directly, not the convuluted mess inside node. 18:14 < creationix> yeah, I think it was trevnorris's I liked 18:15 < creationix> I love how I discovered that libuv bindings can be used from a node addon without any trouble (assuming you use the same libuv API as bundled with node) 18:15 <@tjfontaine> without trouble 18:15 <@tjfontaine> surely you mean when we're not busy breaking api and abi 18:15 <@tjfontaine> self: demerit 18:15 < brett19> creationix: let me know if you have any questions about that, I use it extensively :) 18:15 < brett19> I use that ability extensively** 18:16 < creationix> tjfontaine, right, but historrically libuv's API has been quite stable (not sure about ABI though) 18:16 < brett19> Also note that you can use the libuv headers from node directly during gyp building 18:16 < creationix> yep, that helps a lot with compat 18:16 < brett19> Also, look at this: 18:16 < creationix> so I guess ABI doesn't matter if you build the addon with the node that will run it 18:17 < brett19> https://github.com/brett19/couchnode/blob/master/deps/lcb/plugins/io/libuv/libuv_compat.h 18:17 < brett19> libuv compat layer for 0.8/0.10/0.11 18:17 < brett19> although, mainly for TCP only 18:20 < creationix> cool 18:20 < brett19> tjfontaine: were you busy over the weekend? 18:26 <@tjfontaine> creationix: historically no, they're not all that stable, but sure ok if you say so :) 18:26 <@tjfontaine> brett19: no, were you? :) 18:28 < brett19> Nope. Just was hoping you were not either :) 18:28 < brett19> I was on-call the whole weekend, but nothing happened, so, was nice! 18:29 <@tjfontaine> indeed, no news is good news :) 18:29 < brett19> Yup! 18:41 < andrewrk> wow how did I never see pm2 before? 18:41 < andrewrk> either we indepently developed the exact same API or they totally used my idea 18:47 <@indutny> heya 18:47 <@indutny> how are you? 18:47 <@tjfontaine> ok, how are you? 18:48 -!- mode/#libuv [+o MI6] by ChanServ 18:48 <@indutny> good 18:48 <@indutny> what are you up to today? 18:49 <@tjfontaine> hoping to get through some outstanding issues, while continuing with trevor on the tracing stuff 18:49 <@tjfontaine> you? 18:50 <@indutny> triaging github issues too 18:50 <@indutny> have Inbox 29 18:50 <@indutny> :) 18:50 <@indutny> today 18:50 <@tjfontaine> :) 18:52 <@MI6> joyent/node: Alexis Campailla master * bae545d : test: fix test-tcp-wrap-listen - http://git.io/ObH1Tw 19:00 < AlexisMocha> hey there 19:00 <@tjfontaine> hey 19:01 < AlexisMocha> tjfontaine: next on my list is https://github.com/joyent/node/issues/3584. Assuming I can come up with a good fix, do you foresee any issues with getting it in 0.12? 19:02 <@tjfontaine> that woudl be great to get in for 0.11, but I presume it's non-trivial? 19:04 < AlexisMocha> I only took a quick look so far. My impression is that the objective of making pipes sync on windows would only be possible building some sort of ACK mechanism 19:05 < AlexisMocha> seemed more understood than other stuff on my list 19:06 < AlexisMocha> anyway, I have 7 more tests to investigate, and a bunch more to nag you about to get the PRs in :) 19:22 <@tjfontaine> AlexisMocha: right I can work through some of those today 20:07 < Ralith> do libuv timers and time functions MONOTONIC, MONOTONIC_RAW, or BOOTTIME clocks? 20:07 < Ralith> use* 20:35 < trevnorris> afternoon all 20:35 < trevnorris> tjfontaine: ping 20:37 < trevnorris> othiym23: thanks. yeah, hoping to hammer this out before I start maternity leave so I don't have to worry about it while I'm away. 21:00 <@indutny> TooTallNate: hey man 21:00 <@TooTallNate> indutny: yo 21:02 <@indutny> TooTallNate: so I wonder if you ever tried compiling node addons with gyp dependencies :) 21:02 <@indutny> right now it is a bit screwed 21:02 <@TooTallNate> indutny: is it? 21:02 <@indutny> https://github.com/indutny/audio/blob/master/config.gypi 21:02 <@TooTallNate> i mean ya, i definitely used to do it 21:02 <@indutny> that's what I do to make it work 21:02 <@indutny> it builds stuff as a shared/dynamic libraries 21:02 <@indutny> and no surprise it fails afterwards 21:02 <@indutny> because dependencies are not linked into resulting .node file 21:02 <@TooTallNate> indutny: addons are supposed to be essentially .so files 21:03 <@TooTallNate> they're dlopen()'d 21:03 <@indutny> yes 21:03 <@indutny> but 21:03 <@indutny> their deps 21:03 <@indutny> should not be such 21:03 <@indutny> i.e. 21:03 <@indutny> usually dependency sets `'type': '<(library)'` 21:03 <@indutny> libuv does it 21:03 <@tjfontaine> trevnorris: pong 21:03 <@indutny> and some other stuff too 21:03 <@TooTallNate> indutny: i don't do that personally 21:04 <@TooTallNate> indutny: in fact, i think it's antipattern 21:04 <@indutny> why 21:04 <@indutny> how would you build shared library otherwise? 21:04 <@TooTallNate> indutny: i would do '' or something instead 21:04 <@indutny> without exposing configuration option 21:04 <@indutny> oh 21:04 <@TooTallNate> no it's just that what is "library" referring to? 21:04 <@indutny> this is a good idea, actually 21:04 <@TooTallNate> :D 21:04 <@indutny> should adopt it in libuv 21:05 <@TooTallNate> ya, +1 21:05 <@TooTallNate> indutny: i guess using generic "library" is ok for chromium, since they just use it for their dev builds 21:05 <@TooTallNate> but for addons, we want the user to have build configuration options 21:06 <@TooTallNate> so it makes sense to me to make it more "specific" in that case 21:08 <@indutny> yeah 21:10 <@indutny> going to submit PR for this 21:13 < mordy__> hi folks. i just realized that libuv seems to deliver read callbacks on spurious wakeups 21:13 <@indutny> TooTallNate: https://github.com/joyent/libuv/pull/1097 21:14 < nodejs-ci> Project nodejs-master » x64,osx build #925:UNSTABLE in 5 min 10 sec: http://jenkins.nodejs.org/job/nodejs-master/DESTCPU=x64,label=osx/925/ 21:14 <@tjfontaine> mordy__: hm? 21:14 < nodejs-ci> Project nodejs-master » x64,linux build #925:SUCCESS in 5 min 12 sec: http://jenkins.nodejs.org/job/nodejs-master/DESTCPU=x64,label=linux/925/ 21:14 < nodejs-ci> Yippee, build fixed! 21:14 < nodejs-ci> Project nodejs-master » ia32,osx build #925:FIXED in 5 min 14 sec: http://jenkins.nodejs.org/job/nodejs-master/DESTCPU=ia32,label=osx/925/ 21:14 < mordy__> if you look here: https://github.com/joyent/libuv/blob/master/src/win/tcp.c#L910 basically if the first call to WSARecv returns EWOULDBLOCK, the buffer is never populated and the callback receives a zero 21:15 <@tjfontaine> AlexisMocha: ^ 21:16 <@TooTallNate> indutny: nice :) 21:16 < trevnorris> tjfontaine: I pretty much have this week to hammer out this async listener/tracing stuff before i'm well absent for almost 2 weeks 21:16 < mordy__> i'm curious as to why it's manually calling WSARecv in the first place.. shouldn't it be using iocp to perform async reads? 21:17 < trevnorris> i'll stil be checking email and stuff, but only in my spare time 21:17 < trevnorris> tjfontaine: so I could use a review on https://github.com/joyent/node/pull/6923, from there the hooks are simple to fire on a lot of your provider stuff. 21:18 < trevnorris> tjfontaine: also i'm not sure where we stand on whether process.{add,remove,create}AsyncListener() is going to be completely moved into tracing, or if that API will stay. 21:18 < trevnorris> tjfontaine: I don't care either way, just want to know how you'd like to see it implemented. 21:18 < nodejs-ci> Project nodejs-master » x64,smartos build #925:SUCCESS in 9 min 27 sec: http://jenkins.nodejs.org/job/nodejs-master/DESTCPU=x64,label=smartos/925/ 21:20 < mordy__> hrm, what i _might_ do is internally restart uv_read if i get 0 (without any buffer space having been consumed..) 21:20 < mordy__> is this safe? 21:22 <@tjfontaine> trevnorris: we are going to move it into tracing 21:22 <@tjfontaine> trevnorris: the question left out standing for you is if you want to change the naming from add/create to this concept of .onAsync 21:22 < nodejs-ci> Project nodejs-master » ia32,linux build #925:SUCCESS in 13 min: http://jenkins.nodejs.org/job/nodejs-master/DESTCPU=ia32,label=linux/925/ 21:22 <@tjfontaine> trevnorris: are you going on paternity leave? 21:23 < nodejs-ci> Yippee, build fixed! 21:23 < nodejs-ci> Project nodejs-master » ia32,smartos build #925:FIXED in 14 min: http://jenkins.nodejs.org/job/nodejs-master/DESTCPU=ia32,label=smartos/925/ 21:25 <@tjfontaine> I've moved the nodejs-ci bot into #node-ci to keep noise here down 21:26 < trevnorris> tjfontaine: well, it was nice to see so much green for a bit. :) anyways, yeah I'm taking 2 weeks maternity after my mother-in-law leaves on Friday. 21:26 <@tjfontaine> trevnorris: so the baby is here? 21:27 < trevnorris> yeah, arrived on friday. 21:27 <@tjfontaine> dude, congrats! 21:27 <@tjfontaine> gtfo 21:27 < trevnorris> thanks :) 21:27 <@tjfontaine> go home 21:27 <@tjfontaine> :) 21:27 < trevnorris> no, my wife wants me to wrap up a couple things so i'm not stressed about it when i'm on leave. :) 21:27 <@tjfontaine> heh ok, well alright 21:27 < trevnorris> and w/ her mom here it's not a problem. 21:28 <@tjfontaine> ok, wanna rubber stamp the original tracing pr then? 21:28 <@tjfontaine> https://github.com/joyent/node/pull/6985/files 21:29 <@tjfontaine> as a first step so we can get you moving AL into that namespace 21:29 < trevnorris> ooh. I haven't looked since you've put in your documentation. 21:29 <@tjfontaine> it's really light lift on docs for right now 21:29 < trevnorris> looking now, and if you'd comment on https://github.com/joyent/node/pull/6923 21:29 < trevnorris> that's fine. 21:29 <@tjfontaine> I also fixed the repl issue 21:30 < trevnorris> awesome 21:30 < trevnorris> i know some of the names of the providers are ridiculous, but it was the easiest just keeping the name the same as the calling class. 21:30 < trevnorris> and hey, some doc > no doc 21:30 < trevnorris> othiym23: you get this ^ 21:32 <@tjfontaine> the provider names are reasonable to me, you haven't done the part to twiddle the provider callbacks though? 21:32 < trevnorris> groundwater: you might need to be standing nearby with a defibrillator :P 21:33 <@tjfontaine> everything in this PR is fine with me, I'm mostly curious to see what the interface looks like for js 21:34 < trevnorris> no, I have just put the guts in place ready so the JS API can be implemented. 21:34 < groundwater> trevnorris -----^\___/^-----\____/^---- 21:34 < trevnorris> heh 22:22 <@tjfontaine> trevnorris: btw, can you re-review that with ?w=1 most of those issues you commented on aren't definitely not related to this change :) 22:23 < trevnorris> tjfontaine: ah, do they sit on top of ben's original pr? 22:24 <@tjfontaine> well, it's just a slight refactor of what you had done, so most of those things existed in MDC long before me 22:25 <@tjfontaine> the check for the booleans and if the recvier is an object check are the pertitent parts 22:25 <@tjfontaine> it looks like more change because if the indentation from the if blocks 22:28 < trevnorris> tjfontaine: ok, but my comments about the TODO's and hosting the function declaration in lib/tracing.js are still relevant? 22:29 <@tjfontaine> yes 22:29 < trevnorris> ok 22:59 <@isaacs> rvagg: Start your replications 22:59 <@isaacs> rvagg: fullfatdb is now fully fattened up. 22:59 <@isaacs> mmalecki: you also 23:07 < mmalecki> isaacs: start from where? 23:07 < mmalecki> isaacs: start from fullfat? 23:29 <@isaacs> mmalecki: yessir 23:29 <@isaacs> mmalecki: all docs are in, verified, consistent, have attachments, etc. 23:29 < mmalecki> isaacs: cool stuff! replicating 23:33 <@isaacs> mmalecki: you may want to replicate to a different db file, and then copy it over when it finishes 23:33 <@isaacs> mmalecki: there's a lot less garbage in this one 23:33 <@isaacs> mmalecki: than in the previous incarnation 23:33 <@isaacs> but, if you just replicate over it, it should work fine as well. --- Log closed Wed Feb 05 00:00:10 2014