00:01:59  * mikealquit (Quit: Leaving.)
00:07:45  * kazuponquit (Remote host closed the connection)
00:11:57  * lohkeyquit (Quit: lohkey)
00:16:19  * rendarquit
00:24:57  <bnoordhuis>experiments from the wonderful world of systemtap... running `stap -e 'probe process("node").function("*") { }'` on a build with debug symbols is a good way to hang your system
00:32:16  * mikealjoined
00:36:54  * mikealquit (Ping timeout: 276 seconds)
00:38:39  * yunongquit (Read error: Connection reset by peer)
00:40:38  * yunongjoined
00:43:36  * Bdedcasjoined
00:43:58  * mralephquit (Quit: Leaving.)
00:44:28  * mikealjoined
00:46:55  <Bdedcas>hey guys, i need some help
00:48:53  <Bdedcas>libuv exits without running my threads
00:53:09  * Bdedcasquit (Quit: Page closed)
01:01:20  <piscisaureus_>too busy
01:01:23  * piscisaureus_part
01:06:04  * mikealquit (Quit: Leaving.)
01:09:48  * piscisaureus_joined
01:09:50  <piscisaureus_>bnoordhuis: hey
01:09:58  <piscisaureus_>bnoordhuis: what's the strace syscall name for getaddrinfo ?
01:12:26  * joshthecoderquit (Quit: Leaving...)
01:16:57  * mcavagequit (Remote host closed the connection)
01:18:27  * avalanche123joined
01:39:58  <bnoordhuis>piscisaureus_: there is no getaddrinfo syscall, it's a library function
01:40:07  <bnoordhuis>piscisaureus_: you can use ltrace though
01:41:00  * TooTallNatequit (Quit: Computer has gone to sleep.)
01:41:08  <bnoordhuis>okay, off to bed
01:41:47  * avalanche123quit (Ping timeout: 260 seconds)
01:43:14  * bnoordhuisquit (Read error: Operation timed out)
01:44:10  * avalanche123joined
01:46:23  * mikealjoined
01:48:06  * TheJHquit (Ping timeout: 264 seconds)
01:49:03  * avalanche123quit (Ping timeout: 276 seconds)
01:51:12  * avalanche123joined
01:51:32  * sblom_joined
01:52:50  * sblomquit (Ping timeout: 255 seconds)
01:55:19  * mikealquit (Ping timeout: 260 seconds)
01:58:01  <piscisaureus_>tell bnoordhuis I'll be late tomorrow probably, firefighting again :-(. Start working on the preso alreadu.
02:00:09  <mmalecki>piscisaureus_: you'll need some ircretary right there
02:00:27  <piscisaureus_>ircretary: tell bnoordhuis I'll be late tomorrow probably, firefighting again :-(. Start working on the preso alreadu.
02:00:27  <ircretary>piscisaureus_: I'll be sure to tell bnoordhuis
02:00:36  <piscisaureus_>mmalecki: good point, thanks ;_)
02:01:00  <mmalecki>pleasure :)
02:04:51  * joshthecoderjoined
02:05:01  * sblomjoined
02:06:19  * sblom_quit (Ping timeout: 246 seconds)
02:07:51  * avalanche123quit (Ping timeout: 244 seconds)
02:15:07  * avalanche123joined
02:19:34  * avalanche123quit (Ping timeout: 244 seconds)
02:22:08  * avalanche123joined
02:22:45  * sblom_joined
02:24:20  * sblomquit (Ping timeout: 255 seconds)
02:29:33  * sblomjoined
02:31:16  * sblom_quit (Ping timeout: 246 seconds)
02:38:44  * piscisaureus_quit (Ping timeout: 248 seconds)
02:40:03  * yunongquit (Quit: Leaving.)
02:43:48  * avalanche123quit (Ping timeout: 265 seconds)
02:51:37  * mikealjoined
02:52:43  * indexzerojoined
02:53:30  * c4milojoined
02:55:31  * TooTallNatejoined
02:55:31  * TooTallNatequit (Client Quit)
02:56:06  * mikealquit (Ping timeout: 240 seconds)
03:34:40  * brsonquit (Quit: leaving)
03:51:55  * mikealjoined
03:57:06  * mikealquit (Ping timeout: 276 seconds)
04:02:55  * stephankquit (Ping timeout: 256 seconds)
04:08:03  * lohkeyjoined
04:09:43  * stephankjoined
04:10:17  * bradleymeckquit (Quit: bradleymeck)
04:10:38  * mmaleckichanged nick to mmalecki[zzz]
04:18:19  * AvianFlujoined
04:20:13  * avalanche123joined
04:25:31  * abraxasjoined
04:39:11  * AvianFluquit (Remote host closed the connection)
04:50:47  * brsonjoined
04:52:21  * mikealjoined
04:52:38  * loladirojoined
04:56:34  * mikealquit (Ping timeout: 240 seconds)
05:06:20  * mikealjoined
05:07:18  * c4miloquit (Ping timeout: 264 seconds)
05:08:04  * lohkeyquit (Quit: lohkey)
05:08:25  * c4milojoined
05:21:18  * avalanche123quit (Ping timeout: 256 seconds)
05:28:30  * lohkeyjoined
05:28:46  * lohkeyquit (Client Quit)
05:52:44  * AvianFlujoined
06:02:49  * indexzeroquit (Quit: indexzero)
06:05:25  * AvianFluquit (Remote host closed the connection)
06:08:43  * joshthecoderquit (Quit: Linkinus - http://linkinus.com)
06:14:22  * c4miloquit (Remote host closed the connection)
06:20:16  * mikealquit (Quit: Leaving.)
06:22:39  * indexzerojoined
06:25:31  * stagasjoined
06:26:22  * mikealjoined
06:53:16  * felixgejoined
06:53:16  * felixgequit (Changing host)
06:53:17  * felixgejoined
07:01:04  * avalanche123joined
07:01:25  * TooTallNatejoined
07:01:28  * TooTallNatequit (Client Quit)
07:21:53  * indexzeroquit (Quit: indexzero)
07:24:39  * mikealquit (Quit: Leaving.)
07:26:30  * loladiroquit (Quit: loladiro)
07:26:49  * rendarjoined
07:32:42  * TheJHjoined
07:38:38  * `3rdEdenjoined
07:41:07  * TheJHquit (Ping timeout: 260 seconds)
07:45:15  * avalanche123quit (Ping timeout: 252 seconds)
07:48:46  * avalanche123joined
08:01:16  * felixgequit (Quit: http://www.debuggable.com/)
08:03:13  * brsonquit (Quit: leaving)
08:04:15  * mikealjoined
08:07:58  * avalanche123quit (Ping timeout: 244 seconds)
08:11:37  * mikealquit (Quit: Leaving.)
08:12:56  * Raltjoined
08:57:04  * philips_quit (Excess Flood)
08:59:24  * philips_joined
09:36:46  * piscisaureus_joined
09:42:11  * EhevuTovjoined
09:48:49  <indutny>hoya
09:56:52  * EhevuTovquit (Quit: This computer has gone to sleep)
10:05:16  * btraskjoined
10:09:36  <roxlu>indutny: got a tiny working libuv+openssl client working with this code: https://gist.github.com/3999827
10:09:43  <indutny>good!
10:09:50  <indutny>roxlu: ++
10:09:54  <roxlu>thanks : )
10:12:33  <saghul>roxlu thanks for sharing! :-)
10:14:14  <roxlu>np, it's not coded super clean, but it shows a bit how to handle memory bios with nonblocking sockets. And it does not do client verification (which was actually why my code wasn't working before: my client was using a self signed certificate which is not allowed by httpd probably)
10:53:34  <indutny>piscisaureus_: hey man
10:53:40  <indutny>piscisaureus_: do you have a minute?
11:18:29  * `3rdEdenchanged nick to `3E|LUNCH
11:19:59  * mikealjoined
11:30:53  * sergimjoined
11:31:03  * janjongboomjoined
11:37:15  * stagas_joined
11:40:04  <roxlu>Wrapped all SSL bio/encrypting operations in a separate class: https://gist.github.com/4000573
11:57:36  * `3E|LUNCHquit (Remote host closed the connection)
12:00:51  * bnoordhuisjoined
12:03:47  * sgallaghjoined
12:08:00  <piscisaureus_>hey bnoordhuis
12:08:04  <piscisaureus_>I'll be at the office around 2
12:08:13  <janjongboom>Ben already stole your seat
12:08:15  <piscisaureus_>bnoordhuis: we can talk about stream2 / transforms maybe ?
12:08:19  <piscisaureus_>the dickhead
12:08:31  <bnoordhuis>first come, first served
12:08:46  <piscisaureus_>that's not what your gf said bnoordhuis
12:08:48  * mikealquit (Quit: Leaving.)
12:08:50  <bnoordhuis>actually, i know almost nothing about streams2
12:09:00  <bnoordhuis>but you go ahead and write that presentation :)
12:09:08  <piscisaureus_>bnoordhuis: oh I thought we agreed you'd do that?
12:09:18  <piscisaureus_>bnoordhuis: we can also do cat pictures only
12:09:28  <bnoordhuis>no, i'll present it with my usual flair - you can be the speech writer
12:09:48  <roxlu>:-)
12:10:08  <roxlu>bnoordhuis: I just posted a simple ssl client example https://gist.github.com/4000573 (you just missed my post)
12:10:45  <bnoordhuis>ah, you got it to work?
12:10:49  <roxlu>yes
12:10:52  <bnoordhuis>good :)
12:11:20  * AvianFlujoined
12:11:23  <piscisaureus_>indutny: sup?
12:11:26  * mikealjoined
12:11:29  <indutny>piscisaureus_: nvm :)
12:11:57  <roxlu>actually my previous versions were working too (although the code was even uglier), but I was using SSL_CTX_use_certificate_chain_file which loaded my client certificate which was not validated by the server (because it was self signed)
12:12:23  <bnoordhuis>ah right, makes sense
12:14:24  <indutny>creationix: hoya
12:14:29  <indutny>creationix: ia32 support landed https://github.com/indutny/candor
12:14:31  <indutny>muhahaha
12:16:23  <piscisaureus_>indutny: what did I tell you?
12:16:34  <indutny>piscisaureus_: idk?
12:16:41  <piscisaureus_>indutny: dont do it!!1
12:16:46  <indutny>piscisaureus_: ahahaha
12:16:48  <indutny>piscisaureus_: why?
12:16:55  <piscisaureus_>I wasn't aware that so many people take the friday off btw -
12:16:57  <indutny>I needed it to run candor on travis
12:17:15  <piscisaureus_>just had 2 neighbours complaining about my music independent of each other
12:17:27  <piscisaureus_>indutny: 64 bit is the future
12:17:50  <piscisaureus_>indutny: you can do more interesting optimizations when you can assume near-infinite address space
12:18:03  <indutny>:)
12:18:16  <indutny>piscisaureus_: I can turn those optimizations off on 32bit
12:18:38  <piscisaureus_>indutny: for example you could do garbage collection like go does it
12:18:45  <indutny>piscisaureus_: how?
12:18:53  <piscisaureus_>lmgtfy
12:18:58  <indutny>ah
12:19:09  <indutny>http://stackoverflow.com/questions/7823725/what-kind-of-garbage-collection-does-go-use
12:34:37  <indutny>piscisaureus_: I'm much more impressed by GC using GPU
12:37:56  * bnoordhuisquit (Ping timeout: 268 seconds)
12:49:17  * `3rdEdenjoined
12:49:50  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
12:50:27  * AvianFluquit (Remote host closed the connection)
13:09:34  * bnoordhuisjoined
13:21:14  * ericktjoined
13:24:41  <MI6>joyent/libuv: Ben Noordhuis master * 9c7ae2e : darwin: don't use deprecated AbsoluteToNanoseconds (+1 more commits) - http://git.io/6QO5jg
13:25:30  * JJackaljoined
13:26:48  * travis-cijoined
13:26:48  <travis-ci>[travis-ci] joyent/libuv#838 (master - 9c7ae2e : Ben Noordhuis): The build passed.
13:26:48  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/b0bcbdfe81c6...9c7ae2e7a334
13:26:48  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3032098
13:26:48  * travis-cipart
13:26:53  * hzjoined
13:27:35  * JJackalquit (Client Quit)
13:30:11  * piscisaureus_joined
13:30:12  * sgallaghquit (Ping timeout: 244 seconds)
13:34:29  * AvianFlujoined
13:35:25  * sgallaghjoined
13:36:09  * c4milojoined
13:37:20  * bradleymeckjoined
13:37:47  <MI6>joyent/libuv: Ben Noordhuis master * dcce1ea : test: fix -Wmissing-field-initializers warnings (+1 more commits) - http://git.io/gE0Oqg
13:39:47  * travis-cijoined
13:39:47  <travis-ci>[travis-ci] joyent/libuv#839 (master - dcce1ea : Ben Noordhuis): The build passed.
13:39:47  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/9c7ae2e7a334...dcce1eab3b02
13:39:47  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3032296
13:39:47  * travis-cipart
13:42:51  <bnoordhuis>why is gdb so broken on os x ...?
13:43:39  <bnoordhuis>maybe i should reword that as "why does apple hate developers so much?"
13:45:02  <deoxxa[cookies]>bnoordhuis: good start, but now you need to expand it to about 500 words, retitle it "why apple hates developers" and post it on HN
14:00:24  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
14:02:29  * stagas_quit (Ping timeout: 260 seconds)
14:05:02  <creationix>indutny: yay
14:05:29  <creationix>so this means I can run candor on atom processors now?
14:05:42  <creationix>or a 32-bit vps server
14:13:36  * bnoordhuisquit (Ping timeout: 240 seconds)
14:20:45  <indutny>creationix: yes
14:21:26  <indutny>creationix: at least you can try and tell me results :)
14:22:09  <creationix>I don't have ant 32 bit hardware at the moment, but I could create a 32-bit vm
14:22:26  <creationix>(well, except for my arm and mips hardware, but that's not ia32)
14:22:59  * bnoordhuisjoined
14:23:15  * Benviequit (Read error: Operation timed out)
14:27:52  * c4miloquit (Remote host closed the connection)
14:28:12  * loladirojoined
14:28:30  <tjfontaine>bnoordhuis: because it's ancient and their focus is on lldb
14:31:35  * Benviejoined
14:32:58  * erickt_joined
14:33:19  * erickt_quit (Client Quit)
14:34:40  * erickt_joined
14:35:20  * ericktquit (Ping timeout: 252 seconds)
14:35:20  * erickt_changed nick to erickt
14:39:47  * stagas_joined
14:40:28  * mmalecki[zzz]changed nick to mmalecki
14:43:00  * stagasquit (Ping timeout: 265 seconds)
14:43:23  * hzquit (Disconnected by services)
14:43:26  * hzjoined
14:44:36  * stagas_quit (Ping timeout: 245 seconds)
14:48:38  * stagasjoined
14:51:22  * `3rdEdenquit (Remote host closed the connection)
14:53:55  * `3rdEdenjoined
14:54:09  * sergimquit (Quit: Textual IRC Client: http://www.textualapp.com/)
14:56:13  * c4milojoined
14:59:22  <MI6>joyent/node: Ben Noordhuis master * a6fef47 : build: make debug build on os x compile at -O0 Set GCC_OPTIMIZATION_LEVE - http://git.io/QiyGHg
15:02:17  * loladiroquit (Quit: loladiro)
15:02:54  * stagas_joined
15:03:59  * stagasquit (Ping timeout: 260 seconds)
15:04:04  * stagas_changed nick to stagas
15:05:55  * AvianFlu_joined
15:06:46  * AvianFluquit (Ping timeout: 246 seconds)
15:06:50  <saghul>bnoordhuis did you ever compile gdb on OSX and got it to accept core files?
15:07:05  <saghul>I can compile it but it won't accept core files, even after signing it :-S
15:07:38  * ericktquit (Quit: erickt)
15:17:02  * `3rdEdenquit (Remote host closed the connection)
15:20:41  <indutny>saghul: custom gdb on osx is totally fucked
15:21:09  * stagas_joined
15:21:11  <saghul>indutny yeah, I discovered that the sad way :-S
15:21:23  <indutny>saghul: also, it'll report wrong backtraces
15:21:29  <indutny>saghul: and suddenly crash
15:22:06  * stagasquit (Ping timeout: 245 seconds)
15:22:21  * stagas_changed nick to stagas
15:22:29  <saghul>indutny debugging the debugger doesn't sound like fun xD
15:22:37  <indutny>why not?
15:23:09  <bnoordhuis>saghul: what indutny said, it's total fail
15:23:31  <indutny>not as much as stack alignment on 32bit platforms is
15:23:34  <indutny>why 16 bytes?!
15:23:39  <indutny>when word size is 4 bytes
15:23:42  <bnoordhuis>depends on the abi
15:23:50  <indutny>also
15:23:59  * AvianFlu_changed nick to AvianFlu
15:24:19  <indutny>I've just lost one of my macbook's rubber "feet"
15:24:24  <indutny>is it dangerous?
15:24:39  <bnoordhuis>they've been known to attack
15:24:56  <mmalecki>bnoordhuis++
15:25:12  <mmalecki>aaaand kohai is gone
15:26:43  * piscisaureus_joined
15:27:36  * bradleymeckquit (Quit: bradleymeck)
15:28:18  * stagasquit (Ping timeout: 264 seconds)
15:32:35  * stagasjoined
15:32:46  * bradleymeckjoined
15:32:47  * c4miloquit (Remote host closed the connection)
15:35:53  * c4milojoined
15:38:14  <roxlu>does libuv have integer wrappers
15:39:40  <piscisaureus_>um?
15:39:45  <roxlu>like uv_int8, uv_int16
15:39:49  <piscisaureus_>no
15:39:54  <piscisaureus_>use stdint.h
15:40:00  <roxlu>I thought windows doesn't hav stdint.h ?
15:40:07  <piscisaureus_>oh - vs2008 doesn't indeed
15:40:12  <piscisaureus_>actually we added this to uv.h
15:40:15  * kohaijoined
15:40:21  <piscisaureus_>so if you include uv.h then you can just use these
15:40:23  <roxlu>ok awesome
15:41:00  <indutny>creationix: going to take a look at candor.io
15:41:39  <creationix>libuv has changed so much and I has so little done
15:41:47  <creationix>it might be good to just use the old code as reference and start over
15:46:37  <indutny>creationix: indeed
15:46:42  * c4miloquit (Remote host closed the connection)
15:46:43  <indutny>creationix: that's what I'm going to do
15:48:00  <creationix>indutny: did you want push access or are you going to just fork/start over?
15:48:14  <indutny>creationix: I'll start with private repo
15:48:50  <indutny>creationix: btw, https://travis-ci.org/#!/indutny/candor/builds/3034356
15:48:58  <indutny>confirmation that it works on 32bit platforms
15:49:04  <creationix>wohoo!
15:49:09  <creationix>or at least in a 32-but vm
15:49:13  <creationix>but good enough
15:49:53  <indutny>creationix: indeed
15:50:01  <indutny>creationix: also it's using lir allocator on both platforms now
15:50:13  <indutny>creationix: can't say it's really faster than fullgen
15:50:17  <indutny>creationix: but it's a big step anyway
15:51:08  <creationix>does it beat v8 for some stuff yet?
15:51:15  <creationix>I imagine candor is a lot easier to optimize
15:52:07  * stagasquit (Ping timeout: 265 seconds)
15:53:11  <indutny>nope
15:53:13  <indutny>:)
15:53:22  <indutny>creationix: well
15:53:30  <indutny>creationix: it beats it at crossing js-C++ land
15:53:35  * stagasjoined
15:53:36  <indutny>creationix: but I wouldn't say that
15:53:41  <indutny>because I hadn't really benchmarked it yet
15:53:42  * mjr_joined
15:54:33  <creationix>ok, I'll finish my bare lua-libuv bindings (not the ones used in luvit) and we'll compare with bare candor bindings for tcp echo or something
15:54:53  <creationix>that would be mostly libuv doing the work with very little done in script land
15:54:58  <creationix>should test the bindings speed right?
15:58:24  <indutny>yeah
15:58:40  <indutny>well, it'll measure libuv mostly
15:58:54  <indutny>but in case of this test crossing-time is really important
16:02:29  * stagasquit (Max SendQ exceeded)
16:03:58  * AvianFluquit (Remote host closed the connection)
16:04:46  * stagasjoined
16:06:03  * yunongjoined
16:09:05  * sblom_joined
16:09:52  * sblomquit (Disconnected by services)
16:09:56  * sblom_changed nick to sblom
16:15:51  * loladirojoined
16:15:54  * bnoordhuisquit (Ping timeout: 240 seconds)
16:22:31  * Raltquit (Ping timeout: 245 seconds)
16:22:45  <saghul>creationix also let me know when you got them, I'd like to see how performance compares to pyuv in Python ;-)
16:23:17  <creationix>saghul: I need to finish luv before my talk as the lua conference
16:23:23  <creationix>(that's the week after thanksgiving)
16:23:41  <saghul>saghul no problem :-)
16:23:51  <creationix>saghul: you can compare against the bindings in luvit today
16:23:52  <saghul>doh, that was for you creationix
16:24:11  <creationix>just require('uv_native') (or whatever I called it)
16:24:12  <saghul>creationix aren't they more than just a thin wrapper?
16:24:22  <creationix>the raw bindings aren't much more
16:24:29  <saghul>oh, nice
16:24:46  <creationix>but the new bindings I'm writing are even leaner and generic to any lua system, not just luvit
16:25:05  <saghul>aha
16:25:19  <saghul>so then luvit would use those instead?
16:29:26  * joshthecoderjoined
16:32:18  <creationix>that's the goal
16:32:24  * `3rdEdenjoined
16:32:25  <creationix>merge it back in when done
16:32:29  <creationix>assuming it's faster
16:32:47  <saghul>cool!
16:33:24  <creationix>libuv itself doesn't have events like node does
16:33:26  <creationix>only callbacks
16:33:29  * `3rdEdenquit (Remote host closed the connection)
16:33:35  * loladiroquit (Quit: loladiro)
16:33:45  <creationix>luvit's bindings emit named events since luvit was targeting a node style api
16:33:55  <creationix>but I think it's better for bindings to be 1-1 with the libuv api
16:34:07  <creationix>pass in the onData callback when calling read_start, for example
16:34:31  <creationix>vs setting a data handler and then calling read_start() without a callback
16:42:51  * bnoordhuisjoined
16:45:34  * TheJHjoined
16:45:52  * btraskquit (Quit: btrask)
16:52:23  * bnoordhuisquit (Ping timeout: 244 seconds)
16:56:03  <isaacs>If a socket is set to allowHalfOpen=false, then we should kill the writable side when the readable side ends, yes? but not hte reverse?
16:56:05  <indutny>piscisaureus_: can you remind me utility that can remove useless headers from c files?
16:58:36  * bradleymeckquit (Quit: bradleymeck)
16:59:03  <saghul>creationix indeed
17:00:17  <isaacs>creationix: i was thinking about your new luvit plans. in a lot of ways, it's *more* like node than your previous approach.
17:00:32  <isaacs>creationix: node is "javascript in javascript-style on the server"
17:00:39  <creationix>right
17:00:40  <isaacs>creationix: luvit was "lua in javascript-style"
17:00:46  <isaacs>creationix: but it should be lua in lua-style
17:00:53  <isaacs>the current luvit is more like jsgi
17:00:53  <creationix>but it sure was a fun experiment to clone the node api in another language :)
17:00:58  <isaacs>or CommonJS
17:01:07  <isaacs>aka, "javascript in python/java style"
17:01:18  <isaacs>yeah, yeah
17:01:21  <isaacs>informative :)
17:01:28  <isaacs>good failures are super valuable.
17:01:37  <creationix>and backspace likes it
17:01:40  <creationix>they wanted node in lua
17:01:41  * yunongquit (Quit: Leaving.)
17:01:45  <isaacs>backspace?
17:01:48  <creationix>rackspace
17:01:52  <CoverSlide>haha
17:01:55  <isaacs>is that like a clever insult-name?
17:02:02  <CoverSlide>that's what i was thinking
17:02:03  <creationix>no, just a typo
17:02:12  <isaacs>like how }); calls the iPad the iBad
17:02:17  <isaacs>and the iPhone the iGroan
17:02:21  <creationix>something about apple keyboards, I can't type on them very well
17:02:35  <CoverSlide>pquerna and his backspace peeps
17:02:37  <creationix>besides, backspace would be a compliment
17:02:46  <creationix>deleting code is always better than adding code :P
17:02:51  <isaacs>i guess :)
17:03:00  <isaacs>anyway, yeah, a thin wrapper around libuv in lua would be great.
17:03:07  * loladirojoined
17:03:12  <isaacs>you should definitely add a node-like module system, though
17:03:27  <creationix>yeah, not sure how to do that and embrace lua
17:03:33  <creationix>their module system sucks
17:03:36  <isaacs>yeah
17:03:39  <isaacs>so does javascript's
17:03:44  <creationix>it's all based on pwd and predefined folders
17:03:48  <isaacs>that's why we built a new one
17:03:48  <CoverSlide>es6's too
17:03:57  <isaacs>i think es6's has promise.
17:04:04  <isaacs>i don't love it, but meh. i don't love much about js, really.
17:04:14  <isaacs>i think it'll be useful, probably. we'll see.
17:04:44  <creationix>I could probably hack the node-style require system on top of lu's require system
17:05:02  <isaacs>creationix: i'd suggest, though, don't do exports.foo=blah
17:05:02  * AndreasMadsenjoined
17:05:10  <isaacs>creationix: *only* support module.exprots=whatever.
17:05:19  <creationix>in that case, just use return
17:05:32  <creationix>but then you don't get cyclical dependencies and certain people get upset
17:05:36  <isaacs>creationix: well... you need cyclical deps.
17:05:43  <isaacs>creationix: it's more relevant than you'd think
17:06:18  <creationix>I know where it's useful, but in order to support it, you can't use only module.exports
17:06:32  <isaacs>creationix: sure you can, just set it to an object at the outsde.
17:06:35  <isaacs>*outset
17:06:42  * isaacscan't type on apple keyboards either, apparently
17:07:14  <isaacs>module.exports = {}; runTheModule(module, require, __filename, __dirname); return module.exports;
17:07:23  <isaacs>you can always do module.exports.foo=bar
17:07:39  <isaacs>you lose this if you only do return
17:08:32  <creationix>how is that different from what node has?
17:08:42  <creationix>you're saying to just not inject exports as a local var?
17:08:58  <mjr_>Having two ways to export things is bad.
17:09:17  <creationix>actually though, in lua functions can't have properties
17:09:35  <creationix>so module.exports = some function will be a lot less common
17:09:37  * loladiroquit (Quit: loladiro)
17:09:53  <creationix>in luvit I always export my classes as properties on the module
17:10:04  <creationix>require('core').Object, require('emitter').EventEmitter, etc..
17:10:25  <creationix>so if I had to pick just one method, it would be exports.foo =
17:10:27  <mjr_>isaacs: that was a pretty good "sad stallman" pull earlier.
17:10:47  <isaacs>mjr_: thanks :)
17:11:22  <mjr_>ie. reference noted, and credited to your account.
17:11:35  <isaacs>creationix: wait, functions can't have properties in lua?
17:11:36  <isaacs>wtf?
17:11:44  <creationix>nope, only tables can
17:11:46  * isaacskeeps learning things about lua that make it less enticing.
17:12:00  <creationix>though tables can be callable
17:12:06  <creationix>so it's infinitely flexible
17:12:11  <creationix>just the core language is very simple
17:12:22  <isaacs>what's the difference between a callable table and a function?
17:12:34  <creationix>callable tables can have properties
17:12:37  <isaacs>ok :)
17:12:38  <creationix>and they are a lot uglier to define
17:12:42  <CoverSlide>screw lua. let's all write everything in C
17:13:00  <mjr_>Sounds good
17:13:03  <creationix>so what you could do in a module is make the exports table callable
17:13:09  <creationix>using setmetatable on it
17:13:24  <creationix>there is something nice about knowing that all modules will be tables
17:13:36  <creationix>and recursive dependencies would always work too
17:13:39  * loladirojoined
17:14:07  <creationix>objects in js can be callable too right?
17:14:13  <creationix>using proxies or something?
17:14:21  <creationix>or am I confusing that with some ruby magic I used to know
17:16:04  <isaacs>piscisaureus_: so, I'm getting some weird behavior here...
17:16:15  <isaacs>piscisaureus_: i call StreamWrap::ReadStart()
17:16:26  <isaacs>piscisaureus_: then in the OnData callback, I call ReadStop
17:16:39  <isaacs>piscisaureus_: but i don't have enough, so I say, "Ok, read again", which calls ReadStart() again
17:16:57  <isaacs>piscisaureus_: ReadStart() returns 0, but I never get the EOF, and I never get any data
17:19:47  * mmaleckichanged nick to mmalecki[out]
17:20:53  * TooTallNatejoined
17:21:38  * avalanche123joined
17:28:31  <isaacs>ohhh.... wait, i think this test might be making some assumptions that are a bit weird..
17:30:59  * avalanche123quit (Ping timeout: 260 seconds)
17:31:34  * bnoordhuisjoined
17:32:53  * AvianFlujoined
17:37:59  * bnoordhuisquit (Ping timeout: 260 seconds)
17:43:57  * joshthecoderquit (Quit: Leaving...)
17:44:38  * yunongjoined
17:49:35  <isaacs>mjr_: how important is a lowWaterMark functionality on a readable side, really?
17:49:52  <isaacs>mjr_: it seems like the low/high water marks are mostly for the benefit of writers
17:50:34  <isaacs>mjr_: i guess it could be an issue if you're parsing something that comes in specifically sized chunks, and odn't want to bother getting 'readable' events if there isn't enough to consume yet.
17:55:38  * AndreasMadsenquit (Remote host closed the connection)
17:59:23  <TooTallNate>isaacs: ohh that's a nice use-case, i was just trying to think of a way to do that last night
18:00:24  <isaacs>TooTallNate: yeah... but it's also complex and hard to get exactly right in the tcp socket case.
18:00:51  <creationix>for streams in moonslice, I put low-water marks in readable streams specifically for tcp
18:01:02  <creationix>but I don't have an API at that level for specifying how many bytes you want
18:01:12  <creationix>I expect the stream to be wrapped if the user wants that kind of api
18:01:38  <creationix>(moonslice is my new experimental APIs for libuv + lua)
18:04:19  * bnoordhuisjoined
18:14:54  <isaacs>i see... so, the issue is quite interesting here.
18:15:10  * bnoordhuisquit (Ping timeout: 265 seconds)
18:15:13  <isaacs>if the lwm is 0, then we get one byte, and say, "Hey, that's enough, come and get it"
18:15:23  <isaacs>and it gets consumed, and then call readStart() again
18:15:36  <isaacs>if the lwm is >0, then we get one byte, and say, "That's not enough, readStart again."
18:15:45  <isaacs>then the second readStart gives me 254 bytes.
18:15:53  * AndreasMadsenjoined
18:15:59  <isaacs>and the test is assuming taht write("x") will alwasy --> emit('data', 'x')
18:16:46  <isaacs>because the client wrote the rest of teh bytes, since it was not yet at the high water mark for the writable end
18:16:56  * joshthecoderjoined
18:17:07  <mjr_>isaacs: in my experience, HWM / LWM are more useful on the writing side.
18:17:23  <mjr_>In fact, I'd be sort of surprised to find that reads were delayed for any reason, ever.
18:17:38  <isaacs>mjr_: yeah, really it was the parser side that made me want to set a lwm for the readable side
18:17:56  <isaacs>but i dont' think it justifies the complexity.
18:18:02  <isaacs>it's actually working properly, but as you say, it's surprising.
18:18:11  <isaacs>maybe the lwm for readers should just default to 0
18:19:26  <isaacs>it's useful for fs streams, since reads take a while. having a lwm means it tries to maintain a buffer.
18:19:35  <isaacs>ie, that's where it *starts* calling _read(n,cb)
18:19:44  <isaacs>so if reads are slow, you kind of want that buffer.
18:20:12  <isaacs>but in the normal case, you're doing read() with no arg anyway, and just consuming the entire buffer every time...
18:29:14  * EhevuTovjoined
18:29:54  <roxlu>hi guys how stable is this: https://github.com/joyent/http-parser ?
18:30:31  <roxlu>I'm testing with 2 different http responses and I get exc_bad_access (one from chunked transfer encoding, one from normal)
18:30:57  <CoverSlide>well once it gets to the body it shouldn't be parsing anymore
18:31:21  <roxlu>but what if data is chunked?
18:33:57  * brsonjoined
18:41:33  * bnoordhuisjoined
18:41:53  <isaacs>roxlu, CoverSlide yes, it keeps parsing. http is a framed protocol
18:41:59  <isaacs>it's not just about parsing headers
18:42:15  <roxlu>yeah
18:42:29  <roxlu>I'm pretty sure http_parser is quite stable
18:42:34  <roxlu>.. probably something I'm doing wrong
18:43:00  <roxlu>althgouh i'm just passing data I receive from my server directly into the parser
18:43:42  * yunongquit (Quit: Leaving.)
18:44:24  <roxlu>oh wait I think what could be the probem
18:44:41  * yunongjoined
18:44:44  <roxlu>isaacs: the parser probably keeps a pointer to 'previous' data?
18:52:13  * bnoordhuisquit (Ping timeout: 256 seconds)
18:54:14  <roxlu>oh ...
18:54:36  <roxlu>I thought it wasn't necessary to add all callbcks and that http_parser would check if callbacks were set
18:56:28  * loladiroquit (Quit: loladiro)
18:58:49  * EhevuTovquit (Quit: This computer has gone to sleep)
18:59:18  * EhevuTovjoined
19:02:44  * loladirojoined
19:02:44  * loladiroquit (Client Quit)
19:04:41  * EhevuTovquit (Ping timeout: 256 seconds)
19:10:17  <sblom>isaacs: where was the wait-for-the-debugg-agent code that you mentioned to me yesterday? node.cc?
19:24:41  * piscisaureus_quit (Read error: Connection reset by peer)
19:24:52  * piscisaureus_joined
19:26:06  <sblom>isaacs: I think I found the relevant debug code.
19:30:14  * bradleymeckjoined
19:52:22  * loladirojoined
19:54:52  * sgallaghquit (Remote host closed the connection)
20:33:36  * EhevuTovjoined
20:33:48  * loladiroquit (Quit: loladiro)
20:34:37  * c4milojoined
20:44:53  * TooTallNatequit (Ping timeout: 244 seconds)
20:47:27  * loladirojoined
20:47:39  * loladiroquit (Client Quit)
20:47:50  * TooTallNatejoined
20:57:05  * loladirojoined
20:57:05  * loladiroquit (Client Quit)
21:00:24  * lohkeyjoined
21:07:43  * piscisaureus_quit (Ping timeout: 265 seconds)
21:11:45  * bulatshakirzyanojoined
21:12:03  * bulatshakirzyanochanged nick to avalanche123
21:12:10  * c4miloquit (Remote host closed the connection)
21:13:21  * EhevuTovquit (Quit: This computer has gone to sleep)
21:14:29  * bradleymeckquit (Quit: bradleymeck)
21:17:31  * loladirojoined
21:18:17  * loladiroquit (Client Quit)
21:22:50  <isaacs>sblom: it's in src/node.js
21:23:03  <isaacs>sblom: search for " // XXX Fix this terrible hack!
21:25:26  <sblom>isaacs: See it! Thanks.
21:26:31  * EhevuTovjoined
21:37:59  * loladirojoined
21:38:20  * loladiroquit (Client Quit)
21:47:11  * avalanche123quit (Ping timeout: 260 seconds)
21:47:43  * mikealquit (Quit: Leaving.)
21:48:30  * perezdjoined
21:51:35  * rendarquit
21:51:38  <isaacs>hm... this is so weird. so, i'm calling readStart, getting a data, then i'm not calling readStop, and it never gives me the eof, even though the other end has ended.
21:54:47  <isaacs>ohhh... i get it.
21:54:50  <isaacs>oh, this is awesome.
21:55:14  <TooTallNate>isaacs: haha
21:55:20  <TooTallNate>having a conversation with self?
21:55:23  <isaacs>sorta
21:55:34  <TooTallNate>net.socket stuff?
21:55:35  <isaacs>moving to unofficial StreamFreaks room, aka #stackvm
21:58:07  * bradleymeckjoined
21:58:16  * benoitc_joined
21:58:25  * benoitcquit (Read error: Operation timed out)
21:58:26  * hij1nxquit (Read error: Operation timed out)
21:58:26  * benoitc_changed nick to benoitc
21:58:28  * hij1nx_joined
22:03:56  <isaacs>there's nothing wrong with libuv's readStart and readStop
22:04:03  <isaacs>this is entirely my bug, and it's so awesome.
22:04:07  * stagasquit (Ping timeout: 256 seconds)
22:06:14  * stagasjoined
22:06:22  <TooTallNate>isaacs: hahaha, i like the enthusiasm
22:21:41  * perezdquit (Quit: perezd)
22:31:17  * AvianFluquit (Remote host closed the connection)
22:54:09  * perezdjoined
22:55:47  * perezdquit (Client Quit)
22:57:21  * bradleymeckquit (Quit: bradleymeck)
22:57:54  * loladirojoined
23:01:30  * piscisaureus_joined
23:16:22  <isaacs>7 net tests failing.
23:16:52  <isaacs>of 38
23:16:54  <isaacs>that's a lot of passing!
23:16:56  <isaacs>:)
23:19:52  <TooTallNate>isaacs++
23:19:52  <kohai>isaacs has 25 beers
23:32:20  <piscisaureus_>isaacs++
23:32:20  <kohai>isaacs has 26 beers
23:32:22  <piscisaureus_>nice
23:32:41  * tomshredsjoined
23:36:33  * EhevuTov_joined
23:36:38  * lohkeyquit (Read error: Connection reset by peer)
23:37:14  * lohkeyjoined
23:39:31  * EhevuTovquit (Ping timeout: 244 seconds)
23:56:10  * joshthecoderquit (Quit: Leaving...)
23:57:26  * joshthecoderjoined
23:57:49  * joshthecoderquit (Client Quit)