00:01:50  <mmalecki>(props to anyone who can read it, btw)
00:02:13  <igorzi>bnoordhuis: the problem was that stream.pipe closes the dest stream.. that change was to prevent someStream.pipe(stdout) from closing stdout
00:02:31  <bnoordhuis>mmalecki: it's probably this -> lstat64("/tmp/substationine-ultrasonic-0.0.1-5.tgz\0", 0x102B17C60, 0x17C) = -1 Err#2
00:02:52  <bnoordhuis>igorzi: okay, it's apparently introduced a regression: https://github.com/joyent/node/issues/2507
00:03:24  <bnoordhuis>mmalecki: or this: mkdir("/tmp\0", 0x1ED, 0x1025CE6C8) = -1 Err#17
00:05:27  <mmalecki>and second one https://raw.github.com/gist/665bf0605b447272af19/b5d4e42f64d4b500b604e692ad1f1a4f79aed7db/gistfile1.txt
00:06:02  <mmalecki>hope it helps! also, our users are awesome :)
00:06:17  <bnoordhuis>mmalecki: mkdir("/tmp\0", 0x1ED, 0xFFFFFFFFFFFFFA7F) = -1 Err#17 <- there it is again
00:06:29  <bnoordhuis>why are you doing that?
00:06:41  <mmalecki>well, I don't think we are?
00:06:45  <mmalecki>let me grep the sauce
00:07:08  <bnoordhuis>mmalecki: also -> lstat64("/tmp/ysalmi-audii-0.0.0-3.tgz\0", 0x10E316800, 0x168) = -1 Err#2
00:07:22  <mmalecki>we aren't mkdir'ing anywhere in jitsu
00:07:26  <bnoordhuis>you may have a race where you try to stat the file before it's created
00:07:52  <mmalecki>unless AvianFlu decided to use fs['m' + 'k' + 'd' + 'i' + 'd']() somewhere XD
00:08:22  <mmalecki>bnoordhuis: ok, that's likely a race in npm, we don't do packaging ourselves
00:08:41  <mmalecki>AvianFlu knows more about the process tho
00:08:53  <mmalecki>bnoordhuis: but what's up with EUNKNOWN?
00:09:07  <bnoordhuis>that's a system error that libuv doesn't know how to map
00:09:24  <mmalecki>yeah, I know!
00:09:29  <mmalecki>I mean, which error is that?
00:09:42  <mmalecki>so, npm does mkdirp a lot
00:10:00  * mikealquit (Quit: Leaving.)
00:10:12  <mmalecki>we'll try to isolate it
00:10:33  <bnoordhuis>mmalecki: you can find out by placing a breakpoint on error.c:86
00:10:43  <bnoordhuis>`p sys_errno` when it hits
00:12:34  <AvianFlu>I'll look into it, most of it is inside npm at that point in the process
00:12:46  <mmalecki>bnoordhuis: ok. do you know if gdb is installed on mac by default?
00:13:02  <rmustacc>It's not.
00:13:04  <bnoordhuis>mmalecki: it's probably part of xcode
00:13:10  <mmalecki>AvianFlu: thanks! also, make sure you're running 0.6.x
00:13:41  <mmalecki>dammit apple
00:14:05  <mmalecki>yeah, anyway, I'm off to make these slides
00:14:15  <mmalecki>I'll try reproducing it later
00:22:06  * sh1mmerquit (Quit: sh1mmer)
00:22:36  * sh1mmerjoined
00:31:58  * mikealjoined
00:41:54  * mikealquit (Quit: Leaving.)
00:43:00  <igorzi>bnoordhuis: is it valid to test one uv_thread_t for equality with another uv_thread_t?
00:43:22  <bnoordhuis>igorzi: tentatively yes
00:43:46  <bnoordhuis>is that a problem on windows?
00:45:16  <CIA-115>libuv: Ben Noordhuis v0.6 * r0e6e4ab / src/unix/udp.c :
00:45:16  <CIA-115>libuv: unix: fix udp recv_start refcount
00:45:16  <CIA-115>libuv: Calling uv_udp_recv_start() should not bump the event loop's reference count.
00:45:16  <CIA-115>libuv: Fixes failing test udp_ref2. - http://git.io/egnvGw
00:46:17  <igorzi>bnoordhuis: ok, i think we need to slightly redo the windows side.. the issue is with uv_thread_self. GetCurrentThread returns a constant pseudo handle, which is only valid in the context of the current thread
00:46:55  * travis-cijoined
00:46:55  <travis-ci>[travis-ci] joyent/libuv#30 (v0.6 - 0e6e4ab : Ben Noordhuis): The build is still failing.
00:46:55  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/6d9c9a5...0e6e4ab
00:46:55  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/521237
00:46:55  * travis-cipart
00:47:09  * mikealjoined
00:47:22  <bnoordhuis>igorzi: what's the solution?
00:48:42  <igorzi>we could either switch to uv_thread_t to be the thread id instead of handle.. or make uv_thread_self return a duplicated handle (that's valid outside of the current thread's context)
00:49:46  <igorzi>if we go with the former then uv_thread_join would need to convert thread id to handle
00:51:04  <igorzi>though using thread ids might be dangerous since they can be reused
00:51:29  <bnoordhuis>a duplicated handle sounds better when you put it like that. are there drawbacks?
00:54:24  <igorzi>bnoordhuis: a duplicated handle needs to be closed. also i'm not sure if the duplicated handle could be tested for equality with the original handle (from uv_thread_create).. let me see
00:58:55  * mikealquit (Quit: Leaving.)
01:00:59  * mikealjoined
01:02:03  * mikealquit (Client Quit)
01:04:48  <igorzi>bnoordhuis: so, duplicated handle can't be tested for equality with the original handle. also it would need to be closed at some point..
01:05:05  <igorzi>bnoordhuis: how about adding int uv_thead_id(uv_thread_t*) API?
01:05:52  <bnoordhuis>igorzi: maybe we don't need uv_thread_self()
01:06:15  <igorzi>bnoordhuis: that would also eliminate the problem
01:06:23  <bnoordhuis>is the handle that uv_thread_create() returns valid across different threads? (i suppose the answer can only be 'yes')
01:06:39  <igorzi>bnoordhuis: yes it is
01:07:25  <bnoordhuis>okay, in that case let's just ditch uv_thread_self()
01:07:48  <igorzi>bnoordhuis: ok, i'll make that happen
01:08:01  <bnoordhuis>sweet
01:16:06  <CIA-115>node: Ben Noordhuis v0.6 * rf0c1376 / (lib/net.js test/simple/test-net-connect-buffer.js):
01:16:06  <CIA-115>node: net: make .write() throw on bad input
01:16:06  <CIA-115>node: Passing a non-buffer or non-string argument to Socket.prototype.write triggered
01:16:06  <CIA-115>node: an assert:
01:16:06  <CIA-115>node: Assertion failed: (Buffer::HasInstance(args[0])), function Write,
01:16:06  <CIA-115>node: file ../src/stream_wrap.cc, line 289.
01:16:07  <CIA-115>node: Fixes #2532. - http://git.io/e5EPeQ
01:23:41  * travis-cijoined
01:23:41  <travis-ci>[travis-ci] joyent/node#235 (v0.6 - f0c1376 : Ben Noordhuis): The build was fixed.
01:23:41  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/766f609...f0c1376
01:23:41  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/521376
01:23:41  * travis-cipart
01:25:36  <CIA-115>libuv: Igor Zinkovsky master * r2651273 / (5 files in 4 dirs): remove uv_thread_self - http://git.io/WsfJrw
01:27:13  * travis-cijoined
01:27:13  <travis-ci>[travis-ci] joyent/libuv#31 (master - 2651273 : Igor Zinkovsky): The build is still failing.
01:27:13  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/94a5c7b...2651273
01:27:13  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/521465
01:27:13  * travis-cipart
01:41:35  <TooTallNate>mmalecki: yt?
01:41:56  * bnoordhuisquit (Read error: Operation timed out)
01:42:23  <mmalecki>TooTallNate: yeah
01:42:41  <TooTallNate>hey, you work on Travis right?
01:43:22  <mmalecki>TooTallNate: sounds about right, sup?
01:43:36  <TooTallNate>minor thing I noticed, needs better ANSI support: http://travis-ci.org/rbranson/node-ffi/builds/521499
01:43:50  <TooTallNate>mocha uses these: https://github.com/visionmedia/mocha/blob/master/lib/reporters/base.js#L84-104
01:44:22  <mmalecki>fuck :)
01:44:40  <TooTallNate>lol, ya some of those will probably suck :p
01:44:47  * mmaleckiwrote current version of ANSI support
01:45:11  <mmalecki>previous one sucked more tho, it was just a regexp
01:45:30  <TooTallNate>like i said, pretty minor, just thought I'd let you know
01:45:54  <mmalecki>TooTallNate: thanks! :). I'll open an issue for that
01:45:59  <TooTallNate>cool
01:47:30  <creationix>wow, pgriess has been busy working on http_parser
01:47:39  <creationix>if I upgrade I'll have to change my bindings right?
01:48:04  <mmalecki>TooTallNate: https://github.com/travis-ci/travis-ci/issues/386
01:48:24  <TooTallNate>mmalecki: killer! thanks man!
01:48:39  <mmalecki>TooTallNate: my pleasure
01:58:14  * dapquit (Quit: Leaving.)
02:04:12  * dshaw_quit (Quit: Leaving.)
02:13:44  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
03:07:28  * brsonquit (Quit: leaving)
03:10:20  * pieternquit (Quit: pietern)
03:11:39  * perezdquit (Quit: perezd)
03:15:15  * sh1mmerquit (Quit: sh1mmer)
03:16:40  * mikealjoined
03:36:56  * mrb_bkquit (Remote host closed the connection)
03:36:57  * Raynosquit (Read error: Connection reset by peer)
03:57:59  * Raynosjoined
04:07:12  * mrb_bkjoined
04:15:58  * mikealquit (Quit: Leaving.)
04:25:57  * Raynosquit (Remote host closed the connection)
04:37:07  * mrb_bkquit (Remote host closed the connection)
04:38:06  * bradleymeckjoined
04:39:01  * Raynosjoined
05:08:03  * mrb_bkjoined
05:27:28  * sh1mmerjoined
05:59:28  * sh1mmerquit (Quit: sh1mmer)
06:26:53  * bradleymeckquit (Ping timeout: 240 seconds)
06:27:47  * isaacs_lunchjoined
06:47:20  * ryah_quit (Quit: leaving)
07:24:31  * indexzerojoined
07:26:29  * isaacs_lunchquit (Remote host closed the connection)
07:39:25  * mikealjoined
07:40:48  * rmustaccpart
08:09:35  * chilts_changed nick to chilts
08:10:23  * mikealquit (Quit: Leaving.)
08:52:27  * mikealjoined
09:24:52  * mralephjoined
10:13:26  * paddybyersquit (Quit: paddybyers)
10:14:26  * `3rdEdenjoined
10:26:57  * AndreasMadsenjoined
11:06:06  * piscisaureus_joined
12:12:36  * paddybyersjoined
12:32:17  * paddybyersquit (Quit: paddybyers)
12:50:50  * `3rdEdenquit (Read error: Connection reset by peer)
12:50:56  * V1joined
12:51:07  * V1changed nick to `3rd-Eden
12:51:16  * `3rd-Edenchanged nick to `3rdEden
13:24:52  <indutny>piscisaureus_: yt?
13:24:53  <indutny>piscisaureus_: https://github.com/joyent/node/pull/2534
13:26:57  <indutny>piscisaureus_: can you please review and commit changes to uv
13:29:12  <indutny>piscisaureus_: see that https://github.com/joyent/libuv/commit/bde908f565f9b90f6a18a6ce266cc0c144fd4acb#commitcomment-865923
14:24:59  * kuebk^joined
14:43:37  * bradleymeckjoined
15:13:44  <indutny>piscisaureus_: ??
15:17:30  * AndreasMadsenquit (Remote host closed the connection)
15:17:38  * paddybyersjoined
15:20:32  <`3rdEden>indutny he has been idle for the last 4hours ;p
15:20:48  <`3rdEden>just whois him
15:29:14  <indutny>`3rdEden: thanks, irssi isn't displaying that info
15:38:02  <`3rdEden>aww that's to bad indutny
15:38:18  <`3rdEden>not even if you manually do a /whois piscisaureus_
15:40:53  <indutny>that's the only way to do that with irssi
15:41:01  <indutny>(I think)
15:45:23  * bnoordhuisjoined
15:47:22  * `3rdEdenquit (Read error: Connection reset by peer)
15:54:44  <indutny>bnoordhuis: heya!!!
15:54:51  <indutny>bnoordhuis: https://github.com/joyent/node/pull/2534
15:54:57  <indutny>bnoordhuis: see that https://github.com/joyent/libuv/commit/bde908f565f9b90f6a18a6ce266cc0c144fd4acb#commitcomment-865923
15:55:26  * `3rdEdenjoined
15:55:55  <bnoordhuis>indutny: i'll review it, give me a sec
15:56:03  <bnoordhuis>what was your c++ question btw?
15:57:18  <indutny>bnoordhuis: oh, nvm
15:57:37  <indutny>bnoordhuis: I wanted to ask you about reinterpret_cast and to access parent methods
15:57:52  <indutny>if parent is unknown
15:58:02  <indutny>:)
15:58:09  <indutny>but now it's clear to me
15:58:14  <bnoordhuis>hmm, i can't say i follow but i assume you've already figured it out for yourself
15:58:27  <indutny>bnoordhuis: yes
15:58:37  <kuebk^>hi
15:58:54  <indutny>hi
15:59:04  <kuebk^>what's the difference between v8::String:New and v8::String::NewSymbol?
15:59:20  <indutny>kuebk^: one creates string, another one symbol
15:59:30  <indutny>kuebk^: there can be only one symbol for a same value
15:59:37  <bnoordhuis>kuebk^: a NewSymbol string is interned in a symbol pool
15:59:39  <indutny>kuebk^: while you can any count of strings
15:59:50  <indutny>s/can/can have
15:59:51  <kuebk^>so if I want to to
15:59:58  <kuebk^>to get a key from Object
16:00:10  <kuebk^>it is better for key to be a string or symbol?
16:00:51  <bnoordhuis>you'd usually use a symbol and make the string persistent
16:01:26  <kuebk^>because symbol is generated once and string every time
16:01:27  <kuebk^>right?
16:01:28  <indutny>kuebk^: but use it carefully! symbols are never get GCed
16:01:37  <indutny>kuebk^: yes
16:02:29  <kuebk^>so symbols might give performance boost while strings would degree performance in some cases, right?
16:02:39  <indutny>kuebk^: yes
16:02:43  <kuebk^>thanks
16:02:47  <indutny>np
16:02:47  <kuebk^>:)
16:12:09  * AndreasMadsenjoined
16:13:48  <indutny>bnoordhuis: you can remove assertion from test to see how it's crashing
16:13:55  <indutny>bnoordhuis: it's a matter of seconds
16:14:14  <AndreasMadsen>bnoordhuis: yo
16:14:51  <AndreasMadsen>Could we land this: https://github.com/joyent/node/pull/2463
16:22:45  <indutny>bnoordhuis: tested on osx and unix, in both debug and release modes
16:28:11  <bnoordhuis>AndreasMadsen, indutny: i can probably look at it tonight
16:28:24  <piscisaureus_>AndreasMadsen: https://github.com/joyent/node/pull/2463/files#L0R491
16:28:32  <piscisaureus_>AndreasMadsen: that looks superfluous
16:29:18  <AndreasMadsen>bnoordhuis: Thanks have been trying to reach to in 2 days:
16:29:43  <AndreasMadsen>piscisaureus_: You like the old one better?
16:29:56  <bnoordhuis>AndreasMadsen: who? me or ryan?
16:30:01  <piscisaureus_>AndreasMadsen: well now you end up with:
16:30:04  <AndreasMadsen>bnoordhuis: both
16:30:06  <piscisaureus_>e.syscall = syscall
16:30:14  <piscisaureus_>if (syscall) e.syscall=syscall
16:30:22  <piscisaureus_>one of those lines is superfluous :-)
16:30:26  * isaacs_lunchjoined
16:31:09  <piscisaureus_>bnoordhuis: we should have "review day" every week
16:31:19  <bnoordhuis>piscisaureus_: i think one day a week won't cut it :)
16:31:20  <piscisaureus_>and "core contribs are there" day
16:31:27  <bnoordhuis>^ good idea
16:32:05  <AndreasMadsen>piscisaureus_: It follows the native code: https://github.com/joyent/node/blob/master/src/node.cc#L854
16:32:13  <indutny>piscisaureus_: ++
16:32:13  <kohai>piscisaureus_ has 0 beer
16:34:17  <piscisaureus_>AndreasMadsen: well I guess you have to remove line `e.syscall = syscall` then :-)
16:35:01  <AndreasMadsen>piscisaureus_: why - I'm not sure I understand the issue here
16:35:43  <AndreasMadsen>piscisaureus_: Since we are already making a change the error message why not make the errnoException future proof.
16:35:51  <piscisaureus_>AndreasMadsen: it's just a nit
16:35:58  <piscisaureus_>AndreasMadsen: your patch makes this code:
16:36:00  <piscisaureus_>e.syscall = syscall;
16:36:00  <piscisaureus_> if (path) e.path = path;
16:36:00  <piscisaureus_> if (syscall) e.syscall = syscall;
16:36:09  <piscisaureus_>can you spot the superfluousness ?
16:36:16  <AndreasMadsen>Oh, now I see it
16:36:32  <AndreasMadsen>That line should be removed :)
16:36:44  <AndreasMadsen>Will fix it now :)
16:37:32  <piscisaureus_>indutny: if you did a proper code review and have no doubts you are allowed to land stuff in node
16:37:48  <piscisaureus_>indutny: so if you say AndreasMadsen's code is good, then you can land it
16:38:03  <piscisaureus_>indutny: if you have doubts, then make sure to talk to others
16:38:18  * isaacs_lunchchanged nick to isaacs
16:43:38  <bnoordhuis>piscisaureus_: can you update libuv/v0.6 and run the tests?
16:43:58  <bnoordhuis>i've added a couple of refcount tests, i'm curious what the results are on windows
16:44:14  <AndreasMadsen>piscisaureus_: fixed :)
16:44:33  <indutny>piscisaureus_: ryah asked me to get my code reviewed by anyone from team before publishing
16:44:45  <bnoordhuis>indutny: i'll review your patch
16:44:48  <piscisaureus_>indutny: yes, your own code
16:45:25  <indutny>piscisaureus_: aah
16:45:28  <indutny>piscisaureus_: :)
16:45:36  <bnoordhuis>indutny: first off, it should be patch and test for libuv :)
16:45:53  <indutny>bnoordhuis: yes
16:45:59  <indutny>bnoordhuis: but it's simplier to test it on node
16:46:01  <indutny>bnoordhuis: for you
16:46:09  <indutny>bnoordhuis: aaah
16:46:14  <indutny>bnoordhuis: test for libuv?
16:46:15  <indutny>:)
16:46:17  <bnoordhuis>yes
16:46:20  <indutny>bnoordhuis: ok
16:46:32  <indutny>bnoordhuis: I'll do it tomorrow then
16:46:58  <bnoordhuis>indutny: it won't hurt to land the js test afterwards though
16:47:15  <indutny>bnoordhuis: k
16:47:18  <piscisaureus_>bnoordhuis: 0.6 right?
16:47:29  <piscisaureus_>bnoordhuis: 3 failures, no refcount tests failing
16:47:30  <bnoordhuis>piscisaureus_: yes, v0.6 branch of libuv
16:47:38  <bnoordhuis>hmm, good work
16:47:58  <bnoordhuis>what tests are failing for you?
16:48:11  <piscisaureus_>a sec
16:48:20  <piscisaureus_>multicast join, one stdio test, and another one
16:48:25  <piscisaureus_>bnoordhuis: it scrolled out of view
16:48:28  <piscisaureus_>bnoordhuis: will run again
16:48:39  <bnoordhuis>you can't scroll up? windows...
16:49:03  <piscisaureus_>bnoordhuis: gtg also, the gf waiting
16:49:18  <bnoordhuis>piscisaureus_: say hi from me
16:49:42  <piscisaureus_>bnoordhuis: oh wait in debug mode i have ref tests failing
16:49:44  <indutny>bnoordhuis: :)
16:49:49  <piscisaureus_>loop ends with refcount < 0
16:49:55  * piscisaureus_away
16:50:19  <piscisaureus_>bnoordhuis: ^
16:50:37  <bnoordhuis>good to know it's not just unix that's failing hardf
16:55:54  <kuebk^>I did something like
16:56:16  <kuebk^>Local<Boolean> b = args[0]->ToBoolean()
16:56:24  <kuebk^>how can I get a value of that bool now?
16:56:43  <bnoordhuis>kuebk^: args[0]->BooleanValue()
16:57:15  <AndreasMadsen>When will kill and sendHandle support be added to isolate
16:57:16  <AndreasMadsen>?
16:57:29  <indutny>kuebk^: or args[0]->IsTrue(), ot sure, but you can try
16:57:31  <indutny>s/ot/not
16:57:35  <bnoordhuis>AndreasMadsen: kill -> maybe never, sendHandle is on the TODO list
16:57:35  <kuebk^>hmm
16:57:54  <kuebk^>I think IsTrue will return always true
16:58:00  <kuebk^>unless i pass 0 or false
16:58:04  <kuebk^>since "" is true too
16:58:25  <bnoordhuis>kuebk^: just use BooleanValue(), it returns a bool
16:58:31  <kuebk^>yea
16:58:32  <kuebk^>i will
16:58:34  <kuebk^>thank you
16:58:39  <AndreasMadsen>bnoordhuis: It seams wired to not be able to support kill - in some way perhaps not signals
16:58:50  <bnoordhuis>AndreasMadsen: wired or weird?
16:59:21  <AndreasMadsen>Like wrong
16:59:53  <bnoordhuis>it's not safe to kill threads, the best you can do is message the other thread's event loop
17:00:05  <bnoordhuis>but that's still different from sending a SIGTERM or SIGINT
17:04:28  <AndreasMadsen>bnoordhuis: can userland stop the event loop?
17:04:44  <bnoordhuis>AndreasMadsen: you mean js code?
17:04:54  <AndreasMadsen>bnoordhuis: yes
17:05:02  <bnoordhuis>only by calling process.exit() right now
17:09:42  * piscisaureus_quit (Ping timeout: 252 seconds)
17:18:23  * isaacsquit (Remote host closed the connection)
17:35:58  * perezdjoined
17:36:12  * AndreasMadsenquit (Read error: Connection reset by peer)
17:37:20  * AndreasMadsenjoined
17:45:18  * indexzeroquit (Quit: indexzero)
17:47:36  * AndreasMadsenquit (Read error: Connection reset by peer)
17:48:35  * AndreasMadsenjoined
17:50:10  <indutny>bnoordhuis: pushed failing test to master
17:50:12  <CIA-115>node: Fedor Indutny master * re03b42d / test/simple/test-eio-limit.js : Add failing test-eio-limit.js - http://git.io/-Q_Bgw
17:51:02  <indutny>bnoordhuis: oh... no copyright notice
17:51:13  <indutny>fck
17:52:42  <CIA-115>node: Fedor Indutny master * r2202887 / test/simple/test-eio-limit.js : test-eio-limit: add missing copyright headers - http://git.io/W1B-3A
18:02:01  * travis-cijoined
18:02:01  <travis-ci>[travis-ci] joyent/node#236 (master - e03b42d : Fedor Indutny): The build is still failing.
18:02:01  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/f2ba4ce...e03b42d
18:02:01  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/523684
18:02:01  * travis-cipart
18:03:19  * pieternjoined
18:04:26  * travis-cijoined
18:04:26  <travis-ci>[travis-ci] joyent/node#237 (master - 2202887 : Fedor Indutny): The build is still failing.
18:04:26  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/e03b42d...2202887
18:04:26  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/523696
18:04:26  * travis-cipart
18:05:00  * pieternquit (Client Quit)
18:05:07  * pieternjoined
18:07:23  <paddybyers>bnoordhuis: I have isolate termination, I think it works
18:16:42  * bradleymeckquit (Quit: Leaving)
18:19:57  * perezdquit (Quit: perezd)
18:23:08  * piscisaureus_joined
18:26:41  <piscisaureus_>bnoordhuis: yt?
18:34:24  * mikealquit (Quit: Leaving.)
18:37:17  * mikealjoined
18:37:32  * mikealquit (Client Quit)
18:45:31  <indutny>piscisaureus_: ref tests are neat
18:46:04  <piscisaureus_>indutny: yes - but bnoordhuis tests do not reflect the semantics that me and ryah originally agreed on
18:46:19  <piscisaureus_>indutny: although - I am fine with the stuff bnoordhuis proposes
18:46:32  <piscisaureus_>which is that uv_connect_t and uv_write_t also add a ref to the event loop
18:46:58  <piscisaureus_>It makes the api more consistent which is always +1
18:47:01  <indutny>piscisaureus_: whatever you uv-guys do, I love it
18:47:02  <indutny>:)
18:47:09  <indutny>piscisaureus_: agreed
18:47:52  <indutny>piscisaureus_: I think one day node will be only libuv bindings for v8
18:47:57  <indutny>:)
18:48:09  <piscisaureus_>indutny: that would be interesting
18:48:26  <indutny>piscisaureus_: actually, we already moved about 1/3 of all code there
18:48:38  <piscisaureus_>indutny: but I am pretty sure we will not move openssl into libuv
18:48:48  <piscisaureus_>indutny: it is getting quite bloated already :-/
18:48:52  <indutny>piscisaureus_: :-?
18:48:55  <indutny>:)
18:49:06  <indutny>I hope pquerna will finish selene one day
18:49:13  <indutny>openssl is borked
18:49:29  <indutny>it doesn't fit our async-all concept at all
18:49:33  <piscisaureus_>I saw this awesome ssl library the other day but I forgot the name
18:50:03  <piscisaureus_>I wish piscisaureus.no.de had a search function
18:50:06  <indutny>well, creating ssl library is hard, creating secure ssl library is almost impossible to do
18:51:57  <piscisaureus_>indutny: I really like polarssl (http://polarssl.org/)
18:54:14  * dshaw_joined
18:55:05  <indutny>piscisaureus_: interesting
18:55:07  <indutny>looking
18:55:55  * isaacsjoined
18:56:08  <indutny>piscisaureus_: it isn't parsing extensions :/
18:56:43  <indutny>piscisaureus_: and looks like it's sync, isn't it?
18:57:39  <piscisaureus_>indutny: we shouldn't use the builtin networking
18:58:13  <indutny>piscisaureus_: yes, but I was talking about preprocessing stuff like NPN and SNI
19:04:43  * AndreasM_joined
19:04:48  * AndreasMadsenquit (Read error: Connection reset by peer)
19:12:13  * AndreasMadsenjoined
19:13:02  * `3rdEdenquit (Quit: brb irc client update)
19:13:36  * `3rdEdenjoined
19:14:39  * AndreasMadsenquit (Remote host closed the connection)
19:14:45  * AndreasM_quit (Quit: Leaving)
19:15:07  * AndreasMadsenjoined
19:18:39  <AndreasMadsen>bnoordhuis: Why not just simply send an JSON message to the thread, using the internalMessage handler. And the emit the signal event in the thread, of course we would need to check the number of SIGTERM and SIGINT event handlers, before emitting, and run process.exit() if no handlers exist.
19:18:57  <AndreasMadsen>This way kill could be supported
19:22:25  <indutny>bnoordhuis: lets consider extending message format for isolate channel, adding `type` may help solving AndreasMadsen's issue
19:22:58  <AndreasMadsen>indutny: what issue, I have so many
19:23:19  <indutny>AndreasMadsen: signals passing
19:23:46  <AndreasMadsen>indutny: Oh, and what would `type` do?
19:24:09  <indutny>AndreasMadsen: it can be enum like : kJsMessages, kSignal, ...
19:24:30  <indutny>that's only an idea
19:24:41  <indutny>I'm sure there may be some cons of doing that
19:24:46  <AndreasMadsen>indutny: like this https://github.com/joyent/node/pull/2458
19:24:49  <indutny>like increased complexity of code
19:25:25  <indutny>AndreasMadsen: your PR is kinda high-level
19:26:26  <AndreasMadsen>indutny: perhaps, but I think it solve a lot of issues without adding complexity
19:26:46  <indutny>AndreasMadsen: you can do it in user-land, you know
19:27:19  <AndreasMadsen>indutny: I know I can do it, but it require all modules to use the same pattern
19:27:31  <AndreasMadsen>indutny: And that is very unlikely
19:27:58  <AndreasMadsen>indutny: If it was just my own and only that would be used this would not be a problem
19:28:17  <AndreasMadsen>indutny: Have you scrolled down and read my very long responds to ryah
19:28:24  <indutny>AndreasMadsen: I think no
19:28:37  <indutny>you sent me a link to files section
19:28:53  <AndreasMadsen>https://github.com/joyent/node/pull/2458#issuecomment-3395560
19:29:15  <AndreasMadsen>hotlink ^
19:29:20  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
19:29:55  <indutny>AndreasMadsen: yeah
19:30:17  <indutny>AndreasMadsen: I don't understand why that can't be just handled in user-land, though
19:30:18  <AndreasMadsen>The point is that this is not about doing send(true, 'handleHTTPS') but isolate noise from different modules so they do not conflict
19:30:36  <indutny>AndreasMadsen: you will receive object anyway
19:30:50  <indutny>AndreasMadsen: and if you set properties like 'namespace' and 'type'
19:30:56  <indutny>AndreasMadsen: you'll get almost same thing
19:31:11  <indutny>AndreasMadsen: noone can prevent users from sending signals with `reserved` namespace
19:32:37  <indutny>AndreasMadsen: so it's just adding complexity
19:32:50  <AndreasMadsen>indutny: I write a module, somebody else write a module, we both use the same IPC channel they conflict. I an ideal world we would use the same detection method, but we don't. That is why a standardized namespace detection is required.
19:33:24  <indutny>AndreasMadsen: you should not use one IPC channel by two modules
19:33:38  <indutny>AndreasMadsen: or if you use - you should expect that there may be another one
19:33:51  <AndreasMadsen>indutny: Then what would I do
19:33:54  <indutny>AndreasMadsen: it's like using global object
19:34:14  <indutny>AndreasMadsen: include some custom properties to IPC message
19:34:23  <AndreasMadsen>indutny: The other module may change internal API and use other messages without my knowledge
19:34:34  <indutny>AndreasMadsen: and that's how things works
19:34:35  <indutny>:D
19:34:45  <indutny>monkey-patching, everything
19:35:02  <AndreasMadsen>indutny: The thought is that modules will use there module-name as a namespace
19:35:07  <indutny>there're always correct ways to do thing and wrong ones
19:35:21  <indutny>AndreasMadsen: that's not good too
19:35:34  <indutny>AndreasMadsen: what if someone will want to receive all messages
19:35:46  <AndreasMadsen>indutny: namespace is not a filter
19:35:57  <AndreasMadsen>indutny: You do the if (namespace === 'string')
19:36:20  <indutny>AndreasMadsen: ok, still I don't see any point in adding it
19:36:20  <AndreasMadsen>That is why it not very high level API
19:36:28  <indutny>AndreasMadsen: it is
19:36:45  <AndreasMadsen>indutny: Then you have not faces the complexity in real world
19:37:21  <indutny>AndreasMadsen: I just want it to be as simple and as fast as possible
19:38:35  <indutny>AndreasMadsen: you can create module that will add namespacing to IPC if you want
19:38:51  <indutny>AndreasMadsen: and if someone won't like it - one will create his own
19:39:02  <AndreasMadsen>indutny: Again same issue, it require all use it
19:39:19  <AndreasMadsen>indutny: Unless I overwrite the default API
19:39:24  <indutny>AndreasMadsen: that's what you're facing everywhere
19:39:44  <indutny>AndreasMadsen: if someone plays wrong - others will fail
19:39:54  <indutny>AndreasMadsen: you choose modules to use
19:39:59  <indutny>AndreasMadsen: they should be compatible
19:40:26  <indutny>AndreasMadsen: for example, module can't remove listen method from http.Server
19:40:38  <indutny>AndreasMadsen: or replace it with his own
19:40:50  <indutny>AndreasMadsen: that'll definitely break things in many modules
19:40:58  <indutny>AndreasMadsen: while will work fine in some cases
19:41:13  <indutny>AndreasMadsen: but we should not freeze http.Server instances to prevent that
19:42:39  <AndreasMadsen>indutny: All this is old knowledge - I currently believe that conflict preventing API is good as long as it do not add more complexity than it would without.
19:42:59  <AndreasMadsen>I think this is one of those cases where the added complexity is minimal
19:43:39  <indutny>ok, I think we both have explained what we're thinking about it
19:43:48  <AndreasMadsen>:D
19:43:51  <indutny>my vote is -1 for that feature
19:44:02  <indutny>lets see what other core team members think about it
19:45:10  <AndreasMadsen>indutny: I have a problem with only listening to core team members in this issue, since the opinions could be very different between core and users
19:45:35  <indutny>AndreasMadsen: yes, agreed
19:45:45  <indutny>but anyway I'm against it
19:45:47  <indutny>:)
19:45:54  <AndreasMadsen>Thats fine
19:46:24  <indutny>gtg
19:46:29  * indutnyis going to sleep
19:46:35  * indutnychanged nick to indutny_sleeping
19:50:29  <AndreasMadsen>A note tho this discussion is that I meant there npm-module-name too be used as namespace.
19:53:51  <bnoordhuis>AndreasMadsen: re killing isolates: yes, we'll probably end up sending a kill message
19:54:15  <AndreasMadsen>bnoordhuis: okay good
19:54:31  <bnoordhuis>(that was part of my first isolates message passing patch, actually)
19:57:35  * perezdjoined
20:01:32  <paddybyers>bnoordhuis: this, more or less, is what I do to kill an isolate: https://github.com/paddybyers/node/blob/v0.6-android/src/node.cc#L2615-L2626
20:02:03  <paddybyers>plus some other changes to ensure that the event propagates up no matter how deeply nested in contexts you are
20:02:09  * perezdquit (Client Quit)
20:02:16  <bnoordhuis>paddybyers: is Isolate::Stop() a signal handler?
20:02:24  <bnoordhuis>no, probably not
20:02:26  <paddybyers>no, an API
20:02:47  <paddybyers>we discussed signals previously; that's still an unsolved issue I think
20:03:10  <paddybyers>but it can be called from any thread
20:03:49  <bnoordhuis>is V8::TerminateExecution() thread safe?
20:04:10  <paddybyers>yes
20:06:08  <paddybyers>there's a requirement to acquire the V8 lock but it's OK if you know there is no contention for the isolate itself
20:07:16  <paddybyers>actually that's wrong, for that API you don't need the lock
20:07:30  <bnoordhuis>hrm, but you still need to enter the isolate right?
20:08:11  <paddybyers>https://github.com/paddybyers/node/blob/v0.6-android/deps/v8/include/v8.h#L3128
20:08:16  <paddybyers>no
20:09:07  <bnoordhuis>i'm looking at Isolate::TerminateExecution() in deps/v8/src/isolate.cc and it doesn't look particularly safe
20:09:41  <paddybyers>if a thread is in a busy loop it still terminates, and longjmps back to the last place it was entered from native
20:22:30  <bnoordhuis>paddybyers: but have you looked at the code?
20:22:40  <paddybyers>the V8 code?
20:22:42  <bnoordhuis>yes
20:22:52  <paddybyers>I did at the time
20:23:09  <paddybyers>what's the concern?
20:24:07  <bnoordhuis>well... random crashes, memory corruption, that kind of thing
20:24:14  <paddybyers>so it puts a marker in the stack guard if I remember
20:24:30  <mraleph>bnoordhuis: you should be looking into api.cc not isolate.cc
20:25:00  <mraleph>bnoordhuis: paddybyers is correct. V8::TerminateExecution isolate will request termination through stack guard.
20:25:41  <bnoordhuis>i blame cscope >:(
20:25:50  <bnoordhuis>mraleph: so when does Isolate::TerminateExecution() come into play?
20:26:07  <mraleph>when stack guard triggers.
20:27:08  <mraleph>Execution::HandleStackGuardInterrupt to be precise
20:32:03  * perezdjoined
20:32:04  * perezdquit (Excess Flood)
20:32:48  * pieternquit (Quit: pietern)
20:33:38  * perezdjoined
20:33:41  * perezdquit (Client Quit)
20:34:00  * perezdjoined
20:34:05  * perezdquit (Remote host closed the connection)
20:34:21  * perezdjoined
20:39:43  * mralephquit (Quit: Leaving.)
20:42:51  * `3rdEdenquit (Read error: Connection reset by peer)
20:44:39  * `3rdEdenjoined
21:02:04  * AndreasMadsenquit (Remote host closed the connection)
21:40:43  * brsonjoined
22:38:43  * Raynosquit (*.net *.split)
22:38:43  * ljacksonquit (*.net *.split)
22:42:16  * Raynosjoined
22:42:25  * ljacksonjoined
23:07:55  * sh1mmerjoined
23:18:30  * paddybyersquit (Quit: paddybyers)
23:23:17  <pquerna>indutny_sleeping: what was blocking upgrading openssl to 1.0.x instead of 0.9.8?
23:34:13  * mikealjoined
23:40:38  * mikealquit (Quit: Leaving.)
23:43:42  * bnoordhuisquit (Ping timeout: 245 seconds)
23:49:21  * dshaw_quit (Quit: Leaving.)