18:35:04  <isaacs>slurp: welcome back
18:35:29  <rendar>bnoordhuis: i see!
18:35:54  <rendar>bnoordhuis: well, eventfds are a linux thing?
18:35:59  <bnoordhuis>rendar: yes
18:36:16  <rendar>bnoordhuis: i see! but are they part of the epoll_*() apis?
18:36:40  <bnoordhuis>rendar: not really. but they're part of the kernel syscall api
18:36:40  <isaacs>fixed
18:36:41  <isaacs>bnoordhuis: nvm
18:36:47  <isaacs>i'm gonna set a crontab to restart it daily
18:37:01  <isaacs>easier than fixing irc.js to handle netsplits
18:37:05  <rendar>bnoordhuis: i see, can you tell me the name of those apis, so i can search and study them?
18:37:17  <bnoordhuis>rendar: man eventfd :)
18:37:22  <bnoordhuis>rendar: also, man 7 epoll
18:37:46  <rendar>oh, only eventfd() ..i see!
18:38:04  <rendar>bnoordhuis: of course, if you don't use eventfd() you have to do the pipe trick even on linux, right?
18:38:19  <bnoordhuis>yes, it falls back to pipes on pre-2.6.22 kernels
18:38:52  <rendar>i see! cool
18:40:56  <rendar>bnoordhuis: so basically pipes are local unix sockets (or just pipes like those for redicrect child's stdin/stdout?) whose fd is in the list of epoll() of the fds to "listen" for i/o, and when an operation completes, epoll_wait() returns, so the thread can execute something that is in a queue, i guess protected with a mutex or something like that..
18:43:43  <MI6>joyent/node: isaacs v0.8 * b0e7dbf : http: Do not free the wrong parser on socket close This appears to fix # - http://git.io/P-yaGg
18:43:45  <bnoordhuis>rendar: yes, that's correct, including the mutex
18:44:04  <isaacs>ok, starting 0.8.21
18:45:09  <bnoordhuis>i guess that's the one important commit? ^
18:45:33  <rendar>bnoordhuis: oh i see, i guess there is no need of a conditional_variable because the pipe acts like a cond. var. wakeing up the thread, right?
18:46:14  <bnoordhuis>rendar: well, there's still a lock because there are several threads and pushing/popping from the work queue is not an atomic operation
18:46:30  <MI6>joyent/node: isaacs created branch v0.8.21-release - http://git.io/A-V4kg
18:46:37  <bnoordhuis>the critical section is rather small though and the lock is nearly uncontended
18:46:53  <bnoordhuis>at least, i've never seen it pop up in profile graphs
18:47:14  <rendar>bnoordhuis: yeah exactly
18:48:00  <rendar>bnoordhuis: well i was just guessing about a cond. var. that in such a scenario would be needed to wake up the thread waiting "something", to make it processes the queue and do the works, but this role is taken by the pipe there..
18:48:59  <bnoordhuis>rendar: yes, that's correct - the mutex is only to synchronize on, not to wake up the other thread
18:49:06  <rendar>yep
18:50:07  <sblom>Anybody have feedback on https://github.com/joyent/node/pull/4780 ? It keeps child_process.spawn() from trying to read stdout from an unconnected, non-existent child process.
18:50:27  <sblom>I don't know if, in Posix, we were depending on some side effects that are now being prevented.
18:50:50  <sblom>The unit tests are still passing for me on Posix, and freshly passing for me on Windows.
18:52:05  <sblom>The other thing that feels kinda weird to me is that I'm using pid == 0 as a test for "something went wrong". As far as I can tell, this is universally safe, but I was disappointed that I didn't come up with something more precise.
18:54:25  <bnoordhuis>sblom: when is self.pid 0?
18:54:35  <bnoordhuis>it seems kind of... i don't know
18:55:49  <sblom>On Windows, it's 0 if anything goes wrong during the spawn().
18:56:04  <sblom>On Posix, it shouldn't be 0 unless something really weird happened during the fork/exec.
18:57:51  <bnoordhuis>sblom: okay, but why null instead of stdio.handle in that case?
18:58:02  <bnoordhuis>stdio.handle does refer to a valid object at that point?
18:58:13  <bnoordhuis>(minus question mark)
18:58:24  * c4milojoined
18:58:56  <bnoordhuis>there should probably be a comment explaining why
18:59:25  * hzjoined
18:59:38  <sblom>stdio.handle has a value, at least on Windows. And trying to touch it causes an unexpected ENOTCONN
18:59:43  <sblom>Well, "unexpected".
19:00:52  <bnoordhuis>what does it refer to and why the ENOTCONN? (okay, i can guess the latter)
19:01:13  <MI6>joyent/node: isaacs v0.8.21-release * 423e860 : 2013.02.25, Version 0.8.21 (Stable) * http: Do not free the wrong parser - http://git.io/d3XhOw
19:03:39  <trevnorris>isaacs: was benchmarking your 3.16 branch (against things that don't depend on Utf8Length). it's slightly slower, and uses at least as much memory.
19:04:15  <trevnorris>right now it seems like 3.14 is the most performant and memory friendly so far.
19:05:54  <isaacs>trevnorris: that's weird
19:05:59  <sblom>bnoordhuis: I don't remember--I'm refreshing my memory now. I think libuv was relaying some values that it got from Windows.
19:06:23  <isaacs>bnoordhuis: how do you feel about moving to v8 3.14?
19:10:36  <bnoordhuis>isaacs: bad but i guess it's inevitable
19:10:47  <bnoordhuis>3.16+ is decidedly unstable
19:12:48  <bnoordhuis>it'll require undoing the 'default isolate' changes
19:13:00  <isaacs>yeah
19:13:04  <isaacs>and 3.15 is slower.
19:13:11  * brsonjoined
19:13:58  <isaacs>we can do 3.14 for v0.10, and then upgrade to 3.(whenever that cons regression is fixed) for v0.12
19:14:20  <isaacs>sometimes it sucks living in the real world
19:20:36  <sblom>bnoorduis: I haven't managed to quickly remind myself--I'll do some work to convnice myself that I can't just leave those handles unset (or even forcibly unset them) if the spawn() fails.
19:20:49  <sblom>But I'm sure I already went down that path.
19:25:30  <bnoordhuis>dinner, biab
19:30:14  * bnoordhuisquit (Ping timeout: 255 seconds)
19:31:18  <isaacs>tjfontaine: /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
19:33:25  * bradleymeckquit (Ping timeout: 256 seconds)
19:37:14  * `3rdEdenquit (Quit: brb)
19:44:22  * `3rdEdenjoined
19:57:27  * brsonquit (Ping timeout: 260 seconds)
19:58:02  * brsonjoined
20:00:22  * sblompart
20:36:04  * bnoordhuisjoined
20:40:26  * bnoordhuisquit (Ping timeout: 245 seconds)
20:53:47  * txdvjoined
20:53:59  <trevnorris>isaacs: dude, i'm about to flip out. got the emit() running noticeably faster, but it deopt's whenever the process emits something.
20:55:27  * qmx|awaychanged nick to qmx
21:00:52  * benoitcquit (Excess Flood)
21:05:01  <isaacs>trevnorris: hahahha
21:05:23  <isaacs>trevnorris: take a break. walk around and try not to think about node for at least 15 minuts.
21:05:36  <isaacs>trevnorris: when you come back, your subconscious will either have something for you, or at least will have given up on it
21:05:39  <isaacs>either way, ++
21:06:09  <trevnorris>dude, I actually dreamed up an improved logic flow a few nights ago. that was a first.
21:07:45  * bnoordhuisjoined
21:08:18  <MI6>joyent/node: isaacs v0.8.21-release * 530d8c0 : 2013.02.25, Version 0.8.21 (Stable) * http: Do not free the wrong parser (+1 more commits) - http://git.io/WP3g4w
21:09:27  * benoitcjoined
21:12:41  <isaacs>trevnorris: i think it's pretty likely that we'll have to roll v8 back to 3.14
21:12:47  <isaacs>trevnorris: it'll mean undoing the isolate stuff.
21:12:48  <isaacs>but meh
21:12:56  * dominictarr_joined
21:12:57  <isaacs>no one actually cares about that, if it's not going to go faster,it's not worthwhile
21:14:04  <trevnorris>isaacs: sounds good to me. the other win is using 50% less memory. as much as i want the new toys in 3.17, 3.14 is just way more production-ish.
21:14:45  <bnoordhuis>i care about that :(
21:14:58  * bnoordhuisweeps silently
21:15:41  <isaacs>bnoordhuis: there, there.
21:15:43  * dominictarrquit (Ping timeout: 246 seconds)
21:15:44  * dominictarr_changed nick to dominictarr
21:15:55  <isaacs>bnoordhuis: when 3.17 stabilizes, it'll be required.
21:15:59  <isaacs>bnoordhuis: then you'll have the last laugh :)
21:16:17  <trevnorris>bnoordhuis: passing the isolate should have improved performance noticeably. so did it just get even worse elsewhere?
21:17:24  <bnoordhuis>trevnorris: it reduced the time spent in pthread_getspecific considerably so yes, there were some improvements
21:17:41  <bnoordhuis>but other things have become noticeably slower for some reason
21:17:47  <trevnorris>hm... =P
21:21:41  <isaacs>bnoordhuis: do you want to do the honors of putting us back on 3.14?
21:21:43  <isaacs>bnoordhuis: it's your dog.
21:22:37  <MI6>joyent/libuv: isaacs created tag node-v0.8.21 - http://git.io/_Z4TKQ
21:43:00  * mikealquit (Quit: Leaving.)
21:43:58  <bnoordhuis>isaacs: ok
21:44:03  * mikealjoined
21:47:38  <MI6>joyent/node: isaacs created tag v0.8.21 - http://git.io/B815Xg
21:48:13  * dominictarr_joined
21:51:19  * dominictarrquit (Ping timeout: 260 seconds)
21:51:19  * dominictarr_changed nick to dominictarr
21:53:05  <MI6>joyent/node: isaacs v0.8 * 33e8e69 : Now working on 0.8.22 (+3 more commits) - http://git.io/6kXkgg
21:53:48  * wolfeidauquit (Remote host closed the connection)
21:54:30  <bnoordhuis>gen/debug-support.cc:41: error: ‘kTransitionsIndex’ is not a member of ‘v8::internal::DescriptorArray’
21:54:34  <bnoordhuis>gen/debug-support.cc:44: error: ‘MAP_TRANSITION’ was not declared in this scope
21:54:37  <bnoordhuis>gen/debug-support.cc:334: error: ‘kInstanceDescriptorsOrBitField3Offset’ is not a member of ‘v8::internal::Map’
21:54:48  <bnoordhuis>^ i'd forgotten about - post-mortem support is broken in 3.14
21:57:13  <MI6>joyent/node: isaacs v0.8 * fafb67c : ChangeLog: Missed item about EINPROGRESS (+1 more commits) - http://git.io/ncEicw
22:00:55  * sblomjoined
22:03:20  <isaacs>bnoordhuis: hm. well, i twas broken in 3.15, too.
22:03:24  <isaacs>bnoordhuis: but indutny fixed it
22:04:42  <bnoordhuis>isaacs: yeah, i kind of fixed it
22:04:59  <bnoordhuis>someone at joyent should probably look at it sometime
22:05:08  <isaacs>bnoordhuis: i'll ping dap
22:05:17  <isaacs>dap: ping
22:05:21  <dap>hi
22:06:18  <isaacs>dap: you perhaps recall that when we updated v8 to 3.15 it broken post-morem, and indutny fixed it.
22:06:28  <dap>That sounds vaguely familiar.
22:06:40  <isaacs>dap: we're rolling V8 back to 3.14 for reasons, and bnoordhuis has re-fixed post-mortem, would you be willing to take a look?
22:07:39  <dap>Does the unit test for it pass?
22:11:24  <indutny>sup?
22:11:27  <indutny>uh
22:11:31  <indutny>I did it before
22:11:59  <joyent-jenkins>Project nodejs-master » ia32,nodejs-linux build #42:FAILURE in 2 min 20 sec: https://jenkins.joyent.us/job/nodejs-master/./DESTCPU=ia32,label=nodejs-linux/42/
22:12:22  <tjfontaine>damn linux multilib bullshit
22:12:36  * rendarquit
22:16:01  * wolfeidaujoined
22:17:37  <isaacs>bnoordhuis: that's right, we have a unit test for it.
22:17:41  <isaacs>i think it's a pummel test
22:17:45  <MI6>joyent/node: isaacs v0.8 * 82357b8 : blog: Update with EINPROGRESS changelog item - http://git.io/3xGjOQ
22:17:53  <joyent-jenkins>Project nodejs-master » ia32,nodejs-smartos build #42:FAILURE in 8 min 15 sec: https://jenkins.joyent.us/job/nodejs-master/./DESTCPU=ia32,label=nodejs-smartos/42/
22:18:25  <indutny>jenkins
22:18:33  <isaacs>bnoordhuis: python tools/test.py pummel/test-{post,dtrace}* <-- if that works, then \o/ i guess
22:18:44  * loladiroquit (Quit: loladiro)
22:34:36  <bnoordhuis>isaacs: those are sunos-only, i can't test them right now
22:34:53  <bnoordhuis>besides, it's not like i use the postmortem tool
22:35:34  <indutny>v8 team doesn't care much about it
22:35:45  <indutny>its failing almost everytime we stop looking at it
22:36:23  <bnoordhuis>well, yeah. for the same reason i don't care about it
22:36:40  <MI6>joyent/node: bnoordhuis created branch downgrade-v8 - http://git.io/F8UUxA
22:36:46  <bnoordhuis>^ review?
22:36:55  <indutny>downgrade from what?
22:36:57  <indutny>also
22:37:04  <indutny>to 3.14?
22:37:06  <indutny>are you serious?
22:37:52  <bnoordhuis>i never jest, fedor, you know that
22:38:07  <bnoordhuis>simple/test-stream2-objects is still failing for me but apart from that everything else passes
22:38:09  <indutny>is your comment about performance justified?
22:38:13  <bnoordhuis>yes
22:38:17  <indutny>with what?
22:38:28  <bnoordhuis>with cold, hard numbers
22:38:29  <tjfontaine>his gut
22:38:33  <bnoordhuis>that too
22:38:38  <indutny>I mean
22:38:39  <indutny>gist?
22:38:46  <bnoordhuis>gc performance is pretty atrocious
22:38:50  <indutny>interesting
22:38:52  <bnoordhuis>also, have you seen that Utf8Length() thing?
22:38:55  <indutny>aa
22:38:57  <indutny>yep
22:39:02  <indutny>so is it like the only thing?
22:39:06  <indutny>because if it is - I can fix it
22:39:09  <bnoordhuis>no, it's a number of things
22:39:12  <indutny>ok
22:39:15  <indutny>LGTM then
22:39:20  <indutny>you're so convincing
22:39:20  <bnoordhuis>i also had some spurious crashes that i couldn't reproduce
22:39:32  <bnoordhuis>isaacs: ?
22:39:42  <indutny>its just a bit sad that we're stuck at about 3 versions
22:39:44  <indutny>minor
22:40:04  <bnoordhuis>3.18 is going to be the greatest, i can feel it!
22:40:15  * `3rdEdenquit (Remote host closed the connection)
22:40:27  <indutny>bnoordhuis: so wrooooong
22:40:53  <bnoordhuis>that's what she said
22:41:00  <bnoordhuis>but it felt so right, you know?
22:41:30  <bnoordhuis>gah, that default ab on os x is one giant POS
22:41:44  <tjfontaine>that's why we added wrk? :)
22:41:55  <bnoordhuis>yeah, but some tests still use ab
22:42:13  <tjfontaine>ah
22:42:18  <joyent-jenkins>Project nodejs-v0.8 » ia32,nodejs-linux build #11:FAILURE in 7 min 32 sec: https://jenkins.joyent.us/job/nodejs-v0.8/./DESTCPU=ia32,label=nodejs-linux/11/
22:42:26  <tjfontaine>joyent-jenkins: hush.
22:42:26  <joyent-jenkins>tjfontaine did you mean me? Unknown command 'hush.'
22:42:27  <joyent-jenkins>Use '!jenkins help' to get help!
22:42:31  <tjfontaine>blah
22:42:36  <bnoordhuis>!jenkins help
22:42:36  <joyent-jenkins>Available commands:
22:42:36  <joyent-jenkins>abort <job> - specify which job to abort
22:42:37  <joyent-jenkins>alias [<alias> [<command>]] - defines a new alias, deletes one or lists all existing aliases
22:42:37  <joyent-jenkins>botsnack [<snack>] - om nom nom
22:42:38  <joyent-jenkins>build <job> [now|<delay>[s|m|h]] [<parameterkey>=<value>]* - schedule a job build, with standard, custom or no quiet period
22:42:38  <joyent-jenkins>cb - list jobs which are currently in progress
22:42:39  <joyent-jenkins>comment <job> <build-#> <comment> - adds a description to a build
22:42:39  <joyent-jenkins>currentlyBuilding - list jobs which are currently in progress
22:42:40  <joyent-jenkins>h [<job>|-v <view>] - show the health of a specific job, jobs in a view or all jobs
22:42:40  <joyent-jenkins>health [<job>|-v <view>] - show the health of a specific job, jobs in a view or all jobs
22:42:41  <joyent-jenkins>jobs [<job>|-v <view>] - show the status of a specific job, jobs in a view or all jobs
22:42:41  <joyent-jenkins>q - show the state of the build queue
22:42:42  <joyent-jenkins>queue - show the state of the build queue
22:42:42  <joyent-jenkins>s [<job>|-v <view>] - show the status of a specific job, jobs in a view or all jobs
22:42:43  <joyent-jenkins>schedule <job> [now|<delay>[s|m|h]] [<parameterkey>=<value>]* - schedule a job build, with standard, custom or no quiet period
22:42:43  <joyent-jenkins>status [<job>|-v <view>] - show the status of a specific job, jobs in a view or all jobs
22:42:44  <joyent-jenkins>testresult [<job>|-v <view>] - show the test results of a specific job, jobs in a view or all jobs
22:42:44  <joyent-jenkins>userstat <username> - prints information about a Jenkins user
22:42:49  * joyent-jenkinsquit
22:42:56  <bnoordhuis>um, maybe make it pm that?
22:43:03  <bnoordhuis>(low prio)
22:43:21  <tjfontaine>more than likely yes
22:43:58  <bnoordhuis>i'm very curious what botsnack does though
22:44:12  <tjfontaine>probably prints "om nom nom"
22:44:28  <bnoordhuis>so much unrealized potential
22:46:52  <MI6>joyent/node: Ben Noordhuis master * 51f6e6a : src, test: downgrade to v8 3.14 api (+2 more commits) - http://git.io/qL0pXA
22:55:31  * dominictarr_joined
22:56:01  * qmxchanged nick to qmx|brb
22:56:12  * TheJHquit (Ping timeout: 252 seconds)
22:58:41  * dominictarrquit (Ping timeout: 255 seconds)
22:58:41  * dominictarr_changed nick to dominictarr
23:13:14  * qmx|brbchanged nick to qmx
23:20:56  * indexzeroquit (Quit: indexzero)
23:23:43  * roxluquit (Ping timeout: 260 seconds)
23:25:27  * roxlujoined
23:27:51  * qmxchanged nick to qmx|away
23:29:11  <isaacs>whoa!!
23:29:17  <isaacs>we can kick off jobs via irc?
23:29:32  <isaacs>botsnack your face
23:29:35  <isaacs>!botsnack your face
23:29:44  <isaacs>!jenkins botsnack your face
23:29:47  <isaacs>??
23:29:53  <isaacs>!botsnack
23:29:58  <isaacs>!jenkins help
23:30:04  <tjfontaine>heh, it's gone I turned off the old one
23:30:39  <isaacs>LOUDBOT: search jenkins
23:30:40  <LOUDBOT>isaacs: <aaron:#dongtown> T DEVELOPER: IF YOU CAN'T ADD YOUR THIRD-PARTY PERL MODULE TO THE JENKINS JOB THAT BUILDS THAT SHIT INTO RPMS FOR YOU, YOUR SHIT WON'T GET DEPLOYED
23:30:50  <isaacs>LOUDBOT: search jenkins
23:30:50  <LOUDBOT>isaacs: <aaron:#dongtown> T DEVELOPER: IF YOU CAN'T ADD YOUR THIRD-PARTY PERL MODULE TO THE JENKINS JOB THAT BUILDS THAT SHIT INTO RPMS FOR YOU, YOUR SHIT WON'T GET DEPLOYED
23:30:53  <isaacs>LOUDBOT: next
23:30:53  <LOUDBOT>isaacs: <p_g_p:#mefi> I'M NOT GOING TO LIE TO YOU JENKINS: I'M GOING TO LIE TO YOU
23:30:58  * nodejs-cijoined
23:30:59  <isaacs>LOUDBOT: next
23:31:00  <LOUDBOT>>:| I DON'T FUCKING KNOW!
23:31:08  <isaacs>LOUDBOT: next
23:31:08  <LOUDBOT>isaacs: <p_g_p:#mefi> I'M NOT GOING TO LIE TO YOU JENKINS: I'M GOING TO LIE TO YOU
23:31:13  <tjfontaine>nodejs-ci: botsnack
23:31:20  <isaacs>!jenkins botsnack
23:31:25  <isaacs>nodejs-ci: help
23:31:28  <isaacs>!jenkins help
23:31:30  <isaacs>hmm...
23:31:30  <tjfontaine>wonder what it's waiting on
23:31:41  * hzquit
23:32:02  <tjfontaine>nodejs-ci: help
23:32:12  <tjfontaine>it's so polite it just doesn't respond
23:32:47  * nodejs-ciquit (Client Quit)
23:40:02  <trevnorris>ugh. forgot 3.14 has all those "private field" warnings when compiling.
23:40:40  <bnoordhuis>what warnings?
23:41:41  <tjfontaine>I'm presuming clang is being more verbose than gcc would be
23:41:44  <tjfontaine>clang++
23:42:18  <trevnorris>yup
23:42:36  <trevnorris>like: deps/v8/src/store-buffer.h:229:9: warning: private field 'heap_' is not used
23:43:58  * mikealquit (Quit: Leaving.)
23:44:26  <tjfontaine>I wish I could spell
23:45:12  * mikealjoined
23:48:12  <tjfontaine>bnoordhuis: btw I think you broke the build (on smartos)
23:48:21  <tjfontaine>dtrace: failed to compile script src/v8ustack.d: line 228: failed to resolve V8DBG_SMISHIFTSIZE: Unknown variable name
23:48:39  <tjfontaine>presuming the v8 revert has happened
23:49:55  * loladirojoined
23:49:59  <bnoordhuis>it has
23:50:15  <bnoordhuis>--without-dtrace works?
23:50:20  <bnoordhuis>tjfontaine: ^
23:50:38  <tjfontaine>bnoordhuis: lemme check
23:52:12  <tjfontaine>bnoordhuis: yup, it built cleanly
23:52:53  <bnoordhuis>tjfontaine: you know, i've no idea where that variable lives
23:53:11  <bnoordhuis>ah, src/v8abbr.h
23:53:39  <tjfontaine>istr indutny making changes to accomodate 64bit that were related?
23:53:45  <bnoordhuis>yes
23:53:51  <bnoordhuis>what happens when you revert f9afb3f01002e5667a0df80ee784af0dfe2305c2 ?
23:54:37  <bnoordhuis>oh and 3b715edda97c8edfd95cc1fb8d31f92cef6bcc52 too
23:55:42  <tjfontaine>ugh all the whitespace changes