00:17:06  * benviejoined
00:21:01  * orlandovftwjoined
00:24:52  * sh1mmerjoined
00:34:47  * orlandovftwquit (Ping timeout: 265 seconds)
00:44:52  * paddybyersquit (Quit: paddybyers)
01:26:36  * bnoordhuisquit (Ping timeout: 248 seconds)
01:32:28  * hij1nxquit (Quit: hij1nx)
01:49:49  * TooTallNatequit (Quit: Leaving...)
01:53:02  * brsonquit (Quit: leaving)
02:00:23  * igorziquit (Ping timeout: 245 seconds)
02:00:56  * isaacs_mobilejoined
02:13:41  * isaacs_mobilequit (Ping timeout: 245 seconds)
02:39:33  * mmaleckichanged nick to mmalecki[zzz]
02:47:12  * piscisaureus_joined
02:47:22  * piscisaureus_quit (Client Quit)
02:47:52  * xaqjoined
02:56:19  * xaqquit (Remote host closed the connection)
03:53:20  * xaqjoined
04:18:16  * dshaw_joined
04:22:11  * xaqquit (Remote host closed the connection)
04:23:10  * xaqjoined
04:28:33  * xaqquit (Remote host closed the connection)
04:50:52  * mikealjoined
04:54:47  * orlandovftwjoined
04:54:50  * orlandovftwquit (Client Quit)
04:55:01  * orlandovftwjoined
05:14:33  * Sly__quit (Quit: Leaving)
05:49:05  * mikealquit (Quit: Leaving.)
05:51:24  * mikealjoined
06:22:58  * paddybyersjoined
06:29:16  * mikealquit (Quit: Leaving.)
06:29:49  * mikealjoined
06:33:57  * mikealquit (Ping timeout: 240 seconds)
06:41:20  * mralephjoined
06:56:52  * xaqjoined
07:05:14  * paddybyersquit (Read error: Network is unreachable)
07:05:21  * paddybyersjoined
07:10:11  * xaqquit (Remote host closed the connection)
07:26:57  * mikealjoined
07:36:29  * mralephquit (Quit: Leaving.)
08:09:51  * AvianFluquit (Ping timeout: 240 seconds)
08:16:25  * hij1nxjoined
08:47:49  * hij1nxquit (Quit: hij1nx)
08:48:47  * hij1nxjoined
09:05:45  * hij1nxquit (Quit: hij1nx)
09:53:42  * dshaw_quit (Quit: Leaving.)
10:04:48  * paddybyersquit (*.net *.split)
10:06:38  * paddybyersjoined
10:23:01  * orlandovftwquit (Ping timeout: 245 seconds)
10:24:23  * sh1mmerquit (Quit: sh1mmer)
10:38:26  * bnoordhuisjoined
10:59:37  * saghuljoined
11:01:04  <CIA-99>node: Ben Noordhuis master * r4af673e / (130 files in 37 dirs): gyp: update to r1214 - http://git.io/_aJ3dQ
11:01:04  <CIA-99>node: Nathan Rajlich master * raf4a96c / configure :
11:01:04  <CIA-99>node: build: test `uname -m` first, then `uname -p`
11:01:04  <CIA-99>node: Prevent false i386 on 64-bit OS X. - http://git.io/tIPSwA
11:01:04  <CIA-99>node: Nathan Rajlich master * r546870e / common.gypi : build: use proper `-arch` for target_arch on OS X - http://git.io/d3ptGA
11:01:04  <CIA-99>node: Nathan Rajlich master * r028043d / configure : build: map i686 to ia32 - http://git.io/DegCSQ
11:15:49  * travis-cijoined
11:15:49  <travis-ci>[travis-ci] joyent/node#458 (master - 028043d : Nathan Rajlich): The build is still failing.
11:15:49  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/7ae0d47...028043d
11:15:49  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/705883
11:15:49  * travis-cipart
11:15:57  <indutny>good morning
11:17:20  <bnoordhuis>indutny: sup fedor?
11:17:34  <indutny>bnoordhuis: good morning
11:18:02  <indutny>I like how informative we're
11:25:31  <bnoordhuis>indutny: are we?
11:26:21  <indutny>bnoordhuis: no
11:26:48  <bnoordhuis>indutny: good. there's no job security in being informative and helpful
11:26:55  <bnoordhuis>but what in particular are you referring to?
11:27:14  <indutny>man
11:27:25  <indutny>no words
11:27:27  <indutny>I've no words
11:31:45  <bnoordhuis>okay
11:31:56  <bnoordhuis>i'm afk for a bit and i won't tell where to
11:32:46  <bnoordhuis>back in a bit :)
11:34:40  <indutny>ok
11:34:44  <indutny>please keep that in a secret
11:34:52  <indutny>I'll wait for you
11:34:58  <indutny>:)
11:37:45  <einaros>strangest convo I've seen today
11:54:57  * mmalecki[zzz]changed nick to mmalecki
11:56:10  <indutny>mmalecki: morning
11:56:16  <mmalecki>*yaaawn* morning!
12:20:40  <indutny>when bnoordhuis is silent - he runs `make test` 30 times
12:22:23  <mmalecki>I thought he always runs `make test` 30 times?
12:23:25  <indutny>lol :D
12:23:30  <indutny>bnoordhuis: no offense
12:26:40  <bnoordhuis>indutny: you kid but i'm running `make test` for the third time in ten minutes now
12:27:20  <indutny>bnoordhuis: how old are you?
12:28:03  <bnoordhuis>indutny: still on the good side of 30
12:28:13  <bnoordhuis>iow, 29
12:28:46  <mmalecki>OH MY, SO OLD
12:29:01  <mmalecki>ugh, sorry for the caps, I've been writing company e-mail XD
12:29:08  <einaros>29, in node years, is like 150 human years
12:29:16  <einaros>at least that's how I feel (also being 29)
12:29:44  <indutny>not a big difference then
12:29:45  <indutny>22
12:29:50  <indutny>but quite noticable
12:29:57  <indutny>heh :D
12:30:00  <mmalecki>18!
12:30:46  <einaros>the average for node (he said with no real backing what-so-ever) is probably 22
12:31:32  <mmalecki>that's what she said!
12:31:58  <CIA-99>node: Ben Noordhuis master * r7f4aba9 / (36 files in 4 dirs): test: include common.js in all tests - http://git.io/gqDImg
12:31:59  <CIA-99>node: Ben Noordhuis master * r9997579 / test/simple/test-debugger-repl-utf8.js :
12:31:59  <CIA-99>node: test: don't let debugger listen on common.PORT
12:31:59  <CIA-99>node: simple/test-debugger-repl-utf8 has a tendency to fail and leave behind a stray
12:31:59  <CIA-99>node: process that listens on common.PORT, making later tests fail with EADDRINUSE. - http://git.io/GSmoBQ
12:32:07  <indutny>ok, time to preorder AST and generate some ultimate code
12:32:09  <bnoordhuis>einaros: 22-23 sounds about right
12:32:19  <indutny>bnoordhuis: ^^^ that's what I thought
12:32:23  <mmalecki>ugh, bnoordhuis, isn't it like, better to fix the test runner?
12:32:28  <indutny>bnoordhuis: we should kill processes somehow
12:32:56  <bnoordhuis>indutny: good idea. i expect it done by 4 pm
12:33:01  <mmalecki>s/kill/pgkill/ and it should be fine
12:33:06  <mmalecki>I'll try that
12:33:17  <bnoordhuis>mmalecki: it needs to work on windows too of course
12:33:22  <indutny>bnoordhuis: oohhhhh
12:33:37  <indutny>bnoordhuis: I think process.platform check would work fine on windows
12:33:59  <mmalecki>bnoordhuis: ahahahaha
12:34:47  <einaros>good old taskkill.exe
12:35:43  <indutny>brb
12:40:44  * mmaleckigoes to look at the failing http test
12:43:19  <CIA-99>node: Luke Gallagher master * r8d3c46d / lib/util.js : util: fix typo in lib/util.js - http://git.io/NepJmA
12:43:32  <mmalecki>OK GIT PULL AGAIN
12:46:49  <bnoordhuis>that lint check in `make test` is already becoming quite annoying...
12:46:56  * travis-cijoined
12:46:56  <travis-ci>[travis-ci] joyent/node#459 (master - 9997579 : Ben Noordhuis): The build is still failing.
12:46:56  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/028043d...9997579
12:46:56  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/706448
12:46:56  * travis-cipart
12:56:59  <mmalecki>bnoordhuis: ++
12:56:59  <kohai>bnoordhuis has 8 beers
12:57:18  * travis-cijoined
12:57:18  <travis-ci>[travis-ci] joyent/node#460 (master - 8d3c46d : Luke Gallagher): The build is still failing.
12:57:18  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/9997579...8d3c46d
12:57:18  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/706560
12:57:18  * travis-cipart
12:59:11  <bnoordhuis>ircretary: tell piscisaureus_ https://github.com/joyent/node/issues/2771#issuecomment-4032844
12:59:12  <ircretary>bnoordhuis: I'll be sure to tell piscisaureus_
13:01:11  <CIA-99>node: Brandon Benvie master * rb722771 / (lib/repl.js test/simple/test-repl-autolibs.js): repl: add automatic loading of built-in libs - http://git.io/wFhcfA
13:01:51  <mmalecki>bnoordhuis is on merging spree
13:04:10  <mmalecki>what's the good name for merging function in util? `_merge`, `_extend`?
13:07:24  <indutny>mmalecki: no good name
13:07:33  <indutny>mmalecki: I've proposed that some time ago
13:07:48  <mmalecki>indutny: ryah said yes to this
13:07:55  <mmalecki>indutny: it's internal anyway
13:07:57  <indutny>mmalecki: really, when?
13:08:16  <indutny>mmalecki: I certainly remember he declined my proposal
13:08:29  <mmalecki>indutny: sec, I'll try to find IRC logs
13:09:49  <mmalecki>indutny: http://piscisaureus.no.de/log/2012-01-06#20:46:50.017
13:11:55  * pfox___joined
13:13:44  <bnoordhuis>mmalecki: i think we had a merge() or extend() function a long time ago
13:14:02  <bnoordhuis>iirc it wasn't really working out and subsequently removed
13:14:10  <mmalecki>bnoordhuis: I mean, internal one
13:14:21  <mmalecki>bnoordhuis: that's why the underscore. and see the log
13:14:57  * travis-cijoined
13:14:57  <travis-ci>[travis-ci] joyent/node#461 (master - b722771 : Brandon Benvie): The build is still failing.
13:14:57  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/8d3c46d...b722771
13:14:57  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/706654
13:14:57  * travis-cipart
13:16:26  <indutny>mmalecki: cool
13:17:18  <mmalecki>bnoordhuis: I got it ready btw, just not sure about the name
13:28:08  <bnoordhuis>\o/ empire 1.9 is out - http://www.catb.org/~esr/vms-empire/
13:39:52  * piscisaureus_joined
13:42:18  * txdvjoined
13:46:21  <indutny>bnoordhuis: time consuming stuff
13:46:25  <indutny>bnoordhuis: I like it!
13:46:26  <indutny>:D
13:47:34  <indutny>bnoordhuis: can't find any youtube videos featuring it
13:57:49  * AndreasMadsenjoined
13:58:14  * xaqjoined
14:08:17  * AndreasMadsenchanged nick to madson
15:06:58  * xaqquit (Remote host closed the connection)
15:08:49  <bnoordhuis>indutny: are the debugger tests failing for you?
15:16:04  <bnoordhuis>mmalecki: do polish people celebrate carnival?
15:16:17  <mmalecki>bnoordhuis: yeah, we drink more than usual
15:16:21  <bnoordhuis>heh
15:16:25  <mmalecki>bnoordhuis: nothing special tho
15:16:37  <bnoordhuis>no customes, parades?
15:16:53  <bnoordhuis>err, costumes
15:17:35  <CIA-99>node: Maciej Małecki master * rc3a9733 / src/node.js :
15:17:35  <CIA-99>node: startup: use `.hasOwnProperty` instead of `in`
15:17:35  <CIA-99>node: Benchmarks show that `.hasOwnProperty` is faster than `in` in V8. It
15:17:35  <CIA-99>node: makes startup ~0.5 ms faster on my computer. - http://git.io/ZQgDug
15:17:35  <CIA-99>node: Maciej Małecki master * r1109c8f / src/node.js :
15:17:36  <CIA-99>node: startup: move `EventEmitter` closer to the lookup
15:17:37  <CIA-99>node: This makes startup faster by ~0.2 ms on my computer. - http://git.io/bCbCww
15:17:37  <CIA-99>node: Maciej Małecki master * rb0c1541 / src/node.js : startup: use `path.resolve` instead of `path.join(cwd, ...)` - http://git.io/23cfhQ
15:17:38  <CIA-99>node: Ben Noordhuis master * rf0c5165 / (7 files): http_parser: upgrade to 62110ef - http://git.io/jYnS_w
15:17:38  <CIA-99>node: Ben Noordhuis master * rde5e3f6 / (3 files in 2 dirs): http: support PURGE request method - http://git.io/gt-pBg
15:18:53  <mmalecki>bnoordhuis: no, not really
15:19:06  <mmalecki>bnoordhuis: there are some parties, but it isn't celebrated *that* much
15:20:00  <bnoordhuis>good
15:20:07  <bnoordhuis>'ora et labora' is my motto
15:20:37  <mmalecki>yeah, right
15:20:38  <bnoordhuis>papish frivolities like carnival are of course a blasphemy
15:22:05  * pfox___quit (Ping timeout: 252 seconds)
15:23:13  <madson>mmalecki: do you have to weeks holiday?
15:25:40  <mmalecki>madson: ys
15:25:42  <mmalecki>*yes
15:26:24  <madson>mmalecki: well I'm not that lucky
15:26:54  <madson>"only" one week
15:31:29  * xaqjoined
15:32:44  * travis-cijoined
15:32:44  <travis-ci>[travis-ci] joyent/node#462 (master - de5e3f6 : Ben Noordhuis): The build is still failing.
15:32:44  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/b722771...de5e3f6
15:32:44  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/707539
15:32:44  * travis-cipart
15:40:45  * AvianFlujoined
15:41:33  <indutny>bnoordhuis: no
15:41:59  <indutny>bnoordhuis: are they for you?
15:42:02  <bnoordhuis>indutny: are you testing it on os x or linux?
15:42:07  <indutny>bnoordhuis: osx
15:42:13  <indutny>bnoordhuis: I've no linux box for now
15:42:16  <bnoordhuis>and yes, they're failing for me (on linux)
15:42:23  <indutny>bnoordhuis: that's not good
15:42:38  <bnoordhuis>i tend to agree
15:42:40  <indutny>bnoordhuis: btw, I'm thinking about running debugger through IPC instead of TCP
15:42:48  <bnoordhuis>ipc being ?
15:42:51  <indutny>bnoordhuis: pipe
15:42:56  <indutny>bnoordhuis: child_process.fork
15:43:08  <bnoordhuis>does v8 support that?
15:43:14  <bnoordhuis>i thought it created a socket?
15:43:19  <indutny>bnoordhuis: I think it does
15:43:24  <indutny>bnoordhuis: only if you start agent
15:43:33  <indutny>bnoordhuis: you can send and receive messages on your own
15:43:38  <indutny>bnoordhuis: as I was doing with isolate debugger
15:43:41  <bnoordhuis>oh okay
15:43:42  <mmalecki>bnoordhuis: SO HEY. `_merge`?
15:43:57  <bnoordhuis>mmalecki: i like _xyzzy better
15:44:05  <bnoordhuis>job security, right? never pick obvious names
15:44:17  <mmalecki>bnoordhuis: there's also _extend!
15:44:18  * indutnyis looking on tools/test.py
15:44:23  <mmalecki>bnoordhuis: and _selfDestruction
15:44:32  <indutny>mmalecki: _complicate
15:44:43  <mmalecki>indutny: if you can easily repro, please change .kill to .pgkill there
15:44:44  <bnoordhuis>or _doit
15:44:51  <indutny>mmalecki: yes
15:45:05  <bnoordhuis>mmalecki: does it change one of its arguments?
15:45:13  <mmalecki>bnoordhuis: yes, first one
15:45:20  <bnoordhuis>in that case, _extend
15:45:25  <mmalecki>bnoordhuis: just like the one in cluster and cp
15:47:25  <madson>mmalecki: oh that would be nice :)
15:47:37  <mmalecki>madson: what would be nice?
15:47:55  <bnoordhuis>kittens
15:47:56  <madson>mmalecki: to have the extendObject in util
15:47:56  <mmalecki>madson: if you mean util._extend, yeah
15:48:00  <mmalecki>I'm doing it now
15:48:07  <mmalecki>bnoordhuis: kittens are always nice
15:48:13  <mmalecki>bnoordhuis: except when they are dead
15:48:34  <bnoordhuis>mmalecki: the first hours aren't so bad
15:48:37  <madson>mmalecki: The only think I don't like is all the functions people will see when they do require('util') in the REPL.
15:49:06  <piscisaureus_>where is mraleph
15:49:08  <mmalecki>bnoordhuis: yeah, it depends how you cook them
15:49:33  <bnoordhuis>hah, i find that one hard to top
15:49:53  <madson>mmalecki: kittens makes hairballs
15:49:54  <bnoordhuis>without shocking people too much, that is
15:50:05  <mmalecki>:)
15:50:47  <bnoordhuis>mmalecki: btw, how many merge/extend-like functions are there in core right now?
15:51:26  <mmalecki>bnoordhuis: I found two
15:52:03  <bnoordhuis>mmalecki: in that case don't bother with it, i have this rule of thumb to never refactor before there are at least three duplicates
15:53:14  <mmalecki>bnoordhuis: hah, ok
15:54:17  <indutny>finally!!!!!!!!!!!!
15:56:29  <bnoordhuis>it's over 9000 now?
15:56:46  <mmalecki>bnoordhuis: there are some places we should use it, btw
15:57:10  <bnoordhuis>mmalecki: my ear is listening
15:57:21  <bnoordhuis>that doesn't really help on irc, does it?
15:57:50  <bnoordhuis>dutch sayings translate so bad
15:58:02  <mmalecki>https://github.com/joyent/node/blob/master/lib/http.js#L1437
15:58:16  <mmalecki>but it can be considered hot path, so I don't think so
15:58:37  <mmalecki>that pull request I made to tls.connect needs it as well
15:58:41  <bnoordhuis>nah, i/o completely dwarfs it
15:58:42  <piscisaureus_>I am doing a crazy v8 hack that allows access to raw string memory
15:58:48  <indutny>piscisaureus_: !!!!!
15:58:52  <bnoordhuis>mmalecki: it's a bug
15:59:02  <indutny>piscisaureus_: isn't it two byte?
15:59:09  <piscisaureus_>indutny: well it can be either
15:59:12  <indutny>piscisaureus_: I mean two byte per char
15:59:14  <mmalecki>bnoordhuis: which one?
15:59:17  <indutny>piscisaureus_: oh
15:59:22  <piscisaureus_>indutny: it has ascii and 2byte strings
15:59:25  <bnoordhuis>mmalecki: options.method = 'GET';
15:59:31  <piscisaureus_>indutny: so this api is not going to be convenient
15:59:37  <bnoordhuis>mmalecki: node should never pollute user-owned objects
15:59:45  <mmalecki>bnoordhuis: oh, it's default, btw
15:59:54  <piscisaureus_>bnoordhuis: the dns resolver already does
16:00:01  <indutny>piscisaureus_: yeah
16:00:02  <piscisaureus_>(iirc)
16:00:13  <indutny>that's what I thought
16:00:17  <bnoordhuis>piscisaureus_: i believe you. it's still a bug
16:00:21  <piscisaureus_>I agree
16:00:26  <piscisaureus_>bnoordhuis: we need weak maps :-)
16:00:38  <piscisaureus_>that would be very nice
16:00:47  <mmalecki>bnoordhuis: so, this line can be removed
16:01:10  <mmalecki>bnoordhuis: I don't really want to pull request so small thing, so would you?
16:02:00  <bnoordhuis>mmalecki: combine it with "don't touch the user's object" fix-ups
16:02:12  <mmalecki>bnoordhuis: ok
16:03:06  <madson>^ note: https://github.com/joyent/node/pull/2743/files
16:04:06  <piscisaureus_>Are you madson?
16:04:27  <madson>piscisaureus_: who?
16:04:47  <piscisaureus_>I was just thinking of an extremely bad joke.
16:05:07  <madson>piscisaureus_: you as if madson is madson - I can only say yes to that.
16:05:27  <indutny>bnoordhuis: prepare
16:05:29  <mmalecki>https://gist.github.com/df59b862c8153b38c8e1 seems nicer :D
16:05:43  <indutny>bnoordhuis: https://github.com/indutny/node/commit/2943a4f16fd11d7403ab798ca5c05912fa66b8c0
16:05:50  <madson>some also call me AndreasMadsen, but my last name can't be pronounced.
16:05:51  <indutny>bnoordhuis: review please
16:06:12  <piscisaureus_>wut is happening there?
16:06:25  <indutny>mmalecki: I don't like that
16:06:25  <madson>madson: or perhaps it's just the nodeUp guys.
16:06:41  <indutny>mmalecki: it adds complexity to the place where it can be avoided
16:07:02  <mmalecki>indutny: sorry, which one?
16:07:09  <indutny>mmalecki: child_process
16:07:12  <mmalecki>indutny: ah
16:07:15  <mmalecki>indutny: yeah, maybe
16:07:17  <indutny>bnoordhuis: s/harmful/harmless
16:07:18  <indutny>:D
16:07:20  <mmalecki>it just seems nicer to me :)
16:07:21  <indutny>nice typo
16:09:37  <bnoordhuis>indutny: lgtm
16:09:50  <indutny>bnoordhuis: nice!
16:10:08  <indutny>bnoordhuis: lets see what travis will say ;)
16:10:10  <CIA-99>node: Fedor Indutny master * r0cebfc8 / tools/test.py :
16:10:10  <CIA-99>node: tests: kill process group on failure
16:10:10  <CIA-99>node: Test suite is often leaving `stray` processes on failure. They are
16:10:10  <CIA-99>node: harmless, but may cause future test runs fail because those `stray`
16:10:10  <CIA-99>node: processes are occupying `common.PORT` or due to some other reasons.
16:10:11  <CIA-99>node: Killing whole process group on test suite failure should help in such
16:10:12  <CIA-99>node: cases. - http://git.io/27afXg
16:10:52  <madson>indutny++
16:10:53  <kohai>indutny has 18 beers
16:11:05  <indutny>madson: that was mmalecki's advice actually
16:11:19  <indutny>so
16:11:20  <indutny>madson: ++
16:11:20  <kohai>madson has 1 beer
16:11:22  <indutny>oops
16:11:23  <indutny>madson: --
16:11:24  <kohai>madson has 0 beer
16:11:25  <indutny>mmalecki: ++
16:11:26  <kohai>mmalecki has 57 open source projects
16:11:31  <madson>indutny: I know, I said it once too.
16:11:36  <indutny>madson: ++
16:11:37  <kohai>madson has 1 beer
16:11:38  <indutny>:D
16:12:27  <madson>indutny: so we can revert this now=> https://github.com/joyent/node/commit/999757983c8fafa140bef77705db77c7699f5830
16:12:46  * madsonchanged nick to AndreasMadsen
16:13:03  <mmalecki>bnoordhuis: https://gist.github.com/79c8e2075bbe4a157a07
16:13:07  <indutny>bnoordhuis: https://github.com/joyent/node/commit/999757983c8fafa140bef77705db77c7699f5830
16:13:13  <mmalecki>bnoordhuis: that would work in tls, right?
16:13:56  <indutny>mmalecki: why are you doing it?
16:14:06  <indutny>mmalecki: sorry, but I don't understand :D
16:14:17  <indutny>mmalecki: it's useful to define many default options
16:14:18  <mmalecki>indutny: to avoid overriding user's options object
16:14:27  <indutny>mmalecki: oh, nice
16:14:36  <bnoordhuis>mmalecki: yes
16:14:38  <indutny>mmalecki: but you'll do a lot of work to avoid it
16:15:00  <indutny>mmalecki: some people rely on speed of tls.connect
16:15:09  <bnoordhuis>indutny: why do you link me to my own commit? :)
16:15:20  <indutny>bnoordhuis: watch :D
16:15:59  <mmalecki>18:57 < mmalecki> but it can be considered hot path, so I don't think so
16:15:59  <mmalecki>18:58 < mmalecki> that pull request I made to tls.connect needs it as well
16:15:59  <mmalecki>18:58 < bnoordhuis> nah, i/o completely dwarfs it
16:16:02  <mmalecki>indutny: ^
16:16:34  <indutny>mmalecki: that's ridiculous
16:16:39  <indutny>I completely disagree
16:17:04  <AndreasMadsen>bnoordhuis: because it can be reverted after https://github.com/joyent/node/commit/0cebfc8ddb509fbf5f865bb660b73e96680b3f65
16:17:09  <bnoordhuis>indutny: that commit was making all the tests that came after it fail
16:17:10  <bnoordhuis>err, not the commit, the test
16:17:16  <indutny>AndreasMadsen: probably not
16:17:18  <indutny>bnoordhuis: yes
16:17:22  <indutny>bnoordhuis: I'm thinking about it
16:17:32  <indutny>bnoordhuis: but I like idea of running debugger not on 5858
16:17:48  <AndreasMadsen>:( like common.PORT
16:18:25  <indutny>AndreasMadsen: yeah, but even with killpg other tests may fail after debugger failure
16:19:19  <AndreasMadsen>indutny: okay, I haven't put much thought in it.
16:20:10  <indutny>AndreasMadsen: me too, at first time
16:20:42  <mmalecki>bnoordhuis: does the diff work?
16:21:15  <bnoordhuis>mmalecki: didn't test it
16:21:29  <mmalecki>bnoordhuis: I know you didn't, but I think this makes sense?
16:22:18  <mmalecki>actually, I don't need first _extend there
16:22:41  <mmalecki>so tls.connect({host: ..., port: ...}) will be the fastest, to make indutny happy
16:23:12  * xaqquit (Remote host closed the connection)
16:23:37  <bnoordhuis>mmalecki: are you asking a question or making a statement? :)
16:24:03  * travis-cijoined
16:24:03  <travis-ci>[travis-ci] joyent/node#463 (master - 0cebfc8 : Fedor Indutny): The build is still failing.
16:24:03  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/de5e3f6...0cebfc8
16:24:03  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/708047
16:24:03  * travis-cipart
16:25:47  <indutny>mmalecki: haha
16:26:07  <indutny>mmalecki: I think you're misusing tool
16:26:42  <indutny>bnoordhuis: have you seen travis result? :)
16:26:42  <mmalecki>indutny: probably, can you be more specific?
16:26:57  <bnoordhuis>indutny: no?
16:27:01  <indutny>mmalecki: could you link me your implementation first?
16:27:05  <indutny>bnoordhuis: 4 failures
16:27:25  <bnoordhuis>indutny: that's about expected
16:27:29  <mmalecki>indutny: yes, sec
16:27:33  <bnoordhuis>is it better than before?
16:27:55  <indutny>bnoordhuis: I hope
16:28:11  <indutny>bnoordhuis: at least you won't see stray debugger processes on local machine
16:28:23  <CIA-99>node: Ben Noordhuis master * r86f4846 / (lib/url.js test/simple/test-url.js):
16:28:23  <CIA-99>node: url: decode url entities in auth section
16:28:23  <CIA-99>node: Fixes #2736. - http://git.io/mt-fxw
16:28:24  <CIA-99>node: Ben Noordhuis master * rf116e17 / test/simple/test-http-url.parse-auth.js :
16:28:24  <CIA-99>node: test: update HTTP basic auth test
16:28:24  <CIA-99>node: Verify that URL-encoded entities are properly encoded into the Authorization
16:28:25  <CIA-99>node: header. - http://git.io/kSXIDg
16:28:42  <indutny>brb
16:28:46  <indutny>going to drink some tea
16:28:50  * hij1nxjoined
16:29:15  <bnoordhuis>tea... uh-uh
16:29:17  <mmalecki>indutny: https://github.com/mmalecki/node/compare/merge-options-in-util
16:29:18  <mmalecki>bnoordhuis: https://github.com/mmalecki/node/compare/merge-options-in-util
16:29:23  * bnoordhuisis off to dinner
16:29:49  <indutny>mmalecki: ok, I'll take a look in 15 minutes
16:30:03  <mmalecki>ok
16:40:56  * TooTallNatejoined
16:42:37  * travis-cijoined
16:42:37  <travis-ci>[travis-ci] joyent/node#464 (master - f116e17 : Ben Noordhuis): The build is still failing.
16:42:37  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/0cebfc8...f116e17
16:42:37  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/708220
16:42:37  * travis-cipart
16:44:13  * stephankjoined
16:44:21  <indutny>back
16:45:13  <indutny>mmalecki: it's slow as hell
16:46:46  <mmalecki>indutny: ok, please write a better version :)
16:46:54  <indutny>mmalecki: version is good
16:47:32  <mmalecki>indutny: so what are you talking about?
16:47:57  <indutny>mmalecki: I just don't think it's necessary to overshooting small things
16:48:06  <indutny>mmalecki: oh, grammar...
16:48:16  <indutny>mmalecki: do you get my point?
16:48:53  <mmalecki>indutny: yes. but I don't think we should be overriding user's options object (unless merging *is* a real overhead)
16:49:24  <mmalecki>indutny: and, as bnoordhuis said, I/O is much slower than merging
16:50:45  <indutny>mmalecki: do you think anyone cares about it?
16:50:52  <indutny>mmalecki: we've those API since 0.4.x
16:51:16  <indutny>mmalecki: was there a lot of people complaining about changing their objects
16:51:33  <mmalecki>indutny: is it a real overhead?
16:51:45  <indutny>mmalecki: it's just too complex
16:51:55  <indutny>mmalecki: you do not need to extend things like that
16:52:25  <indutny>mmalecki: I clearly understand other cases though
16:52:41  <indutny>mmalecki: extend({ port: 50, host: 'localhost'}, userOptions)
16:52:54  <indutny>mmalecki: that looks nicer than raw implementation
16:53:16  <mmalecki>indutny: ugh, ok
16:53:28  <mmalecki>indutny: that's pretty much what we're doing tho.
16:53:30  <mmalecki>but ok.
16:57:03  <mmalecki>indutny: https://github.com/mmalecki/node/compare/merge-options-in-util
16:57:27  <mmalecki>https://github.com/mmalecki/node/commit/468a1e72520757e14a2aaeb0a47f7b94eff765e1#diff-3
16:58:27  <indutny>mmalecki: well, ok you pursuaded me
16:58:32  <indutny>mmalecki: that looks good
16:59:11  * isaacsjoined
16:59:18  <mmalecki>now someone tell me why the fuck doesn't this patch pass jslint
16:59:55  <tjfontaine>what does it say?
16:59:57  <mmalecki>/Users/maciej/dev/JavaScript/node/lib/tls.js:1088:(New Error 0006) Wrong indentation: expected any of {6, 12, 20, 24} but got 2
17:00:07  <indutny>mmalecki: hehe
17:00:28  <tjfontaine>I'm guessing the object literal
17:00:29  <mmalecki>1088 is https://github.com/mmalecki/node/blob/468a1e72520757e14a2aaeb0a47f7b94eff765e1/lib/tls.js#L1088
17:01:43  <tjfontaine>mmalecki: it's either the spacing in the object literal on 1086, or the fact that it's inline and not \n'd
17:02:06  <mmalecki>tjfontaine: I removed ' || {}' part and it passed >.<
17:02:15  <tjfontaine>heh, joyous
17:02:48  <tjfontaine>|| {} should be a case handled in the _extend anyway?
17:03:02  <mmalecki>no, it exits there
17:03:15  <tjfontaine>ya, so the check isn't necessary
17:03:16  <mmalecki>but I mean, come on
17:06:18  <isaacs>mmalecki: it tells you which indentation it's ok with.
17:06:35  <isaacs>mmalecki: either break it up into multiple lines, or just use one of the ones it's saying.
17:06:42  <isaacs>usually one of them is sensible.
17:06:51  <mmalecki>isaacs: have you see the code it complains about?
17:07:06  <isaacs>mmalecki: i just linted all of node yesterday, so yes.
17:07:23  <isaacs>mmalecki: it gets confused when you have too many expressions in one line.
17:07:24  <isaacs>that's a good thing.
17:07:25  <mmalecki>isaacs: so you haven't, because it's from my patch
17:07:38  <isaacs>options = util._extend({ port: port, host: host }, options || {}):
17:07:41  <mmalecki>yes
17:07:42  <isaacs>why is there a : at the end?
17:07:45  <isaacs>and not a ;?
17:07:48  <mmalecki>FUCK
17:07:51  <tjfontaine>heh
17:07:58  <isaacs>seems like the lint is doing its job, and preventing errors :)
17:08:12  <tjfontaine>totally missed that
17:08:19  <isaacs>LINT FTW!!
17:08:36  <isaacs>ok, i'm gonna go celebrate presidents day by invading a country i've never heard of.
17:08:40  <isaacs>laters :)
17:08:41  * isaacsquit (Remote host closed the connection)
17:23:33  * orlandovftwjoined
17:24:35  * orlandovftwquit (Client Quit)
17:24:56  * orlandovftwjoined
17:27:22  * isaacsjoined
17:34:53  * mralephjoined
17:34:53  * mikealquit (Quit: Leaving.)
17:42:18  * dshaw_joined
17:49:42  <piscisaureus_>mraleph: is it possible to have a cons string where the left hand side and the right hand side are the same?
17:49:58  <piscisaureus_>mraleph: e.g. they point to the same heap string?
17:50:15  <mraleph>a + a
17:50:20  <piscisaureus_>yes
17:50:24  <mraleph>piscisaureus_: ^
17:50:34  <piscisaureus_>ah, right
17:50:36  <mraleph>well yes it is possible
17:50:39  <mraleph>:-)
17:50:39  <piscisaureus_>of course
17:50:48  <piscisaureus_>*sigh*
17:51:29  <piscisaureus_>mraleph: I have this crazy plan to fix slow serialization of large cons strings.
17:51:57  <mraleph>:-)
17:52:05  <piscisaureus_>mraleph: The idea is to traverse down a"cons tree"
17:52:09  <piscisaureus_>shit
17:52:58  <piscisaureus_>mraleph: the idea is to swap the map word for the pointer to the parent cons object as we traverse down the cons tree.
17:53:10  <piscisaureus_>mraleph: and then restore the original map on the way up.
17:57:11  * isaacsquit (Remote host closed the connection)
17:58:22  <mraleph>so tell me what overhead you are trying to avoid?
17:59:32  <piscisaureus_>mraleph: well eventually I'd like an API that allows raw access to v8 heap strings so we can implement our own utf8 encoder/decoder
17:59:59  <piscisaureus_>mraleph: but this requires me to iterate over all the pieces of a string, in order
18:00:57  <piscisaureus_>mraleph: but iterating over a cons tree is difficult, because cons strings don't store a pointer to their parent
18:01:03  <piscisaureus_>so it requires recursion
18:01:09  <piscisaureus_>which makes the stack overflow
18:01:12  <indutny>щщр
18:01:13  <indutny>ooh
18:01:21  <indutny>cons trees
18:01:24  <indutny>making a note
18:01:42  <piscisaureus_>mraleph: that's why WriteUtf8 is so super slow when the string is long and has many pieces
18:01:53  <mraleph>piscisaureus_: so you want API that would allow you to change map pointer of an object to store intermidiate iteration step?
18:02:19  <mraleph>s/step/state/
18:02:21  <piscisaureus_>mraleph: well I am doing a v8 patch atm that adds the api to iterate over all the pieces of a v8 string
18:02:33  <piscisaureus_>mraleph: so I can use the internal APIs
18:03:03  <piscisaureus_>mraleph: the only thing is that when you are iterating, it is absolutely forbidden to do anything else with the v8 heap
18:03:06  <piscisaureus_>because map words are invalid
18:03:09  <piscisaureus_>but that's probably fine
18:03:37  <piscisaureus_>mraleph:
18:04:11  <piscisaureus_>class V8EXPORT String::Memory {
18:04:12  <piscisaureus_> enum StorageType { kNone = 0, kAscii = 1, kTwoByte = 2
18:04:12  <piscisaureus_> };
18:04:12  <piscisaureus_> public:
18:04:12  <piscisaureus_> explicit Memory(Handle<v8::Value> obj);
18:04:12  <piscisaureus_> ~Memory();
18:04:12  <piscisaureus_> void* operator*() { return ptr_; }
18:04:13  <piscisaureus_> int length() { return length_; }
18:04:13  <piscisaureus_> StorageType storage_type() { return storage_type_; }
18:04:14  <piscisaureus_> bool next(); // returns false if there is no more pieces
18:04:19  <mraleph>zomg
18:04:41  <mraleph>y u paste code into IRC.
18:04:57  <piscisaureus_>mraleph: because it is my private channel :-p
18:05:19  <mraleph>changing map is fine as long as you are sure that there will be no gc's and casts of objects with altered map.
18:05:37  <mraleph>(also you should be sure that it'll give perf improvements ;-0)
18:05:55  <piscisaureus_>mraleph: well, of course. Maybe it is moot.
18:06:08  <piscisaureus_>mraleph: but without trying nobody will ever know :-)
18:06:15  <DrPizza>twobyte?
18:06:18  <DrPizza>that sounds awful
18:06:40  <piscisaureus_>DrPizza: it's just v8 terminology
18:06:53  <DrPizza>I hope it really means "UTF-16"
18:07:05  <piscisaureus_>DrPizza: no it means UCS2 :-)
18:07:15  <DrPizza>but
18:07:17  <DrPizza>surrogate pairs
18:07:22  <DrPizza>nonBMP unicode
18:07:26  <mraleph>DrPizza: exactly
18:09:02  <indutny>DrPizza: javascript is hybrid everywhere
18:09:16  <indutny>DrPizza: ucs2-ascii strings
18:09:18  <DrPizza>s/yb/or/
18:09:29  <indutny>DrPizza: double-int numbers
18:19:44  <AvianFlu>piscisaureus_, bnoordhuis, I have a very basic version of a 'detached' option for child_process.spawn() working
18:19:46  <AvianFlu>https://github.com/AvianFlu/libuv/commit/0673045c0f4ea7984df1a8bea768789bca3cc84b
18:19:54  <AvianFlu>also, https://github.com/AvianFlu/node/compare/spawn-detached
18:20:01  <mmalecki>woot!
18:20:30  <AvianFlu>I'm sure I've done 2 or 3 stupid things in dragon-land, but it daemonizes things :D
18:20:46  * `3rdEdenjoined
18:22:23  * mikealjoined
18:23:48  <AvianFlu>AndreasMadsen, you probably care about that stuff too ^^
18:28:40  * sh1mmerjoined
18:31:39  * orlandovftwquit (Ping timeout: 265 seconds)
18:46:52  * pfox___joined
18:50:57  <AndreasMadsen>AvianFlu: hi
18:52:48  <AndreasMadsen>AvianFlu: I do not see the implementation in libuv
18:53:08  <AndreasMadsen>AvianFlu: but cool if it works
18:56:57  <pfox___>hey.. is safe to call uv_close() on a handle after uv_run() returns? like, say, if you do uv_unref() after adding said handle?
18:57:36  <AvianFlu>AndreasMadsen, what do you mean?
18:58:36  <AndreasMadsen>AvianFlu: options.detached is send to uv_spawn but I do not see it in libuv anywhere.
18:59:11  <pfox___>or should i be able to de-alloc the memory
18:59:21  <AvianFlu>AndreasMadsen, the first thing I linked was my fork of libuv :)
18:59:28  <AvianFlu>https://github.com/AvianFlu/libuv/commit/0673045c0f4ea7984df1a8bea768789bca3cc84b
18:59:33  <AndreasMadsen>AvianFlu: oh, hehe
19:00:02  <AvianFlu>I'm sure there are some things I didn't do quite right... that's one of the things I want advice on :)
19:00:41  <AndreasMadsen>AvianFlu: I'm not that clever to OS things
19:01:00  <AndreasMadsen>was some years ago, but it is all gone.
19:01:09  <AvianFlu>that's how a lot of that stuff works
19:01:20  <AvianFlu>if you don't need it regularly... it's just obscure stuff you forget
19:04:19  * brsonjoined
19:04:56  <AndreasMadsen>AvianFlu: but yeah looks nice. But I actually thought is was just a uv_ref() issue and there wasn't a need to create another child or there was some OS level way to spawn a deattached process.
19:05:21  <AndreasMadsen>Anyway the implementation is very equal to the one I use in my immortal module.
19:05:34  * mikealquit (Quit: Leaving.)
19:06:11  <AvianFlu>AndreasMadsen, that's part of the idea - solve it once in core so we can all just say "daemon, please" in userland
19:06:21  <AvianFlu>and not need crazy shit, or daemon.node
19:07:38  <AndreasMadsen>AvianFlu: when I cp.spawn() what is the .pid property referring too. The unattached child or the "middle child".
19:07:50  <AvianFlu>AndreasMadsen, currently, the 'middle child'
19:08:09  <AvianFlu>the daemon child is usually that + 1 - but that seems racy
19:08:22  <AvianFlu>probably a better way to deal with that
19:08:36  <AvianFlu>also, as-is, the 'exit' event is never fired on the child object in node
19:08:37  <AndreasMadsen>AvianFlu: yeah, I'm facing that problem in immortal too.
19:08:56  <AvianFlu>uv_close() makes them go away and stops the event loop from staying up
19:09:07  <AvianFlu>but I don't think the 'close' events are ever actually fired on the stdio streams
19:09:31  <AvianFlu>might have to change child_process.js some; I might just be a noob at libuv :)
19:10:57  <AndreasMadsen>AvianFlu: to fix the exit event issue, would require a total different approach (don't ask me how).
19:11:16  <AndreasMadsen>^ I belive
19:11:51  * indutnychanged nick to indutny_away
19:18:12  <AvianFlu>AndreasMadsen, I think the js might just need to be changed a little
19:18:28  <AvianFlu>I'm not completely sure though either :)
19:19:32  * AndreasMadsenhmm
19:21:09  <AvianFlu>the problem is that the js explicitly waits for the three 'close' events from the stdio streams to the child before emitting the 'exit' event
19:21:28  <AvianFlu>the funny thing is that you can get a SIGCHLD and still have the js hang forever waiting for the close events :D
19:23:09  <AndreasMadsen>AvianFlu: yeah I have thought about rewriting that so mabyExit isn't used.
19:23:40  <AvianFlu>what did you think about doing instead?
19:25:45  <AndreasMadsen>AvianFlu: something like this => https://github.com/AndreasMadsen/node-1/blob/child2/lib/child_process.js#L141L189
19:28:20  * orlandovftwjoined
19:28:23  * orlandovftwquit (Client Quit)
19:28:37  * orlandovftwjoined
19:29:02  <AvianFlu>AndreasMadsen, I like that.
19:29:10  <AvianFlu>I'm gonna try this on my branch a little bit later.
19:29:49  <AndreasMadsen>AvianFlu: It was a total rewrite of the child_process module, but it depending on isolate and then that was removed I never got back to it.
19:30:24  <AvianFlu>yeah, makes sense
19:31:06  <AndreasMadsen>old pull request there never landed :) -> https://github.com/joyent/node/pull/2544
19:33:28  <AndreasMadsen>Have been thinking about rewriting child_process again, but I can't figure out how to make the forkChannel abstraction in a pretty way.
19:35:05  <AndreasMadsen>AvianFlu: also did you seen https://github.com/joyent/node/pull/2676 - it is wrong but the option to not instantly deattach a child would be so cool.
19:36:02  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
19:36:06  <AvianFlu>yeah, that's definitely a neat idea
19:36:57  <AvianFlu>AndreasMadsen, what did you mean about a 'bug reminder about uv_close()' ?
19:38:31  <AndreasMadsen>AvianFlu: it calls this._internal.close(), and that do some uv_unref thing so the parent can die, but it also call uv_close on the "is process alive channel" (the thing there emit exit). But I shouldn't be allowed to do that since the process is alive.
19:38:46  <AndreasMadsen>In fact the uv_close should close.
19:38:51  * indutny_awaychanged nick to indutny
19:41:47  <AndreasMadsen>In fact the uv_close should throw.
19:41:53  <AndreasMadsen>^ wrote wrong
19:42:21  <AvianFlu>that makes sense
19:42:37  <AndreasMadsen>AvianFlu: but it works perfectly :D
19:42:46  <AvianFlu>yeah, funny how that works sometimes
19:43:25  <AndreasMadsen>The process don't even become a zombie process, witch indicate some cleanup also is done.
19:44:10  <AndreasMadsen>s/witch/which/ <- but I like the witch too
19:44:42  <AndreasMadsen>The witch indicate that the zombie was cleaned up :D
19:44:46  <AvianFlu>lol
19:45:01  <AvianFlu>english is an awful language for stuff like that, don't feel bad :D
19:45:15  <AvianFlu>in my testing, I was never able to get the first child to be a session leader
19:45:23  <AvianFlu>I may just be a noob, but it always took the second fork
19:45:32  <AvianFlu>before setsid() seemed to do anything
19:46:49  <AndreasMadsen>I feel bad because danish is a extinct language. We are 5.5 million and we don't become more.
19:47:18  <AndreasMadsen>AvianFlu: strange, setsid should work
19:47:57  <AvianFlu>AndreasMadsen, the first thing I tried to do was get the setsid: true option working
19:48:10  <AvianFlu>that option as it is is never even passed down out of JS
19:48:41  <AndreasMadsen>AvianFlu: I thought so. Thats why immortal fuck to badly to session leader.
19:49:52  <AvianFlu>yeah, that's just a dummy option >.<
19:50:00  <AndreasMadsen>It would be cool if setsid would be fixed in 0.6 too.
19:50:03  <AvianFlu>I should probably make a separate docs patch for that
19:51:54  <AvianFlu>AndreasMadsen, I don't think it can actually work, that's why I went for the double-fork instead
19:52:14  <AvianFlu>that might also be why it's only in js - somebody tried and it wasn't working
19:52:17  <AvianFlu>that's just a guess though
19:52:33  <AndreasMadsen>AvianFlu: neither do I, but it would be cool.
20:07:16  * `3rdEdenquit (Read error: Connection reset by peer)
20:07:27  * `3rdEdenjoined
20:16:06  * mikealjoined
20:28:18  * AndreasMadsenquit (Remote host closed the connection)
20:37:25  * mikealquit (Quit: Leaving.)
20:39:22  * TooTallNatejoined
20:40:54  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
20:41:53  * mikealjoined
20:51:08  <mmalecki>bnoordhuis: you around?
20:51:40  <bnoordhuis>mmalecki: i am now
20:52:05  <mmalecki>bnoordhuis: I squashed "leaks" to `options` in https, http and tls
20:52:21  <mmalecki>bnoordhuis: I'll pull request in a sec, can you review that?
20:52:31  <bnoordhuis>eventually, yes :)
20:53:32  * brsonquit (Quit: leaving)
20:55:26  <mmalecki>bnoordhuis: https://github.com/joyent/node/pull/2794
20:55:57  <mmalecki>bnoordhuis: separated into 2 commits, util._extend and squashing these pollutions
20:56:03  <mmalecki>bnoordhuis: squash at will
20:56:41  <CIA-99>node: Andreas Madsen master * r3f40623 / src/node.cc : core: ignore too many arguments, don't assert - http://git.io/0oOw3A
20:59:23  <bnoordhuis>gah, that linter makes me rage face
20:59:52  <indutny>Y U LINT
21:00:00  * indutnychanged nick to indutny_is_final
21:00:01  <mmalecki>I mean, I want to run `make test`, linter shouldn't stop the whole process or be run at the end of it
21:00:06  <indutny_is_final>oh
21:00:13  <indutny_is_final>names are too short on IRC
21:00:21  * indutny_is_finalchanged nick to indutny_iz_slpng
21:00:30  <mmalecki>night indutny_iz_slpng
21:00:36  <indutny_iz_slpng>you too
21:00:54  <mmalecki>indutny_iz_slpng: nope, devops never sleeps!
21:01:00  <mmalecki>lol
21:01:03  <indutny_iz_slpng>mmalecki: good luck with that
21:01:14  <indutny_iz_slpng>I'm up for almost 24 hours now
21:01:19  <indutny_iz_slpng>22.5
21:01:49  <mmalecki>indutny_iz_slpng: oh, yeah, go to sleep, definitely
21:01:56  <indutny_iz_slpng>thanks
21:02:01  <indutny_iz_slpng>ttyl everyone
21:02:50  * brsonjoined
21:03:36  <bnoordhuis>mmalecki: https://github.com/joyent/node/pull/2794/files#L2R1080 <- that looks like an unrelated change
21:04:02  <mmalecki>bnoordhuis: agent?
21:04:11  <mmalecki>bnoordhuis: it is related
21:04:15  <bnoordhuis>mmalecki: yes, particularly globalAgent
21:04:18  <mmalecki>https://github.com/joyent/node/pull/2794/files#L2L1429
21:04:27  <mmalecki>bnoordhuis: I removed it from there
21:04:42  <bnoordhuis>ah, subtle
21:04:58  <mmalecki>indeed!
21:05:45  <CIA-99>node: Maciej Małecki master * rc6c6f98 / (lib/child_process.js lib/cluster.js lib/util.js):
21:05:46  <CIA-99>node: util: add `util._extend` for extending objects
21:05:46  <CIA-99>node: There were 2 duplicates with such functionality in `cluster` and
21:05:46  <CIA-99>node: `child_process` modules which were replaced by this function. - http://git.io/NQW8Iw
21:05:46  <CIA-99>node: Maciej Małecki master * rda90836 / (lib/http.js lib/https.js lib/tls.js): tls http https: don't pollute user's `options` object - http://git.io/qr2hhA
21:06:07  <mmalecki>bnoordhuis: thank you!
21:06:07  <TooTallNate>bnoordhuis: ohh do me next!
21:06:11  * TooTallNatethat's what she said
21:06:22  <bnoordhuis>hah
21:06:27  <bnoordhuis>yeah, working down the list
21:06:44  <TooTallNate>https://github.com/joyent/node/pull/2793 ;)
21:07:30  <mmalecki>TooTallNate: "☮ ~ (master) ⚡"? nice shell you have there, sir!
21:07:39  <bnoordhuis>looks complicated, nathan
21:08:07  <TooTallNate>mmalecki: haha, thanks man, looks better in color!
21:08:19  <mmalecki>TooTallNate: do you have your dotfiles somewhere?
21:08:25  * piscisaureus_joined
21:08:31  <TooTallNate>bnoordhuis: i suppose, it's based off of ccroot.py in WAF
21:08:36  <mmalecki>TooTallNate: oh, you do
21:08:58  <TooTallNate>mmalecki: https://github.com/TooTallNate/dotfiles/blob/master/.bashrc#L14
21:09:20  <mmalecki>TooTallNate: yeah
21:09:27  <mmalecki>TooTallNate: neat!
21:09:40  <TooTallNate>:p thanks
21:10:11  <TooTallNate>bnoordhuis: it could use some improvements i think, like accepting `CC=gcc4 ./configure`
21:11:21  * travis-cijoined
21:11:21  <travis-ci>[travis-ci] joyent/node#465 (master - 3f40623 : Andreas Madsen): The build is still failing.
21:11:21  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/f116e17...3f40623
21:11:21  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/710067
21:11:21  * travis-cipart
21:11:38  <TooTallNate>bnoordhuis: but essentially its a stripped down version of: https://github.com/joyent/node/blob/master/tools/wafadmin/Tools/ccroot.py#L23-113
21:14:37  <bnoordhuis>i have this nagging feeling that it could be done simpler
21:14:40  <bnoordhuis>but it works well enough
21:15:29  <CIA-99>node: Nathan Rajlich master * r19133ca / configure :
21:15:29  <CIA-99>node: build: better host_arch() definition in configure
21:15:29  <CIA-99>node: On one of my OS X Lion machines, it always reports i386, even though 64-bit
21:15:29  <CIA-99>node: is supported. This lookup better matches how WAF determines the host arch,
21:15:29  <CIA-99>node: which was correctly getting 64-bit even on this screwy machine. - http://git.io/f6Jatg
21:15:34  <bnoordhuis>TooTallNate: ^
21:15:40  <TooTallNate>bnoordhuis: thanks! :)
21:15:54  <mmalecki>merging spree!
21:16:46  <AvianFlu>bnoordhuis, piscisaureus_, did you guys see the code I linked before? I got a very basic version of the 'detached' option for child_process.spawn() working earlier
21:17:31  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
21:17:33  <bnoordhuis>AvianFlu: can you link me again?
21:18:19  <AvianFlu>sure, here's the libuv side https://github.com/AvianFlu/libuv/commit/0673045c0f4ea7984df1a8bea768789bca3cc84b
21:18:27  <AvianFlu>and https://github.com/AvianFlu/node/compare/spawn-detached
21:18:38  <AvianFlu>I'm sure I did it messy, and I need help with the windows side :)
21:18:43  <AvianFlu>but it daemonizes things
21:20:28  * travis-cijoined
21:20:29  <travis-ci>[travis-ci] joyent/node#466 (master - da90836 : Maciej Małecki): The build is still failing.
21:20:29  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/3f40623...da90836
21:20:29  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/710122
21:20:29  * travis-cipart
21:21:16  <AvianFlu>I had to remove an assert, too, I'm sure that's somehow not the best thing to do
21:21:46  <bnoordhuis>aww, another layer of indenting in process.c
21:22:11  <bnoordhuis>that file is becoming rather unwieldy
21:23:09  <AvianFlu>I thought about a separate function for this, but it ended up not being very big
21:23:34  <bnoordhuis>AvianFlu: why do you need to fork twice? fork + setsid should be enough
21:23:52  <AvianFlu>when I was testing, it looked like the child never actually detached
21:24:03  <AvianFlu>it always seemed to still be a child and still die when the parent exited
21:24:15  <bnoordhuis>did the session/group id change?
21:24:30  <AvianFlu>I don't think so
21:24:35  <AvianFlu>I can look into it more
21:25:13  <bnoordhuis>yes, it's worth investigating
21:27:24  <bnoordhuis>otherwise lgtm, i think - no complaints about the node side of things
21:27:42  <bnoordhuis>maybe needs a windows implementation too but i have no idea how that would work
21:27:51  <AvianFlu>bnoordhuis, one thing on the node side that bothered me a little is that the 'exit' event never fires on the child object
21:28:04  <AvianFlu>there's a maybeExit function that waits for the 'close' events on the stdio streams
21:28:32  * AndreasMadsenjoined
21:28:36  <AvianFlu>I wasn't sure if that was a problem or not, with the second child and all
21:28:57  <AvianFlu>also, the windows part is apparently just two flags set on the process creation, and closing the handles... it shouldn't be too bad
21:29:03  <bnoordhuis>AvianFlu: the close event should fire when the parent closes the pipes, right?
21:29:33  <AvianFlu>I would expect it, yeah
21:29:48  <AndreasMadsen>and the .pid
21:30:11  <AvianFlu>oh yeah, I forgot the pid part - the parent only knows the pid of the first child when you fork twice
21:30:20  <AvianFlu>so I'll check the setsid() part some more
21:30:27  <AvianFlu>make sure two forks is actually necessary
21:32:04  * travis-cijoined
21:32:04  <travis-ci>[travis-ci] joyent/node#467 (master - 19133ca : Nathan Rajlich): The build is still failing.
21:32:04  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/da90836...19133ca
21:32:04  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/710170
21:32:04  * travis-cipart
21:35:27  <bnoordhuis>\0/ zero unread github emails!
21:35:45  * bnoordhuisgoes back to leveling up in world of warcraft
21:35:56  <AvianFlu>lolol
21:37:49  <mmalecki>lol, I have like 700 of those
21:38:25  <mmalecki>I just wait for people to start pinging me on IRC :P
21:40:24  * isaacsjoined
21:51:34  * AndreasMadsenquit (Remote host closed the connection)
21:52:55  <TooTallNate>mmalecki: https://gist.github.com/1871735
21:53:42  <mmalecki>TooTallNate: hahahaha
21:53:51  <mmalecki>TooTallNate: that can get useful!
21:54:07  <TooTallNate>mmalecki: i just use gmail to manage my github stuffs
21:54:28  <mmalecki>TooTallNate: yeah, github's notification system sucks
21:54:37  <TooTallNate>yup yup
21:54:50  <tjfontaine>s/'s notification system//
21:55:02  <mmalecki>false!
21:55:17  <TooTallNate><3 github
21:55:25  <mmalecki>TooTallNate: ++
21:55:25  <kohai>TooTallNate has 5 beers
21:55:26  <tjfontaine>missing the complete point of D in DVCS :)
21:55:40  <tjfontaine>lest I hear about "oh man github is down *again*"
21:55:41  <mmalecki>uhm, no?
21:56:05  <TooTallNate>i should have edited the html and made the notification count some outrageous number
21:56:06  * `3rdEdenquit (Quit: Zzz)
21:56:12  <mmalecki>I have no problems with committing and pushing to other remotes
21:56:19  <tjfontaine>TooTallNate: clearly over9000
21:56:55  <tjfontaine>mmalecki: I have problems with everyone relying on a central service for pretty viewvc and merge tools
21:57:33  <mmalecki>tjfontaine: github is a tool
21:58:06  <tjfontaine>mmalecki: I agree, but I think we have different connotations
21:58:08  <mmalecki>tjfontaine: also, you can't deny that github makes it epicly easy to contribute
21:58:30  <tjfontaine>I can, you just might disagree with me
21:58:31  <mmalecki>tjfontaine: at this point, when I see "send patches to mailing list", I go "meh"
21:58:53  <mmalecki>haha, yeah :)
22:01:06  <tjfontaine>I dont' disagree that there are portions of the interface that are useful, I just feel like the base implementation is dreadfully flawed
22:01:50  <TooTallNate>tjfontaine: do you mean the "fork" philosophy?
22:02:34  <tjfontaine>TooTallNate: not entirely, but mostly that we rely heavily on their infrastructure, instead of pushing out into a more distributed fashion
22:07:14  * piscisaureus_joined
22:08:20  <bnoordhuis>now one of the great questions of our time...
22:08:35  <bnoordhuis>what keys in vim are safe to reassign because you never use them otherwise?
22:09:15  <bnoordhuis>i don't want to type :nohlsearch all the time but i've run out of keys...
22:09:15  <mmalecki>bnoordhuis: I <3 one of my maps
22:09:21  <orlandovftw>bnoordhuis: \
22:09:35  <mmalecki>bnoordhuis: https://github.com/mmalecki/dotfiles/blob/master/vim/vimrc#L26
22:09:36  <orlandovftw>i use \/ to comment lines, \\/ to uncomment
22:09:49  <mmalecki>you don't use ; in normal mode anyway
22:09:50  <bnoordhuis>orlandovftw: good one but \ is in a really awkward spot on my keyboard
22:10:04  <orlandovftw>\\\ to "set nopaste nohl" and some others
22:10:07  <orlandovftw>ah :(
22:10:28  <bnoordhuis>mmalecki: i have ; remapped :)
22:10:32  <TooTallNate>mmalecki: i have that same one
22:10:34  <mmalecki>bnoordhuis: win!
22:10:57  <orlandovftw>mmalecki: ; does a repeat of your last f, t, t, T
22:10:59  <orlandovftw>iirc
22:11:10  <mmalecki>not a mapping, but I like these two from felixge https://github.com/mmalecki/dotfiles/blob/master/vim/vimrc#L28-29
22:11:46  <mmalecki>orlandovftw: oh? I don't recall using it anyway, gotta check
22:12:10  <bnoordhuis>mmalecki: what does g:tagbar_ctags_bin do?
22:12:15  <orlandovftw>pretty useful, for jumping to say commas: f,;;;
22:12:32  <mmalecki>bnoordhuis: sets executable used by ctags plugin
22:13:02  <mmalecki>bnoordhuis: http://majutsushi.github.com/tagbar/
22:13:12  <bnoordhuis>mmalecki: so you don't os x's horrible default ctags? good one
22:13:24  * dshaw_quit (Quit: Leaving.)
22:13:28  <mmalecki>bnoordhuis: yeah
22:13:52  <mmalecki>bnoordhuis: I installed better ones with brew
22:14:40  <mmalecki>bnoordhuis: also, https://github.com/mmalecki/vim-node.js
22:15:04  <bnoordhuis>hah, cute
22:15:10  <mmalecki>bnoordhuis: and for mappings, I don't recall using '1' as a key
22:15:45  <bnoordhuis>in normal mode? what about movement and repeats?
22:16:05  <bnoordhuis>it's kind of awkward if 10. doesn't work anymore
22:16:17  <mmalecki>bnoordhuis: fuck, forgot about it
22:16:27  <bnoordhuis>heh
22:16:27  <mmalecki>it's hard to remember this stuff
22:16:40  <mmalecki>actually, let me do some coding session, be back in 10
22:17:17  <orlandovftw>what about backtick?
22:17:17  <orlandovftw>`
22:22:43  <bnoordhuis>orlandovftw: in use
22:23:33  <orlandovftw>function keys? :)
22:23:37  * orlandovftwgot nothin
22:23:50  <bnoordhuis>yeah, last resort :)
22:30:24  * dshaw_joined
22:30:57  <mmalecki>bnoordhuis: I haven't used '|' and '\'
22:32:46  * hij1nxquit (Read error: Connection reset by peer)
22:32:53  * hij1nxjoined
22:53:24  * dshaw_quit (Quit: Leaving.)
22:56:42  * mralephquit (Quit: Leaving.)
23:09:54  * igorzijoined
23:10:08  <igorzi>piscisaureus_: hey yt?
23:10:14  <piscisaureus_>igorzi: yup
23:10:21  <igorzi>http://groups.google.com/group/nodejs/browse_thread/thread/ffd00d5213175428
23:10:38  <igorzi>do we have his list of LSPs?
23:11:09  <piscisaureus_>igorzi: no.
23:11:20  <piscisaureus_>igorzi: I asked all the people here -> https://github.com/isaacs/npm/issues/1894#issuecomment-3679754
23:11:27  <piscisaureus_>igorzi: but nothing too interesting was reported
23:12:30  <igorzi>%SystemRoot%\system32\vsocklib.dll
23:12:37  <igorzi>Marcas de servicio: 0x9
23:12:54  <piscisaureus_>igorzi: that was just one of the people
23:12:58  <piscisaureus_>igorzi: but, yes, grated
23:13:00  <piscisaureus_>*granted
23:13:55  <igorzi>what was that command again to get lsps? we should ask SARFRAZ to post it (on http://groups.google.com/group/nodejs/browse_thread/thread/ffd00d5213175428 thread)
23:14:10  <piscisaureus_>igorzi: go ahead. netsh winsock show catalog
23:14:25  <igorzi>piscisaureus_: i'm going to prepare that patch today (got distracted by other things)
23:14:43  * hij1nxquit (Quit: hij1nx)
23:14:51  <piscisaureus_>igorzi: then also ask him for `ipconfig /all`
23:15:50  * creationixpart ("Leaving")
23:17:07  <piscisaureus_>igorzi: that colleague of yours that could reproduce it every time - did he ever reproduce it after you had a look at his machine?
23:17:18  <igorzi>nope
23:19:05  <piscisaureus_>golden hands syndrome
23:23:39  * dshaw_joined
23:26:13  <piscisaureus_>igorzi: ok, here's the funny thing.
23:26:17  <piscisaureus_>igorzi: it happens for me now
23:26:18  <piscisaureus_>!
23:26:42  <igorzi>piscisaureus_: that's good and bad :)
23:26:54  <igorzi>piscisaureus_: got any weird LSPs?
23:26:55  <piscisaureus_>igorzi: well I consider it mostly good :-). I hope it persists
23:27:03  <piscisaureus_>igorzi: nope, thot that I am aware off
23:28:21  <piscisaureus_>igorzi: ah crap, I was running the wrong thing :-(
23:28:26  * dshaw_quit (Ping timeout: 276 seconds)
23:29:48  <igorzi>damn :)
23:30:13  * dshaw_joined
23:32:38  * mralephjoined
23:33:57  * hij1nxjoined
23:34:30  * stephankquit (Quit: *Poof!*)
23:34:40  * dshaw_quit (Ping timeout: 252 seconds)
23:35:29  <isaacs>mraleph: hey, so, i think i might have found something very interesting about how v8 reads in utf8 chars as a string
23:35:34  <isaacs> char tiger[] = { 0xf0, 0x9f, 0x90, 0x85, 0 };
23:35:35  <isaacs> Local<String> TigerStr = String::New(tiger, 4);
23:36:20  <isaacs>mraleph: if you do that, then the resulting string has a length of 1, and the Utf8Value it produces is {0xEC, 0xBF, 0xBD}
23:36:52  <piscisaureus_>isaacs: you just hit the same issue
23:37:00  <isaacs>huh?
23:37:07  <isaacs>piscisaureus_: same issue as what?
23:37:15  <piscisaureus_>isaacs: non-bmp character being turned into unicode replacement character
23:37:22  <isaacs>right! but that's just it!
23:37:27  <isaacs>it's not the correct unicode replacement character.
23:37:36  <piscisaureus_>isaacs: why not?
23:37:42  <isaacs>i'd expect it to turn into "\uD83D\uDC05"
23:37:58  <piscisaureus_>isaacs: that's not a replacement character - that's a surrogate pair
23:37:58  <isaacs>that would be the UCS-2 representation of the UTF-16 surrogate pair
23:38:01  <isaacs>right
23:38:28  <piscisaureus_>isaacs: it's not what v8 does - it replaces non-bmp stuff by an unicode replacement character
23:38:34  <isaacs>but, if you have a UTF-8 webpage, and you put the bytes { 0xf0, 0x9f, 0x90, 0x85 } in it, then check document.body.innerHTML, you'll see "\uD83D\uDC05" in it.
23:38:45  <piscisaureus_>isaacs: yes. webkit does it right.
23:39:00  <isaacs>or if you do document.write("\uD83D\uDC05"), then it'll print a tiger.
23:39:09  <piscisaureus_>isaacs: there is a v8 issue for this, let me look it up
23:39:23  <piscisaureus_>isaacs: but there was a reason why it couldn't be fixed iirc
23:39:26  <isaacs>if so, then we need to get voxer following it, and perhaps figure out a workaround for node.
23:39:39  <piscisaureus_>isaacs: I am already working on a workaround for node
23:39:48  <isaacs>it seems like we could fix this at the new Buffer(str, "utf8") and Buffer.toString("utf8") API points.
23:39:57  <isaacs>piscisaureus_: that's awesome.
23:40:04  <piscisaureus_>isaacs: well, we could, but it would be slow :-)
23:40:07  <isaacs>sure.
23:40:21  <isaacs>we could have a switch to turn it on or something
23:40:23  * xaqjoined
23:40:25  <piscisaureus_>isaacs: because it requires 2 copies. But I think we can chop up v8
23:40:35  <isaacs>or we could just fix it in v8
23:40:35  <piscisaureus_>isaacs: nah, it should just be enabled by default
23:40:47  <isaacs>fixing it properly in v8 would be the way to go
23:41:25  <piscisaureus_>v8-api string handling could use some love :_)
23:41:47  <isaacs>piscisaureus_: there's a lot of dark magic in there, i know
23:41:53  <piscisaureus_>isaacs: http://code.google.com/p/v8/issues/detail?id=761&can=1&q=surrogate&colspec=ID%20Type%20Status%20Priority%20Owner%20Summary%20HW%20OS%20Area%20Stars
23:42:00  <isaacs>also: we need to get a benchmark for them
23:42:16  <isaacs>my example is better.
23:42:20  <isaacs>because tigers are more badass
23:43:39  <piscisaureus_>isaacs: I am working on a v8 api that allows us to access raw string memory. That would mean we could have our own charset converters.
23:43:55  <piscisaureus_>isaacs: (it would have to be accepted upstream of course)
23:43:59  <isaacs>sure
23:44:11  <isaacs>really, not being able to handle utf8 properly is a huge problem.
23:44:20  <isaacs>what does chrome do for this?
23:44:44  <piscisaureus_>isaacs: probably converts everything to utf16, then use String::new
23:44:46  <isaacs>it must have some way to turn utf8 bytes into a thing that v8 can deal with
23:44:50  <isaacs>hm.
23:44:51  <piscisaureus_>isaacs: that is two copies
23:44:54  <isaacs>right
23:44:57  <piscisaureus_>isaacs: not acceptable for us :_0
23:44:59  <mraleph>if you don't want to rely on V8 utf8 decode (e.g. you want to get surrogate pairs for your tiger) you should use ExternalStringResource
23:45:39  <piscisaureus_>mraleph: so how would we do it the other way around?
23:45:56  <isaacs>mraleph: how does that help? i still need to be able to present teh string to a JS program appropriately
23:45:57  <piscisaureus_>e.g. have our own *encode* ?
23:46:29  <mraleph>https://github.com/v8/v8/blob/master/include/v8.h#L1108-1135
23:46:35  <isaacs>would i have to copy the string to another buffer (encoding it utf16) and then tell v8 to use that?
23:46:48  <mraleph>yes
23:46:58  <piscisaureus_>mraleph: also, I don't know how the interaction between GC and external strings is but my gut feeling is not good
23:47:32  <mraleph>because V8's utf-8 decoder will always replace non-bmp characters with replacement character.
23:47:39  <mraleph>piscisaureus_: it should be fine
23:48:05  <isaacs>hm.. that's kind of expensive, isn't it? we end up tripling the memory usage for the string, mostly for zeroes, right?
23:48:23  <piscisaureus_>isaacs: well, there is also externalAsciiStringResource
23:49:03  <piscisaureus_>isaacs: you should be aware that v8 does that too - if there's non-ascii characters in your string, it will use a 16-bit representation
23:49:25  <mraleph>I don't follow why it is more expensive than re-encoding utf-8 string with built-in V8 decoder
23:49:57  <piscisaureus_>mraleph: agreed
23:49:59  <mraleph>one way or the other if you want to make a string you will have to copy things around a bit
23:50:07  <piscisaureus_>mraleph: but the other way around it is more expensive.
23:50:44  <piscisaureus_>mraleph: if v8 has to copy the string out of the heap (and possibly convert) it, and then we make another conversion pass to turn it into utf8.
23:51:47  <mraleph>m?
23:52:11  <piscisaureus_>mraleph "m?"?
23:53:22  <mraleph>I do not follow :-)
23:54:17  <isaacs>ok, i see, so we'd just be doing the same thing that v8 does, but interpreting utf8 non-BMP codepoints as 2 16bit chars, rather than 1 mochibake
23:54:41  <piscisaureus_>mraleph: Ok. so how would we implement a function that turns a v8 heap string into an utf-8 encoded buffer
23:54:47  <piscisaureus_>with surrogate pairs
23:54:59  <isaacs>i don't get why v8 can't do this, rather than us use external strings?
23:55:34  * bnoordhuisquit (Read error: Operation timed out)
23:55:48  <mraleph>piscisaureus_: I think you are trying to solve problem the other way around… you have a buffer (with utf-8) and you want to make a string in V8
23:56:03  <piscisaureus_>mraleph: we have to solve it both ways
23:56:40  <isaacs>yes, we definitely have to solve it in both directions.
23:56:49  <isaacs>but it might be good to focus on one first :)
23:57:02  <piscisaureus_>mraleph: We need surrogate pairs to be turned back into non-bmp characters, which WriteUtf8 / String::Utf8Value does not do
23:57:17  <mraleph>piscisaureus_: ah I see
23:57:59  <mraleph>piscisaureus_: there is just String::Value
23:58:13  <mraleph>piscisaureus_: you take it and recode in any way you want.
23:58:25  <piscisaureus_>mraleph: that requires a copy and (often) a conversion
23:58:39  <piscisaureus_>if the heap representation is ascii
23:58:52  * TooTallNatequit (Quit: Leaving...)
23:58:56  <mraleph>isaacs: it's an interesting question… I don't know.
23:59:37  <piscisaureus_>mraleph: that was the reason I was working on this "raw string access" api this afternoon
23:59:47  <piscisaureus_>mraleph: so we can have our own conversion routines, and to solve this: http://code.google.com/p/v8/issues/detail?id=1665&q=utf8&colspec=ID%20Type%20Status%20Priority%20Owner%20Summary%20HW%20OS%20Area%20Stars