00:00:01
| * ircretary | quit (Remote host closed the connection) |
00:00:08
| * ircretary | joined |
00:06:11
| * loladiro | quit (Quit: loladiro) |
00:08:11
| * kazupon | joined |
00:12:44
| * `3rdEden | joined |
00:12:49
| * kazupon | quit (Ping timeout: 248 seconds) |
00:13:27
| <MI6> | joyent/node: isaacs created branch v0.10.0-release - http://git.io/R5Oaug |
00:21:14
| * `3rdEden | quit (Ping timeout: 250 seconds) |
00:21:32
| * loladiro | joined |
00:21:46
| * mikeal | joined |
00:24:51
| * mikeal | quit (Client Quit) |
00:34:27
| <isaacs> | asdf12: what's your name? |
00:35:20
| <isaacs> | asdf12: that is, what would you like to be in the "AUTHORS" file in node? |
00:35:56
| <isaacs> | asdf12: oh, i forgot i have it in the CLA signers file. nvm :) |
00:38:54
| <MI6> | joyent/node: isaacs v0.10.0-release * 163ca27 : 2013.03.11, Version 0.10.0 (Stable) * npm: Upgrade to 1.2.14 * core: Ap - http://git.io/3sKc1A |
00:39:21
| * dostoyev1ky | joined |
00:39:35
| * stephank_ | joined |
00:43:07
| * rvagg_ | joined |
00:44:17
| * rvagg | quit (*.net *.split) |
00:44:17
| * benoitc | quit (*.net *.split) |
00:44:18
| * dostoyevsky | quit (*.net *.split) |
00:44:18
| * stephank | quit (*.net *.split) |
00:44:18
| * DrPizza | quit (*.net *.split) |
00:44:19
| * rvagg_ | changed nick to rvagg |
00:44:19
| * stephank_ | changed nick to stephank |
00:48:22
| * benoitc | joined |
00:49:41
| <isaacs> | building binaries |
00:52:55
| * DrPizza | joined |
01:08:54
| * kazupon | joined |
01:15:04
| * kazupon | quit (Ping timeout: 240 seconds) |
01:22:29
| * kazupon | joined |
01:36:43
| * abraxas | joined |
01:38:53
| * c4milo | joined |
01:44:40
| * dominictarr | joined |
02:10:19
| * dominictarr | quit (Quit: dominictarr) |
02:17:49
| * mikeal | joined |
02:18:40
| * mikeal | quit (Client Quit) |
02:19:46
| * dominictarr | joined |
02:23:09
| * kazupon | quit (Remote host closed the connection) |
02:24:08
| * kazupon | joined |
02:24:31
| * ryah | joined |
02:31:13
| * brson | quit (Quit: leaving) |
03:05:39
| * kazupon | quit (Remote host closed the connection) |
03:05:52
| * kazupon | joined |
03:06:23
| * qmx|away | changed nick to qmx |
03:06:28
| * qmx | quit (Excess Flood) |
03:10:19
| * qmx | joined |
03:10:50
| * qmx | changed nick to qmx|away |
03:29:36
| * kevireilly | joined |
03:34:17
| * brson | joined |
03:38:09
| * kazupon | quit (Remote host closed the connection) |
03:53:23
| * kevireilly | quit (Remote host closed the connection) |
03:53:47
| * kevireilly | joined |
04:03:47
| * stagas | quit (Ping timeout: 255 seconds) |
04:11:50
| * dominictarr | quit (Quit: dominictarr) |
04:12:23
| * dominictarr | joined |
04:30:23
| * loladiro | quit (Quit: loladiro) |
04:30:35
| * c4milo | quit (Remote host closed the connection) |
04:46:09
| * dominictarr | quit (Quit: dominictarr) |
04:47:16
| * brson | quit (Quit: leaving) |
05:14:43
| * kazupon | joined |
05:16:51
| <pquerna> | wolfeidau: i mean, at some level, its called a compacting garbage collector :) |
05:19:09
| * kazupon | quit (Ping timeout: 245 seconds) |
05:26:15
| <isaacs> | pquerna: that's awesome; |
05:26:23
| <isaacs> | pquerna: i mean, awesome write-up |
05:27:51
| <isaacs> | pquerna: it would be nice to figure out a way to have something smarter. the assumption that the data will be flowing through and not sticking around forever, is clearly not a valid assumption. |
05:29:04
| <tjfontaine> | that project is attached to the issue |
05:29:13
| <isaacs> | pquerna: the overhead in fixing that is that right now, the slabs don't know about the views. |
05:29:40
| <isaacs> | pretty soon, we're reinventing malloc and free |
05:30:14
| <brucem> | can you use a separate memory manager for the slabs / whatever if you want compacting / copying? or does it need to go through v8 memory management or anything? |
05:31:04
| <isaacs> | ircretary: tell trevnorris https://github.com/jmatthewsr-ms/node-slab-memory-issues |
05:31:04
| <ircretary> | isaacs: I'll be sure to tell trevnorris |
05:31:20
| <tjfontaine> | isaacs: he should be aware of it from https://github.com/joyent/node/pull/4660 |
05:31:33
| <tjfontaine> | I think it's part of hte reason he started his quest |
05:32:02
| <isaacs> | ah, oic |
05:32:18
| <isaacs> | ircretary: tell trevnorris Oh, I guess you already know about that :) |
05:32:18
| <ircretary> | isaacs: I'll be sure to tell trevnorris |
05:37:04
| * loladiro | joined |
05:38:55
| * abraxas | quit (Remote host closed the connection) |
05:40:53
| <wolfeidau> | pquerna: With buffers you can peal back a few layers though right? |
05:44:16
| * TooTallNate | joined |
05:44:21
| * mikeal | joined |
05:44:27
| * TooTallNate | quit (Client Quit) |
05:44:53
| <pquerna> | isaacs: agree; though i think the biggest problem with it right now are the 'owenership' rules that make moving he memory really hard, becaause it can be handed off to a worker thread |
05:47:03
| * abraxas | joined |
05:57:59
| * CoverSlide | quit (Remote host closed the connection) |
06:10:50
| * CoverSlide | joined |
06:26:48
| * kazupon | joined |
06:31:30
| * kazupon | quit (Ping timeout: 256 seconds) |
07:14:25
| * dostoyev1ky | quit (Quit: leaving) |
07:27:53
| * kazupon | joined |
07:28:40
| * `3rdEden | joined |
07:32:06
| * kazupon | quit (Ping timeout: 252 seconds) |
08:17:49
| * `3rdEden | quit (Remote host closed the connection) |
08:28:15
| * kazupon | joined |
08:30:15
| * csaoh | joined |
08:32:52
| * kazupon | quit (Ping timeout: 248 seconds) |
08:34:12
| * csaoh | quit (Remote host closed the connection) |
08:37:01
| * csaoh | joined |
08:40:24
| * loladiro | quit (Quit: loladiro) |
08:41:41
| * stagas | joined |
09:07:13
| * indexzero | joined |
09:14:32
| * hz | joined |
09:23:05
| * dominictarr | joined |
09:25:13
| * dominictarr | quit (Client Quit) |
09:28:23
| * `3rdEden | joined |
09:33:24
| * `3rdEden | quit (Ping timeout: 276 seconds) |
09:56:01
| * rendar | joined |
10:05:44
| * `3rdEden | joined |
10:29:31
| * kazupon | joined |
10:31:03
| * abraxas | quit (Remote host closed the connection) |
10:35:09
| * kazupon | quit (Ping timeout: 276 seconds) |
10:54:49
| * `3rdEden | changed nick to `3E|BRB |
11:05:46
| * sgallagh | joined |
11:08:01
| * Kakera | joined |
11:18:18
| <indutny> | morning |
11:18:48
| * sgallagh | quit (Remote host closed the connection) |
11:30:58
| * kazupon | joined |
11:35:24
| * kazupon | quit (Ping timeout: 245 seconds) |
11:40:11
| * `3E|BRB | changed nick to `3rdEden |
11:45:35
| * csaoh | quit (Quit: csaoh) |
11:54:07
| * csaoh | joined |
12:06:04
| * sgallagh | joined |
12:32:05
| * kazupon | joined |
12:36:37
| * kazupon | quit (Ping timeout: 248 seconds) |
12:52:16
| * qmx|away | changed nick to qmx |
12:52:32
| * qmx | quit (Changing host) |
12:52:32
| * qmx | joined |
13:02:24
| * piscisaureus_ | joined |
13:09:10
| * indexzero_ | joined |
13:09:21
| * indexzero | quit (Ping timeout: 248 seconds) |
13:09:21
| * indexzero_ | changed nick to indexzero |
13:22:48
| * bradleymeck | joined |
13:32:59
| * kazupon | joined |
13:37:37
| * bradleymeck | quit (Quit: bradleymeck) |
13:42:13
| * kazupon | quit (Ping timeout: 248 seconds) |
13:50:39
| * c4milo | joined |
14:24:36
| * AvianFlu | joined |
14:26:54
| <piscisaureus_> | pquerna: your idea of having a compacting garbage collector is neat but the fact that multiple buffers can reference the same backing store makes it quite complicated. |
14:30:55
| * kevireilly | quit (*.net *.split) |
14:30:55
| * wavded_ | quit (*.net *.split) |
14:30:55
| * niska | quit (*.net *.split) |
14:30:56
| * creationix | quit (*.net *.split) |
14:31:14
| * creationix | joined |
14:31:30
| * wavded_ | joined |
14:32:30
| * bradleymeck | joined |
14:32:30
| * niska | joined |
14:36:38
| * piscisaureus_ | quit (Ping timeout: 250 seconds) |
14:38:57
| * kazupon | joined |
14:40:08
| * kevireilly | joined |
14:43:19
| * kazupon | quit (Ping timeout: 245 seconds) |
14:46:36
| * nsm | joined |
14:46:37
| * nsm | quit (Client Quit) |
14:47:01
| * nsm | joined |
14:50:52
| * indexzero | quit (Quit: indexzero) |
14:51:24
| * mikeal | quit (Quit: Leaving.) |
14:53:21
| * Kakera | quit (Ping timeout: 248 seconds) |
14:54:01
| * loladiro | joined |
14:58:04
| * piscisaureus_ | joined |
14:59:32
| * loladiro | quit (Quit: loladiro) |
15:07:06
| <isaacs> | about ot push live in a little bit |
15:08:00
| * bradleymeck | quit (Quit: bradleymeck) |
15:08:35
| <isaacs> | piscisaureus_, pquerna: we could always implement explicit memory management ;) |
15:09:02
| <piscisaureus_> | isaacs: like, in an hour? |
15:09:11
| <isaacs> | piscisaureus_: 16:00 yes |
15:09:24
| <isaacs> | all hte tests that were passing last night still pass |
15:09:29
| <piscisaureus_> | ehm. That'd be 1700. You guys went to DST :) |
15:09:33
| <piscisaureus_> | but we didn't |
15:09:40
| <isaacs> | 1600 UTC |
15:09:40
| <LOUDBOT> | I DON'T HAVE AN ATTITUDE. I'M JUST RIGHT. |
15:09:42
| <isaacs> | that's the release time |
15:09:44
| <piscisaureus_> | aah |
15:09:50
| * AvianFlu | quit (Remote host closed the connection) |
15:10:05
| <isaacs> | listen man, i'm not a part of your backwater farming clock system |
15:10:08
| <isaacs> | ;) |
15:10:42
| <isaacs> | srsly, though, standup tomorrow is an hour earlier in Actual Time |
15:10:55
| <isaacs> | then i thikn the week after that, we're back in sync, yes? |
15:10:56
| * bradleymeck | joined |
15:11:36
| * kazupon | joined |
15:11:53
| <piscisaureus_> | Yes it's going to be at 5 for me |
15:11:55
| <piscisaureus_> | which is great! |
15:12:01
| <piscisaureus_> | I wish it could always be like this |
15:12:20
| <isaacs> | piscisaureus_: we tried, but 8:00 AM is too early for this longitude |
15:12:40
| <piscisaureus_> | Yes, I totally understand. |
15:12:48
| <piscisaureus_> | That's why I'm happy that we can both be happy |
15:12:53
| <piscisaureus_> | even if it's only for a week |
15:14:40
| * bradleymeck | quit (Client Quit) |
15:14:58
| <isaacs> | piscisaureus_: anyway... don't we already have some weakref stuff on buffers to know when to free() the actual memory? |
15:15:39
| <piscisaureus_> | isaacs: yes but that's on SlowBuffer slabs and not on individual buffers |
15:15:43
| <piscisaureus_> | for performance reasons |
15:15:44
| <isaacs> | piscisaureus_: it'd be complicated to do compacting, but i don't think the "worker threads own the buffer" makes it worse |
15:15:47
| <isaacs> | right |
15:16:04
| <piscisaureus_> | isaacs: you'd probably want to "loc |
15:16:06
| <piscisaureus_> | er |
15:16:39
| * bradleymeck | joined |
15:16:42
| <piscisaureus_> | "pin" buffers when they are sent to the threadpool and "unpin" them when libuv is done |
15:17:35
| <isaacs> | yeah. |
15:17:37
| <isaacs> | not just libuv. |
15:17:39
| <piscisaureus_> | isaacs: that'd work - we'd still rotate slabs so compaction would only happen for very old slabs which are still referenced by one of a few Buffer objects. It'd be unlikely for those to be pinned by the time you want to compact them. |
15:18:07
| <isaacs> | right |
15:18:11
| <piscisaureus_> | But this is still very complicated :-) |
15:18:13
| <isaacs> | yes |
15:18:35
| <piscisaureus_> | especially finding an o(reasonable) algorithm for finding which parts of a SlowBuffer can be discarded |
15:18:39
| <isaacs> | could we possibly free just PART of the slab? |
15:18:47
| <piscisaureus_> | isaacs: no, out of the question |
15:18:51
| <isaacs> | like, if we have a contiguous space of >=n bytes, tell the system to have it back |
15:18:55
| <isaacs> | hahahh, ok |
15:18:58
| <piscisaureus_> | can't do that in C |
15:19:01
| <piscisaureus_> | sorry |
15:19:21
| <piscisaureus_> | isaacs: the other hairy issue is to decide when to compact. |
15:19:24
| <rendar> | well, what about a chunk allocator, where each chunk = 1 buffer? |
15:19:25
| <isaacs> | yeah |
15:19:34
| <rendar> | sorry, each chunk = N little buffers |
15:19:53
| <piscisaureus_> | well we have that but a chunk is called a slab |
15:20:00
| <rendar> | oh, ok, sorry :) |
15:20:22
| <rendar> | piscisaureus_: but this system of slab works only in windows, or overall libuv? |
15:20:25
| <isaacs> | rendar: wait, so, you mean that new Buffer(1024) actually creates a bunch of Buffer(8)'s or something? |
15:20:31
| <isaacs> | rendar: it's a node-ism |
15:20:32
| <piscisaureus_> | rendar: the problem is that if most buffers are garbage collected but not all of them, the slab ("chunk") stays around |
15:20:41
| <rendar> | hmmm |
15:20:43
| <piscisaureus_> | rendar: everywhere |
15:20:50
| <isaacs> | rendar: so, we don't want to create a bunch of tiny mallocs |
15:20:53
| <isaacs> | rendar: because it gets slow |
15:21:09
| <piscisaureus_> | actually the mallocs are slow but it's not the biggest issue |
15:21:09
| <isaacs> | rendar: so, instead, we allocate a big 8*1024 "slab" |
15:21:40
| <rendar> | isaacs: no basically i was thinking to: allocate(1024*N) where N = little buffers i want to allocate, then using them, and pin/unpin them with a bitmap (piece of memory where each bits is 0 (pinned) or 1 (unpinned)) |
15:21:45
| <piscisaureus_> | the biggest problem is calling into c++, adding the buffer to the v8 roots, setting up the weakref callbacks etc |
15:21:59
| <rendar> | hmm i see |
15:22:19
| <isaacs> | yeah, so then each new Buffer(n) just takes a slice of that big "SlowBuffer" slab |
15:22:28
| <rendar> | yeah |
15:22:44
| <rendar> | and bitmap[n] is 0 if its used (pinned) or 1 for free (unpinned) |
15:22:53
| <piscisaureus_> | It'd be an interesting experiment to actually hack v8 and see if we can add Buffer as a native type |
15:23:02
| <piscisaureus_> | in a specialized space that supports pinning and unpinning |
15:23:07
| <piscisaureus_> | (wink mraleph) |
15:23:08
| <rendar> | piscisaureus_: so the biggest issue is to interface that to v8? |
15:23:13
| <piscisaureus_> | yeah |
15:23:21
| <piscisaureus_> | The interface is nice. It's just not very efficient :) |
15:23:32
| <rendar> | i see.. |
15:24:43
| * Kakera | joined |
15:26:12
| <rendar> | 0-|slab0 |slab1 ... |slab n |-4096 <- here i have a block of memory of 4096 which can be divided in N little buffers, then i have N entrypoints (slab0, slab1, slabN) for each little buffer, and the problem now is to make v8 efficently work with memory instanced like that, if i got the problem |
15:29:30
| * mikeal | joined |
15:32:57
| <piscisaureus_> | rendar: the problem we're dealing with is that when buffer 2-4096 are gone but 1 is still referenced, we must retain the entire slab |
15:33:27
| * qmx | changed nick to qmx|brb |
15:34:20
| * kazupon | quit (Remote host closed the connection) |
15:40:08
| * mmalecki | changed nick to mmalecki[away] |
15:40:35
| * mikeal | quit (Quit: Leaving.) |
15:43:07
| * piscisaureus__ | joined |
15:46:40
| * piscisaureus_ | quit (Ping timeout: 260 seconds) |
15:49:13
| <MI6> | joyent/node: isaacs created tag v0.10.0 - http://git.io/kJcyrA |
15:49:40
| <piscisaureus__> | isaacs: release! \o/ |
15:49:51
| <isaacs> | doing it |
15:49:54
| <MI6> | joyent/node: isaacs v0.10 * e2b293c : Now working on 0.10.1 (+2 more commits) - http://git.io/Sog8_A |
15:53:26
| * piscisaureus__ | changed nick to piscisaureus |
15:53:50
| <isaacs> | ugh, some errors on the joyeur blog cross-post. |
15:57:48
| * qmx|brb | changed nick to qmx |
16:00:04
| <isaacs> | piscisaureus: can you cross-link to http://blog.nodejs.org/2013/03/11/node-v0-10-0-stable/ plz? |
16:00:14
| <piscisaureus> | sure |
16:00:54
| <piscisaureus> | isaacs: it's being done as we speak |
16:01:03
| <isaacs> | kewl :) |
16:01:20
| <isaacs> | piscisaureus: also, airbnb misspelled my name. there should only be one 5 |
16:01:22
| <isaacs> | *one t |
16:01:23
| <piscisaureus> | isaacs: node.org not yet updated? |
16:01:55
| <isaacs> | piscisaureus: REFRESH HARDER! |
16:02:07
| <piscisaureus> | isaacs: woot! congrats |
16:02:10
| <tjfontaine> | you have a silent number in your name? |
16:02:14
| <isaacs> | piscisaureus: i tell nginx to set somewhat agressive cache headers, because it almost never changes. |
16:02:34
| <piscisaureus> | isaacs: I see. Yeah, just vigorous F5-ing worked :) |
16:02:47
| <piscisaureus> | it's probably placebo though |
16:02:57
| <piscisaureus> | isaacs: ok, updated |
16:03:56
| <MI6> | nodejs-v0.10: #11 UNSTABLE windows-ia32 (4/559) linux-x64 (1/559) windows-x64 (4/559) osx-x64 (1/559) http://jenkins.nodejs.org/job/nodejs-v0.10/11/ |
16:06:37
| <ryah> | woot |
16:07:08
| * ryah | clicks the install button |
16:07:38
| <tjfontaine> | piscisaureus: daily libuv windows tap ping :) |
16:08:29
| <piscisaureus> | tjfontaine: ping received |
16:08:35
| * dap | joined |
16:13:09
| <saghul> | will a libuv "release" follow? |
16:13:48
| <indutny> | yo people |
16:14:09
| <indutny> | piscisaureus: huh, can you tell me more about this idea? |
16:14:17
| * ryah | quit (Quit: leaving) |
16:14:24
| <tjfontaine> | saghul: ya, but piscisaureus wanted to wait for the branch until after the releasee |
16:14:25
| <indutny> | is it supposed to solve our slice references problem? |
16:14:26
| <piscisaureus> | indutny: yes, although I'd prefer to do it tomorow |
16:14:30
| <indutny> | ah, np |
16:14:37
| <indutny> | so |
16:14:37
| <piscisaureus> | because today is going to be a busy day |
16:14:39
| * bradleymeck | quit (Quit: bradleymeck) |
16:14:41
| <indutny> | big day today? |
16:14:44
| <indutny> | : |
16:14:45
| <indutny> | ) |
16:14:58
| <saghul> | tjfontaine great, thanks! |
16:14:59
| <isaacs> | wtf? why is osx-64 failing a test? |
16:15:25
| <tjfontaine> | isaacs: getconnections, "normal" spurious test failure |
16:15:27
| <indutny> | let me test it |
16:15:49
| <tjfontaine> | and linux had the other "normal" debugger client econnrefused |
16:15:58
| <MI6> | joyent/libuv: isaacs created tag node-v0.10.0 - http://git.io/NolnJA |
16:16:08
| <isaacs> | kewl |
16:16:17
| <tjfontaine> | on the plus side, that debugger client refused seems very reproducible on windows |
16:16:28
| <tjfontaine> | so if we fix it there everyone benefits |
16:16:36
| <isaacs> | tjfontaine: yeah |
16:16:47
| <isaacs> | tjfontaine: and at least it doesn't create zombies any more. |
16:16:50
| <tjfontaine> | yup |
16:19:16
| <isaacs> | piscisaureus: I really like the windows component installer stuff in the msi. |
16:19:26
| * AvianFlu | joined |
16:19:29
| <isaacs> | piscisaureus: it's a silly little thing, but it really makes node feel more "real" |
16:20:00
| <tjfontaine> | isaacs: don't forget to send me your notes |
16:20:13
| <isaacs> | ha, right |
16:20:14
| <piscisaureus> | isaacs: yeah. I actually liked it without it as well but I felt that once we had this menu (with "shortcuts" and "the rest") we had to make it real. |
16:20:49
| <indutny> | time to rewrite tlsnappy a little :) |
16:25:47
| <pquerna> | isaacs: or bundle jemalloc? |
16:26:11
| * hz | quit |
16:31:32
| * bradleymeck | joined |
16:34:44
| * kazupon | joined |
16:36:14
| * bradleymeck | quit (Ping timeout: 252 seconds) |
16:38:38
| * ryah | joined |
16:38:46
| <ryah> | isaacs: "Coming soon, we'll have automatically generated nightly builds every day, and eventually, the entire build process will be automated. |
16:38:49
| <ryah> | s/build/release/ |
16:39:07
| <isaacs> | ah, right |
16:39:08
| <isaacs> | the build process already is automated :) |
16:39:17
| * kazupon | quit (Ping timeout: 252 seconds) |
16:39:20
| <indutny> | is it about node? |
16:39:27
| <indutny> | :) |
16:39:42
| <tjfontaine> | and there are some nightly builds out there: http://jenkins.nodejs.org/job/nodejs-master-fnt/33/DESTCPU=x64,label=linux/artifact/ |
16:40:02
| <tjfontaine> | I just haven't cleaned them up into a one stop place to grab them all |
16:41:14
| <tjfontaine> | and then there's windows... |
16:41:45
| * bradleymeck | joined |
16:48:12
| * bradleymeck | quit (Quit: bradleymeck) |
16:48:27
| <indutny> | isaacs: hey man |
16:48:32
| <indutny> | one interesting question to you |
16:48:40
| <indutny> | about http madness and sockets |
16:48:44
| <indutny> | are you ready? :) |
16:51:11
| <indutny> | so the problem is that before we was emitting 'data' event |
16:51:18
| <indutny> | even if .ondata was present |
16:51:21
| <indutny> | but now... |
16:51:34
| <indutny> | even in compatibility mode we won't get any events on socket |
16:51:56
| <indutny> | if it'll be captured in server's 'connection' event handler |
16:54:15
| <indutny> | which apparently breaks some code |
16:59:37
| <indutny> | why the hell libuv has 0.9 version? |
17:01:31
| * `3rdEden | changed nick to `3E|DINNER |
17:03:36
| <piscisaureus> | tjfontaine: the tap patch doesn't show up in https://github.com/joyent/libuv/pull/735 |
17:03:53
| <piscisaureus> | tjfontaine: I'm still seeing the no-good version of the patch |
17:03:56
| <tjfontaine> | er |
17:04:18
| <tjfontaine> | you don't see the second write after the while loop? |
17:07:59
| <piscisaureus> | tjfontaine: ar right |
17:08:08
| <piscisaureus> | tjfontaine: but it still isn't good because now you're writing more |
17:08:13
| <piscisaureus> | newlines than you should |
17:08:26
| <tjfontaine> | just one :) |
17:09:02
| <tjfontaine> | but ok, I can tweak that |
17:09:36
| <piscisaureus> | tjfontaine: suppose you read data in 3 chunks: |
17:09:37
| <piscisaureus> | chunk 1: hello\nworld |
17:09:37
| <piscisaureus> | chunk 2: foo\nbar |
17:09:37
| <piscisaureus> | chunk 3: baz\nflop |
17:09:37
| <piscisaureus> | Now what will be printed is: |
17:09:37
| <piscisaureus> | #hello |
17:09:37
| <piscisaureus> | #world |
17:09:38
| <piscisaureus> | #foo |
17:09:38
| <piscisaureus> | #bar |
17:09:39
| <piscisaureus> | #baz |
17:09:39
| <piscisaureus> | #flop |
17:09:40
| <piscisaureus> | While right would be: |
17:09:40
| <piscisaureus> | #hello |
17:09:41
| <piscisaureus> | #worldfoo |
17:09:41
| <piscisaureus> | #barbaz |
17:09:42
| <piscisaureus> | #flop |
17:10:35
| <tjfontaine> | huh? the extra new line only happens after all chunks are read |
17:10:36
| <piscisaureus> | tjfontaine: I can help you get it right if you need |
17:11:06
| <piscisaureus> | oh - right |
17:11:28
| * jguerrero | joined |
17:11:37
| <tjfontaine> | I do admit there's an extra new line, but not that many :) |
17:11:39
| <piscisaureus> | tjfontaine: actually - you're right |
17:11:43
| <piscisaureus> | yeah |
17:11:46
| <piscisaureus> | ok lemme land it |
17:12:02
| <creationix> | wow, cgroups are amazing |
17:12:17
| <creationix> | my node repl is still responsive after @nodejs retweeted it |
17:12:37
| <MI6> | joyent/libuv: Timothy J Fontaine master * 2f84a57 : test: add tap output for windows - http://git.io/_90w2g |
17:12:48
| <creationix> | other than my army of a hundred zombies, it's pretty healthy |
17:12:51
| <tjfontaine> | piscisaureus: thanks |
17:13:58
| * bradleymeck | joined |
17:14:56
| <MI6> | libuv-master: #47 UNSTABLE linux (9/183) osx (11/183) smartos (11/183) windows (7/184) http://jenkins.nodejs.org/job/libuv-master/47/ |
17:15:14
| <tjfontaine> | yay |
17:17:07
| <creationix> | btw, congrats everyone on getting 0.10 out the door! |
17:17:11
| <indutny> | haha |
17:17:12
| <indutny> | thanks |
17:18:36
| * TooTallNate | joined |
17:19:16
| * mikeal | joined |
17:19:29
| <MI6> | joyent/node: isaacs v0.10 * 228ad93 : blog: Post about v0.10.0 - http://git.io/b_ds4A |
17:19:34
| <isaacs> | creationix: thanks :) |
17:22:52
| <indutny> | isaacs: I think we need to remove .ondata |
17:22:58
| <indutny> | at least in 0.11 |
17:23:10
| <indutny> | and probably |
17:23:11
| <isaacs> | indutny: yeah, the only reason we didn't is that it would require too much change in http.js |
17:23:14
| <indutny> | emit 'data' with it |
17:23:16
| <isaacs> | indutny: but 0.11 is for rewriting http.js |
17:23:16
| <indutny> | in 0.10 |
17:23:29
| <indutny> | there's a problem right now |
17:27:51
| <TooTallNate> | indutny: what's the problem? |
17:29:26
| <indutny> | .ondata |
17:29:28
| <indutny> | and 'data' event |
17:29:38
| <indutny> | if .ondata is present - 'data' event won't be emitted |
17:29:42
| <indutny> | and it was emitted before |
17:32:32
| <MI6> | nodejs-v0.10: #12 UNSTABLE windows-ia32 (4/559) osx-ia32 (1/559) windows-x64 (6/559) http://jenkins.nodejs.org/job/nodejs-v0.10/12/ |
17:33:17
| * Kakera | quit (Read error: Operation timed out) |
17:35:40
| * kazupon | joined |
17:40:08
| * kazupon | quit (Ping timeout: 245 seconds) |
17:47:58
| <isaacs> | indutny: we can go ahead and emit 'data', i guess |
17:48:02
| <isaacs> | indutny: send a pull req :) |
17:49:34
| * creationix | quit (Read error: Connection reset by peer) |
17:55:46
| * mmalecki[away] | changed nick to mmalecki |
17:59:08
| * indexzero | joined |
18:00:15
| * skebcio_ | joined |
18:01:08
| * skebcio | quit (Ping timeout: 246 seconds) |
18:02:03
| * nsm | quit (Quit: nsm) |
18:02:41
| * csaoh | quit (Quit: csaoh) |
18:04:10
| * sblom | joined |
18:06:42
| <sblom> | isaacs: Just saw my ircretary notes. So we still have a Windows blocking bug? :( |
18:06:57
| <isaacs> | sblom: oh, um.. not blocking :) |
18:07:02
| <sblom> | Okay. |
18:07:43
| <isaacs> | http://blog.nodejs.org/2013/03/11/node-v0-10-0-stable/ |
18:07:45
| <isaacs> | it's out ^ |
18:07:45
| * `3E|DINNER | changed nick to `3E |
18:07:56
| <sblom> | Ahh, cool. |
18:08:03
| <isaacs> | sblom: but yeah, we have a few failing tests, so we should get those fixed soon, and release 0.10.1 this week or so |
18:08:33
| <sblom> | Alright. Today's awful for me, but I'll take a look shortly. |
18:09:18
| * davisp | quit (Changing host) |
18:09:18
| * davisp | joined |
18:09:36
| <isaacs> | sblom: no worries |
18:16:12
| * indexzero | quit (Quit: indexzero) |
18:16:35
| * brianc1 | joined |
18:16:39
| <brianc1> | hola |
18:16:47
| <isaacs> | hi |
18:17:55
| * brson | joined |
18:17:58
| <brianc1> | I just got a C++ level error from nodev0.9.12 - trying to reproduce with nodev0.10.0 now - my question is: it says Aborted (core dumped)...where is it dumped? |
18:19:09
| <brianc1> | I am not the world's leading expert on C/C++ |
18:19:42
| <brianc1> | yeah still happens in node@v0.10.0 |
18:19:51
| <brianc1> | StreamWrap: Aborting due to unwrap failure at ../src/stream_wrap.cc:125 |
18:19:51
| <brianc1> | Aborted (core dumped) |
18:19:51
| <brianc1> | bmc@bmcnix:~/src/web/green-grass$ node --version |
18:19:51
| <brianc1> | v0.10.0 |
18:21:49
| * `3E | quit (Remote host closed the connection) |
18:22:40
| <tjfontaine> | ulimit -c unlimited |
18:22:52
| <brianc1> | tjfontaine: are you talking to me? |
18:22:58
| <tjfontaine> | and your core should be local, or on osx it may show up in /cores (if the path exists) |
18:23:50
| <brianc1> | hmmm don't see the core no where. what would the file be called? |
18:24:07
| <tjfontaine> | most of the time `core` or `core.<pid>` |
18:24:14
| <tjfontaine> | it could be beside where the executable is |
18:24:15
| <brianc1> | still dies with ulimit -c unlimited |
18:24:31
| * hz | joined |
18:24:33
| <tjfontaine> | I'm nto expecting it to not die, just to make the core appear |
18:24:37
| <brianc1> | it's going to be a bitch to reproduce |
18:24:39
| <brianc1> | haha |
18:24:46
| <brianc1> | it's in the middle of a long suite of integration tests within mocha |
18:25:06
| <tjfontaine> | have fun! |
18:25:15
| <brianc1> | and it does somewhere after moch stops executing my test & mocha calls exit(1) |
18:27:27
| * ryah | quit (Quit: leaving) |
18:28:56
| * `3rdEden | joined |
18:30:09
| * isaacs | changed nick to _isaacs_afk |
18:36:30
| * AvianFlu | quit (Remote host closed the connection) |
18:36:47
| * kazupon | joined |
18:41:09
| * indexzero | joined |
18:42:04
| * kazupon | quit (Ping timeout: 245 seconds) |
18:44:34
| * bradleymeck | quit (Ping timeout: 252 seconds) |
18:58:46
| * Ralt | joined |
18:58:53
| * sblom | quit (Ping timeout: 245 seconds) |
19:00:44
| * AvianFlu | joined |
19:05:19
| * indexzero | quit (Quit: indexzero) |
19:05:24
| * AvianFlu | quit (Remote host closed the connection) |
19:06:40
| * mikeal | quit (Quit: Leaving.) |
19:19:18
| * qmx | changed nick to qmx|lunch |
19:30:36
| * bradleymeck | joined |
19:30:58
| * wolfeida_ | joined |
19:34:39
| * wolfeidau | quit (Ping timeout: 276 seconds) |
19:38:08
| * kazupon | joined |
19:39:40
| * bnoordhuis | joined |
19:41:02
| <bnoordhuis> | evening people |
19:41:05
| <bnoordhuis> | so 0.10 is out? |
19:43:17
| * kazupon | quit (Ping timeout: 248 seconds) |
19:44:18
| <sgallagh> | Yes indeed :) I'm working on packaging up libuv and Node 0.10 as we speak :) |
19:44:27
| <sgallagh> | Congratulations |
19:45:56
| <KiNgMaR> | partey |
19:46:13
| <tjfontaine> | bnoordhuis: welcome home |
19:46:19
| <bnoordhuis> | thank you :) |
19:46:22
| <bnoordhuis> | sgallagh: oh, nice |
19:49:23
| <tjfontaine> | bnoordhuis: how receptive would you be to subsecond granularity in fs.stat() (excepting the fact that not all filesystems support it) |
19:49:49
| <bnoordhuis> | tjfontaine: quite receptive. it's on my todo list |
19:50:08
| <tjfontaine> | bnoordhuis: do we support any platforms where posix 2008 isn't supported? |
19:50:29
| <tjfontaine> | ignoring windows for the moment I guess :) |
19:51:14
| <tjfontaine> | centos5 should support it, do we go back before that? |
19:51:45
| <piscisaureus> | tjfontaine: we can get subsecond on windows (again, depending on the fs. I think NTFS can do it for ctime/mtime/creation time) |
19:51:48
| * qmx|lunch | changed nick to qmx |
19:52:05
| <tjfontaine> | nod |
19:52:12
| <tjfontaine> | fat is only 2 seconds right? |
19:52:59
| <tjfontaine> | anyway, ok I'll persue this |
19:54:39
| * creationix | joined |
19:58:00
| * TooTallNate | quit (Quit: Computer has gone to sleep.) |
20:01:47
| <bnoordhuis> | tjfontaine: re posix 2008, older bsds |
20:02:34
| <bnoordhuis> | but i don't really care if subsecond resolution works for them or not |
20:03:30
| * mikeal | joined |
20:05:28
| * stagas_ | joined |
20:06:25
| * Ralt | quit (Remote host closed the connection) |
20:07:18
| <piscisaureus> | tjfontaine: the boundary just shifts. Instead of saying "we provide you want the same resolution on all platforms" we just give you whatever the OS and FS supports |
20:07:18
| * stagas | quit (Ping timeout: 264 seconds) |
20:07:57
| * stagas | joined |
20:08:55
| * qmx | changed nick to qmx|coffee |
20:10:26
| * stagas_ | quit (Ping timeout: 252 seconds) |
20:14:16
| * TooTallNate | joined |
20:16:32
| * jguerrero | quit (Ping timeout: 252 seconds) |
20:17:05
| * stagas | quit (Ping timeout: 256 seconds) |
20:19:05
| <indutny> | so |
20:19:10
| <indutny> | we're all good so far? |
20:19:18
| <indutny> | nothing serious, yet, right? |
20:19:54
| <piscisaureus> | Why is the libuv version 0.9? |
20:20:32
| <indutny> | yeah |
20:20:39
| <indutny> | I asked the same question hours ago |
20:22:56
| * qmx|coffee | changed nick to qmx |
20:26:20
| * AvianFlu | joined |
20:26:32
| * indexzero | joined |
20:28:22
| <piscisaureus> | we should get that corrected |
20:28:57
| <brianc1> | i had my v0.10.0 dump core but wasn't able to reproduce it without my entire test suite running from mocha. :( |
20:29:28
| <brianc1> | I can give you my core dump if you want, but I spent a few hours trying to narrow it down and all I know it has something to do with mocha calling process.exit |
20:29:47
| <brianc1> | probably some early exit shut-down race condition & not a big deal |
20:30:49
| <indutny> | can you publish core anyway? |
20:30:54
| <brianc1> | absolutely |
20:31:00
| <piscisaureus> | brianc1: this was on smartos I presume? |
20:31:12
| <brianc1> | no, ubuntu 12.whatever |
20:31:21
| <indutny> | btw, are you sure that was segfault? |
20:31:24
| <indutny> | not process.exit(11) |
20:31:28
| <brianc1> | no not sure it was a segfault |
20:31:36
| <brianc1> | lemme get the original error message it dumped to the console |
20:31:41
| <indutny> | because mocha's exit code = number of failed tests |
20:31:55
| <piscisaureus> | indutny: well if there's a core dump then it sure wasn't a healthy exit |
20:31:57
| <indutny> | ah |
20:32:01
| <indutny> | sorry, right |
20:32:15
| <brianc1> | (01:19:55 PM) brianc1: StreamWrap: Aborting due to unwrap failure at ../src/stream_wrap.cc:125 |
20:32:15
| <brianc1> | (01:19:55 PM) brianc1: Aborted (core dumped) |
20:32:15
| <brianc1> | (01:19:55 PM) brianc1: bmc@bmcnix:~/src/web/green-grass$ node --version |
20:32:15
| <brianc1> | (01:19:55 PM) brianc1: v0.10.0 |
20:32:34
| <indutny> | interesting |
20:32:37
| <brianc1> | yeah I'm not a fan of mocha doing a process.exit, but I am a fan of most everything else it does so I abide |
20:32:39
| <piscisaureus> | hmm. that looks bad |
20:32:56
| <brianc1> | weirdly if I just ran a single test file it doesn't die |
20:32:56
| <indutny> | GetFD |
20:33:04
| <brianc1> | but if i run the whole suite it dies on the same test |
20:33:16
| <piscisaureus> | possibly due to redirected stdout |
20:33:35
| <brianc1> | I mean, the test is an error - try to run a query before table exists, so the test fails. i do a "teardown" to disconnect from postgres, which works fine, then mocha takes over its error + exit stuff and somewhere in there it does |
20:33:42
| <brianc1> | s/does/dies |
20:33:54
| <indutny> | hm... |
20:34:01
| <indutny> | it seems like someone is trying to access .fd propery |
20:34:05
| <indutny> | of handle |
20:34:07
| <brianc1> | i know...i hate not being more help. :( |
20:34:29
| <indutny> | or probably just printing out handle to console |
20:34:36
| <indutny> | and handle is ... not really a handle |
20:34:38
| <indutny> | :) |
20:34:59
| <piscisaureus> | indutny: spot on. *or* trying to access fd of a closed handle |
20:35:16
| <brianc1> | uploading the core dump. will take ~2 min |
20:35:30
| <piscisaureus> | indutny: it could just be a console.log call with a closed handle in there somewhere |
20:35:36
| <indutny> | closed handle? |
20:35:38
| <indutny> | are you sure |
20:36:07
| <indutny> | ah, yes |
20:36:10
| <indutny> | it might be this |
20:36:19
| <brianc1> | i can trace back & see which version introduced it |
20:36:20
| <piscisaureus> | indutny: yes, after the close callback the v8 object gets dissociated from the c++ object |
20:36:22
| <brianc1> | give me a few min |
20:36:25
| <indutny> | I see it |
20:36:28
| <piscisaureus> | and the internal field will be 0 |
20:36:31
| <indutny> | yeah |
20:36:33
| <indutny> | OnClose |
20:36:33
| <piscisaureus> | which causes the assert |
20:36:35
| <indutny> | in handle_wrap.cc |
20:36:38
| <piscisaureus> | yeah |
20:37:00
| <indutny> | seems like so |
20:37:22
| <indutny> | so... we need to figure out who's referencing this handle |
20:38:03
| <piscisaureus> | indutny: so you should be able to reproduce: |
20:38:03
| <piscisaureus> | var conn = net.connect(80, 'www.google.com'); |
20:38:03
| <piscisaureus> | conn.on('connected', function() { |
20:38:03
| <piscisaureus> | conn.destroy(); |
20:38:03
| <piscisaureus> | setTimeout(function() { |
20:38:03
| <piscisaureus> | console.log(conn); |
20:38:03
| <piscisaureus> | }, 1000); |
20:38:04
| <piscisaureus> | }); |
20:38:15
| <indutny> | does it work? |
20:38:30
| <piscisaureus> | indutny: dunno, running windows atm and windows can't be affected |
20:38:36
| <piscisaureus> | since fds are not available |
20:38:41
| <piscisaureus> | actually let me boot ubuntu again |
20:38:53
| <brianc1> | doesn't happen in nodev0.8.20 |
20:39:11
| <indutny> | working fine on osx too |
20:39:31
| * kazupon | joined |
20:39:52
| <indutny> | brianc1: are there any server.listen() calls in your test suite? |
20:39:57
| <brianc1> | yeah tons |
20:40:05
| <brianc1> | but they should all get closed on the teardown |
20:40:39
| <indutny> | I guess they're just called with port and address, not handle, right? |
20:40:47
| <indutny> | i.e., not listen(handle) |
20:40:49
| <brianc1> | yeah just port & address |
20:40:52
| <indutny> | ok |
20:40:55
| <indutny> | just to be sure |
20:41:00
| <brianc1> | sure |
20:41:42
| <brianc1> | here's the core dump: bmc.io/core |
20:41:50
| <brianc1> | whoops: http://bmc.io/core |
20:42:31
| <brianc1> | honestly I can't reproduce it anymore. I've added some tests in my working dir and it exists as expected now... |
20:42:34
| <indutny> | huh |
20:42:48
| <indutny> | ah, I've wrong symbol table :) |
20:42:52
| <brianc1> | i know - bummer. that's why I think it's some kinda race with mocha doing a process.exit |
20:43:05
| <brianc1> | I'm pretty sure that core dump is v0.10.0 |
20:43:32
| <indutny> | anyway its bad |
20:43:38
| <brianc1> | bmc@bmcnix:~/src/node-omf$ lsb_release -a |
20:43:38
| <brianc1> | No LSB modules are available. |
20:43:38
| <brianc1> | Distributor ID: Ubuntu |
20:43:38
| <brianc1> | Description: Ubuntu 12.04.2 LTS |
20:43:38
| <brianc1> | Release: 12.04 |
20:43:39
| <brianc1> | Codename: precise |
20:43:46
| <brianc1> | that's my system |
20:43:52
| <indutny> | ah, that was ubuntu |
20:43:56
| <indutny> | gosh :) |
20:44:01
| <brianc1> | i'll be around if you have any more questions about my setup |
20:44:21
| <indutny> | sure |
20:44:21
| <indutny> | thanks |
20:44:32
| <brianc1> | absolutely - sorry I couldn't narrow it down. |
20:44:34
| * bradleymeck_ | joined |
20:44:47
| <brianc1> | it's like the worst bug report ever: "oh, yeah, it crashed on me in the middle of 10k lines of code executing" |
20:44:53
| <piscisaureus> | indutny: seems that fd is not available for tcp connections |
20:45:03
| * kazupon | quit (Ping timeout: 260 seconds) |
20:45:05
| <piscisaureus> | it is however for process.std[in|out|err] |
20:45:23
| <indutny> | I believe so |
20:45:44
| <indutny> | wait |
20:45:49
| <indutny> | no, I don't believe it:) |
20:45:56
| <indutny> | are you sure you're checking conn._handle.fd and not conn.fd |
20:46:03
| <indutny> | former seems to be working fine for me |
20:47:16
| * bradleymeck | quit (Ping timeout: 246 seconds) |
20:47:17
| * bradleymeck_ | changed nick to bradleymeck |
20:49:58
| <piscisaureus> | ahh |
20:50:00
| <piscisaureus> | yes you are right |
20:50:20
| * piscisaureus | stoopid |
20:50:31
| <indutny> | np |
20:50:35
| <indutny> | I tried that too :) |
20:50:40
| <indutny> | but I thought it must be there :) |
20:50:44
| <indutny> | and tried latter one |
20:51:38
| * stagas | joined |
20:56:31
| <indutny> | hm... |
20:56:32
| * bradleymeck | quit (Quit: bradleymeck) |
20:56:34
| <indutny> | can't open core |
20:56:35
| <indutny> | on ubuntu |
20:56:43
| <indutny> | I mean, I can't see symbol names |
21:02:19
| <bnoordhuis> | indutny: you're probably missing the debug libs for that particular lib version |
21:02:29
| * sblom | joined |
21:02:30
| <bnoordhuis> | that's always an issue with moving core files from one system to another |
21:02:31
| <indutny> | oh gosh |
21:02:34
| <indutny> | yeah |
21:03:07
| <indutny> | brianc1: can you post full stack trace |
21:03:19
| <indutny> | please |
21:03:25
| <bnoordhuis> | btw, "gosh"? learned a new word today, did you? :) |
21:03:46
| <tjfontaine> | PLEASE DON'T OFFEND $DEITY :P |
21:03:47
| <LOUDBOT> | PEOPLE EXPRESS INTEREST IN THE LOUD ROBOT |
21:03:50
| <indutny> | learn another one |
21:03:54
| <indutny> | oh bob |
21:04:43
| <brianc1> | hi |
21:04:48
| <brianc1> | there was no stack trace |
21:04:54
| <indutny> | but you've core file |
21:05:02
| <brianc1> | oh right from the core file |
21:05:02
| <brianc1> | sorry |
21:05:06
| <indutny> | yeah |
21:05:10
| <brianc1> | let me google how to do that. one minute |
21:05:11
| <indutny> | I just can't get right names out of it :) |
21:05:13
| <indutny> | ah |
21:05:17
| <indutny> | just call gdb node -c core |
21:05:18
| <indutny> | and then bt |
21:05:50
| <bnoordhuis> | apply thread all backtrace full |
21:07:52
| <brianc1> | is this an issue: Core was generated by `node /home/bmc/src/web/green-grass/node_modules/mocha/bin/_mocha'. |
21:08:04
| <brianc1> | it's saying a bunch of No symbol table info available |
21:10:03
| <brianc1> | I had a node install fail on my end this morning & recompiled node@v0.10.0 a few times. I am thinking I might not be able to read this core dump either. :( |
21:10:13
| <brianc1> | I'll be at node-conf if you want to publicly shame me in person. |
21:10:36
| <indutny> | great |
21:10:43
| <indutny> | I won't be there |
21:10:50
| <indutny> | :) |
21:10:53
| <brianc1> | haha |
21:10:53
| <indutny> | for your safety |
21:11:12
| <brianc1> | well I'm sorry about my mistake there |
21:11:23
| <brianc1> | I'll keep running tests |
21:11:26
| <brianc1> | if it pops up again |
21:11:29
| <indutny> | ok |
21:11:36
| <brianc1> | I'll know better this time! |
21:15:25
| * isaacs_mobile | joined |
21:21:13
| * mmalecki | changed nick to mmalecki[zzz] |
21:22:44
| * stagas | quit (Ping timeout: 246 seconds) |
21:25:18
| * piscisaureus | quit (Ping timeout: 252 seconds) |
21:25:40
| * stagas | joined |
21:28:58
| * defunctzombie | joined |
21:29:14
| <defunctzombie> | tjfontaine: suggestion for your jenkins node tests |
21:29:23
| <tjfontaine> | to kill them all? |
21:29:27
| <defunctzombie> | tjfontaine: test against popular node modules |
21:29:34
| <defunctzombie> | tjfontaine: so you can detect backwards compat issues |
21:29:59
| <tjfontaine> | defunctzombie: there are some plans for that, but there are other fish to fry, we want to start tracking benchmarking as well |
21:30:16
| <defunctzombie> | tjfontaine: sure, just a suggestion for future releases and such |
21:30:27
| <defunctzombie> | tjfontaine: good way to avoid backwards compat breaks |
21:30:40
| <tjfontaine> | defunctzombie: sure, but some of course are on purpose :) |
21:30:49
| <defunctzombie> | performance decrease is one thing, but total breakage .. is sadness :( |
21:31:04
| <defunctzombie> | tjfontaine: no changes should break existing code between two versions |
21:31:26
| <defunctzombie> | tjfontaine: at this point in node's life, otherwise upgrading becomes impossible and you get the python 3 fiasco |
21:31:55
| <tjfontaine> | I'm not the right person to have this argument with, but the point is to get to an api that everyone can live with for 1.0 |
21:32:19
| <defunctzombie> | tjfontaine: sure, isaacs_mobile just told me to ping you and tell you about the test stuff |
21:32:23
| <tjfontaine> | we try really hard to limit the pain, and things are not nearly as painful as they were in the past |
21:32:30
| <tjfontaine> | yes, I am the right person about the tests |
21:32:42
| <defunctzombie> | tjfontaine: of course, I know this. been using node a long time now |
21:33:05
| * indexzero | quit (Quit: indexzero) |
21:33:08
| <defunctzombie> | tjfontaine: just given the new "stable" release and issues pouring in, would be a good time to write down what projects exposed problems |
21:33:18
| <defunctzombie> | and consider those for future release tests |
21:33:53
| * sblom | quit (Ping timeout: 245 seconds) |
21:34:04
| <tjfontaine> | your suggestion is noted, and some form of that is certainly planned |
21:34:17
| <tjfontaine> | it would also be helpful of course if downstream helped by tracking along with us |
21:34:43
| * Ralt | joined |
21:34:50
| <isaacs_mobile> | tjfontaine: that was actually envisioned from the start. |
21:35:03
| <isaacs_mobile> | In some form or another. |
21:35:11
| <tjfontaine> | my goal would be to provide a mechanism for people to submit their modules for testing, and things happen without much interaction from us at all |
21:35:24
| <tjfontaine> | isaacs_mobile: right |
21:35:26
| <isaacs_mobile> | Yes. This. |
21:35:33
| * Ralt | quit (Remote host closed the connection) |
21:35:55
| <isaacs_mobile> | Automation over curation. |
21:36:08
| <defunctzombie> | tjfontaine: isaacs_mobile: travis ci does help with this by making intermediate releases available |
21:36:29
| <defunctzombie> | but certainly the main project should be cognizant of the major players in the module space (and a diverse set of players) |
21:37:01
| <defunctzombie> | I know that c++ standards bodies and compiler writers do this for large codebases at google, apple, msft etc |
21:37:38
| <tjfontaine> | thank god we don't have to make sure we can always compile boost |
21:37:44
| <isaacs_mobile> | defunctzombie: we could certainly seed the list at first. |
21:38:11
| * isaacs_mobile | trusts tjfontaine to do |
21:38:36
| <isaacs_mobile> | Er, to dtrt |
21:38:46
| <tjfontaine> | ya, we're on the same page |
21:40:52
| <tjfontaine> | bnoordhuis: hey, I suppose it makes sense for libuv to be the responsible party for exporting a consistent interface for the stat? instead of doing the platform switching in node_file |
21:40:58
| * kazupon | joined |
21:45:42
| * kazupon | quit (Ping timeout: 264 seconds) |
21:49:50
| * AvianFlu | quit (Remote host closed the connection) |
21:55:40
| * rendar | quit |
21:59:36
| * c4milo | quit (Remote host closed the connection) |
22:00:46
| * creationix | quit (Quit: ZNC - http://znc.in) |
22:01:35
| * isaacs_mobile | quit (Ping timeout: 260 seconds) |
22:01:45
| <bnoordhuis> | tjfontaine: yes, that's something bert and i have discussed and agreed on in the past |
22:01:56
| <indutny> | bnoordhuis: time for crypto refactor :) |
22:02:03
| <bnoordhuis> | but only in a general, high-level sense. no specifics |
22:02:32
| <bnoordhuis> | indutny: and dgram cleanup. and libuv threadpool fixups. and, and... |
22:02:41
| <indutny> | yah |
22:02:47
| <indutny> | yep |
22:02:49
| <indutny> | ok |
22:02:49
| <bnoordhuis> | also, i have a neat hack in mind to speed up ipc on recent linux kernels |
22:02:55
| <indutny> | really? |
22:02:56
| <indutny> | how? |
22:03:10
| <bnoordhuis> | instead of reading/writing to/from a pipe |
22:03:13
| <tjfontaine> | bnoordhuis: well, it makes sense if other people want it (who aren't node), and we just fill in 0 for the platforms that don't support it, but it means wrapping how the various *stat's work |
22:03:20
| <bnoordhuis> | there's a couple of new syscalls we can use for fast ipc |
22:03:30
| <indutny> | oh |
22:03:30
| <bnoordhuis> | and use an eventfd for synchronization |
22:03:30
| <indutny> | kewl |
22:03:37
| <indutny> | yeah, eventfd is awesome |
22:03:50
| <bnoordhuis> | process_vm_readv and process_vm_writev in case you're curious |
22:04:35
| <indutny> | will it just read/write directly into another process' memory? |
22:04:39
| <indutny> | or transfer pages? |
22:04:57
| <bnoordhuis> | i think the current implementation copies |
22:04:58
| <indutny> | if so - it feels like L4, pretty much |
22:05:03
| <indutny> | grant/map |
22:05:05
| <indutny> | you know |
22:05:33
| * dominictarr | joined |
22:05:44
| * wolfeida_ | quit (Remote host closed the connection) |
22:05:51
| <bnoordhuis> | tjfontaine: the idea was to copy out the struct stat info into a uv_stat_t type |
22:06:23
| <bnoordhuis> | copying data kind of sucks, of course, but it probably doesn't matter from a performance perspective here |
22:06:29
| <tjfontaine> | right |
22:06:48
| <indutny> | ok |
22:06:51
| <indutny> | time to sleep now |
22:06:53
| <indutny> | ttyl gus |
22:06:56
| <bnoordhuis> | sleep tight, fedor |
22:06:58
| <tjfontaine> | would this would be in place of the uv_statbuf_t typedef? |
22:06:59
| <indutny> | thanks for a release :) |
22:07:07
| <bnoordhuis> | tjfontaine: yes |
22:07:37
| <tjfontaine> | ok |
22:08:21
| * dominictarr | quit (Client Quit) |
22:15:32
| * Kakera | joined |
22:17:45
| * dominictarr | joined |
22:17:57
| * dominictarr | quit (Client Quit) |
22:24:47
| * Ralt | joined |
22:26:33
| * wolfeidau | joined |
22:26:40
| * Ralt | quit (Remote host closed the connection) |
22:34:02
| * qmx | changed nick to qmx|away |
22:34:40
| * trevnorris | joined |
22:36:45
| <trevnorris> | isaacs just wanted to drop in and let you know I'm trying to work with the v8 team to have a type of weak reference to Local Handles added to remove the need of Persistent the handle. |
22:36:45
| * trevnorris | quit (Read error: Connection reset by peer) |
22:37:31
| * trevnorris | joined |
22:38:56
| <trevnorris> | It already sort of exists as WeakMaps as part of the harmony specification, so I'm seeing if something like that could be added to the cc side |
22:42:10
| * kazupon | joined |
22:42:54
| <trevnorris> | Anyways, I'm out. At Sea World with the fam. =) |
22:43:12
| <tjfontaine> | trevnorris: don't let the laptop into the splash zone |
22:43:18
| * trevnorris | quit (Quit: Bye) |
22:47:47
| * kazupon | quit (Ping timeout: 260 seconds) |
22:47:53
| * benoitc | quit (Excess Flood) |
22:48:32
| * `3rdEden | quit (Quit: zzzz) |
22:53:38
| * benoitc | joined |
22:56:06
| * mikeal1 | joined |
22:56:20
| * mikeal | quit (Read error: Connection reset by peer) |
23:06:22
| * dominictarr | joined |
23:08:27
| <MI6> | joyent/node: Ben Noordhuis v0.10 * da10bb8 : doc: events: add 'removeListener' event section Amends commit 84221fd by - http://git.io/7KO7cw |
23:09:17
| * dominictarr | quit (Client Quit) |
23:18:14
| * c4milo | joined |
23:18:51
| <bnoordhuis> | indutny: for when you wake up, https://github.com/joyent/node/issues/4926 |
23:21:31
| <MI6> | nodejs-v0.10: #13 UNSTABLE windows-ia32 (4/559) osx-ia32 (1/559) windows-x64 (4/559) http://jenkins.nodejs.org/job/nodejs-v0.10/13/ |
23:33:43
| * Kakera | quit (Ping timeout: 256 seconds) |
23:34:26
| * sblom | joined |
23:36:50
| * dominictarr | joined |
23:37:18
| * dominictarr | quit (Client Quit) |
23:38:37
| * dominictarr | joined |
23:43:35
| * kazupon | joined |
23:44:33
| <saghul> | The comment for uv_tcp_simultaneous_accepts is a bit confusing: https://github.com/joyent/libuv/blob/master/include/uv.h#L670 |
23:45:14
| <saghul> | it also applies to unix these days doesn't it? also, it's off by default, isn't it? |
23:48:19
| <bnoordhuis> | saghul: correct (2x) |
23:49:01
| * kazupon | quit (Ping timeout: 256 seconds) |
23:49:18
| <saghul> | bnoordhuis aha |
23:49:54
| * hz | quit |
23:49:58
| * jguerrero | joined |
23:50:38
| <saghul> | bnoordhuis if one does uv_tcp_simultaneous_accepts(handle, 1) wouldn't it be expected that multiple accepts are enabled? right now it toggles the single accept flag. Am I reading this right? |
23:52:13
| * dominictarr | quit (Quit: dominictarr) |
23:55:06
| * dominictarr | joined |
23:58:00
| <bnoordhuis> | saghul: it's off by default on unix but i think it's on by default on windows |
23:58:23
| <saghul> | I see. |
23:58:28
| * sgallagh | quit (Read error: Operation timed out) |
23:58:37
| <bnoordhuis> | i'm not 100% sure but i think you can only turn it off on windows, not on again |
23:58:57
| <saghul> | yes, looks that way |
23:59:58
| <saghul> | doesn't the unix version kind of apply the setting in reverse? |