00:16:31  * bnoordhuisquit (Ping timeout: 240 seconds)
00:32:45  * mmaleckijoined
00:38:22  * lohkey_joined
00:38:28  * lohkey_part
00:40:22  <isaacs>TooTallNate: yeah
00:40:59  <TooTallNate>kewl
00:41:21  <isaacs>it'd be way easier to explain to people who "bert" is if you were bbelder ;)
00:41:28  <isaacs>oh, he's off
00:41:36  <isaacs>bbelder: oh, no you're there
00:41:46  <isaacs>pisc<TAB> didn't autocomplete
00:42:30  * lohkeyquit (Ping timeout: 276 seconds)
00:43:22  * ericktquit (Ping timeout: 260 seconds)
00:43:23  <bbelder>I am here
00:43:49  <bbelder>my irc client isn't set up to notify on "bbelder" mentions tho
00:44:08  * mcavagequit (Remote host closed the connection)
00:53:12  <CIA-129>node: Bert Belder openssl-asm * r8e6bff9 / deps/openssl/openssl/crypto/bn/asm/x86_64-win32-masm.asm : openssl: add optimized bignum x64 asm code for windows - http://git.io/fsfOlw
00:53:13  <CIA-129>node: Bert Belder openssl-asm * rda71123 / (6 files in 4 dirs): openssl: use optimized asm code on x86 and x64 - http://git.io/dp6C1A
00:53:13  <CIA-129>node: Bert Belder openssl-asm * ra008f11 / (52 files in 42 dirs): openssl: add generated asm code - http://git.io/fChFCA
00:53:27  <bbelder>^-- please test on linux and mac os x
00:58:06  <tjfontaine>woah woah, bbelder I don't know if I can take the name change yet
00:58:17  <ryah>bbelder: what's that do?
00:58:41  <ryah>btw have we upgraded openssl lately?
00:59:00  <ryah>% ./node -pe process.versions.openssl
00:59:00  <ryah>1.0.0f
01:00:02  <ryah>May 10 17:07:50 2012 openssl-1.0.0j.tar.gz
01:00:04  <ryah>^-- latest
01:00:12  <tjfontaine>1.0.1 isn't stable yet?
01:00:17  <ryah>i dont know..
01:00:29  <ryah>Apr 26 12:52:52 2012 openssl-1.0.1b.tar.gz
01:01:55  <bbelder>ryah: it's not an ssl upgrade
01:02:04  <bbelder>ryah: it enables the use of hand-crafted ssl
01:02:07  <bbelder>er,
01:02:12  <bbelder>hand-crafted asm code
01:02:15  * dshaw_joined
01:02:39  <bbelder>the chromium guys apparently didn't care enough when they ported openssl to gyp
01:02:55  <bbelder>it makes a massive difference for me on x32 and a slight difference on x64
01:03:15  <bbelder>it depends of course on how good your compiler is :-0
01:03:42  <ryah>"it's not an ssl upgrade" ?
01:04:05  <tjfontaine>it's not an openssl version upgrade
01:04:14  <tjfontaine>it's adding the asm to the build and enabling it
01:04:53  <tjfontaine>../deps/openssl/asm/x64-unix-masm/aes/aes-x86_64.s:2:1: error: unknown directive
01:04:54  <tjfontaine>.type _x86_64_AES_encrypt,@function
01:04:59  <tjfontaine>bbelder: plus a lot more, I'll paste
01:05:03  <ryah>sure, but shouldn't we at least get on openssl's head before patching it?
01:05:16  <tjfontaine>ryah: it's not patching it, it's in the openssl tree already
01:05:32  <tjfontaine>ryah: normally the openssl configure process enables it for you based on your platform etc etc
01:05:40  <ryah>ah
01:05:48  <ryah>well can we upgrade before adding it?
01:05:49  <ryah>:)
01:06:33  <tjfontaine>bbelder: http://paste.debian.net/plainh/c0f3ff82
01:06:49  <bbelder>ah
01:06:51  <bbelder>stupid mac
01:07:31  <bbelder>me and ben decided to make the guess that mac could assemble linux gas files
01:07:32  <bbelder>bummer
01:07:42  <bbelder>tjfontaine: that's macos 64 bit build?
01:07:46  <bbelder>or 32 bit build?
01:07:54  <tjfontaine>yes 64bit, 10.8
01:08:03  <bbelder>fuck
01:10:04  <tjfontaine>ryah: that's not my decision, but I would imagine .9~.10 would see a version bump
01:11:46  <bbelder>tjfontaine: ah right, gotcha
01:11:50  <bbelder>tjfontaine: a sec
01:12:24  <ryah>the upgrade is nontrivial
01:12:31  <ryah>because of how google ripped it out
01:12:40  <tjfontaine>bbelder: seems like I should be using gas here, no?
01:12:43  <ryah>would be nice if someone spent sometime to do it
01:15:30  * joshthecoderjoined
01:16:11  * dshaw_quit (Quit: Leaving.)
01:22:49  <CIA-129>node: Bert Belder openssl-asm * r28a0c3f / (deps/openssl/asm-gen.sh deps/openssl/openssl.gyp): Fix OS X (hopefully) - http://git.io/oRKZ0g
01:22:49  <CIA-129>node: Bert Belder openssl-asm * r740bc8d / (78 files in 63 dirs): Regenerate asm - http://git.io/nhqWdA
01:22:51  <bbelder>tjfontaine: yeah, typo
01:22:56  <bbelder>tjfontaine: try again :-)
01:23:00  <tjfontaine>heh ok
01:23:38  <TooTallNate>ryah: if you try to use a shared openssl 1.0.1 with node then there are some problems
01:23:48  <TooTallNate>so i imagine that some fixes are required
01:27:26  <tjfontaine>bbelder: builds, running tests now
01:27:49  <isaacs>configuring on os x
01:27:54  <isaacs>*building
01:28:39  <bbelder>kewl
01:29:28  <TooTallNate>is there a way to use #ifdef with enum values?
01:30:02  <tjfontaine>bbelder: no new test errors for me
01:30:13  <CIA-129>node: Bert Belder openssl-asm * r9ba7841 / (deps/openssl/asm-gen.sh deps/openssl/asm-gen.sh): Set +x on asm-gen - http://git.io/DF84sQ
01:30:19  <bbelder>tjfontaine: no
01:32:32  <CIA-129>node: Bert Belder openssl-asm * re910992 / (6 files in 4 dirs): openssl: use optimized asm code on x86 and x64 - http://git.io/To9Qpw
01:32:32  <CIA-129>node: Bert Belder openssl-asm * r755ec1e / (78 files in 63 dirs): openssl: add generated asm code - http://git.io/oR83ow
01:42:24  <CIA-129>node: Bert Belder openssl-asm * r9ee1f15 / (6 files in 4 dirs): openssl: use optimized asm code on x86 and x64 - http://git.io/nwOGag
01:42:24  <CIA-129>node: Bert Belder openssl-asm * rb9b1fe7 / (78 files in 63 dirs): openssl: add generated asm code - http://git.io/mqyl9w
01:44:12  <ryah>isaacs: you should get us up to openssl 1.0.1
01:44:25  <ryah>:)
01:44:42  * ryahworries about libs not being upgraded freq
01:45:23  <bbelder>did chromium upgrade already?
01:46:32  <bbelder>I think chrome still uses 0.9.8 ...
01:47:30  <ryah>chrome doens't use iopenssl
01:47:59  <bbelder>does it not?
01:48:08  <bbelder>why is it listed in git.chromium.org ?
01:49:25  * indexzerojoined
01:50:38  <ryah>oh - hm
01:50:40  <ryah>*shrug*
01:50:49  <ryah>it's not using it for https stuff afaik
01:50:59  <ryah>it uses netscape
01:51:27  <ryah>i thought the openssl stuff was a one-off thing they put in temp for a while
01:51:32  <ryah>but i thought they had removed it since
01:53:13  * TooTallNatequit (Quit: Computer has gone to sleep.)
01:53:55  <ryah>http://www.reddit.com/r/programming/comments/zio04/an_introduction_to_libuv_a_free_online_book_about/
01:55:11  <bbelder>nice
01:55:35  <bbelder>I think upgrading openssl will require some serious git-fu
01:55:54  <ryah>bbelder: luckily you're a git-fu master
01:56:00  * stagasquit (Quit: ChatZilla 0.9.88-rdmsoft [XULRunner 1.9.0.17/2009122204])
01:56:20  <ryah>also http://news.ycombinator.com/item?id=4488761
01:56:22  * indexzeroquit (Quit: indexzero)
01:56:32  <ryah>libuv is making the rounds today
01:56:55  <bbelder>unfortunately the epollet experiments went nowhere
01:57:14  <bbelder>ben was able to cut back on the number of syscalls as expected
01:57:24  <ryah>epollet?
01:57:25  <bbelder>but then all time was wasted in some stupid kernel spinlock
01:57:31  <bbelder>edge-triggered epoll
01:57:55  <bbelder>ryah: epoll_ctl is rather expensive as it turns out
01:58:03  <ryah>ok
01:58:15  <bbelder>ryah: but if you do your edge-triggered correctly you never need to call it :-)
01:58:24  <ryah>i mean - im happy for these perf improvements but we're basically very close to optimal
01:58:32  <bbelder>yeah
01:58:35  <bbelder>not much to gain here
01:58:46  <ryah>would really like to see multi-threaded accept worked on
01:58:55  <ryah>unforutnately we don't have this need in node
01:58:58  <bbelder>haha
01:59:05  <bbelder>ryah: nobody is stopping you though
01:59:07  <bbelder>:-p
01:59:13  <ryah>:)
01:59:21  <bbelder>we need to get this cluster balancing thing sorted out tho
01:59:30  * ryahis busy fucking around with client side validations
02:00:12  <ryah>bbelder: you heard thishttps://soundcloud.com/whatsonot/what-so-not-the-ripe-house-party-tour-guest-mix
02:00:20  <ryah>it's really good
02:00:35  <bbelder>ok, I'll listen
02:00:49  <bbelder>I like it a little less weird I think
02:01:04  <ryah>this is pretty pop-y
02:01:08  * ericktjoined
02:01:54  <bbelder>I did some analysis to figure out why node lost so badly from http.sys
02:01:54  <bbelder>it seems that avoiding going through js when pumping data from libuv into http_parser could give a big win
02:02:34  <bbelder>ah, this is not as bas as general ryan music
02:02:36  <bbelder>:-)
02:02:54  <bbelder>ryah: I like this: http://soundcloud.com/deltaheavy/delta-heavy-x-sw4-20
02:04:05  * ryahlistens
02:04:54  <ryah>fast zeit in der club zu gehen. ich ficken liebe ny ^_^
02:07:36  <ryah>nice music
02:07:37  <ryah>i liek it
02:08:45  <bbelder>haha, wannabe german
02:09:09  <ryah>it's our geheimlich language :)
02:09:24  <bbelder>das ist unser geheimlicher sprache ja
02:09:26  <bbelder>gut
02:10:38  <bbelder>my german gets better when I am slightly drunk
02:10:41  <bbelder>which happens to be
02:10:58  <ryah>ja auch bei mir
02:12:19  <ryah>but do you want to know the real cool music right now? http://www.youtube.com/watch?v=658WsCFwm9A
02:12:38  <bbelder>ok, i'll watch
02:13:16  <ryah>post-dub
02:14:14  <bbelder>ist das was man in die new yorkischer pary scene hoert?
02:14:27  <ryah>yeah, totally
02:15:05  <ryah>naturlich es kommt von der UK
02:15:19  <bbelder>a ja
02:16:02  <bbelder>ich wunschte auch kool zu zein, aber die rhytmus ist zu seltsam fur mich
02:16:30  <bbelder>dann koent ich mir nicht konzentrieren
02:16:51  <ryah>du muss auch das horren http://www.youtube.com/watch?v=mnsgDTGIQN4
02:18:24  <bbelder>ok that one is cool
02:19:14  <ryah>^^
02:19:27  <ryah>du muss mich besuchen
02:20:03  <bbelder>auf neues york stadt?
02:20:10  <ryah>yeah
02:20:19  <bbelder>I wouldn't mind I think
02:20:53  <ryah>yeah come, ich hab noch nicht ein wohnnung aber in november kreig ich ein
02:20:59  <bbelder>but man, I hate flying :-)
02:21:11  <ryah>es ist nicht so weit
02:21:16  * brsonquit (Quit: leaving)
02:21:23  <bbelder>but I suppose I have to go there once anyway
02:22:17  <bbelder>oh it's not even that expensive
02:22:20  <bbelder>like 550 eur
02:22:27  <ryah>right
02:22:42  <ryah>man sagt "right" oft in ny
02:22:59  <ryah>ich hab das gelerhnt
02:23:09  <bbelder>it's supposed to sound like "raaait" right?
02:23:13  <ryah>yeah
02:23:23  <bbelder>I need to get some practice
02:23:32  <bbelder>so you have a house in november?
02:23:38  <bbelder>where are you staying now?
02:23:39  <ryah>also i think i will go to london soon
02:23:52  <bbelder>oh, that's closer, we could meet up there
02:23:53  <ryah>if you're intersted in hanging out for a few days :)
02:23:58  <bbelder>sure
02:24:08  <bbelder>a holiday would be good
02:24:13  <ryah>i dont have a plan yet but maybe in oct
02:25:09  <ryah>alright. jetzt gehets los.
02:25:16  <ryah>ttyl
02:26:15  <bbelder>ok
02:26:16  <bbelder>later
02:37:53  * dapquit (Quit: Leaving.)
03:00:42  * TooTallNatejoined
03:06:11  * mcavagejoined
03:31:59  <CIA-129>node: Bert Belder openssl-1.0.1c-wip * r09e1d72 / (462 files in 66 dirs): openssl: upgrade to 1.0.1c - http://git.io/eDrqzg
03:32:00  <CIA-129>node: Bert Belder openssl-1.0.1c-wip * r3bb11e0 / (26 files in 7 dirs): Reapply floating patches - http://git.io/qVpiPA
03:34:29  * TooTallNatequit (Quit: Computer has gone to sleep.)
03:42:34  * mcavagequit (Remote host closed the connection)
04:06:07  * mikealjoined
04:20:15  * bbelderquit (Ping timeout: 276 seconds)
04:57:31  * dshaw_joined
05:13:05  * ericktquit (Quit: erickt)
05:17:07  * avalanche123joined
05:45:06  * avalanche123quit (Quit: Computer has gone to sleep.)
06:03:39  * felixgequit (Quit: http://www.debuggable.com/)
06:15:07  * hzjoined
06:41:58  * joshthecoderquit (Quit: Leaving...)
06:52:06  * hzquit
07:17:51  * paddybyersjoined
07:53:18  * dshaw_quit (Quit: Leaving.)
08:01:37  * rendarjoined
08:03:54  * mmaleckiquit (Ping timeout: 260 seconds)
08:22:29  * mmaleckijoined
08:38:08  * paddybyersquit (Quit: paddybyers)
09:44:44  * stagasjoined
10:22:56  * TheJHjoined
11:21:01  * ArmyOfBrucequit (Excess Flood)
11:21:30  * ArmyOfBrucejoined
12:12:01  * FUUFREENODESTOPBjoined
12:23:29  * paddybyersjoined
12:30:22  * paddybyersquit (Quit: paddybyers)
12:44:56  * paddybyersjoined
12:54:33  * paddybyersquit (Quit: paddybyers)
13:14:04  * FUUFREENODESTOPBquit (Quit: Leaving...)
13:27:15  * paddybyersjoined
13:42:28  * paddybyersquit (Quit: paddybyers)
13:56:40  * paddybyersjoined
13:57:21  * bnoordhuisjoined
14:11:07  * paddybyersquit (Quit: paddybyers)
14:27:06  * paddybyersjoined
14:27:54  * philips_quit (Excess Flood)
14:29:04  * philips_joined
14:40:48  * paddybyersquit (Quit: paddybyers)
14:52:55  * mikealquit (Quit: Leaving.)
14:57:22  * CoverSlidejoined
15:16:13  * mikealjoined
15:21:11  * piscisaureus_joined
15:21:26  <piscisaureus_>ho
15:26:29  * mikealquit (Quit: Leaving.)
15:38:08  * mikealjoined
15:38:41  * bettajoined
15:39:13  <betta>hi
15:42:23  <betta>if i try to shutdown the event loop by uv_close'ing all handles with uv_walk my application throws an error that a UV_IDLE handle is already closed
15:42:51  <betta>i didn't create a idle handle nor does this happen on windows (i'm currently testing on mac)
15:43:27  <betta>does somebody know anything about this or similar errors?
15:48:21  * paddybyersjoined
15:48:33  * mikealquit (Quit: Leaving.)
15:49:46  <piscisaureus_>betta: hmm, probably the handle is (incorrectly) not marked as internal
15:49:52  <piscisaureus_>betta: this is master ?
15:49:56  <betta>yes
15:50:47  * c4milojoined
15:50:53  <betta>i think the flags are UV_CLOSING & UV__HANDLE_REF
15:51:12  <piscisaureus_>well, you shouldn't close handles that are already closing
15:51:28  <piscisaureus_>but if you didnt make any idle handles that something else is wrong
15:51:37  <piscisaureus_>betta: are you using a tcp server?
15:51:40  <betta>yes
15:51:47  <piscisaureus_>aha
15:51:51  <isaacs>ryah: if you're going to be in uk in october, you should come to node dublin
15:51:52  <betta>and 2 async handles for communication
15:52:06  <betta>*internal
15:54:14  <CIA-129>libuv: Bert Belder trythis * r27b11ab / src/unix/tcp.c : unix: mark accept idle handle as internal - http://git.io/EMtW_Q
15:54:27  <piscisaureus_>^-- betta try that patch
15:55:53  * travis-cijoined
15:55:53  <travis-ci>[travis-ci] joyent/libuv#649 (trythis - 27b11ab : Bert Belder): The build passed.
15:55:53  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/commit/27b11abcc066
15:55:53  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2379725
15:55:53  * travis-cipart
15:59:39  * paddybyersquit (Quit: paddybyers)
16:11:08  <betta>piscisaureus_: works like a charm :)
16:11:17  <piscisaureus_>betta: cool
16:11:45  <CIA-129>libuv: Bert Belder master * r27b11ab / src/unix/tcp.c : unix: mark accept idle handle as internal - http://git.io/EMtW_Q
16:12:35  <betta>the support for libuv is really awesome. thanks :)
16:13:23  * travis-cijoined
16:13:23  <travis-ci>[travis-ci] joyent/libuv#650 (master - 27b11ab : Bert Belder): The build passed.
16:13:23  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/817b6c356bd0...27b11abcc066
16:13:23  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2379821
16:13:23  * travis-cipart
16:14:16  <betta>though i really feel the urge to extend the documentation or even write one from scratch like the node.js API documentation :D
16:17:59  <piscisaureus_>betta: I'd suggest you send patches to the uv book
16:18:21  <piscisaureus_>yeah, docs are lacking indeed
16:20:00  <betta>for instance i think people coming from C++ will probably have problems in understanding many things in libuv
16:21:56  <betta>e.g. why it's possible to have classes like uv_handle_t with subclasses like uv_tcp_t
16:23:50  <piscisaureus_>ah
16:23:55  <betta>well whatever… i will soon send patches to the uv book as a little "thank you" for earning money by using so many features of libuv :D
16:24:05  <piscisaureus_>people should learn c :-)
16:24:10  <piscisaureus_>betta: appreciated :-)
16:28:24  <betta>yeah it hurts me if I read things like this: http://programmers.stackexchange.com/q/164017 (tl;dr: "i write C# because C is sooo complicated and time consuming although my supervisor said I should use it and it will become a long running realtime application and i don't know that garbage collectors are really dangerous for such things")
16:29:51  * cfonejoined
16:33:12  * dshaw_joined
16:38:35  * paddybyersjoined
16:40:59  * hzjoined
16:53:43  * dshaw_quit (Read error: Connection reset by peer)
16:57:02  * bettapart
17:09:05  * mmaleckiquit (Ping timeout: 255 seconds)
17:15:29  * dshaw_joined
17:41:56  * saghulquit (Ping timeout: 268 seconds)
17:44:08  * saghuljoined
17:59:37  * mikealjoined
17:59:38  <ryah>hey
17:59:43  <ryah>we should make a website for libuv
17:59:47  <ryah>a github one
17:59:59  * piscisaureus_quit (Ping timeout: 244 seconds)
18:00:02  <ryah>and by "we" i mean "anyone but me"
18:05:16  <indutny>haha
18:06:08  * piscisaureus_joined
18:18:40  * paddybyersquit (Quit: paddybyers)
18:29:37  * TooTallNatejoined
18:45:32  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
18:54:37  * pfewpepwepwpepwjoined
18:55:55  * pfewpepwepwpepwquit (Client Quit)
18:56:30  * `3rdEdenjoined
18:58:05  * toothrotquit (Ping timeout: 240 seconds)
18:58:36  * Raltjoined
18:58:46  <Ralt>hello people
18:59:11  <Ralt>oh, hi Raynos :D
18:59:19  <Raynos>oh
18:59:23  <indutny>hey
19:00:54  <Ralt>huhu, I was having some unsolvable C++ problem (for a newbie like me), so I came here on abhishek's suggestion
19:01:00  <Ralt>didn't think I'd find you here Raynos
19:01:13  <Raynos>I'm everywhere!
19:01:37  <Ralt>haha :)
19:02:23  <Ralt>btw I'm trying myself out on a node.js c++ module and having some issues with the code, or probably with the binding.gyp file
19:04:08  <Ralt>the code is here https://github.com/Ralt/node-ssh (not much to see) and the compile goes fine but I get "undefined symbol" error when running the code, so a linker error, but for the life of me I can't get where it's coming from, and I don't know either how/where to look for such issues
19:04:30  * mikealquit (Quit: Leaving.)
19:04:31  <Ralt>I'm kinda new to C++, so maybe it's something obvious <<
19:07:49  <piscisaureus_>Ralt: dunno, but it seems like a good idea to implement the constructor and destructor for the Ssh class
19:08:01  <piscisaureus_>:')
19:08:51  <piscisaureus_>or, don't declare them
19:10:11  <Ralt>oh
19:10:17  <Ralt>that's actually a good idea
19:10:24  <Ralt>:D
19:10:52  <Ralt>piscisaureus_ that indeed works, thanks a lot :)
19:12:12  <Ralt>any idea why they're declaring it and keeping them empty in the node.js doc? http://nodejs.org/api/addons.html#addons_wrapping_c_objects
19:13:24  <indutny>piscisaureus_: hoya
19:13:58  <Ralt>indutny : sorry for ignoring you, didn't see it. hey :-)
19:14:14  <indutny>Ralt: hey
19:14:27  <piscisaureus_>indutny: hey
19:14:43  <piscisaureus_>Ralt: i don't know.
19:15:07  <indutny>piscisaureus_: what do you think about having CFRunLoop running along with uv loop on osx?
19:15:08  <Ralt>ok, thought it might be some C++ best practice. As I said, I'm new to this
19:15:45  <piscisaureus_>Ralt: well, you'll most likely need a constructor at some point
19:16:02  <piscisaureus_>indutny: ehm, for what>
19:16:07  <indutny>fsevents
19:16:14  <piscisaureus_>indutny: is that needed for fsevents?
19:16:23  <indutny>piscisaureus_: yeah
19:16:32  <piscisaureus_>fucking apple
19:16:33  <indutny>piscisaureus_: it's the only way to poll
19:16:34  <Ralt>for node.js modules, the constructor seems to be the ::New function or w/e function creates the object to return
19:17:16  <piscisaureus_>indutny: hmmmm
19:17:20  <indutny>Ralt: you can wrap any function with FunctionTemplate
19:17:28  <indutny>piscisaureus_: that's what I did in my previous version of patch
19:17:40  <indutny>piscisaureus_: but that thread was paired with fsevent_t
19:17:51  <indutny>piscisaureus_: and for each fsevents watcher new thread was started
19:17:53  <piscisaureus_>indutny: ah, you were running it in a separate thread
19:17:58  <indutny>yeah
19:18:02  <indutny>there're no way to do this
19:18:10  <indutny>it simply works only with CF event loop
19:18:18  <indutny>btw, nice asm patch
19:18:30  * toothrjoined
19:18:34  <piscisaureus_>indutny: i suppose cf just uses kqueue under the hood
19:18:40  <indutny>piscisaureus_: idk
19:18:47  <indutny>it's hard to get under the hood there
19:19:08  <piscisaureus_>indutny: I think it would be best to just create one extra thread and use that for all fsevent stuff
19:19:09  <indutny>piscisaureus_: but fsevents are not relying on kqueue AFAIK
19:19:13  <piscisaureus_>indutny: that would be acceptable
19:19:17  <indutny>yeah
19:19:20  <indutny>that's what I'm doing now
19:19:21  <indutny>ok
19:19:23  <indutny>good to know
19:19:27  <piscisaureus_>indutny: I mean, windows creates threads all over the place :-)
19:19:49  <indutny>haha
19:19:51  <indutny>hackedy
19:19:53  <indutny>hackers
19:20:01  <Ralt>I still need to read some docs...
19:20:01  <piscisaureus_>indutny: there is always this issue of actually joining the cf event loop with libuv - some people want to do that. I though that you wanted to bug me about that...
19:20:16  <indutny>hm...
19:20:29  <indutny>if it's using kqueue internally
19:20:32  <indutny>there may be a way to hack it
19:20:38  <indutny>I can explore it
19:22:11  <piscisaureus_>indutny: thanks - btw :-)
19:23:54  * paddybyersjoined
19:24:08  <indutny>oh
19:24:12  <indutny>they're not opensource
19:24:14  <indutny>crap
19:24:53  <indutny>I guess I can hack dtruss output anyway
19:25:56  <indutny>piscisaureus_: btw
19:26:02  <indutny>why I can't create async handle from loop_new
19:26:11  <indutny>uv__platform_loop_init, actually
19:26:24  <piscisaureus_>indutny: eh, wut?
19:26:48  <piscisaureus_>indutny: oh - probably because the self-pipe fd isn't initialized yet
19:26:56  <indutny>piscisaureus_: em
19:26:59  <indutny>piscisaureus_: and when it is?
19:27:37  <piscisaureus_>indutny: libev used to do that, but maybe ben already changed it (not sure)
19:27:44  <indutny>hm... odd
19:27:55  <indutny>because uv__platform_loop_init is the last action of loop creation
19:27:59  <indutny>and nothing should happen after it
19:28:20  <indutny>well, it allows me to create it
19:28:22  <piscisaureus_>loop->async_pipefd
19:28:25  <indutny>but it segfaults later
19:28:30  <piscisaureus_>hmm
19:28:32  * `3rdEdenquit (Remote host closed the connection)
19:29:15  <indutny>uv__async_init should be called
19:29:19  <indutny>and initialize pipe
19:29:21  <indutny>lazily
19:29:40  <indutny>Program received signal SIGSEGV, Segmentation fault.
19:29:40  <indutny>0x0000000100042d14 in uv__handle_init (loop=0x1000cd000, handle=0x10008ce00, type=UV_FS_EVENT) at src/uv-common.h:170
19:29:40  <indutny>170 ngx_queue_insert_tail(&loop->handle_queue, &handle->handle_queue);
19:29:40  <indutny>(gdb) bt
19:29:40  <indutny>#0 0x0000000100042d14 in uv__handle_init (loop=0x1000cd000, handle=0x10008ce00, type=UV_FS_EVENT) at src/uv-common.h:170
19:29:40  <indutny>#1 0x0000000100042fb1 in uv_fs_event_init (loop=0x1000cd000, handle=0x10008ce00, filename=0x100056600 "watch_dir", cb=0x100007140 <fs_event_cb_dir>, flags=0) at src/unix/kqueue.c:105
19:29:41  <indutny>#2 0x0000000100007807 in run_test_fs_event_watch_dir () at test/test-fs-event.c:187
19:29:41  <indutny>#3 0x0000000100001a11 in run_test_part (test=0x7fff5fbff569 "fs_event_watch_dir", part=0x7fff5fbff57c "fs_event_watch_dir") at test/runner.c:298
19:29:42  <indutny>#4 0x0000000100000a42 in main (argc=3, argv=0x7fff5fbff398) at test/run-tests.c:57
19:29:43  <indutny>that's what I see
19:30:14  <piscisaureus_>indutny: is this the latest master?
19:31:14  <indutny>yes
19:31:26  <indutny>if I'll remove uv_async_init call - it'll work
19:32:57  <indutny>ah, I know this
19:33:00  <indutny>what's this
19:33:13  <indutny>I wonder what have removed list's head
19:35:45  <indutny>aaaah
19:35:47  <indutny>stupid gdb
19:37:09  <piscisaureus_>indutny: yu know now?
19:37:43  <indutny>no, I don't know anything
19:37:52  <indutny>it just hang and I kill -9'ed it
19:39:05  <indutny>em...
19:39:11  <indutny>very interestin
19:39:30  <indutny>valgrind to the rescue
19:39:38  <indutny>looks like I'm overwriting some memory somehow
19:39:39  <piscisaureus_>good one :-)
19:40:16  <indutny>no, I don't
19:40:17  <indutny>crap
19:40:19  <indutny>haha
19:40:26  <indutny>debugging at sunday's evening is fun
19:41:55  <piscisaureus_>indutny: ehm
19:42:11  <piscisaureus_>indutny: on earth it's still saturday
19:42:27  <piscisaureus_>sunday morning at best
19:43:17  <indutny>oh noes
19:43:22  <indutny>I think it's a compiler bug
19:44:21  <indutny>yeah
19:44:24  <indutny>compiler bug
19:44:26  <indutny>hahaha
19:45:02  * mikealjoined
19:45:15  <indutny>https://gist.github.com/f428dc85539ca13853a0
19:46:31  * brsonjoined
19:47:15  * mikealquit (Client Quit)
19:47:16  <indutny>piscisaureus_: https://github.com/joyent/libuv/blob/master/src/unix/core.c#L211
19:47:26  <indutny>if I'll split this line into two - it'll be fixed
19:48:01  <indutny>bnoordhuis: ^^
19:50:05  * dshaw_quit (Quit: Leaving.)
19:51:58  * brsonquit (Ping timeout: 252 seconds)
19:52:13  * toothrchanged nick to toothrot
19:53:46  * brsonjoined
19:54:34  <piscisaureus_>indutny: eh, what's the bug
19:54:52  <indutny>piscisaureus_: look at pointer
19:55:01  <indutny>it stores 0x9b8a7
19:55:03  <indutny>but returns 0x9b8a0
19:55:11  <piscisaureus_>indutny: apart from mov -0x8(%rbp),%rax being superfluous
19:55:25  <indutny>it reads from another place
19:55:30  <indutny>wrong place
19:55:41  <piscisaureus_>ah, right
19:55:42  <piscisaureus_>oops
19:55:50  <indutny>I believe that's because it stores it in incorrect offset
19:56:06  <indutny>not-aligned
19:56:29  <piscisaureus_>indutny: well, create a patch and add a comment that this is a workaround for a compiler bug
19:56:36  <piscisaureus_>indutny: i'll land it
19:56:50  <indutny>piscisaureus_: oh, separate all the concerns
19:56:57  <indutny>piscisaureus_: it's a part of my fsevents stuff now
19:56:58  <indutny>ok
19:56:59  <indutny>one sec
20:01:19  <indutny>piscisaureus_: https://github.com/indutny/libuv/commit/85df0475eab17722d4d19c955e7dce7bc49e284c.patch
20:01:50  <indutny>ah
20:01:53  <indutny>wait, one moment
20:01:59  <indutny>it's IP based offset
20:02:43  * piscisaureus_waits
20:02:48  <indutny>odd
20:02:55  <indutny>it looks like it's correct
20:03:15  <indutny>let me run it
20:05:06  <indutny>oooh
20:06:10  <CIA-129>node: Ben Noordhuis v0.8 * r9a3521c / (lib/http.js test/simple/test-http-1.0-keep-alive.js): http: respect HTTP/1.0 TE header - http://git.io/rX_RRg
20:08:51  <indutny>ok, not a compiler bug
20:08:55  * mikealjoined
20:09:10  <indutny>but a build system bug
20:09:12  <Ralt>hm guys, seeing the high level talk in there, mind if I ask a low level one?
20:12:32  <bnoordhuis>Ralt: shoot
20:12:45  <Ralt>k
20:13:04  <bnoordhuis>indutny: what's the issue?
20:13:12  <indutny>bnoordhuis: nothing
20:13:16  <indutny>bnoordhuis: object files were old
20:13:21  <bnoordhuis>ah :)
20:13:25  <Ralt>so I'm building a node.js module using v8 api, and I want to require my module in javascript using `var Ssh = require( './build/Release/ssh' ), ssh = new Ssh();`
20:13:26  <indutny>bnoordhuis: not everything was recompiled after source has been changed :)
20:13:47  <Ralt>right now, I have to do `var Ssh = require( './build/Release/ssh' ).Ssh, ssh = new Ssh();`
20:14:01  <indutny>I wonder why uv_run_once doesn't exit even if I unref async handle
20:14:11  <indutny>bnoordhuis: ^
20:14:18  <Ralt>in the init method (called in NODE_MODULE), I have `Ssh::Init()`
20:14:29  <bnoordhuis>indutny: more details? how many active handles are there when you call it?
20:14:35  <Ralt>and in Ssh::Init(), I run this code: https://github.com/Ralt/node-ssh/blob/master/src/ssh.cc#L15
20:14:50  <Ralt>(5 lines function)
20:15:01  <bnoordhuis>Ralt: you're missing a HandleScope declaration
20:15:18  <Ralt>in the Init method?
20:15:27  <bnoordhuis>yes
20:15:54  <bnoordhuis>it'll probably work without one but only by accident
20:16:11  <bnoordhuis>but pray continue
20:17:26  <Ralt>hm
20:17:37  <Ralt>well I didn't add one because it's not done in node.js doc
20:17:44  <Ralt>and it doesn't actually change anything
20:18:17  <indutny>bnoordhuis: dunno
20:18:24  <indutny>bnoordhuis: I just created uv_async handle in loop_new
20:18:28  <indutny>and tests are hanging
20:18:28  <bnoordhuis>Ralt: think of it as a minor memory leak
20:18:37  <bnoordhuis>Ralt: but what issue are you running into?
20:18:40  <Ralt>oh, k
20:18:53  <Ralt>well it returns an object with the Ssh function in it, I want to return the function
20:19:28  <Ralt>s/an object/a js object
20:19:35  <Ralt>s/the function/the js function
20:19:58  <bnoordhuis>indutny: fire up gdb, break when it's in kevent() and do `call uv__print_handles(0, 0)`
20:20:22  <bnoordhuis>Ralt: you mean the constructor?
20:20:44  <Ralt>yep
20:21:24  <Ralt>instead of require('...').ssh, I just want to require('...')
20:21:29  <bnoordhuis>you can't, you'd have to use a js shim loader
20:21:49  * piscisaureus_quit (Read error: No route to host)
20:22:19  <Ralt>not the constructor then, I misunderstood, just the function on which I can call new in js
20:22:35  * piscisaureus_joined
20:22:49  <Ralt>right now I get `{ Ssh: [Function] }` when I require, I just want to get [Function]
20:24:36  <bnoordhuis>Ralt: use a shim loader that does something like module.exports = require('./build/Release/ssh').Ssh
20:25:07  <Ralt>that seems like hacking :/ thought there was a cleaner way
20:25:13  <Ralt>oh well
20:25:13  <bnoordhuis>nope :)
20:25:21  <Ralt>I'll keep using .Ssh then
20:25:23  <Ralt>thanks :)
20:25:32  <bnoordhuis>my pleasure :)
20:33:52  <piscisaureus_>bnoordhuis: I'd be okay with a makefile
20:34:06  <piscisaureus_>bnoordhuis: remember that we'll also have to get arm support in
20:34:14  <bnoordhuis>yeah, that might be tricky
20:34:26  <bnoordhuis>but i guess we can start out with just armv5 support
20:34:48  * avalanche123joined
20:35:43  <Ralt>bnoordhuis about the HandleScope earlier, do I have to close it at the end of the function? even with just scope.Close()?
20:35:49  <bnoordhuis>github sucks horribly at large pull requests...
20:36:01  <bnoordhuis>Ralt: no, you don't have to
20:36:17  <bnoordhuis>scope.Close() is only for returning values
20:36:55  <Ralt>ok, if I understand correctly, declaring a scope will make one for js, if there is none it's a memory leak and it's going to get closed once it's out of C++ block scope
20:38:00  <Ralt>if there is none it's a memory leak. and no matter what, it's going to be released once it gets out of C++ block scope
20:38:52  <Ralt>did I get this right?
20:45:13  <bnoordhuis>Ralt: yes, more or less
20:45:26  <bnoordhuis>a HandleScope is an allocation zone for Local<> handles
20:45:49  <bnoordhuis>if you don't declare a HandleScope yourself, the handles are placed in the currently active scope
20:45:58  <bnoordhuis>which might not get cleaned up in a while
20:46:03  <Ralt>k
20:46:37  <bnoordhuis>if you stick a HandleScope at the top of your function, its destructor will ensure that all Locals get cleaned up when your function exits
20:46:40  <Ralt>oh a question while I'm on it, I declared a "public js property" this way https://github.com/Ralt/node-ssh/blob/master/src/ssh.h#L23, is it the best?
20:46:50  <Ralt>I'm not using many Locals though right now
20:47:03  <Ralt>I've been told they're too much of a pain compared to Persistent
20:47:39  <bnoordhuis>actually... locals are preferable to persistent handles
20:48:05  <bnoordhuis>in your init function, you're making the constructor persistent but there's no real need for that
20:48:12  <bnoordhuis>you stick the constructor in an object
20:48:31  <bnoordhuis>as long as there's a reference to that object somewhere, the constructor won't be recycled
20:48:50  <Ralt>alright
20:48:54  <Ralt>got a lot to learn :p
20:49:06  <bnoordhuis>once you create objects with that constructor, they'll implicitly reference the constructor, hence it won't get collected
20:49:25  <bnoordhuis>so stay away from persistent handles unless you really, really need them
20:49:33  <bnoordhuis>re public js property
20:49:34  <Ralt>oh, ok
20:49:43  <bnoordhuis>is that property visible to js or c++ land?
20:49:47  <Ralt>c++
20:50:05  <bnoordhuis>yeah, i guess it's fine
20:50:16  <bnoordhuis>google people prefer getters, i.e. host()
20:50:19  <Ralt>using a Local<String> then I guess
20:50:26  <Ralt>oh
20:50:27  <bnoordhuis>but in node we mostly access them directly
20:50:46  <bnoordhuis>now that property *should* be Persistent :)
20:51:01  <bnoordhuis>because there are no other references to it
20:51:08  <bnoordhuis>hence the GC will collect it given the chance
20:51:23  <Ralt>hm
20:51:45  <Ralt>there is a reference to it in the Ssh::Connect method though
20:51:53  <Ralt>oh
20:52:09  <Ralt>the only way it to add it at the same time I'm adding the constructor heh?
20:52:49  <Ralt>s/it/is
20:52:57  <indutny>bnoordhuis: ok
20:53:42  <indutny>bnoordhuis: (gdb) p uv__print_handles(0, 0)
20:53:42  <indutny>[--I] signal 0x1000cd270
20:54:07  <Ralt>I wouldn't need it as Persistent if I were doing target->Set()
20:54:19  <bnoordhuis>indutny: that's all? it shouldn't block in that case, there are no active handles
20:54:24  <bnoordhuis>Ralt: that's correct
20:54:45  <indutny>bnoordhuis: it does
20:54:45  <Ralt>cool, I'm learning the right way! :-)
20:54:45  <indutny>:)
20:54:53  <indutny>I clearly understand that
20:56:00  <Ralt>is it necessary to have the prototype methods declared as static in the header file btw? I kinda did it without thinking much when following node.js doc, but I'm wondering about the utility
20:56:42  <indutny>bnoordhuis: (gdb) p uv_default_loop()->handle_queue
20:56:42  <indutny>$3 = {
20:56:42  <indutny> prev = 0x0,
20:56:42  <indutny> next = 0x0
20:56:42  <indutny>}
20:56:43  <indutny>oops
20:56:48  <indutny>something is bad again
20:56:56  <indutny>let me recompile everything
20:57:20  <bnoordhuis>Ralt: yes. otherwise v8 can't call them. it's the difference between a stdcall and a thiscall
20:58:08  <Ralt>(googling stdclass)
20:58:12  <Ralt>call*
20:58:26  <piscisaureus_>I am heading out guys
20:58:30  <piscisaureus_>it's tv time
20:58:33  <indutny>bnoordhuis: ok, linker bug once again :)
20:58:50  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
21:00:06  <bnoordhuis>Ralt: if you call a method on an object, the compiler passes in *this as an implicit argument
21:00:10  <bnoordhuis>that's called a thiscall
21:00:35  <bnoordhuis>oh wait, maybe i misread your question
21:01:00  <bnoordhuis>is it necessary to have the prototype methods declared as static in the header file <- the answer to this is 'no, not necessary' :)
21:01:25  <bnoordhuis>indutny: are you using gyp or the makefile?
21:03:03  <indutny>bnoordhuis: makefile
21:03:15  <indutny>bnoordhuis: I think rebase make it mad
21:03:25  <bnoordhuis>indutny: yeah, no one's maintaining that
21:03:31  <bnoordhuis>use gyp + ninja, it's win
21:03:54  <indutny>ninja?
21:03:56  <indutny>ah
21:04:00  <indutny>I even have it installed
21:04:08  <indutny>how to generate ninja file?
21:04:20  <bnoordhuis>./gyp_uv -f ninja, then ninja -C out/Debug
21:04:46  <rendar>but what is ninja?
21:04:56  <bnoordhuis>rendar: http://martine.github.com/ninja/
21:05:01  <rendar>thanks
21:06:50  <Ralt>bnoordhuis: haha ok, thiscall et al looked unrelated, but I'm new so I thought it'd be something else :p
21:07:10  <indutny>bnoordhuis: oh, I've removed svn
21:07:14  <indutny>won't be able to get gyp
21:07:15  <indutny>:(
21:07:39  <Ralt>hm, it seems to be
21:07:44  <bnoordhuis>indutny: git://github.com/bnoordhuis/gyp.git
21:08:07  <Ralt>if I don't set them as static it doesn't compile https://github.com/Ralt/node-ssh/blob/master/src/ssh.h#L20
21:08:37  <bnoordhuis>Ralt: to be clear, the methods need to be static, but you don't necessarily have to declare them in a header file (if you declare you class in the .cc file itself)
21:08:50  <Ralt>oh, ok
21:09:05  <Ralt>well it seems cleaner to declare them in the header file
21:09:09  <bnoordhuis>yes
21:09:32  <bnoordhuis>re not compiling when not static, that's the stdcall vs thiscall thing i mentioned
21:09:40  <Ralt>kk
21:09:46  <Ralt>yeah I guessed so ^
21:10:22  <Ralt>oh btw, quick C++ question, do I have to #include the header file in the cc file ? ie do I have to include ssh.h in ssh.cc ?
21:10:38  <Ralt>hmm in this case it's necessary because the class is declared there I guess
21:11:09  <bnoordhuis>Ralt: yes
21:11:47  <Ralt>k, thanks
21:17:52  * mmaleckijoined
21:23:55  <Ralt>hmmm, dunno if you saw, but I'm doing a node.js module to connect to ssh
21:24:01  <Ralt>using the libssh2 C library
21:24:22  <Ralt>and it looks like this library only allows one connection at a time
21:24:38  <Ralt>should I fork a process to handle simultaneous connections?
21:24:55  <Ralt>or maybe a thread? I don't really see how to approach this
21:25:50  <Ralt>and what would be the advantage/drawback of each method
21:26:06  * bnoordhuisquit (Ping timeout: 260 seconds)
21:27:10  * hzquit (Ping timeout: 272 seconds)
21:28:58  <Ralt>well, libssh2 actually uses a sock and is global (well, a C library), so I think forking a new process would completely separate it
21:29:06  <Ralt>but maybe a new thread is enough
21:29:26  <Ralt>especially if I want to handle many simultaneous connections
21:47:58  <indutny>ninja's output is not really good
21:49:19  <mmalecki>Ralt: thread should be good
21:49:44  * avalanche123quit (Quit: Computer has gone to sleep.)
21:50:17  <mmalecki>I'd use a uv_work_t per one connection
21:50:34  <indutny>it's dangerous
21:50:35  <indutny>do not use it
21:50:39  <Ralt>ah, that was my next question: can libuv handle this x)
21:50:47  <mmalecki>indutny: explain please?
21:50:51  <Ralt>it'd be nice since it's in a node.js module
21:51:05  <mmalecki>Ralt: I'd certainly appreciate it
21:52:08  <Ralt>just in case you want some rep http://programmers.stackexchange.com/questions/164209/libssh2-and-simultaneous-connections
21:52:12  <Ralt>:p
22:06:45  * TooTallNatejoined
22:14:45  <TooTallNate>isaacs: indutny: any objections? https://github.com/TooTallNate/node/commit/fix%2Futil-inspect-hasOwnProperty
22:22:02  * rendarquit
22:34:10  <CIA-129>node: Nathan Rajlich v0.8 * rfb383a0 / (lib/util.js test/simple/test-util-inspect.js): util: make util.inspect() work when "hasOwnProperty" is overwritten - http://git.io/200bIQ
22:42:22  * paddybyers_joined
22:43:56  * paddybyersquit (Ping timeout: 252 seconds)
22:43:56  * paddybyers_changed nick to paddybyers
22:45:27  * Raltquit (Read error: Connection reset by peer)
22:59:11  * paddybyersquit (Read error: No route to host)
23:15:09  * creationixquit (Ping timeout: 245 seconds)
23:17:16  * creationixjoined
23:17:18  * TooTallNatequit (Quit: Computer has gone to sleep.)
23:52:10  * brsonquit (Ping timeout: 260 seconds)
23:52:55  * dshaw_joined
23:57:42  * brsonjoined