00:15:59  <bnoordhuis>https://github.com/joyent/libuv/pull/567 <- condvars, nice
00:30:53  * bnoordhuisquit (Remote host closed the connection)
00:38:54  * tomshredsjoined
00:47:06  * loladiroquit (Quit: loladiro)
00:53:55  * hzquit
01:45:23  * abraxasjoined
01:48:02  * tomshredsquit (Quit: Leaving...)
02:30:02  * loladirojoined
02:33:24  * brsonquit (Quit: leaving)
02:56:45  * tomshredsjoined
03:01:22  * c4milojoined
03:04:19  * Ariaquit (Remote host closed the connection)
03:04:56  * Ariajoined
03:14:42  * brsonjoined
03:38:50  <c4milo>TooTallNate: hey, you there man?
03:38:55  * tomshredsquit (Quit: Leaving...)
03:39:03  <TooTallNate>c4milo: yes
03:40:15  <c4milo>TooTallNate: nice, I just have a quick question. how do I specify env variables in GYP?
03:40:32  <c4milo>I tried with 'define' and it didn't work :/
03:40:41  <TooTallNate>c4milo: hmmm, i don't know if there's a way to do that.. what's the context?
03:40:48  <TooTallNate>what do you need env variables fo?
03:40:53  <c4milo>I'm using pkg-config in a module
03:41:01  <c4milo>bindings to fuse low level api
03:41:27  <c4milo>I'm using osxfuse and it has a fuse.pc but it is located in a non standard path
03:41:33  <c4milo>so pkg-config doesn't find it
03:42:10  <TooTallNate>ya i see
03:42:21  <c4milo>this is what I had in python-waf
03:42:21  <c4milo>https://github.com/c4milo/fusejs/blob/master/src/wscript
03:42:26  <c4milo>and it works just fine
03:43:40  <TooTallNate>c4milo: to be honest, i'm not sure on that one
03:44:03  <c4milo>I've been looking but I couldn't find a way either
03:44:07  <TooTallNate>but ideally you'd write a gyp file to build fuse and link statically ;)
03:44:15  <c4milo>o.O
03:44:21  <TooTallNate>idk how complex fuse's build process is but i could look into it
03:44:46  <c4milo>well, we are talking about bundling linux fuse and osxfuse
03:45:08  <c4milo>https://github.com/osxfuse/osxfuse
03:45:09  <TooTallNate>c4milo: they're like, separate projects?
03:45:16  <c4milo>osxfuse is a couple a projects
03:46:08  <TooTallNate>ya, looks complicated :p
03:46:27  <TooTallNate>i mean other than specifying PKG_CONFIG_PATH manually idk if gyp offers a way to do it
03:46:42  <TooTallNate>which isn't the end of the world considering it's installed in a non-standard place
03:46:49  <c4milo>ok, it isn't a big deal right now
03:46:55  <c4milo>I'll continue using node-waf
03:47:07  <c4milo>once I finish the bindings I'll go back to the build process
03:47:17  <c4milo>thanks man
03:55:10  <TooTallNate>c4milo: the linux fuse source looks gypifyable, it's only ~10 c files
03:56:28  <c4milo>good to know
04:17:18  * c4miloquit (Remote host closed the connection)
04:32:56  * tomshredsjoined
04:47:31  * tomshredsquit (Quit: Leaving...)
04:54:39  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
04:57:52  * kristatejoined
05:26:19  <ryah>212
05:26:24  <ryah>808
05:26:26  <ryah>420
05:26:39  <ryah>4040
05:54:16  * mmaleckiquit (Ping timeout: 260 seconds)
06:26:04  * brsonquit (Quit: leaving)
06:46:41  * Raltjoined
06:47:34  * loladiroquit (Quit: loladiro)
06:49:23  * V1joined
06:50:19  * V1changed nick to `3rdEden
06:53:29  * stagasjoined
07:27:02  * stagasquit (Quit: ChatZilla 0.9.89-rdmsoft [XULRunner])
07:44:54  * AvianFluquit (Remote host closed the connection)
08:19:41  * hzjoined
08:26:26  * rendarjoined
09:38:28  * c4milojoined
09:39:28  * c4miloquit (Remote host closed the connection)
09:57:49  * c4milojoined
10:38:10  * mmaleckijoined
10:46:02  * Ariaquit (Remote host closed the connection)
10:46:17  * Ariajoined
11:24:17  * bnoordhuisjoined
11:27:54  <bnoordhuis>http://lists.debian.org/debian-project/2012/09/msg00057.html <- cia replacement
11:28:48  <deoxxa>"IRC bots running in our personal servers listen for SOAP messages"
11:28:51  <deoxxa>> SOAP
11:28:58  * deoxxashakes head
11:29:14  <indutny>SOAP
11:29:27  * indutnyscratches his beard
11:29:45  <indutny>bnoordhuis: also, I don't think that github supports this atm
11:29:48  <mitsuhiko>why would you do that
11:29:53  <deoxxa>beard bros, unite
11:29:54  * beachdogquit (Remote host closed the connection)
11:29:56  * deoxxapumps fist
11:33:13  <bnoordhuis>i've heard that soap is the new json
11:33:19  <bnoordhuis>also, writing a new github hook isn't that hard
11:34:24  <indutny>bnoordhuis: yes, it isn't
11:38:21  <indutny>bnoordhuis: so, after benchmarks
11:38:30  <indutny>bnoordhuis: it seems that tlsnappy isn't really fast
11:38:34  <bnoordhuis>aww :(
11:38:36  <indutny>bnoordhuis: it's not even faster than https
11:38:41  <indutny>I mean tls
11:38:47  <bnoordhuis>how come?
11:38:56  <indutny>I'm running second set of benchmarks
11:39:05  <indutny>there was some interference in first one
11:39:19  <indutny>bnoordhuis: https://docs.google.com/spreadsheet/ccc?key=0AhEDnA4M4EKGdDIwb3VYZTd1alA5T1pTVnlQWl9wanc
11:39:50  <indutny>bnoordhuis: dirty load spreadsheet
11:40:22  <indutny>bnoordhuis: hybrid = 4 processes 4 threads
11:40:26  <indutny>bnoordhuis: cluster = 16 processes
11:40:29  <indutny>bnoordhuis: default = 16 threads
11:40:59  <txdv_>I would like to have a glance on that spreadsheet too
11:41:26  <indutny>txdv_: given you a permission to view
11:41:45  <bnoordhuis>indutny: i think we need to switch to the null-md5 cipher
11:41:51  <bnoordhuis>it's blazing fast
11:41:56  <indutny>bnoordhuis: probably
11:42:15  <txdv_>are these all requests per minute?
11:42:34  <indutny>bnoordhuis: nginx was using AES256-SHA
11:42:37  <indutny>txdv_: second
11:42:51  <bnoordhuis>indutny: and node?
11:43:06  <indutny>bnoordhuis: the same
11:43:17  <bnoordhuis>okay
11:43:27  <indutny>bnoordhuis: everything is completely equal
11:43:46  <bnoordhuis>indutny: have you profiled tlsnappy?
11:43:55  <indutny>bnoordhuis: not yet
11:44:04  <indutny>bnoordhuis: I was trying to get trustful benchmarking results first
11:44:21  <indutny>bnoordhuis: once I'll finish second set, I'll move to profiling
11:44:31  <bnoordhuis>ack
11:44:31  <indutny>but yay, 4000 rps is good too
11:44:32  <indutny>:)
11:45:31  <indutny>bnoordhuis: it's odd that threaded model completely sucks
11:45:38  <indutny>bnoordhuis: it's a red line
11:46:13  <indutny>may be that's because of internal round-robin balancing
11:46:28  <indutny>but load wasn't high too
11:46:29  <bnoordhuis>indutny: is that the line called hybrid?
11:46:34  <indutny>bnoordhuis: default
11:46:51  <bnoordhuis>ah, so what are hybrid and cluster?
11:46:57  <bnoordhuis>(i can guess what the latter is)
11:47:01  <indutny>bnoordhuis: hybrid = 4 threads 4 processes
11:47:06  <indutny>bnoordhuis: cluster = 16 processes
11:47:13  <bnoordhuis>ah, right
11:47:21  <indutny>actually hybrid = 4 threads X 4 processes
11:47:22  <indutny>:)
11:47:38  <bnoordhuis>and default is 16 threads?
11:47:41  <indutny>yes
11:47:57  <bnoordhuis>how many cores does your machine have?
11:48:07  <indutny>hm...
11:48:10  <indutny>16 cores
11:48:13  <indutny>it's dedicated xeon
11:48:17  <indutny>bare metal
11:48:41  <bnoordhuis>are that really 16 cores or 8 cores with hyperthreading?
11:49:17  <indutny>latter one
11:49:41  <bnoordhuis>what happens if you use 8 threads / 8 processes max?
11:49:57  <indutny>em...
11:50:01  <bnoordhuis>the thing with hyperthreading is that it's only effective if there are stalls in the instruction pipe line
11:50:10  <indutny>well
11:50:18  <indutny>I don't think that results will be better
11:50:33  <indutny>on my mac I get worse results with no hyper-threading (i.e. 2 processes/ 2 threads)
11:51:48  <txdv_>so tlsnappy is not so snappy after all
11:52:38  <indutny>txdv_: indeed
11:52:43  <indutny>but it can be
11:52:50  <indutny>I suppose there're some lock contention
11:52:52  <indutny>or anything
11:53:09  <indutny>finishing second set of benchmarks before starting investigation
11:53:56  <indutny>txdv_: it's matching default https performance
11:54:08  <indutny>txdv_: when benchmarking with siege
11:54:27  <indutny>txdv_: with apache benchmark tlsnappy is faster
11:58:25  * beachdogjoined
11:59:19  <txdv_>so what does siege do what ab doesn't
11:59:38  <indutny>fast requests? :)
11:59:46  <indutny>5000 req/sec
11:59:59  <indutny>apache benchmark can do only about 2500
12:13:56  * abraxasquit (Remote host closed the connection)
12:14:57  <txdv_>this will be a topic of interest to me too
12:15:12  <txdv_>because i have to put some encrypting ontop of my wrapper
12:16:49  <indutny>txdv_: wrapper for what?
12:16:51  <indutny>libuv?
12:23:24  <txdv_>yeah
12:30:10  <indutny>ok
12:30:13  <indutny>updated benchmarks
12:30:22  <indutny>"dirty load2" sheet
12:30:23  <indutny>bnoordhuis: ^
12:30:32  * bnoordhuischecks
12:30:44  <indutny>it seems that tlsnappy isn't saturating machine enough
12:31:29  <bnoordhuis>i'm listening to pat boone's big band version of metallica's 'enter sandman'
12:31:32  <bnoordhuis>it's quite something...
12:31:44  <indutny>:)
12:32:07  <txdv_>good for you!
12:33:13  <bnoordhuis>indutny: interesting that load with nginx is higher when concurrency increases
12:33:21  <indutny>bnoordhuis: indeed
12:33:30  <indutny>bnoordhuis: I wonder
12:33:34  <bnoordhuis>it still outperforms either node or tlsnappy though :)
12:33:49  <indutny>bnoordhuis: how requests are balancing when multiple processes are accept()ing on the same socket?
12:34:01  <bnoordhuis>indutny: that's a complicated question
12:34:08  <indutny>bnoordhuis: indeed it is
12:34:09  <bnoordhuis>are you testing with v0.8 or master?
12:34:13  <indutny>bnoordhuis: 0.8
12:34:21  <indutny>bnoordhuis: I can do master if you think it matters
12:34:25  <bnoordhuis>okay, in that case the answer is "not so great"
12:34:26  <indutny>but it'll take time :D
12:34:30  <indutny>aaah
12:34:38  <indutny>better balancing, right?
12:34:44  <bnoordhuis>in master? yes
12:34:49  <indutny>hm...
12:34:51  <indutny>lets try :)
12:34:54  <indutny>it sounds interesting
12:34:59  <bnoordhuis>you may have to upgrade libuv, i'm not sure if i landed that in master yet
12:35:03  * bnoordhuischecks
12:35:27  <bnoordhuis>indutny: okay, it's in master
12:35:27  <indutny>bnoordhuis: good
12:35:33  <indutny>hm...
12:35:37  <indutny>nvm
12:35:38  <indutny>:)
12:36:18  <txdv_>in order to celebrate that magicient event, bnoordhuis , you could work on the uv_file_t abstraction
12:36:20  <indutny>make -j16 install
12:36:24  <indutny>ahhaha
12:36:26  <bnoordhuis>indutny: it's this commit btw:
12:36:29  <bnoordhuis>err, https://github.com/joyent/libuv/commit/be2a217
12:36:47  <bnoordhuis>txdv_: why do you want that so much? :)
12:37:07  <indutny>bnoordhuis: have you benchmarked it?
12:37:29  <bnoordhuis>of course not, that's beneath me
12:37:31  <bnoordhuis>(yes, i have)
12:37:34  <indutny>ok
12:37:38  <indutny>I'll do it for you
12:37:41  <indutny>I know you're lazy
12:37:47  <bnoordhuis>there's benchmarks in libuv that test it
12:37:59  <txdv_>either I write that abstraction myself on the wrapper level (like it is in node) or I just wrap the underlying functionality
12:38:09  <bnoordhuis>indutny: check the accept benchmarks
12:38:15  <txdv_>the first one is more work which will be obsoluted once the second is out
12:38:19  <indutny>bnoordhuis: odd
12:38:23  <indutny>ImportError: No module named bz2
12:38:35  <bnoordhuis>indutny: what distro?
12:38:39  <indutny>bnoordhuis: nvm
12:38:46  <indutny>it's because I built python 2.7 by hand
12:38:54  <txdv_>ok, i'm out, have fun writing awesome software
12:38:59  <bnoordhuis>hardcore but error prone
12:39:03  <bnoordhuis>bye txdv_
12:47:50  <indutny>bnoordhuis: ok, started benchmark again
12:48:13  <indutny>bnoordhuis: now with node master (with handwritten 0.9.2 version :D, because node-gyp sucks otherwise)
12:48:33  <bnoordhuis>indutny: what was the problem?
12:48:40  <indutny>bnoordhuis: manual python build
12:48:44  <indutny>without libbz2-dev installed
12:48:59  <indutny>I've all required libs and binaries in my home folder
12:49:07  <indutny>so building from source is essential
12:49:09  <bnoordhuis>ah that. why didn't you install it from your distro's repo?
12:49:19  <indutny>bnoordhuis: I can't
12:49:24  <indutny>bnoordhuis: this is shared machine
12:49:35  <indutny>bnoordhuis: I don't want to overwrite other users dependencies
12:49:46  <bnoordhuis>ah okay
12:49:58  <indutny>well, I would like to spawn joyent server
12:50:11  <indutny>but I can't scale ubuntu from 512mb to dedicated server :D
12:50:21  <indutny>and installing all requirements will take reasonable amount of time
12:50:25  <indutny>which I don't like to pay for
12:50:43  <indutny>spending 20 $ on apt-get install isn't suitable for me
13:01:50  * loladirojoined
13:03:31  * loladiroquit (Client Quit)
13:18:31  * ericktjoined
13:19:22  * beachdogquit (Remote host closed the connection)
13:21:10  * c4miloquit (Remote host closed the connection)
13:26:02  * loladirojoined
13:34:05  <indutny>bnoordhuis:
13:34:14  <indutny>I've worse results with node 0.9.x
13:34:33  <indutny>bnoordhuis: ^
13:34:40  * tomshredsjoined
13:34:45  <bnoordhuis>indutny: why?
13:34:50  <indutny>bnoordhuis: because it is?
13:34:53  <indutny>I don't know
13:34:58  <bnoordhuis>profile :)
13:34:59  <mmalecki>indutny: that seems to be correct for all http benchmarks I was doing
13:34:59  <indutny>probably worse balancing
13:36:12  * tommybergeronjoined
13:36:45  <indutny>3500 req/sec
13:36:50  <indutny>with concurrency level 100
13:36:52  <indutny>and hybrid server
13:37:13  <indutny>3652 req/sec with node 0.8.x
13:37:19  * tommybergeronquit (Client Quit)
13:37:21  <indutny>on the same server and concurrency level
13:38:35  * loladiroquit (Quit: loladiro)
13:39:04  * tomshredsquit (Ping timeout: 245 seconds)
13:40:30  <bnoordhuis>indutny: profile both and compare the results
13:40:41  <indutny>bnoordhuis: oh man
13:40:46  <indutny>bnoordhuis: I'm too lazy for that
13:40:51  <bnoordhuis>"it's slower" is not enough to go on :)
13:40:53  <indutny>bnoordhuis: ok, I'll do it for you
13:40:59  <indutny>bnoordhuis: --prof would work?
13:41:04  <indutny>bnoordhuis: or should I callgrind them?
13:41:10  <bnoordhuis>i'd use callgrind
13:41:23  <bnoordhuis>no, i'd probably do both
13:41:33  <indutny>bnoordhuis: ok, I'll use my mac then
13:41:47  <indutny>bnoordhuis: it's not going to work well with 16 processes anyway
13:42:15  * tomshredsjoined
13:42:24  * piscisaureus_joined
13:46:47  <indutny>bnoordhuis: running
13:46:54  <indutny>bnoordhuis: btw, why can't you do it? :)
13:47:15  <bnoordhuis>indutny: i'm not the one complaining that it's slower :)
13:47:21  <indutny>oh that
13:47:21  <bnoordhuis>besides, i haven't really seen that
13:47:32  * loladirojoined
13:47:36  <indutny>mmalecki: is another person, who is complaining about it
13:49:42  <indutny>bnoordhuis: apparently 0.8.x spends 80% of time in openssl
13:49:56  <indutny>oh wait
13:49:57  <bnoordhuis>indutny: good... i think
13:49:59  <indutny>no it's 90%
13:50:09  <mitsuhiko>how reliable are tcp disconnects?
13:50:13  <indutny>bnoordhuis: well that means that there's nothing we can do about it
13:50:22  <mitsuhiko>assuming that only the sending side needs to detect it
13:50:24  <indutny>mitsuhiko: in general? not reliable at all
13:50:30  <mmalecki>^ that
13:50:34  <indutny>that's my opinion, though
13:50:38  <bnoordhuis>mitsuhiko: define disconnect?
13:50:49  <indutny>oooh
13:50:52  <mitsuhiko>bnoordhuis: the remote side disappeared
13:50:55  <indutny>why is webkit SOOO BIG
13:51:00  <bnoordhuis>mitsuhiko: without sending a FIN?
13:51:07  <mitsuhiko>indutny: but it's the small and lean browser!!!11
13:51:20  <mitsuhiko>bnoordhuis: assume machine crashed
13:51:34  <bnoordhuis>mitsuhiko: right. you'll get an error - eventually
13:51:57  <bnoordhuis>but it depends on both the local and machine-wide tcp config
13:52:15  <mitsuhiko>so i probably want to heartbeat no matter what
13:52:22  <bnoordhuis>yes
13:53:09  * AvianFlujoined
13:53:13  <mitsuhiko>not the answer i was hoping for but i guess that's how it is
13:53:29  <indutny>mitsuhiko: use UDP
13:53:34  <indutny>it's the answer for everything
13:53:45  <mitsuhiko>i wish i could
13:53:49  <mitsuhiko>i actually like udp
13:53:56  <piscisaureus_>hello
13:54:24  <bnoordhuis>piscisaureus_: hoi bertje. reviewed that patch yet?
13:54:34  <piscisaureus_>bnoordhuis: no I just started
13:54:44  <piscisaureus_>bnoordhuis: I was very tired from lxjs so I slept very long
13:54:45  <indutny>bnoordhuis: hoi ben
13:54:46  * beachdogjoined
13:54:48  <indutny>bnoordhuis: reviewed that patch
13:54:51  <piscisaureus_>also we just reorganized the office
13:55:03  <piscisaureus_>bnoordhuis: I will do it this afternoon
13:55:08  <piscisaureus_>bnoordhuis: first the condvar patch
13:55:10  <bnoordhuis>piscisaureus_: yeah, i've been getting a ton of email about that
13:55:12  <indutny>bnoordhuis: em...
13:55:19  <indutny>bnoordhuis: irccloud ate my message
13:55:22  <piscisaureus_>haha
13:55:24  <indutny>bnoordhuis: have you reviewed that patch?
13:55:32  <bnoordhuis>indutny: what patch?
13:55:36  <indutny>bnoordhuis: uv_wait
13:55:41  <indutny>bnoordhuis: I've fixed every nit
13:55:43  <bnoordhuis>no. should i?
13:55:48  <indutny>bnoordhuis: yes, you should
13:56:01  <bnoordhuis>oh, don't doubt for a second that i can't find more
13:56:45  * philips_quit (Excess Flood)
13:58:13  * philips_joined
14:04:48  * c4milojoined
14:05:52  * loladiroquit (Quit: loladiro)
14:11:16  <tjfontaine>bnoordhuis: this was my quick cia replacement, you just need to point a webhook from the repo to where it's running https://gist.github.com/3794720
14:16:09  <indutny>bnoordhuis: are you ready?
14:16:17  <bnoordhuis>indutny: for what?
14:16:25  <indutny>bnoordhuis: for some benchmarking porn
14:16:30  <bnoordhuis>oh dear
14:17:07  <indutny>bnoordhuis: https://gist.github.com/3d06e31dfe09a22be2dc
14:17:16  <indutny>spot the difference!
14:18:19  <piscisaureus_>indutny: executive summary?
14:18:27  <indutny>piscisaureus_: 0.9 is slower than 0.8
14:18:32  <bnoordhuis>tjfontaine: don't you have to escape the author name and such?
14:18:33  <indutny>piscisaureus_: at least when using tlsnappy
14:18:50  <piscisaureus_>indutny: is it the v8 upgrade? or something else?
14:18:59  <indutny>piscisaureus_: that's what I'm trying to figure out
14:19:07  <piscisaureus_>indutny: well , roll back the v8 upgrade
14:19:10  <piscisaureus_>and try again
14:19:19  <tjfontaine>bnoordhuis: escape what? irc is pretty resilient, and node-irc takes \n's and splits them into multiple messages
14:19:22  <indutny>piscisaureus_: I'm too lazy for that
14:19:24  <indutny>really
14:19:30  <indutny>I spent all day benchmarking stuff
14:19:35  <piscisaureus_>indutny: git checkout v0.8 -- deps/v8
14:19:36  <indutny>probably because of hang over
14:19:48  <indutny>piscisaureus_: I don't want to burn my knees anymore
14:19:58  <bnoordhuis>indutny: 1305 vs 3917 in tlsnappy/api.js:94
14:20:02  <bnoordhuis>how/why?
14:20:02  <piscisaureus_>indutny: haha. get a desk :-)
14:20:21  <indutny>bnoordhuis: indeed
14:20:38  <indutny>ah
14:20:43  <indutny>bnoordhuis: it was running for a longer time
14:20:54  <indutny>but percents are bigger
14:20:57  <indutny>that's true
14:21:10  <indutny>I can get more ticks for 0.8.x
14:22:01  <bnoordhuis>this is odd too
14:22:02  <bnoordhuis> 32772 72.9% 0.0% /usr/lib/libSystem.B.dylib
14:22:04  <bnoordhuis> 7798 17.3% 0.0% /Users/indutny/.node/0.8.11/bin/node
14:22:05  <bnoordhuis>vs.
14:22:10  <bnoordhuis> 30331 44.9% 0.0% /usr/lib/libSystem.B.dylib
14:22:10  <bnoordhuis> 25896 38.3% 0.0% /Users/indutny/.node/0.9.2/bin/node
14:22:21  <bnoordhuis>thats 0.8 vs 0.9
14:22:53  <bnoordhuis>indutny: when you say 'running for a longer time'
14:23:06  <bnoordhuis>do you mean 'let it run for a longer time before i hit C-c'
14:23:06  <indutny>well, more ticks were collected
14:23:12  <bnoordhuis>or 'took longer to complete'?
14:23:58  <indutny>bnoordhuis: first one
14:24:05  <bnoordhuis>right
14:24:12  <bnoordhuis>it makes it harder to compare the results
14:24:56  <indutny>btw, where is nate's android stuff?
14:26:34  <indutny>bnoordhuis: updated https://gist.github.com/3d06e31dfe09a22be2dc
14:33:52  <txdv_>all the new episodes of the new seasons have been released today
14:33:57  <txdv_>major internet slowdown in lithuania
14:34:13  <piscisaureus_>bnoordhuis: ok, reviewing your patch
14:34:34  <bnoordhuis>indutny: thanks
14:35:47  <bnoordhuis>indutny: 116283 ticks vs 67601 ticks, 0.9 seems to be holding up pretty well...
14:36:21  <indutny>well yes
14:36:43  <indutny>0.8.x is doing more allocations and all the stuff
14:36:47  <indutny>as I can see
14:36:52  <indutny>but for some reason
14:36:55  <indutny>it's faster :D
14:37:40  <bnoordhuis>i guess i should run the benchmarks myself...
14:37:52  <bnoordhuis>but first i have to fix all the things
14:38:32  <indutny>bnoordhuis: 844 trans/sec on 0.8.x
14:38:37  <indutny>~ 500 on 0.9.x
14:40:01  * erickt_joined
14:40:04  * erickt_quit (Client Quit)
14:40:27  <bnoordhuis>indutny: from what commit is your 0.9 binary built?
14:40:35  <indutny>bnoordhuis: HEAD
14:40:52  <indutny>3053f4d
14:40:54  <bnoordhuis>indutny: does it contain bert's openssl optimizations?
14:41:03  <indutny>bnoordhuis: I suppose it is
14:41:08  <indutny>yes
14:41:29  <bnoordhuis>okay, so that can't be it
14:41:33  <bnoordhuis>well, odd
14:42:01  <indutny>I'm not sure if my 0.8.11 contains all bert's stuff
14:42:03  <indutny>does it?
14:42:23  <indutny>btw, I've a proposal
14:42:27  <indutny>not a proposal
14:42:31  <bnoordhuis>indutny: it does
14:42:33  <indutny>assumption
14:42:41  <indutny>that 0.9.x is slower at accepting requests
14:42:44  <indutny>not at processing them
14:42:48  <indutny>what do you think?
14:43:02  <bnoordhuis>it is, it spreads them out
14:43:17  <bnoordhuis>try this: UV_TCP_SINGLE_ACCEPT=0 node benchmark.js
14:43:34  <indutny>ok
14:43:35  <indutny>one sec
14:44:02  <indutny>almost the same
14:44:05  <indutny>a little bit faster
14:44:10  <indutny>~ 10 req/sec difference
14:44:19  <indutny>I suppose it can be counted as a statistical error
14:44:23  <bnoordhuis>yeah
14:44:44  <bnoordhuis>now is a good time to whip out callgrind
14:45:12  <indutny>bnoordhuis: I've already runned it
14:45:18  <indutny>bnoordhuis: it's in that gist
14:45:28  <bnoordhuis>oh, right
14:46:52  <bnoordhuis>3,886,429,824 vs 6,005,847,442 insn. wut?
14:47:22  <bnoordhuis>indutny: can you add the results of callgrind_annotate --auto=yes?
14:47:27  <bnoordhuis>or upload the raw files?
14:47:28  <indutny>bnoordhuis: nope
14:47:31  <indutny>bnoordhuis: I deleted files
14:47:33  <bnoordhuis>aww
14:47:36  <indutny>yeah
14:47:39  <indutny>unfortunatelly
14:47:54  <bnoordhuis>okay, sort -n to the rescue
14:51:18  <bnoordhuis>indutny: tlsnappy::Socket::OnEvent() seems to get called a lot more with 0.9
14:51:40  <bnoordhuis>56336 vs 67455 times
14:52:23  <bnoordhuis>4573 vs 5374 calls to SSL_Read()
14:53:20  <bnoordhuis>there's also considerably more calls to the BN_* functions
14:54:35  <bnoordhuis>indutny: are you positively sure it's slower? reading the callgrind logs, it simply seems that 0.9 does a lot more
14:55:01  <bnoordhuis>compare for example the # of calls to ssl3_accept, 799 vs 982
14:56:31  <indutny>hm...
14:56:52  <indutny>bnoordhuis: have you checked percents?
14:57:20  <bnoordhuis>indutny: that's not possible with these logs :/
14:57:21  <indutny>bnoordhuis: I mean ratio of OnEvent to all ticks
14:57:25  <indutny>bnoordhuis: sorry :D
14:57:29  <indutny>brb
14:57:32  <indutny>dinner
14:57:37  <bnoordhuis>bon appetite
15:00:07  * mikealjoined
15:05:09  <creationix>g'morning friends
15:06:07  <creationix>my luvit.io:1337 and howtonode.org:1337 repls have been running great all weekend except for the fact that the node process that handles the websockets is constantly busy-looping on the event loop
15:06:25  <creationix>I have not been able to track down what causes it. Any pointers?
15:08:51  <creationix>(note that the busy loop doesn't seem to hurt performance, it just keeps one of my CPU cores busy all the time)
15:11:20  <rendar>creationix: is that a js console?
15:11:31  <creationix>the one at howtonode is a node console
15:11:35  <creationix>the one at luvit.io is a luvit console
15:12:37  <rendar>what is luvit?
15:13:08  <creationix>rendar, luvit.io (basically it's node but using lua instead of javascript)
15:13:42  <rendar>oh i see
15:13:53  <bnoordhuis>creationix: what do you see when you strace it?
15:14:02  <bnoordhuis>i'm assuming it's a linux machine
15:14:09  <rendar>creationix: so its lua binded to libuv?
15:14:11  <creationix>bnoordhuis, I see clock_gettime() and epoll_wait()
15:14:14  <creationix>rendar, right
15:14:21  <bnoordhuis>creationix: epoll_wait with what timeout?
15:14:34  <bnoordhuis>creationix: btw, is that clock_gettime(CLOCK_MONOTONIC)?
15:15:00  <creationix>yep
15:15:10  <creationix>(I would copy paste, but the c9 terminal doesn't let me copy from strace)
15:15:14  <bnoordhuis>hah
15:15:21  <bnoordhuis>creationix: can you attach gdb?
15:15:31  <creationix>sure, just a sec
15:16:43  <piscisaureus_>creationix: can you not copy using the browser's menu?
15:16:48  <piscisaureus_>creationix: that works for me always
15:17:41  <creationix>piscisaureus_, I can't highlight
15:17:54  <piscisaureus_>hmm, that's really odd
15:18:02  <creationix>it captures the mouse events
15:18:16  <creationix>pretty impressive terminal emulation actually, even terminal mouse integration works
15:18:29  <piscisaureus_>creationix: you could also try to capture the output with tee
15:18:45  <piscisaureus_>(but for that you'd have to restart of course)
15:19:02  <creationix>yeah, it takes a while for the problem to start reproducing
15:19:06  <creationix>ok, starting gdb
15:19:42  <piscisaureus_>oh huh you have a curses version of strace
15:20:10  <creationix>https://gist.github.com/5242c2224211b34ec1ee
15:20:50  <piscisaureus_>and you're actually using windows
15:21:57  <creationix>alright added second bt to gist
15:22:04  <creationix>yeah, I'm on windows right now
15:22:45  <bnoordhuis>"this is your mind on windows"
15:22:47  <rendar>creationix: did you create luvit?
15:22:54  <creationix>rendar, yep :)
15:23:04  <bnoordhuis>creationix: can you `f 2`, then `p loop->active_handles`
15:23:13  <kristate>rendar: be sure to check-out lev, as well. https://github.com/connectFree/lev
15:23:21  <rendar>creationix: cool! i'm watching the repository on github, there is also something for gl drawing? awesome
15:23:35  <rendar>kristate: thanks
15:23:36  <bnoordhuis>creationix: and `p loop->active_reqs` and `p &loop->active_reqs` please
15:23:42  <piscisaureus_>bnoordhuis: it looks like there are 2 handles which return EPOLLHUP all the time
15:23:42  <creationix>bnoordhuis, :( "value has been optimized out"
15:23:53  <piscisaureus_>(from a screenshot tim sent me)
15:24:13  <bnoordhuis>a screenshot? how fancy
15:25:10  <creationix>alright did control-a select all to highlight it
15:25:11  <creationix>https://gist.github.com/e3ea84095a276345a74e
15:25:40  <piscisaureus_>bnoordhuis: http://yfrog.com/oe31app
15:26:20  <piscisaureus_>creationix: I think maybe you forgot to close a handle that had an error.
15:26:45  <creationix>I'm using the stock node binary
15:26:48  <bnoordhuis>probably something like that, fds 15 and 19
15:26:50  <creationix>but I am using pty.js (a C addon)
15:27:50  <creationix>https://github.com/chjj/pty.js/
15:28:09  <bnoordhuis>creationix: cheap trick, add a `struct stat temp_stat` in node.cc or somewhere
15:28:32  <bnoordhuis>creationix: then in gdb do this: `call fstat(15, &temp_stat)` and `p temp_stat`
15:28:39  <bnoordhuis>that should tell you what kind of fd it is
15:28:52  <bnoordhuis>(same for fd 19 of course)
15:29:20  <creationix>can another process open those?
15:29:27  <bnoordhuis>alternatively, you can `call malloc(sizeof(struct stat))` and use the return value
15:29:39  <bnoordhuis>use `p *(struct stat *) <return value>` in that case
15:29:42  <creationix>btw, I also have lsof
15:29:48  <bnoordhuis>oh, that works too :)
15:29:54  <piscisaureus_>bnoordhuis: or maybe look at /proc/pid ?
15:29:58  * mikealquit (Quit: Leaving.)
15:29:59  <bnoordhuis>or /proc/<pid>/fds
15:30:03  <creationix> 15 is a CHR type to /dev/ptmx
15:30:09  <creationix>I don't see 18
15:30:12  <bnoordhuis>19
15:30:19  <creationix>or 19
15:30:38  <bnoordhuis>well, /dev/ptmx is the pty device
15:30:45  <bnoordhuis>so apparently it's something to do with pty.js
15:30:52  <creationix>https://gist.github.com/e36bba2d3751e591fa71
15:31:36  <creationix>:( bug in someone else's code, that's harder to fix
15:33:43  <bnoordhuis>creationix: what version of node is it?
15:33:44  <piscisaureus_>creationix: probably he doesn't uv_close in his read callback. Look there first
15:34:09  <creationix>bnoordhuis, node v0.8.11 x64 and ia32
15:34:19  <creationix>binaries from nodejs.org
15:36:29  <creationix>hmm, I'm not seeing uv at all in the binding
15:37:22  <piscisaureus_>so how does it create a stream? With `new new.Socket({fd: 19})` ?
15:37:42  <bnoordhuis>i wonder if libev is calling the watcher with revents=0...
15:39:02  <bnoordhuis>creationix: https://gist.github.com/2a677371bfc18cb2ef4b <- can you try this patch?
15:39:13  <bnoordhuis>oh wait, you mentioned binaries
15:40:37  <creationix>that's fine, I just downloaded 08.11 source
15:41:26  <isaacs>g'morning
15:42:40  <creationix>morning isaacs!
15:44:02  <creationix>bnoordhuis, do you expect the patch to throw right away if pty.js is misbehaving?
15:44:11  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
15:44:17  <indutny>bnoordhuis: hoya
15:44:24  <bnoordhuis>creationix: no, only when it starts spinning because of those EPOLLHUPs
15:44:27  <bnoordhuis>indutny: heya
15:44:56  * piscisaureus_joined
15:45:06  <creationix>also I'm doing a stock configure (just modified PREFIX) so I'll get debug symbols now right?
15:45:11  <indutny>bnoordhuis: so no luck with benchmarking, I guess?
15:45:40  <bnoordhuis>creationix: compile with `make BUILDTYPE=Debug`
15:45:49  <bnoordhuis>indutny: no time yet
15:46:08  <creationix>building...
15:48:07  * `3rdEdenchanged nick to `3E|FOODING
15:48:40  <bnoordhuis>piscisaureus_: clear on the exit_message thing?
15:48:51  <piscisaureus_>bnoordhuis: no
15:49:05  <piscisaureus_>bnoordhuis: I don't get it. These threads never exit by themselves.
15:49:12  <bnoordhuis>piscisaureus_: that's correct
15:49:19  <piscisaureus_>Ah i see now
15:49:20  <bnoordhuis>piscisaureus_: the main thread calls post(&exit_message)
15:49:29  <bnoordhuis>piscisaureus_: the workers see it in the queue and exit
15:49:34  <piscisaureus_>the pthread_t becomes invalid immediately when the thread exits.
15:49:37  <bnoordhuis>yes
15:49:44  <piscisaureus_>unix is so weird :-)
15:49:46  <bnoordhuis>heh
15:50:24  <piscisaureus_>bnoordhuis: it looks good to me, but as I understand it this thread pool is less advanced that EIO's ?
15:50:35  <piscisaureus_>bnoordhuis: the size of the pool doesn't scale
15:50:45  <bnoordhuis>piscisaureus_: right now, yes. but once we get our funding, we'll address that
15:50:57  <bnoordhuis>this is the simplest prototype i could think up
15:51:16  <bnoordhuis>auto-scaling isn't that hard to add btw
15:51:19  <piscisaureus_>bnoordhuis: also, I can understand the desire to keep vallgrind happy but these "destructors" are just a waste of time
15:51:43  <bnoordhuis>yeah, maybe... but sifting through valgrind noise is a waste as well
15:51:58  <bnoordhuis>i could fix it by writing a suppression file
15:52:05  <piscisaureus_>maybe use these destructors only in debug mode?
15:52:26  <bnoordhuis>piscisaureus_: you mean #ifndef NDEBUG?
15:52:29  <piscisaureus_>ya
15:52:42  <bnoordhuis>meh, i don't like conditionals unless they're absolutely necessary
15:53:09  <bnoordhuis>broken code has a habit of hiding behind #ifdefs
15:53:34  <bnoordhuis>also, it's nice for libuv users that trace *their* apps with valgrind
15:54:27  <piscisaureus_>ok, reviewing the last 2
15:54:46  * ericktquit (Quit: erickt)
15:56:01  <creationix>bnoordhuis, alright, compiled and running patched node at port http://luvit.io:3000/
15:56:16  <bnoordhuis>creationix: is it busy looping already?
15:56:32  <creationix>don't think so
15:57:18  <bnoordhuis>http://linux.slashdot.org/story/12/10/01/1444224/linux-36-released <- old news, already running it
15:58:47  <indutny>bnoordhuis: what's Fast Open mode
15:59:03  <indutny>http://research.google.com/pubs/pub37517.html
15:59:09  <bnoordhuis>indutny: http://lwn.net/Articles/508865/
16:00:34  * mikealjoined
16:00:35  <indutny>I love that google is working on protocols
16:00:45  <indutny>they have much to say
16:02:13  <bnoordhuis>dinner time, biafh (back in a few hours)
16:03:29  * mikeal1joined
16:05:15  * mikealquit (Ping timeout: 255 seconds)
16:07:10  * mikeal1quit (Client Quit)
16:11:31  * AvianFluquit (Read error: Connection reset by peer)
16:11:54  * AvianFlujoined
16:12:43  <creationix>bnoordhuis, alright, I got enough load to busyloop it
16:12:52  <creationix>the process didn't die
16:23:13  * beachdogquit (Remote host closed the connection)
16:28:39  * TheJHjoined
16:37:20  * mikealjoined
16:43:31  * mikealquit (Ping timeout: 260 seconds)
16:54:34  * `3E|FOODINGchanged nick to `3rdEden
16:54:59  * mikealjoined
16:57:38  * lohkeyjoined
17:00:58  * TooTallNatejoined
17:03:02  * indexzerojoined
17:05:16  <TooTallNate>can someone review? https://github.com/TooTallNate/node/commit/f1722a280c0b0505ecb2cd92cd66195a6d53368a
17:07:26  <isaacs>TooTallNate: lgtm
17:08:12  <TooTallNate>isaacs: thanks
17:13:06  <indutny>TooTallNate: I think you can just look at v8's source to find more syntax errors
17:13:22  <TooTallNate>indutny: ya i was thinking about doing that
17:26:36  * mikealquit (Quit: Leaving.)
17:36:35  * ericktjoined
17:41:23  * mmaleckichanged nick to mmalecki[code]
17:51:02  <piscisaureus_>^-- isaacs ryah: https://github.com/joyent/libuv/compare/reviewme ?
17:51:16  <piscisaureus_>ah, no CIA :-(
17:52:31  * travis-cijoined
17:52:31  <travis-ci>[travis-ci] joyent/libuv#742 (reviewme - e2cffdc : Bert Belder): The build passed.
17:52:31  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/commit/e2cffdcf5fe9
17:52:31  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2626363
17:52:31  * travis-cipart
17:58:12  * indexzeroquit (Remote host closed the connection)
17:59:52  * Ralt_joined
18:00:18  * mikealjoined
18:00:33  <piscisaureus_>are all libuv committers gone now ... ?
18:00:39  <piscisaureus_>:'(
18:01:53  <creationix>piscisaureus_, how was lxjs
18:01:59  <piscisaureus_>creationix: really good
18:02:08  <piscisaureus_>had good fun :-)
18:02:26  <creationix>yay, I finally get to see the libuv talk
18:02:57  <piscisaureus_>creationix: unfortunately my talk was near the end so I was slightly nervous the entire conference ...
18:03:01  * hzquit
18:03:50  <`3rdEden>piscisaureus_: it's good that they left the whole windows hassle you had out of the movie ;)
18:04:01  <piscisaureus_>haha
18:04:02  <piscisaureus_>yeah
18:04:46  <piscisaureus_>`3rdEden: I actually had the same issue the other way round at gotocon last year btw
18:05:54  <`3rdEden>piscisaureus_: well next time you should probably install linux then!
18:06:11  <`3rdEden>ASCII slides on smartOS for example
18:06:14  <piscisaureus_>haha, I actually have that but it is tedious to boot
18:06:23  <`3rdEden>and cat each slide :)
18:06:56  * mikealquit (Ping timeout: 260 seconds)
18:06:57  * Ralt_quit (Remote host closed the connection)
18:07:33  * Ralt_joined
18:12:11  * Ralt_quit (Ping timeout: 260 seconds)
18:21:59  <indutny>bnoordhuis: yo
18:22:05  <indutny>bnoordhuis: uv_wait() why no land?
18:29:37  <TooTallNate>creationix: were you at lxjs? i thought I saw you in the audience of one of the videos, haha
18:29:50  <creationix>nope
18:30:11  <creationix>thouhh g+ thinks I was there and keeps tagging me
18:31:00  <TooTallNate>evil twin...
18:32:08  * brsonjoined
18:34:00  <DrPizza>piscisaureus_: I dunn oman, it look spretty dumb to me
18:34:40  <DrPizza>piscisaureus_: it looks like it requires manifest (explicit) typing, which is hardly considered cool these days (type inference is much more fashionable)
18:35:07  <DrPizza>piscisaureus_: and if you want a typesafe language atop JavaScript, you could just use GWT or JSIL or Dart with typechecking turned on, amongst others
18:35:25  <piscisaureus_>DrPizza: I don't know either. I'm not saying I think it's a good language.
18:35:35  <DrPizza>is "yet another way of doing typesafe JavaScript" really advancing the state of the art?
18:37:24  <piscisaureus_>DrPizza: really, I don't know. But in general time will tell. Burning down new "things" just because you don't like the guy who created it I don't like.
18:37:34  <DrPizza>oh, I agree with that
18:37:36  <DrPizza>that is stupid
18:38:10  <TooTallNate>isaacs: review another one? https://github.com/TooTallNate/node/commit/3b7312d23af26d0c1bdcb977015bda7c4709f222
18:38:22  <piscisaureus_>If tim cook had announced timescript there would be lines in front of the stores already
18:38:34  <piscisaureus_>er, *typescript, whatever
18:38:39  <DrPizza>lol
18:42:11  <creationix>"TimeScript, It makes you so productive, you actually go back in time by using it"
18:42:21  <creationix>only $99 a day to use
18:53:51  <ryah>is libcurl worth it?
18:54:10  <ryah>anyone used it?
18:56:03  <creationix>ryah, I briefly looked at it for webos (needed to bind to it to get access to system level proxy settings)
18:56:21  <creationix>it does a lot, but I prefer implementing it all on top of node a'la request
19:06:28  * rendarquit (Ping timeout: 245 seconds)
19:14:11  <indutny>hey people
19:14:18  <indutny>mind upvoting "spoon" on HN?
19:14:31  <indutny>can't give you direct link since it'll be banned after that
19:14:35  <indutny>https://github.com/indutny/spoon
19:14:54  <indutny>ryah: I think you may be interested in this
19:15:34  <piscisaureus_>http://www.google.com/trends/explore#q=libuv%2C%20libev%2C%20libevent&cmpt=q
19:16:59  <indutny>piscisaureus_: raising fast
19:17:14  <piscisaureus_>true
19:17:26  <piscisaureus_>look at the regional stats
19:17:30  <piscisaureus_>we should target china :-)
19:17:35  <indutny>:)
19:23:23  <ryah>we need more marketing for libuv
19:23:25  <ryah>(seriously)
19:23:36  * rendarjoined
19:23:38  <ryah>i think the video and book are good start
19:24:02  <indutny>ryah: T shirts
19:24:06  <indutny>free T shirts
19:24:29  <ryah>i was thinking a website
19:24:40  <txdv_>every geek wants to have a tshirt with the name of an event loop library
19:24:46  <indutny>yes
19:24:47  <indutny>me
19:24:49  <indutny>definitely
19:24:51  <indutny>send
19:24:51  <indutny>me
19:24:52  <indutny>it
19:25:07  <ryah>the website should impute a sense of quality
19:25:20  <ryah>maybe we can find a designer to do it?
19:25:30  <ryah>maybe kriesse?
19:25:55  <ryah>we need to strangle libevent
19:26:01  <ryah>and boost::asio
19:26:05  <ryah>to death
19:32:54  * lohkey_joined
19:34:54  * kristatequit (Ping timeout: 245 seconds)
19:35:54  * lohkeyquit (Ping timeout: 256 seconds)
19:35:55  * lohkey_changed nick to lohkey
19:38:37  * lohkeyquit (Remote host closed the connection)
19:38:51  * lohkeyjoined
19:38:55  * Ralt_joined
19:40:35  * `3rdEdenquit (Remote host closed the connection)
19:45:46  <indutny>damn, design is so hard
19:45:58  <indutny>I need to by a drawing pad
19:46:21  <CoverSlide>because the libev and libevent websites were so well-designed
19:46:21  <piscisaureus_>www.libuv.org
19:46:59  <txdv_>omg
19:47:01  <txdv_>the design
19:47:04  <txdv_>so nice so nice
19:47:31  <indutny>piscisaureus_: ++
19:48:51  * travis-cijoined
19:48:51  <travis-ci>[travis-ci] joyent/libuv#743 (master - e2cffdc : Bert Belder): The build passed.
19:48:51  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/7ac23ee0c6ec...e2cffdcf5fe9
19:48:51  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2627940
19:48:51  * travis-cipart
19:49:12  <bnoordhuis>back
19:50:34  <bnoordhuis>creationix: still around?
19:51:54  <txdv_>HEY TRAVIS
19:52:30  <CoverSlide>for some reason libuv makes me think the color orange, maybe because of joyent logo
19:52:47  <CoverSlide>perhaps just clone the current nodejs theme and make it orange or some other color
19:53:17  <bnoordhuis>i've always thought of libuv as a kind of purple myself, possibly magenta
19:53:35  * cia-replacementjoined
19:58:54  * piscisaureus_quit (Ping timeout: 252 seconds)
20:00:45  * piscisaureus_joined
20:01:25  <piscisaureus_>bnoordhuis: youre confusing it with geenstijl.nl
20:01:45  <bnoordhuis>piscisaureus_: i never visit that site
20:03:10  <cia-replacement>joyent/node: bnoordhuis commented on issue #4072 -- I guess that section could be worded better. It intends to convey that you need to listen for `'drai ( https://api.github.com/repos/joyent/node/issues/comments/9047432 )
20:03:35  <tjfontaine>yay or nay to issue comments?
20:03:36  <bnoordhuis>i'm being stalked
20:03:59  <bnoordhuis>tjfontaine: i already receive them via email but i don't mind
20:04:15  <bnoordhuis>i guess they make for good conversation starters
20:04:36  <tjfontaine>it will do git.io shortening when the service isn't down
20:05:51  <ryah>does windows set $HOME ?
20:06:01  <txdv_>call the bot MI6
20:06:29  <txdv_>ryah: i don't think so
20:06:57  <ryah>is there some canonical way to get the home directory for windows?
20:06:57  <TooTallNate>cia-replacement, lol
20:08:14  <tjfontaine>TooTallNate: naming was never my thing :)
20:08:33  <TooTallNate>ryah: http://stackoverflow.com/questions/9542611/how-to-get-the-current-users-home-directory-in-windows ?
20:08:50  <TooTallNate>ryah: you could use node-ffi to call it :p
20:08:54  <ryah>tanks
20:10:44  * tomshredsquit (Ping timeout: 245 seconds)
20:12:05  <cia-replacement>joyent/node: piscisaureus closed issue #3728 -- require('path').delimiter - ";" on Windows, ":" on POSIX https://api.github.com/repos/joyent/node/issues/3728
20:12:32  <cia-replacement>joyent/node: Paul Serby master * 41e53e5: : path: add platform specific path delimiter
20:12:33  <cia-replacement>Closes #3728
20:12:34  <cia-replacement>Closes #4071 - http://git.io/ZkpF9A
20:12:37  <tjfontaine>oops
20:12:46  * cia-replacementquit (Remote host closed the connection)
20:12:51  <piscisaureus_>well, it's a start
20:13:14  * mi6joined
20:13:17  <tjfontaine>missed a g in my /\r\n/
20:13:48  <piscisaureus_>also the the issue link is not right
20:13:53  * mikealjoined
20:14:11  <piscisaureus_>and it didn't mention the pull request
20:14:11  <tjfontaine>oh it's using the api, those bastards
20:14:25  <tjfontaine>I haven't done pullreqs yet they're a different event
20:14:45  <TooTallNate>tjfontaine: i think the name is quite appropriate
20:14:52  <piscisaureus_>there's also 2 colons after the sha
20:15:03  <tjfontaine>piscisaureus_: thanks
20:15:18  <mi6>joyent/node: piscisaureus commented on issue #4071 -- Thanks. Landed (with some small edits) in 41e53e5. ( https://api.github.com/repos/joyent/node/issues/comments/9047888 )
20:15:54  <piscisaureus_>I think mi6 no longer exists
20:16:04  <piscisaureus_>but yeah
20:16:07  <piscisaureus_>I like it short
20:17:27  <txdv_>MI6
20:17:30  <txdv_>not mi6
20:17:30  <CoverSlide>how bout kgb?
20:17:34  <txdv_>IT WAS CIA
20:18:07  <piscisaureus_>bnoordhuis: I already edited the path.delimiter patch, no need to review
20:18:20  <bnoordhuis>CoverSlide: kgb is taken
20:18:26  <piscisaureus_>ok
20:18:33  <piscisaureus_>MI6 seems fine
20:18:34  <AvianFlu>GRU?
20:19:22  * mi6quit (Remote host closed the connection)
20:19:32  * MI6joined
20:19:51  * lohkeyquit (Read error: Connection reset by peer)
20:19:57  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/libuv/commit/8f2edcd#commitcomment-1929312
20:20:14  <bnoordhuis>i was wondering about that, it's been in there since forever
20:20:30  <bnoordhuis>it was put there by that one guy, wussisname
20:20:37  * lohkeyjoined
20:20:44  <piscisaureus_>ah yeah
20:20:59  * TooTallNatequit (Ping timeout: 244 seconds)
20:21:15  <txdv_>damn
20:21:20  <piscisaureus_>bnoordhuis: who's sending you bug reports about sendfile on solaris btw?
20:21:23  <txdv_>i should have taken that nick
20:21:49  <bnoordhuis>piscisaureus_: no one. but google for 'solaris sendfile' and be frightened
20:22:14  <piscisaureus_>aha
20:23:03  * TooTallNatejoined
20:29:01  <MI6>joyent/node: bnoordhuis commented on issue #4072 -- Can someone review bnoordhuis/node@9e7cd8e? ( undefined )
20:29:42  <mmalecki[code]>"undefined"
20:30:03  <tjfontaine>mmalecki[code]: git.io is having problems, it returned 201 status code, but didn't actually set the url
20:30:23  <bnoordhuis>tjfontaine: you get bonus karma if you can turn the commit into a hyperlink :)
20:31:03  <tjfontaine>bnoordhuis: that's what the undefined is actually, but git.io failed
20:31:10  <piscisaureus_>I am not thrilled about comments on issues
20:31:15  <bnoordhuis>ah okay, nvm then
20:31:21  <piscisaureus_>we had that before in here and it was very noisy
20:31:24  <tjfontaine>piscisaureus_: I can disable them
20:31:51  <tjfontaine>do you want to see issue and pull request actions, but not comments? (open/close/reopen)
20:32:12  <bnoordhuis>tjfontaine: can you selectively enable them? i.e. only when one of the chosen few comments?
20:32:28  <tjfontaine>"yes" but that could get ugly fast
20:32:51  <bnoordhuis>i guess so. okay, open and close then
20:32:52  <piscisaureus_>maybe it'd be better to summarize
20:32:58  <bnoordhuis>a daily digest :)
20:33:09  <piscisaureus_>well, a 5 minute digest would be okay
20:33:10  <bnoordhuis>(don't do that)
20:33:50  <piscisaureus_>And you can just display something like "Issues opened: x, y, z; closed: a, commented: x, x"
20:33:52  <piscisaureus_>dunno
20:33:53  <piscisaureus_>short
20:36:35  * MI6quit (Remote host closed the connection)
20:36:44  * MI6joined
20:37:05  <tjfontaine>piscisaureus_: something like that could be arranged
20:37:33  <piscisaureus_>it's not nice that stuff only appears here when it happened
20:37:41  <piscisaureus_>maybe you can also include future comments and issues?
20:37:54  <tjfontaine>heh
20:42:39  <ryah>piscisaureus_: in the readme documentation section, link to the tests too https://github.com/joyent/libuv/tree/master/test
20:45:28  * brsonquit (Ping timeout: 252 seconds)
20:45:44  * lohkeyquit (Quit: lohkey)
20:52:44  * mmalecki[code]changed nick to mmalecki
20:53:25  <bnoordhuis>piscisaureus_: want to do a final review round? removed the windows compat hack, fixed the memcmp thingy
20:53:53  <piscisaureus_>bnoordhuis: no, i trust you
20:56:29  <bnoordhuis>did my commits kill MI6?
20:56:50  <bnoordhuis>tjfontaine: or isn't it monitoring libuv yet?
20:56:52  <tjfontaine>heh
20:57:04  <tjfontaine>I think firehose died, I just added some code to handle restarting it
20:57:06  * MI6quit (Remote host closed the connection)
20:57:17  * MI6joined
20:57:24  * travis-cijoined
20:57:24  <travis-ci>[travis-ci] joyent/libuv#744 (master - 7320633 : Ben Noordhuis): The build was broken.
20:57:24  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/e2cffdcf5fe9...7320633c4b96
20:57:24  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2628931
20:57:24  * travis-cipart
20:57:25  * MI6quit (Remote host closed the connection)
20:57:42  * MI6joined
20:57:44  <tjfontaine>helpful if you start the initial firehose connetion too
20:59:23  <MI6>joyent/node: bnoordhuis closed issue #4069 -- posibilty to add some king of splice method in buffers. https://github.com/joyent/node/issues/4069
20:59:36  <isaacs>whoa, what's MI6?
20:59:38  <isaacs>nice
21:00:09  <isaacs>CIA with a british accent?
21:00:46  <tjfontaine>now that's the only voice I'll ever hear it in
21:01:22  * MI6quit (Remote host closed the connection)
21:02:00  <tjfontaine>dear node-github-firehose don't break yourself, kthx
21:03:01  <piscisaureus_>maybe it should say "cloused" not "closed"
21:03:14  * MI6joined
21:03:42  <isaacs>piscisaureus_: hahah
21:03:56  <piscisaureus_>that would be "har har"
21:06:00  * TheJHquit (Ping timeout: 256 seconds)
21:08:46  <MI6>joyent/libuv: Bert Belder master * 447ee10 : doc: add link to test/ to the readme - http://git.io/wv_s6g
21:09:18  <isaacs>omg, i <3 this
21:09:28  <isaacs>i wanna push a commit just to see the green and yellow message
21:09:38  <isaacs>MI6: who is your master?
21:09:40  <tjfontaine>me
21:09:57  <tjfontaine>she doesn't respond to anything for the moment
21:10:21  <isaacs>awesome
21:10:21  <isaacs>tjfontaine: ++
21:10:25  <isaacs>i need to add a karma counter to ircretary.
21:10:29  * travis-cijoined
21:10:29  <travis-ci>[travis-ci] joyent/libuv#745 (master - 447ee10 : Bert Belder): The build is still failing.
21:10:29  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/7320633c4b96...447ee1060c5c
21:10:29  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2629089
21:10:29  * travis-cipart
21:10:38  <piscisaureus_>bnoordhuis: https://github.com/bnoordhuis/node/commit/9e7cd8e <-- wrong
21:11:07  <piscisaureus_>bnoordhuis: stream.write always works, there is no need to redo it when write returns false
21:11:43  <tjfontaine>I suppose since it's a bit more legit it doesn't need to be a gist anymore https://gist.github.com/3794720
21:11:45  <bnoordhuis>ah yeah, the example is bad
21:11:52  <piscisaureus_>bnoordhuis: maybe it's not what you meant, but it sure is what you *suggest*
21:12:51  <piscisaureus_>It's still very nice that you can do it with so little code
21:14:42  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/node/commit/29364d2 <- not so nice looking though :(
21:15:25  <piscisaureus_>indeed
21:15:44  <piscisaureus_>bnoordhuis: also bullshit to do that :-0
21:15:57  <piscisaureus_>bnoordhuis: maybe don't add an example, just add text
21:16:16  <bnoordhuis>piscisaureus_: i don't know, an example is nice, it's kind of abstract-ish otherwise
21:16:54  <isaacs>bnoordhuis: no, the example is wrong.
21:17:01  <isaacs>bnoordhuis: you should never have to re-write() the same data chunk
21:17:08  <piscisaureus_>bnoordhuis:
21:17:11  <piscisaureus_>er
21:17:18  <bnoordhuis>read carefully :)
21:17:23  <bnoordhuis>anyway, i'll remove it
21:17:33  <isaacs>safeWrite(stream, "asdf")
21:17:33  <piscisaureus_>bnoordhuis: this also sets the wrong precedent because if the buffer is in memory anyway that you might as well write it :-)
21:17:45  <isaacs>that'll write('asdf'), then if it returns not-true, it'll write it again later.
21:17:56  <isaacs>bnoordhuis: however, *many* streams do nbot return true. they only return false or not-false
21:18:05  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/node/commit/7c64424
21:18:09  <piscisaureus_>isaacs: https://github.com/bnoordhuis/node/commit/29364d2
21:18:11  <piscisaureus_>haha
21:18:28  <piscisaureus_>bnoordhuis: let me do a draft
21:18:35  <bnoordhuis>isaacs: isn't that a bug in that particular streams implementation?
21:18:49  <isaacs>bnoordhuis: no, we've never ever said that it must return true
21:18:54  <mmalecki>docs say to return false
21:18:55  <isaacs>and many of our internal streams don't follow that rule.
21:19:00  <bnoordhuis>well, silly us then
21:19:03  <isaacs>the rule is that "false" is the only magic value there.
21:19:16  <isaacs>that's not up for debate right now.
21:19:19  <bnoordhuis>so what does 'return undefined' mean?
21:19:41  <isaacs>bnoordhuis: if ret!==false, then it's safe to write more
21:19:50  <isaacs>you can return null, undefined, nan, 100, or "foobar"
21:19:56  <isaacs>all those mean "please write more kthx"
21:20:39  <bnoordhuis>i'm kind of starting to see the point of typescript...
21:22:49  <isaacs>haha
21:22:51  <isaacs>indeed
21:22:58  <piscisaureus_>bnoordhuis: https://gist.github.com/82c1be40614b3488da2e
21:23:00  <isaacs>i'm in the middle of a pretty significant refactor of the Stream api.
21:23:06  <isaacs>some of which is a year or two in teh making.
21:23:20  <piscisaureus_>isaacs: oh, very odd
21:23:32  <piscisaureus_>isaacs: I always assume "falsy"
21:23:39  <isaacs>piscisaureus_: yeah, tha'ts not safe.
21:23:44  <isaacs>i mean, not a safe assumption
21:23:49  <piscisaureus_>incredibly lame
21:23:54  <piscisaureus_>and actually it has never bitten me
21:24:03  <tjfontaine>famous last words
21:24:04  <bnoordhuis>piscisaureus_: i don't think that's correct, it's not just about node but any stream impl
21:24:07  <isaacs>piscisaureus_: that's because you don't use many userland streams :)
21:24:26  <piscisaureus_>I think it should be considered a bug when people do that
21:24:47  <bnoordhuis>piscisaureus_: or maybe s/not correct/node core centric/
21:24:54  * Ralt_quit (Remote host closed the connection)
21:25:17  <piscisaureus_>No, a bug. As in, if I would catch someone doing it I would open a github issue
21:25:27  * Ralt_joined
21:25:31  <isaacs>piscisaureus_: easier said that done.
21:25:50  <isaacs>piscisaureus_: i think it's too late to change that, realistically
21:25:53  <piscisaureus_>yeah, because I never caught anyone doing it
21:26:05  <isaacs>piscisaureus_: even the read() stuff i'm doing, i'm adding backwards compatible shims all over the place.
21:26:18  <isaacs>piscisaureus_: (well, just in one place, but it's not pretty in any event)
21:26:41  <isaacs>and i've bene combing over edge cases that will bite userland streams with dominictarr, raynos, mikeal, and substack.
21:26:47  <piscisaureus_>well, according to the docs -> http://www.nodejs.org/api/stream.html#stream_stream_write_string_encoding_fd
21:27:08  <isaacs>the false/falsey thing is a surprisingly big issue. a lot of streams just don't return anything from write() if it's ok
21:27:43  <piscisaureus_>ah, like that
21:28:27  <isaacs>what is that about encoding and fds?
21:28:32  <isaacs>who wrote that?
21:28:53  <piscisaureus_>the guy who invented this thing
21:29:00  <isaacs>ryah?
21:29:06  <piscisaureus_>I think
21:29:13  <isaacs>what streams actually work that way?
21:29:14  <piscisaureus_>the fd thing is correct tho
21:29:17  <piscisaureus_>er
21:29:20  <piscisaureus_>the encoding thing
21:29:49  * Ralt_quit (Ping timeout: 240 seconds)
21:29:53  <piscisaureus_>isaacs: if [string] is a string and not a buffer, then assume [encoding] when converting it to a buffer.
21:30:01  <isaacs>right
21:30:04  <isaacs>nono, that's good
21:30:05  <piscisaureus_>and the fd doesn't work
21:30:07  <isaacs>i mean the fd thing
21:30:12  <isaacs>docbug!
21:30:15  <piscisaureus_>nowhere
21:30:19  <isaacs>wait wait, one second..
21:30:53  <piscisaureus_>isaacs: the [fd] thing is a remnant from the pre-libuv days, currently it has all been hidden I think
21:31:23  <MI6>joyent/node: isaacs v0.8 * b90c150 : doc: Correct stream.write fd mention
21:31:24  <MI6>No streams actually work this way. - http://git.io/_A6qNw
21:31:25  <isaacs>piscisaureus_: i think it's also a remnant from moving net.Stream to stream.Stream
21:31:35  <isaacs>weee!! i made MI6 do the thing!
21:31:41  * isaacsis unreasonably excited to have this back
21:31:57  <piscisaureus_>it still inserts newlines
21:32:15  <piscisaureus_>tjfontaine: ^
21:32:21  <isaacs>piscisaureus_: it was a multi-line commit message.
21:32:25  <piscisaureus_>sure
21:32:29  <tjfontaine>isaacs: ya but it was supposed to strip it
21:32:31  <piscisaureus_>but I don't want to see all the lines here :-)
21:32:32  <isaacs>but yes, it should just take the first line
21:32:39  <isaacs>sometimes those messages are pretty long
21:33:02  <piscisaureus_>it's amazing how simple it is to write CIA in node :-)
21:33:07  <isaacs>i'll bet.
21:33:14  <piscisaureus_>kudos still, tjfontaine
21:33:26  <tjfontaine>are we interested in seeing v8/v8 in #libuv?
21:33:31  <isaacs>it's even more amazing how simple it is to NOT write CIA in node.
21:33:52  * rendarquit
21:33:54  <piscisaureus_>tjfontaine: nah
21:33:57  <tjfontaine>k
21:33:58  <isaacs>tjfontaine: if there's a way to only show changes on a specific branch that is in node? that might be nice..
21:34:03  <isaacs>but yeah, probably just noise
21:34:16  <tjfontaine>ok that would require more than jsut this restart :)
21:34:24  * MI6quit (Remote host closed the connection)
21:34:34  * MI6joined
21:34:51  <mmalecki>tjfontaine: deploy it to nodejitsu yo :)
21:35:09  <tjfontaine>lets see if that clears up the rest of the \r\n and now firehose is in a domain so hopefully it won't crap itself again
21:35:17  <tjfontaine>mmalecki: ya I'll get to it :)
21:37:22  <isaacs>quick, someone fix something so we can see if tjfontaine fixed MI6
21:37:25  <isaacs>:)
21:38:01  <tjfontaine>heh, I just tested on a different repo and apparenlty my regex replace doesn't fix it
21:39:03  * brsonjoined
21:40:16  <bnoordhuis>tjfontaine: just pushed something to libuv/reviewme
21:40:40  <tjfontaine>hm, wonder why the firehose didn't catch that event
21:41:25  * travis-cijoined
21:41:25  <travis-ci>[travis-ci] joyent/libuv#746 (reviewme - b3def28 : Ben Noordhuis): The build was broken.
21:41:25  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/e2cffdcf5fe9...b3def281562e
21:41:25  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2629519
21:41:25  * travis-cipart
21:41:33  <bnoordhuis>broken...
21:41:35  <MI6>joyent/libuv: piscisaureus deleted branch reviewme
21:41:46  <piscisaureus_>bnoordhuis: sorry
21:41:59  <piscisaureus_>bnoordhuis: that's what you get for force pushing over an existing reviewme branch
21:42:09  <tjfontaine>heh, now I can't see if the force push was the problem with that
21:42:12  <bnoordhuis>piscisaureus_: i didn't force push anything
21:42:18  <tjfontaine>interesting
21:42:29  <piscisaureus_>bnoordhuis: well I had a reviewme branch in there that I wanted to delete...
21:42:33  <isaacs>i <3 that we're testing out an irc bot by pushign changes to the actual official libuv and node repos.
21:42:41  <tjfontaine>heh
21:42:41  <isaacs>that's so hardcore and node.js-ish
21:42:43  <isaacs>:)
21:42:48  <tjfontaine>always test in production
21:43:04  <isaacs>if it's not tested in product, it wasn't actually tested.
21:43:08  <bnoordhuis>piscisaureus_: i guess i'll just push it to master then...
21:43:18  * MI6quit (Remote host closed the connection)
21:43:28  * MI6joined
21:43:58  <bnoordhuis>the travis output is interesting, i think we have a _LARGEFILE_SOURCE bug again...
21:44:01  * hzjoined
21:44:02  <piscisaureus_>bnoordhuis: yeah, lgtm, push to master
21:44:25  <piscisaureus_>oh you wanna fix the travis build first I suppose
21:44:49  <MI6>joyent/libuv: Ben Noordhuis master * 6342658 : unix, windows: fix memory leak in fs-poll.c The internal timer handle a - http://git.io/Q9dWwA
21:44:55  <bnoordhuis>piscisaureus_: no, that's not related
21:45:31  <tjfontaine>I wonder if it should grab the message of the first commit, instead of the last commit in a merge
21:45:54  <mmalecki>tjfontaine: it should give a compare link
21:46:03  <tjfontaine>mmalecki: that's what the gitio link is
21:46:04  <mmalecki>like, summary of changes included in the merge
21:46:08  <mmalecki>oh cool
21:46:09  <txdv_>is the source for this bot online?
21:46:27  <tjfontaine>txdv_: more or less https://gist.github.com/3794720
21:46:33  * travis-cijoined
21:46:34  <travis-ci>[travis-ci] joyent/libuv#747 (master - 6342658 : Ben Noordhuis): The build is still failing.
21:46:34  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/447ee1060c5c...6342658ad828
21:46:34  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2629599
21:46:34  * travis-cipart
21:46:51  <CoverSlide>oh noes, build failing
21:47:43  <txdv_>how dare you to pollute master with failing builds
21:48:45  <isaacs>transform streams are hard.
21:49:01  <mmalecki>isaacs: s/transform//g
21:49:21  <isaacs>mmalecki: well, things are looking pretty good in the readable-stream repo
21:49:27  <isaacs>mmalecki: for readable, writable
21:49:32  <isaacs>and duplexes are pretty easy
21:49:46  <isaacs>but transform streams are a little bit tricky to do in a nice clean way without writing the same logic over and over again
21:49:57  <isaacs>what i have right now is a class where you implement a _transform method.
21:50:06  <isaacs>_transform(chunk, output, cb)
21:50:13  <isaacs>call output(newChunk) 0 or more times
21:50:23  <isaacs>call cb() when you're done consuming that chunk
21:50:59  <isaacs>that api is actually pretty flexible and nice, except that i can't figure out how to make it flush on end
21:51:10  <isaacs>mabye call _transform(null, output, cb)?
21:54:21  * Benviequit
21:54:22  <isaacs>or maybe you just have to override end() if you're tracking some kind of state and need to flush it?
21:55:31  <isaacs>or maybe Trnasform.prototype.end could do something like:
21:55:31  <isaacs> if (typeof this.flush === 'function')
21:55:31  <isaacs> this.flush();
21:55:51  <TooTallNate>isaacs: i'm really looking forward to Transform :)
21:55:55  <MI6>joyent/libuv: Ben Noordhuis master * 8399cb1 : test: fix memory leaks in fs_symlink test - http://git.io/6CzNiw
21:56:03  <txdv_>I just looked into eventmachine and I wondered, isn't eventmachine just a dirty version of libuv?
21:56:57  <isaacs>TooTallNate: what do you think about this, then?
21:57:14  <TooTallNate>isaacs: i kinda like _transform(null, output, cb)?
21:57:15  <isaacs>TooTallNate: would you rather have to sniff for chunk===null in _transform, or implement a flush() function?
21:57:28  * travis-cijoined
21:57:28  <travis-ci>[travis-ci] joyent/libuv#748 (master - 8399cb1 : Ben Noordhuis): The build is still failing.
21:57:28  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/6342658ad828...8399cb1fc366
21:57:28  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2629806
21:57:28  * travis-cipart
21:57:37  <isaacs>TooTallNate: that means, though, that each _transform call needs to check for that, or suffer horrible breakage sometimes
21:58:05  <TooTallNate>isaacs: hmmm, tough call
21:58:20  <TooTallNate>isaacs: overwriting "end" feels like we're not doing enough or something
21:58:26  <isaacs>yeah
21:58:27  <TooTallNate>s/we/core
21:58:35  <isaacs>what about, if you care about this, implement flush()
21:58:43  <bnoordhuis>why is fs_poll failing...
21:58:48  <isaacs>it's only relevant in the compression case.
21:58:58  <isaacs>since you're going to have some trailing bits at the end.
21:59:17  <TooTallNate>isaacs: probably others, but ya, that seems pretty clean i suppose
21:59:29  <bnoordhuis>mmalecki: here's a killer travis feature for you: the ability to get core dumps
22:00:11  <tjfontaine>a sandbox shell to do minimal inspection
22:00:30  <mmalecki>bnoordhuis: that's in the works
22:00:42  <bnoordhuis>mmalecki: good. i could use that right now
22:03:45  <bnoordhuis>indutny: what have you done? :)
22:03:50  <TooTallNate>isaacs: i'm interested in seeing what the zlib encoder looks like after the refactor
22:04:24  <isaacs>TooTallNate: yeah, it's going to be a lot less js, that's for sure.
22:04:32  <isaacs>TooTallNate: the C++ code should probably not change much at all.
22:04:42  <isaacs>this flush thing, though, i'm having indecision about it.
22:04:52  <isaacs>i don't like functions that get buffers sometimes, and null other times.
22:05:00  <isaacs>sniffing return values is one thing, but args should be typied.
22:05:02  <isaacs>*typed
22:05:19  <TooTallNate>isaacs: well you can get null pointers in C, same thing pretty much
22:05:33  <TooTallNate>isaacs: but i think i'm leaning toward 'function' == typeof this.flush
22:05:36  <TooTallNate>in the end() function
22:05:45  <isaacs>yeah
22:06:17  <TooTallNate>isaacs: if we do that then overwriting end() is an option for users at the same time
22:06:23  <isaacs>right
22:06:47  <isaacs>the end fucnction on the transform prototype isn't quite trivial, though
22:06:52  <isaacs>it does a little bit of logic
22:07:19  <isaacs>basically, if the write buffer is empty, and the read side needs a 'readable' event, then it'll emit it so that you pick up the rest of the data
22:07:40  <isaacs>and set readableState.ended=true to signify that no more data is ocming
22:09:38  <TooTallNate>isaacs: well it feels a lot better with that logic in core than in every stream impl :)
22:10:18  <piscisaureus_>indutny: you don't need to have windows, we have a windows drone
22:10:25  <isaacs>TooTallNate: indeed.
22:10:36  <isaacs>TooTallNate: and not scattered across node-core in a dozen different places all slightly differetn.
22:10:39  <isaacs>that's what makes me crazy
22:10:50  <isaacs>it's not true to the spirit of strams :)
22:11:00  <isaacs>the idea is that you have one kind of thing everywhere for piping data around
22:11:11  <isaacs>not 12 ducks that may or may not be the same-ish species.
22:17:52  <isaacs>hmm. relying on a flush() function kind of sucks, too
22:19:55  <ryah>did the CIA service die?
22:20:31  <isaacs>ryah: yeah
22:20:38  <isaacs>ryah: it was disavowed
22:21:23  <isaacs>ryah: now we have MI6, which is the same, but drinks weak slushy martinis and wears tuxedos and drives an ashton-martin
22:21:46  <isaacs>with rocket headlights
22:32:11  <piscisaureus_>Anyone from berlin around?
22:32:54  * lohkeyjoined
22:34:22  * c4miloquit (Remote host closed the connection)
22:35:23  * mmaleckiquit (Quit: Lost terminal)
22:35:45  * mmaleckijoined
22:57:00  * hzquit
23:23:18  <piscisaureus_>isaacs: v8 doesn't actually guess types, it "observes" types and stores them in a cache
23:23:30  <isaacs>piscisaureus_: hm, right.
23:23:37  * c4milojoined
23:23:55  <piscisaureus_>isaacs: so in order to guess types you'd have to run your stuff, make sure you cover all code paths, and then export the contents of the inline caches
23:23:59  <isaacs>well.. microsoft has a few bucks, and access to smart folks. they should figure out how to guess types properly from source code
23:24:13  <isaacs>or figure out what types cannot possibly be guessed.
23:24:27  <isaacs>but like, if i do foo = ~~foo, then they should know that i want it to be an integer
23:24:51  * lohkeypart
23:25:43  <piscisaureus_>the optimizing compiler can actually do that but it only optimizes sparsely. And it relies on type feedback gathered while running non-optimized code.
23:26:55  <bnoordhuis>ircretary: tell dap nvm, figured it out
23:26:55  <ircretary>bnoordhuis: I'll be sure to tell dap
23:27:44  * dscapequit (Quit: Connection closed for inactivity)
23:28:22  <isaacs>piscisaureus_: added errata section to blog
23:29:19  <piscisaureus_>isaacs: cool, that enables a RT :-)
23:29:35  <isaacs>i really do want that pony
23:29:43  <isaacs>I'm gonna name him NP
23:40:17  * hzjoined
23:47:31  <mmalecki>TooTallNate: hey, there?
23:47:44  <TooTallNate>mmalecki: yup
23:48:00  <mmalecki>TooTallNate: any way to set a default for a config option in node-gyp?
23:48:02  <mmalecki>I mean, in code.
23:48:19  <mmalecki>or do I have to gyp.opts.option || default everywhere?
23:48:38  <TooTallNate>mmalecki: i think you have to do || at the moment
23:48:48  <TooTallNate>which could be improved of course :)
23:48:50  <mmalecki>okay, thanks
23:48:54  <mmalecki>I MIGHT
23:49:02  <TooTallNate>haha
23:50:15  <mmalecki>btw, my vim is really slow when saving files from node-gyp and npm
23:50:32  <mmalecki>because it's running indexzero's jshint settings
23:50:43  <mmalecki>and they hate comma-first ;)
23:51:14  <TooTallNate>mmalecki: hahaha, built-in sleep(1) call for every beginning , ?
23:51:57  <tjfontaine>I blame json strict comma for making all the trailing comma haters
23:53:21  <mmalecki>TooTallNate: nah, it's kind of slow because it has to render the sidebar
23:53:31  <mmalecki>and parse over 100 lines of output :)
23:53:55  <mmalecki>anyway, got a patch for ya. configurable distUrl. let me test that to make sure it works.
23:57:34  <piscisaureus_>bnoordhuis: hey
23:57:40  <bnoordhuis>piscisaureus_: ho
23:57:48  <piscisaureus_>bnoordhuis: do you know of any compilers that do not support compare-and-swap?
23:58:03  <piscisaureus_>bnoordhuis: e.g. if I hack unix/signal.c to support multiloop signals, can I use that?
23:58:04  <bnoordhuis>piscisaureus_: as primitives or as inline asm?
23:58:10  <piscisaureus_>primitives
23:58:23  <bnoordhuis>piscisaureus_: well... afaik only gcc supports them
23:58:24  <piscisaureus_>bnoordhuis: I want to use it in the signal callback
23:58:40  <bnoordhuis>or rather, gcc and clang
23:58:44  <mmalecki>TooTallNate: https://github.com/TooTallNate/node-gyp/pull/141
23:59:15  <mmalecki>TooTallNate: I might be submitting few more patches for your config system, we might need some fine tuning for few options later :)
23:59:28  <bnoordhuis>piscisaureus_: but i don't know about icc or sun studio
23:59:34  <TooTallNate>mmalecki: kewl
23:59:50  <TooTallNate>mmalecki: ya definitely, it'd be nice to allow env variable overriding for all of them