00:08:32  * perezdquit (Quit: perezd)
00:17:21  <TooTallNate>bnoordhuis: better: https://github.com/TooTallNate/node/compare/repl-writer-option
00:24:58  * orlandovftwquit (Ping timeout: 246 seconds)
00:25:57  <TooTallNate>piscisaureus_: ^ maybe you could review if ben's away
00:29:56  * theColejoined
00:32:26  * dapquit (Quit: Leaving.)
00:35:17  <piscisaureus_>igorzi: so what's going to happen next?
00:36:16  <bnoordhuis>TooTallNate: what's that test testing for?
00:36:48  <TooTallNate>bnoordhuis: basically testing that options get set as expected
00:36:55  * philipsquit (Excess Flood)
00:36:56  <TooTallNate>bnoordhuis: also testing defaults
00:37:01  <piscisaureus_>TooTallNate: why is a custom writer neede?
00:37:16  <TooTallNate>piscisaureus_: i would never need one :\ i'd just as soon remove the feature
00:37:27  <TooTallNate>but it is necessary for adding the "useColors" option
00:38:17  <piscisaureus_>right, ok
00:38:23  <piscisaureus_>TooTallNate: it looks good to me.
00:38:27  <piscisaureus_>(if it works :-))
00:38:33  * avalanche123joined
00:38:34  <TooTallNate>it works :)
00:38:48  * philipsjoined
00:38:50  <piscisaureus_>TooTallNate: so bnoordhuis has some concerns about the test?
00:39:45  <avalanche123>hi, I need help generating .dylib file for libuv
00:39:49  <bnoordhuis>piscisaureus_: concerns is a little strongly worded but it doesn't test the actual writer functionality
00:39:55  <piscisaureus_>true
00:39:57  * mikealquit (Quit: Leaving.)
00:40:03  <bnoordhuis>avalanche123: shoot
00:40:04  <TooTallNate>true
00:40:26  <piscisaureus_>igorzi: so what are you going to do with the tcp patch?
00:40:40  <piscisaureus_>igorzi: I am going to bed check out soon.
00:41:41  <piscisaureus_>bnoordhuis: dvv told me he had the timer issue with today's master
00:41:52  <avalanche123>bnoordhuis I tried compiling libuv and running libtool -dynamic -o libuv.1.dylib uv.a -lc but I get Undefined symbols for architecture x86_64: "_environ", referenced from: _uv_spawn in uv.a(process.o)
00:42:06  * mikealjoined
00:42:17  <bnoordhuis>piscisaureus_: yes, he talked to me and opened an issue
00:42:41  <bnoordhuis>avalanche123: did you compile libuv with -fPIC?
00:43:12  <avalanche123>bnoordhuis err, nope :)
00:43:15  <avalanche123>I'll try it
00:44:53  * sanjeev[work]joined
00:46:27  <bnoordhuis>so ulrich drepper is working at goldman sachs these days
00:46:33  <bnoordhuis>and no longer the glibc maintainer
00:46:38  <bnoordhuis>at least, not the primary one
00:46:44  <bnoordhuis>what is the world coming to?
00:47:49  <bnoordhuis>also, this is bad -> $ valgrind -q out/Debug/node test/simple/test-net-write-slow.js
00:47:49  <bnoordhuis>==30974== Conditional jump or move depends on uninitialised value(s)
00:47:49  <bnoordhuis>==30974== at 0x8E6C32: v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollector, char const*, char const*) (heap.cc:501)
00:48:43  <piscisaureus_>bnoordhuis: talk to the v8 guys tomorrow
00:48:49  <bnoordhuis>yeah
00:49:10  <avalanche123>bnoordhuis no dice, here is what make is running - cc --std=c89 -pedantic -Wall -Wextra -Wno-unused-parameter -Iinclude -Iinclude/uv-private -fPIC -Isrc/unix/ev -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Isrc/ares/config_darwin -Isrc -g -c src/unix/core.c -o src/unix/core.o
00:49:39  <avalanche123>and I still Undefined symbols for architecture x86_64: "_environ", referenced from: _uv_spawn
00:49:42  <avalanche123>when running libtool -dynamic -o libuv.1.dylib uv.a -lc
00:50:58  * mikealquit (Quit: Leaving.)
00:51:51  <bnoordhuis>avalanche123: what does `cc -dM -E - < /dev/null | grep APPLE` print?
00:52:17  <avalanche123>#define __APPLE_CC__ 5621
00:52:17  <avalanche123>#define __APPLE__ 1
00:52:41  * mikealjoined
00:53:25  <bnoordhuis>avalanche123: okay, looks good
00:53:39  <bnoordhuis>the problem is this: https://github.com/joyent/libuv/blob/6e0ca3a/src/unix/process.c#L37
00:53:54  <bnoordhuis>it should alias environ to _NSGetEnviron() but it doesn't
00:54:07  <bnoordhuis>so apparently (?) TARGET_OS_IPHONE is set
00:54:17  <avalanche123>wow
00:55:03  <bnoordhuis>avalanche123: a dirty but quick fix is to remove the && !defined(TARGET_OS_IPHONE)
00:56:07  <avalanche123>bnoordhuis thanks a lot, I try finding where TARGET_OS_IPHONE is coming from
00:56:12  * isaacsjoined
00:56:19  <avalanche123>I'll let you know what's the deal there
00:56:23  * brsonquit (Ping timeout: 245 seconds)
00:56:53  <bnoordhuis>avalanche123: it comes from TargetConditionals.h
00:57:17  <bnoordhuis>you conceivably have a clash of SDKs
00:57:59  <avalanche123>yeah #define TARGET_OS_IPHONE 0
00:58:09  <avalanche123>looks like that's expected - http://www.cocoabuilder.com/archive/xcode/297554-incorrect-sdk-headers.html
00:58:14  * pieternquit (Quit: pietern)
00:59:04  <avalanche123>sorry, linking specific comment - http://www.cocoabuilder.com/archive/xcode/297554-incorrect-sdk-headers.html#297686
01:00:26  <bnoordhuis>ah, curious
01:00:32  <avalanche123>bnoordhuis do you think checking for a value of zero could be appropriate in that conditional?
01:01:03  <bnoordhuis>avalanche123: probably yes, something like #if __APPLE__ && TARGET_OS_IPHONE
01:01:23  <avalanche123>yeah, gonna add that now
01:01:29  <avalanche123>bnoordhuis thanks for your help!
01:01:37  <bnoordhuis>err, or rather #if __APPLE__ and !TARGET_OS_IPHONE
01:01:43  <avalanche123>yup :)
01:06:07  <avalanche123>bnoordhuis now i get Undefined symbols for architecture x86_64: "_AbsoluteToNanoseconds", referenced from: _uv_hrtime in uv.a(darwin.o)
01:08:39  <bnoordhuis>avalanche123: you need to link to CoreServices
01:08:56  <avalanche123>ah, thanks again!
01:13:13  <TooTallNate>bnoordhuis: should we make that change upstream?
01:14:21  <bnoordhuis>TooTallNate: the #ifdef thing?
01:14:34  <TooTallNate>ya, looks like he just made a PR
01:14:43  <avalanche123>yeah, just now
01:14:59  <TooTallNate>avalanche123: you'll need to sign the cla
01:15:03  <TooTallNate>(if you haven't already)
01:15:14  <avalanche123>TooTallNate sure, where do I sign
01:15:17  <avalanche123>?
01:15:56  <TooTallNate>avalanche123: http://nodejs.org/cla.html
01:16:36  <TooTallNate>though i'm curious why it hasn't been a problem thus far
01:17:02  <TooTallNate>i'm compiling on Lion so it's already "compatible"
01:17:15  <avalanche123>compiling works, I was trying to build a dylib
01:18:23  <TooTallNate>why does that make a difference?
01:19:42  <avalanche123>not sure
01:21:41  <TooTallNate>bnoordhuis: can you try something for me? weird crash
01:21:49  <TooTallNate>$ ./node | cat
01:22:04  <TooTallNate>^ brings you to a "regular" repl (no colors, no ansi stuff)
01:22:21  <TooTallNate>but type something that will make a big output (process)
01:22:28  <TooTallNate>and it crashes for me
01:23:56  <bnoordhuis>TooTallNate: EPIPE?
01:23:58  <TooTallNate>EPIPE
01:23:59  <TooTallNate>ya
01:25:18  <bnoordhuis>yes, happens here too
01:26:19  <isaacs>TooTallNate: yeah, epipe's here, too
01:26:36  <TooTallNate>interesting
01:27:00  * bnoordhuissigns off
01:27:03  <TooTallNate>but piping to a file is fine
01:27:21  <isaacs>g'nite bnoordhuis
01:27:54  <TooTallNate>isaacs: maybe you could review once more? https://github.com/TooTallNate/node/compare/repl-writer-option
01:28:11  <TooTallNate>adds 'writer' and 'useColors' options to repl
01:29:11  <TooTallNate>no changes to any existing functionality
01:30:49  <TooTallNate>bnoordhuis: so does the EPIPE mean that it's something with `cat`?
01:31:13  <isaacs>TooTallNate: lgtm
01:31:25  <TooTallNate>isaacs: thanks
01:31:38  * bnoordhuisquit (Ping timeout: 246 seconds)
01:31:42  <CIA-99>node: Nathan Rajlich master * re7065ea / lib/repl.js : repl: ensure that 'repl.useGlobal' is a boolean - http://git.io/OqOudA
01:31:42  <CIA-99>node: Nathan Rajlich master * r228dddd / lib/repl.js : repl: ensure that 'repl.ignoreUndefined' is a boolean - http://git.io/SJ87mw
01:31:43  <CIA-99>node: Nathan Rajlich master * rb187e96 / (doc/api/repl.markdown lib/repl.js):
01:31:43  <CIA-99>node: repl: add a 'writer' option to the repl
01:31:43  <CIA-99>node: Previously this was a module-level setting, meaning that all REPL instances
01:31:43  <CIA-99>node: had to share the same writer function. Turning it into one of the options
01:31:44  <CIA-99>node: allows individual REPL instances to use their own writer function. - http://git.io/RDkwqQ
01:31:44  <CIA-99>node: Nathan Rajlich master * ra33d1c9 / test/simple/test-repl-options.js : repl: add test case verifying the repl options usage - http://git.io/qF-4EQ
01:31:45  <CIA-99>node: Nathan Rajlich master * r208b230 / (5 files in 4 dirs):
01:31:45  <CIA-99>node: repl: add a 'useColors' option to the repl
01:31:46  <CIA-99>node: This should only be minimally used, since the `terminal` value will usually be
01:31:46  <CIA-99>node: what you are expecting. This option is specifically for the case where `terminal`
01:31:47  <CIA-99>node: is false, but you still want colors to be output (or vice-versa). - http://git.io/IwU4dA
01:31:55  <isaacs>TooTallNate: EPIPE is kind of odd here. cat should basically never do that, i though
01:31:57  <isaacs>*thought
01:32:14  <TooTallNate>isaacs: it's like we're writing data too fast or something. really weird
01:32:22  <TooTallNate>i can repro the same thing with `curl` actually
01:32:34  <TooTallNate>with this https://gist.github.com/2053342
01:33:28  <TooTallNate>but i thought it was just an issue with curl
01:33:54  <isaacs>TooTallNate: hm.
01:35:01  <isaacs> curl: (23) Failed writing body (0 != 5437)
01:35:02  <isaacs>yeah
01:35:50  <TooTallNate>isaacs: but same thing: if you pipe curl to a file, it works forever
01:36:38  <TooTallNate>would be sweet if it was something we could fix on our end
01:36:42  <isaacs>yeah
01:36:53  <isaacs>whatever it is, it was broken in 0.6
01:37:09  <TooTallNate>ya
01:37:36  <TooTallNate>happens on 0.4.12 too
01:37:47  <isaacs>post an issue i guess
01:37:55  <isaacs>not high priority. maybe someone else will fix it :)
01:38:03  <TooTallNate>will do
01:47:26  * travis-cijoined
01:47:26  <travis-ci>[travis-ci] joyent/node#649 (master - 208b230 : Nathan Rajlich): The build is still failing.
01:47:26  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/f41901c...208b230
01:47:26  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/962193
01:47:26  * travis-cipart
02:08:36  * orlandovftwjoined
02:13:07  * eli-awayquit (Ping timeout: 276 seconds)
02:15:22  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
02:16:57  * eli-awayjoined
02:28:32  * perezdjoined
02:32:41  * piscisaureus_quit (Read error: Connection reset by peer)
02:33:22  * dshaw_quit (Quit: Leaving.)
02:36:12  * orlandovftwquit (Ping timeout: 252 seconds)
02:51:16  * theColequit (Quit: theCole)
03:00:15  * pieternjoined
03:12:49  * dshaw_joined
03:24:34  * orlandovftwjoined
03:31:01  * k-schanged nick to k-s[AWAY]
03:31:18  * dshaw_quit (Quit: Leaving.)
03:40:01  * mikealquit (Quit: Leaving.)
03:52:12  * mikealjoined
04:01:22  * mikealquit (Quit: Leaving.)
04:14:53  * mikealjoined
04:40:25  * pfox___quit (Remote host closed the connection)
04:45:59  * dvvjoined
04:47:29  * pieternquit (Quit: pietern)
04:49:45  * mikealquit (Quit: Leaving.)
05:04:54  * avalanche123|hjoined
05:07:24  <avalanche123|h>having hard time compiling this https://gist.github.com/0cb3aed58b07fe74f439
05:08:12  <avalanche123|h>attached the error in the gist as well
05:14:43  <indutny>avalanche123|h: you need to add uv.a to your linker arguments
05:15:08  <avalanche123|h>indutny, thanks a lot!
05:17:03  * mikealjoined
05:18:04  <avalanche123|h>indutny,sorry, how can I add it using make?
05:18:55  <avalanche123|h>I run make ex1 to compile it
05:19:58  * dshaw_joined
05:22:12  * isaacsquit (Remote host closed the connection)
05:26:36  <avalanche123|h>oops, figured it out, thanks!
05:33:25  * mikealquit (Quit: Leaving.)
05:33:31  * isaacsjoined
05:38:23  <indutny>sorry ,I was afk
05:38:33  <indutny>avalanche123|h: you're welcome
05:43:47  * mikealjoined
05:59:09  * mikealquit (Quit: Leaving.)
06:00:45  * mikealjoined
06:07:57  * mikealquit (Quit: Leaving.)
06:33:53  * mikealjoined
06:44:42  * mikealquit (Quit: Leaving.)
06:48:18  * rendarjoined
06:48:40  * stephankquit (Quit: *Poof!*)
07:07:29  * mikealjoined
07:14:44  * dvvquit (Remote host closed the connection)
07:34:34  * sanjeev[work]quit (Quit: And miles to go before I sleep...)
07:48:55  * isaacsquit (Remote host closed the connection)
08:53:45  * orlandovftwquit (Ping timeout: 260 seconds)
08:57:32  * perezd_joined
08:59:16  * avalanche123|hquit (Ping timeout: 265 seconds)
08:59:35  * coderarityquit (Ping timeout: 260 seconds)
09:00:29  * perezdquit (Ping timeout: 244 seconds)
09:00:29  * perezd_changed nick to perezd
09:01:42  * avalanche123|hjoined
09:05:56  * perezdquit (Ping timeout: 246 seconds)
09:08:09  * perezdjoined
09:09:35  * coderarityjoined
09:41:24  * avalanche123|hquit (Quit: Computer has gone to sleep.)
09:55:08  * k-s[AWAY]changed nick to k-s
10:21:23  * theColejoined
10:33:24  * paddybyersjoined
10:34:33  * bnoordhuisjoined
10:36:23  * piscisaureus_joined
10:50:43  * paddybyersquit (Quit: paddybyers)
10:50:58  * abraxasquit
10:59:24  * k-schanged nick to k-s[AWAY]
11:09:43  <CIA-99>node: mstarzinger@chromium.org master * reb1ff03 / deps/v8/src/mark-compact.cc :
11:09:43  <CIA-99>node: v8: Fix missing initialization of mark-compact flags.
11:09:43  <CIA-99>node: R=svenpanne@chromium.org
11:09:43  <CIA-99>node: Review URL: https://chromiumcodereview.appspot.com/9662056
11:09:43  <CIA-99>node: Cherry-pick of https://v8.googlecode.com/svn/branches/bleeding_edge@11006 - http://git.io/69qTtg
11:16:20  * piscisaureus_quit (Ping timeout: 272 seconds)
11:21:53  <indutny>bnoordhuis: that SSL patch looks very interseting to me
11:22:03  <indutny>strange that I've missed it before
11:22:17  <indutny>I've always thought that was an openssl overhead
11:25:03  * travis-cijoined
11:25:03  <travis-ci>[travis-ci] joyent/node#650 (master - eb1ff03 : mstarzinger@chromium.org): The build is still failing.
11:25:03  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/208b230...eb1ff03
11:25:03  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/964394
11:25:03  * travis-cipart
11:25:47  * dshaw_quit (Quit: Leaving.)
11:49:39  * k-s[AWAY]changed nick to k-s
11:51:31  * skomskijoined
12:00:45  * piscisaureus_joined
12:08:48  * dylukesquit (Quit: Pipes are broken. Sending packets via Fedex.)
12:45:52  * skomskiquit (Ping timeout: 244 seconds)
12:53:43  * dylukesjoined
12:53:59  * k-schanged nick to k-s[AWAY]
12:55:36  * dylukesquit (Client Quit)
13:01:06  * theColequit (Quit: theCole)
13:46:30  <CIA-99>libuv: Bulat Shakirzyanov master * r31ff986 / src/unix/process.c : unix: fix TARGET_OS_IPHONE conditional - http://git.io/zgOgfg
13:48:34  * travis-cijoined
13:48:34  <travis-ci>[travis-ci] joyent/libuv#155 (master - 31ff986 : Bulat Shakirzyanov): The build is still failing.
13:48:34  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/6e0ca3a...31ff986
13:48:34  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/964986
13:48:34  * travis-cipart
14:05:53  * theColejoined
14:07:26  * hij1nxquit (Quit: hij1nx)
14:17:52  <piscisaureus_>ok, starting work on uv_poll_socket
14:18:11  <piscisaureus_>or whatever - uv_poll_fd
14:20:02  <saghul>piscisaureus_ is that the "io handle" thing?
14:20:12  <piscisaureus_>ev_io
14:20:25  <piscisaureus_>not recommended, but useful for binding third-party libraries
14:20:29  <saghul>great!
14:21:36  <saghul>if you want, add a comment with the desired API on my PR so I adapt the code for unix, unless you guys have other ideas :-)
14:23:13  <piscisaureus_>bnoordhuis: yt?
14:23:48  <bnoordhuis>piscisaureus_: i'm not a whitey
14:24:05  <piscisaureus_>bnoordhuis: ah
14:24:14  <piscisaureus_>bnoordhuis: does ev_io report anything when you close the socket fd?
14:24:22  <piscisaureus_>bnoordhuis: does it implicitly stop?
14:24:39  <bnoordhuis>piscisaureus_: yes (i think)
14:24:45  <bnoordhuis>it catches the EBADF
14:24:46  <piscisaureus_>what?
14:25:00  <piscisaureus_>what x2?
14:25:10  <piscisaureus_>catching EBADF seems nogood to me
14:25:27  <piscisaureus_>bnoordhuis: so it calls the callback when you do that?
14:25:36  <bnoordhuis>piscisaureus_: i don't think so
14:27:20  <piscisaureus_>[16:23] <piscisaureus_> bnoordhuis: does ev_io report anything when you close the socket fd?
14:27:28  <piscisaureus_>^-- bnoordhuis: so the answer should've been "no" ?
14:29:59  <bnoordhuis>piscisaureus_: no to the first question, yes to the second
14:30:11  <bnoordhuis>i.e. it doesn't report anything, but it does implicitly stop your ev_io handle
14:30:34  <piscisaureus_>ah, right, that makes sense
14:31:25  <piscisaureus_>node flaky-server.js
14:31:38  <piscisaureus_>^-- good for testing ev_io
14:34:17  <bnoordhuis>piscisaureus_: where's that file?
14:34:20  <bnoordhuis>gist?
14:34:50  * pfox___joined
14:36:02  <saghul>bnoordhuis look at this: https://github.com/joyent/libuv/blob/master/src/unix/ev/ev.c#L1075 and then https://github.com/joyent/libuv/blob/master/src/unix/ev/ev.c#L1057 wouldn't you get EV_ERROR in case the fd was closed (EBADF) ?
14:38:38  <bnoordhuis>saghul: hrm, yes. probably the mechanism doesn't always work
14:39:06  <saghul>doh :-S
14:39:35  <bnoordhuis>saghul: right, it only works with poll() and select()
14:40:28  <saghul>bnoordhuis fun! actually no, we use only epos in Linux, right?
14:41:06  <bnoordhuis>saghul: yes
14:41:55  <saghul>out of curiosity, what will happen with epos then? the handle would be silently stopped?
14:42:04  <saghul>s/epos/epoll/
14:42:44  <bnoordhuis>saghul: when you close() a fd, it gets removed automatically from any epoll sets it's part of
14:43:09  <saghul>bnoordhuis ah, I see
15:07:07  * hij1nxjoined
15:12:12  * perezdquit (Quit: perezd)
15:32:08  * toothrquit (Ping timeout: 240 seconds)
15:33:08  * toothrjoined
15:37:39  <piscisaureus_>bnoordhuis: https://gist.github.com/2227407
15:39:12  <indutny>glad to see that debugger's repl test isn't failing anymore
15:39:14  <indutny>whoa
15:43:29  * perezdjoined
15:43:35  <CIA-99>node: Nathan Rajlich master * r48bbdde / lib/repl.js :
15:43:35  <CIA-99>node: repl: don't write a newline on the readline 'end' event
15:43:35  <CIA-99>node: In the case of the input stream *actually* having been closed, then we
15:43:35  <CIA-99>node: can't write to a closed socket.
15:43:35  <CIA-99>node: Fixes test/simple/test-repl.js - http://git.io/QsSLxg
15:52:36  * igorziquit (Ping timeout: 245 seconds)
15:56:55  * theColequit (Quit: theCole)
15:57:02  * mikealquit (Quit: Leaving.)
16:04:55  * isaacsjoined
16:06:38  * travis-cijoined
16:06:38  <travis-ci>[travis-ci] joyent/node#651 (master - 48bbdde : Nathan Rajlich): The build is still failing.
16:06:38  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/eb1ff03...48bbdde
16:06:38  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/966240
16:06:38  * travis-cipart
16:14:05  * dapjoined
16:19:51  * hij1nxquit (Quit: hij1nx)
16:22:08  * avalanche123|hjoined
16:25:37  * avalanche123|hquit (Client Quit)
16:27:28  * paddybyersjoined
16:29:49  * paddybyersquit (Read error: Connection reset by peer)
16:30:30  * paddybyersjoined
16:30:32  * orlandovftwjoined
16:30:54  * orlandovftwquit (Client Quit)
16:31:06  * orlandovftwjoined
16:31:15  * benviequit (Read error: Connection reset by peer)
16:31:34  * benviejoined
16:34:24  * paddybyersquit (Client Quit)
16:37:12  * mikealjoined
16:38:08  * AndreasMadsenjoined
17:08:01  * hij1nxjoined
17:17:40  * TooTallNatejoined
17:20:25  <TooTallNate>nice, down to 2 failing tests on master :)
17:20:33  <TooTallNate>through travis at least
17:23:54  * isaacsquit (Remote host closed the connection)
17:24:00  * paddybyersjoined
17:25:37  * paddybyersquit (Client Quit)
17:31:21  * mikealquit (Quit: Leaving.)
17:33:23  <AndreasMadsen>in what env do travis run in? I have tried to reproduce the cluster failure but without success.
17:37:29  * dshaw_joined
17:42:30  * igorzijoined
17:55:08  * paddybyersjoined
18:10:57  * mikealjoined
18:13:27  * brsonjoined
18:13:57  * paddybyersquit (Quit: paddybyers)
18:19:15  * isaacsjoined
18:19:58  * pquernaquit (Changing host)
18:19:58  * pquernajoined
18:38:09  * pieternjoined
18:44:18  * mikealquit (Quit: Leaving.)
18:47:46  * k-s[AWAY]changed nick to k-s
19:00:50  * skomskijoined
19:06:18  * `3rdEdenjoined
19:07:19  * skomskiquit (Remote host closed the connection)
19:11:13  <piscisaureus_>so I just discovered something really sadf
19:11:37  <piscisaureus_>MSAFD (the windows tcp driver) has all the syscalls in place to implement epoll on windows
19:12:24  <piscisaureus_>(for sockets that is - not for pipes, ttys etc)
19:13:01  <piscisaureus_>unfortunately we cannot assume that msafd is always used
19:13:10  <piscisaureus_>but like 99% of the users do
19:14:08  <tjfontaine>that's a good enough percentage to do it
19:16:57  <piscisaureus_>igorzi: tell your coworkers to implement epoll! ^
19:18:36  <piscisaureus_>actually EPOLLET might not be possible in user mode
19:18:59  <piscisaureus_>although it would be possible with slight modifications to the user-mode winsock driver
19:19:33  <piscisaureus_>basically WSAAsyncSelect uses an internal machanism that is pretty much epoll with bells and whistles
19:29:32  * AndreasMadsenquit (Remote host closed the connection)
19:35:43  * paddybyersjoined
20:11:06  * orlandovftwquit (Ping timeout: 252 seconds)
20:13:56  * orlandovftwjoined
20:30:48  * Ariajoined
20:38:00  <pquerna>say i have a uv_tcp_t setup to listen/bind. I want to hand the FD to other uv loops in a different thread.
20:38:21  <pquerna>right now it looks like I need to either use write2/read2 and a pipe if I only want to use public apis
20:38:32  <pquerna>or if i don't mind messing with the struct, just set the FD
20:38:38  <pquerna>does the later seem reasonable?
20:38:39  * sh1mmerquit (Quit: sh1mmer)
20:40:14  <piscisaureus_>pquerna: that will probably work on unix
20:40:24  <piscisaureus_>(setting the fd)
20:40:37  <piscisaureus_>using write2/read2 should work cross-platform
20:40:40  <pquerna>yes. windows. not so much, but... someone can always port it later ;)
20:41:03  <pquerna>just makes me feel silly using a pipe inside the same process instead of dup2 :)
20:41:07  <piscisaureus_>we had support for this when we were doing isolates
20:41:09  * hij1nxquit (Quit: hij1nx)
20:41:17  <piscisaureus_>but this got reverted
20:41:23  <piscisaureus_>because the api sucked
20:41:24  <pquerna>oh even the libuv side?
20:41:39  <pquerna>i thought the revert was just node.js land
20:41:47  <piscisaureus_>also the libuv side iirc
20:41:53  * piscisaureus_git log | grep
20:41:59  <bnoordhuis>if this is about in-process handle passing, i reverted that too
20:42:09  <piscisaureus_>yeah that
20:42:16  <bnoordhuis>it's dead, jim
20:42:20  <pquerna>meh
20:42:42  * paddybyersquit (Quit: paddybyers)
20:42:43  <piscisaureus_>I would not mind having it
20:43:01  <piscisaureus_>but the import/export api was way too fat to my liking
20:43:31  <piscisaureus_>The only reason I didn't complain was because I wanted isolates to get done
20:45:14  <piscisaureus_>pquerna: so the issue is, can you come up with a nice api
20:45:42  <piscisaureus_>pquerna: because registering a handle with a loop requires synchronization of the handles list and whatnot
20:45:58  <piscisaureus_>so somehow we have to figure out how to do that
20:46:15  <pquerna>piscisaureus_: the way APR handles this honestly is to just have a _as_os_handle() method and a _from_os_handle()
20:46:31  <piscisaureus_>ah right
20:46:37  <pquerna>so if you are messing with it, you can extract out the FD or the handle
20:46:38  * `3rdEdenquit (Quit: Linkinus - http://linkinus.com)
20:46:44  <pquerna>and then create a stream from an existing $OS handle
20:46:52  <piscisaureus_>that is not dissimilar to how the import/export api
20:47:07  <piscisaureus_>pquerna: would you then dup2 the handle?
20:47:10  <piscisaureus_>er, dup
20:47:11  <pquerna>yes
20:47:19  <piscisaureus_>ok
20:47:32  <piscisaureus_>which is also not easy to do cross platform
20:47:45  <pquerna>int uv_stream_to_os(); -> dup2(...); -> uv_tcp_create_from_os(...);
20:47:47  <piscisaureus_>unless you want to know the fine art of WSADuplicateHandle
20:48:03  <piscisaureus_>er, WSADuplicateSocket
20:49:01  <bnoordhuis>https://github.com/joyent/node/commit/526c54c9790cd8edff259686785d7b844fd29005#commitcomment-1143045 <- thoughts anyone? i want to ax Buffer._charsWritten
20:49:25  <pquerna>being able to create a uv_* type from an $OStype handle is useful I think, regardless of the dup issues
20:49:43  <piscisaureus_>pquerna: yeah we have that actually
20:49:53  <piscisaureus_>for pipes and ttys at least, not sockets
20:49:59  <piscisaureus_>we could add it for sockets too
20:50:17  <bnoordhuis>i don't particularly want
20:50:19  <bnoordhuis>*want that
20:50:31  <bnoordhuis>if linux switches to edge-triggered epoll
20:50:44  <bnoordhuis>and people start tweaking fds
20:50:48  <bnoordhuis>bad things will happen
20:50:52  <piscisaureus_>bnoordhuis: yeah, well, they shouldn't I guess
20:51:00  <piscisaureus_>bnoordhuis: we could also dup the handle by default
20:51:03  <pquerna>so, uv_tcp_init2 that would take a FD?
20:51:22  <bnoordhuis>why just tcp?
20:51:36  <bnoordhuis>this is the uv_external_fd discussion all over again :)
20:51:38  <piscisaureus_>I think we have uv_tcp_open(fd) and uv_tty_open(fd) already
20:52:55  <piscisaureus_>bnoordhuis: actually I'd like uv_xxx_open to dup the handle by default
20:52:59  <pquerna>hey, it just started because I felt bad about messing with the private fields :)
20:53:45  <bnoordhuis>piscisaureus_: why's that?
20:53:54  <piscisaureus_>bnoordhuis: so the responsibility for closing / opening the fd remains clear
20:54:09  <bnoordhuis>right... i suppose that makes sense
20:54:30  <piscisaureus_>also, because it prevents users from messing with the fd settings to a certain exztent
20:55:46  <piscisaureus_>bnoordhuis: re charsWritter - the api is retarded
20:56:38  <piscisaureus_>bnoordhuis: yeah let's axe it. Have you spoken with koichi about it?
20:56:47  <pquerna>i don't like _charsWritten either.
20:56:49  <pquerna>kill.
20:57:10  <pquerna>(though i imagine it does have some crazy encoding use case that koichi would know)
20:58:33  <CIA-99>node: Mikael Bourges-Sevenier master * r67fc1da / (3 files in 3 dirs): typed arrays: add Uint8ClampedArray - http://git.io/LMnBEw
20:59:35  <bnoordhuis>piscisaureus_, pquerna: i mentioned it, i'll talk to him some more
20:59:48  <piscisaureus_>What the heck is Uint8ClampedArray?
21:01:03  <bnoordhuis>piscisaureus_: it's an array that clamps its values in the 0-255 range
21:01:31  <piscisaureus_>bnoordhuis: instead of wrapping you mean?
21:01:35  <bnoordhuis>yes
21:02:33  <piscisaureus_>pquerna: so how your you doing the synchronization between two loops?
21:02:46  <piscisaureus_>pquerna: or do you share the handle before entering uv_run?
21:10:21  <benvie>oh nice Uint8ClampedArray
21:10:36  <benvie>I have use for that
21:11:27  * txdv_joined
21:12:23  <isaacs>yes, axe _charsWritten unless koichik speaks up to save t.
21:12:23  <isaacs>*it
21:12:23  * txdvquit (Quit: No Ping reply in 180 seconds.)
21:13:54  * travis-cijoined
21:13:54  <travis-ci>[travis-ci] joyent/node#652 (master - 67fc1da : Mikael Bourges-Sevenier): The build is still failing.
21:13:54  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/48bbdde...67fc1da
21:13:54  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/968780
21:13:54  * travis-cipart
21:14:04  <piscisaureus_>pquerna: ?
21:14:11  * theColejoined
21:14:48  * isaacsquit (Remote host closed the connection)
21:17:28  <avalanche123>I have a c noob question, how do I cast a uv_timer_t to a uv_handle_t in order to use it with uv_close?
21:19:51  <avalanche123>looks like (uv_handle_t*) &timer is what I need
21:20:19  * pfox___quit (Ping timeout: 248 seconds)
21:27:57  <dap>I'm working on #2110, but running into some GYP issues. Is there someone around who knows GYP?
21:28:06  <dap>TooTallNate: ^ you've been recommended :)
21:28:47  <TooTallNate>dap: hey
21:29:04  <TooTallNate>where are you getting stuck?
21:29:04  * theColequit (Quit: theCole)
21:30:34  <dap>For DTrace support, I have an object file that depends on another object file, and gets generated by a custom action
21:30:59  <dap>AFAICT, that's just not possible in GYP, but maybe I'm missing something
21:31:53  <TooTallNate>can you run me through what needs to happen during the build to add dtrace support?
21:32:06  <TooTallNate>like, what happens on 0.6? i'm just not familiar with the process
21:32:53  * Ariaquit (Remote host closed the connection)
21:36:03  <dap>TooTallNate: the way it works is (1) we use dtrace to build a header file, (2) we build a normal node source file, node_dtrace.cc, which uses the header file. (3) we use dtrace on node_dtrace.o to build node_dtrace_provider.o. (4) We do the final node link with node_dtrace.o and node_dtrace_provider.o
21:37:37  <TooTallNate>dap: isn't there some string substitution somewhere too?
21:37:59  <dap>not that I can think of...
21:38:00  * isaacsjoined
21:38:51  <TooTallNate>dap: what are the DTRACE_HTTP_SERVER_REQUEST things in http.js for?
21:39:04  <dap>those are macros defined by the header file
21:39:26  <TooTallNate>how do they make it into js-land?
21:39:32  <bnoordhuis>dap: i already did some dtrace work here: https://github.com/bnoordhuis/node/compare/gyp-dtrace
21:39:39  <bnoordhuis>pretty dated by now though
21:39:46  <dap>bnoordhuis: thanks, I did look at that, but it didn't seem to work
21:40:24  <dap>TooTallNate: Sorry, I was thinking of the C analogs. Let me look at http.js. The C analogs expand to C function calls that step (3) above replaces with nops
21:40:59  <dap>TooTallNate: I believe the JS functions just invoke C functions in node_dtrace.cc
21:41:14  <dap>bnoordhuis: did that change work for you at the time?
21:41:29  <TooTallNate>dap: bnoordhuis' branch looks like it's on the right track. i think it mostly comes down to custom 'targets' (that invoke arbitrary commands) and adding that target as a 'dependency' somewhere
21:41:39  <bnoordhuis>dap: partially iirc
21:41:44  <bnoordhuis>(it's been a while)
21:42:30  <dap>TooTallNate, bnoordhuis: the problem I had was that the "node" target that builds the executable has to depend on node_dtrace_provider.o, but that has to depend on node_dtrace.o, which doesn't get build until the "node" target gets built.
21:42:52  <dap>The obvious solution is to separate node_dtrace.o into a separate target, but I don't think it's possible for a compile target to build an object file
21:43:03  <dap>It seems it can only emit an executable or dynamic or static library
21:43:13  <dap>I could use a custom action that just invokes g++, but then I have to figure out what all the right flags are...
21:43:32  <TooTallNate>ya, that's a little tough :\
21:43:41  <bnoordhuis>chicken, meet egg
21:43:51  <dap>yeah, it seems like GYP just can't exactly support this
21:43:56  <dap>I just want a target that emits an object file
21:44:20  <bnoordhuis>i wouldn't surprise me if gyp has some obscure syntax for that
21:44:42  <bnoordhuis>let me check the gyp tests
21:44:49  <dap>bnoordhuis: I looked through the docs, and also looked through the source for other types that aren't documented, but I couldn't find anything.
21:45:08  <dap>but I don't fully grok all the different abstractions so I could have missed something.
21:45:39  <dap>So now I'm considering having "configure" just append a rule to the GYP-generated Makefile for this one object.
21:46:06  * paddybyersjoined
21:46:28  <bnoordhuis>that's rather nasty
21:46:58  <dap>bnoordhuis: agreed :)
21:51:21  <TooTallNate>dap: why not just compile the node_dtrace.o as a static lib, then compile that into the resulting node binary?
21:51:48  <dap>TooTallNate: I tried that, but dtrace won't work on the static lib. It needs the actual object file.
21:52:09  <dap>I even tried using that object file directly, but there's no way (I can find) to figure out where GYP puts that file — it's not SHARED_INTERMEDIATE_DIR
21:53:01  <bnoordhuis>dap: it's probably in <(PRODUCT_DIR)
21:53:14  <dap>bnoordhuis: nope, it was a target-specific dir, but I can't access that from a different target.
21:53:27  <TooTallNate>damn, i thought it was all the same by the time the final binary is put together
21:55:45  * rendarquit
21:56:21  <dap>is there a way from within a static_library target to refer to the output file?
21:56:29  <dap>(_outputs) doesn't seem to work
21:56:59  * avsejquit (Excess Flood)
21:57:34  <bnoordhuis>dap: do you mean the .a or the .o?
21:57:42  <dap>either, actually.
21:57:56  * avsejjoined
21:58:42  <bnoordhuis>for the .a, (LIB_DIR)/(STATIC_LIB_PREFIX)name(STATIC_LIB_SUFFIX) should work i think
21:59:20  <bnoordhuis>where name is the target's name
21:59:48  <bnoordhuis>add < signs where applicable btw :)
22:00:08  <dap>right
22:09:28  * k-schanged nick to k-s[AWAY]
22:15:40  <dap>TooTallNate,bnoordhuis: I almost have it working within GYP by hardcoding locations to the object files…but the problem I'm having now is that the static_library target isn't actually production a static library, but the top-level target is still trying to link against it.
22:16:42  <TooTallNate>dap: i don't think there's a way to disable that :( could be wrong
22:16:48  <TooTallNate>bnoordhuis might know something clever ;)
22:16:57  <dap>that might be okay, if it actually produced the library
22:17:20  <TooTallNate>what is it producing?
22:17:22  <dap>although it would be even better if you could disable it.
22:17:28  <dap>nothing but the .o file. I'm not sure how that's possible.
22:17:44  <TooTallNate>but it's trying to link a .a at the end?
22:17:47  <dap>yeah
22:18:04  <TooTallNate>and that file's not being created?
22:18:14  <dap>so, how does it know to link against the static library? is it because I have a "dependencies" entry on a target that produces a static library?
22:18:20  <dap>correct, the file's not being created.
22:18:39  <TooTallNate>dap: ya, since it's specified as a "dependency" then the .a is auto-linked
22:18:57  <TooTallNate>dap: maybe that's why in bnoordhuis' branch he has the top-level as a "none" target
22:19:08  <TooTallNate>instead of "executable"
22:19:35  <dap>hmm
22:19:39  <dap>you still need to produce an executable
22:20:02  <dap>after depending on this target, but I see. you depend on the target from something else
22:22:56  <dap>if you depend on a "none" target which depends on a static library, does that get linked in with you?
22:24:02  <dap>shoot, looks like it: "Accordingly, GYP performs an operation referred to as “static library dependency adjustment,” in which it makes each linker output target (shared libraries and executables) link against the static libraries it depends on, either directly or indirectly."
22:24:04  <dap>I hate magic.
22:25:41  * pfox___joined
22:26:19  * mjr_quit (Quit: mjr_)
22:38:41  <dap>it also appears as though if a target of type 'none' depends on a static library, it generates an empty static library (perhaps assuming that thing isn't linking against it?)
22:39:24  <TooTallNate>dap: ahh interesting. that explains why there's no .a file then right?
22:39:37  * pfox___quit (Ping timeout: 264 seconds)
22:39:52  <dap>well, I changed stuff around and now it's generating a .a file with no contents (and no intermediate .o file)
22:40:37  <dap>I'm doing the thing now where there's a top-level target of type 'none' that depends on the target that builds the node executable and the target that generates node_dtrace.o.
22:41:05  <dap>but now it's generating libnode_dtrace_o.a, but no node_dtrace.o (!), and the .a file is basically empty:
22:41:12  <dap>$ ls -l ./out/Release/obj.target/libnode_dtrace_o.a
22:41:12  <dap>-rw-r--r-- 1 dap other 8 Mar 28 15:32 ./out/Release/obj.target/libnode_dtrace_o.a
22:41:19  <dap>(8 bytes)
22:46:21  * pfox___joined
22:47:18  <TooTallNate>dap: what source files does the libnode_dtrace_o.a target specify?
22:48:20  <dap><(SHARED_INTERMEDIATE_DIR)/node_provider.h, src/node_dtrace.cc, and src/node_dtrace.h.
22:49:05  <dap>now that it's building the .a file, I went back to the thing before, where the top-level target depends on it, and it seems to have built successfully (!). I don't know what's different from 10 minutes ago. I'm trying a clean build now to test it out again.
22:50:53  * pfox___quit (Ping timeout: 246 seconds)
22:54:08  <dap>TooTallNate: yeah, it seems to have worked.
22:54:11  * pfox___joined
22:54:29  <TooTallNate>dap: :D :)
22:54:34  <TooTallNate>sweet man
22:54:48  <TooTallNate>pull request that shizz
22:55:05  <dap>word. Thanks for the help!
22:55:30  <TooTallNate>no prob (though ben was more helpful i think :p)
23:00:01  * pfox___quit (Ping timeout: 264 seconds)
23:01:26  * pfox___joined
23:08:30  * paddybyersquit (Quit: paddybyers)
23:13:35  * pfox___quit (Ping timeout: 260 seconds)
23:18:51  * Ariajoined
23:30:05  <bnoordhuis>TooTallNate: ab518ae5 and aad12d0b introduced style errors
23:30:19  <bnoordhuis>no biggie in itself but i hate style patch-up commits :/
23:31:59  <TooTallNate>bnoordhuis: damn
23:32:00  <TooTallNate>i'll fix
23:32:11  <bnoordhuis>TooTallNate: no need, i already did
23:32:15  <TooTallNate>oh ok
23:32:16  <TooTallNate>thanks
23:32:38  <TooTallNate>where?
23:32:57  <bnoordhuis>in my local repo :)
23:33:07  <bnoordhuis>let me fix up one other commit
23:33:14  <bnoordhuis>and while you're here, i'll let you review that one
23:38:03  <bnoordhuis>TooTallNate: https://github.com/bnoordhuis/node/commit/285d8c6
23:38:31  <bnoordhuis>also this: https://github.com/bnoordhuis/node/commit/b031671
23:38:38  <bnoordhuis>piscisaureus_: you around?
23:45:29  <bnoordhuis>okay, i'm just going to push those commits - i want to go to bed :)
23:46:18  <CIA-99>node: Ben Noordhuis master * rb031671 / (lib/readline.js lib/tty.js): tty, readline: fix style errors - http://git.io/ntknxA
23:46:21  <CIA-99>node: Ben Noordhuis master * r285d8c6 / lib/buffer.js :
23:46:22  <CIA-99>node: buffer: align fast buffers on 8 byte boundary
23:46:22  <CIA-99>node: Prevents alignment issues when people create a typed array from a buffer.
23:46:22  <CIA-99>node: Unaligned loads or stores are less efficent and (on some architectures) unsafe. - http://git.io/4j1R5A
23:46:22  <CIA-99>node: Erik Lundin master * r973bbec / (src/v8_typed_array.cc test/simple/test-typed-arrays.js): typed arrays: prevent unaligned typed array views on top of buffers - http://git.io/OUKlDw
23:56:11  <TooTallNate>bnoordhuis: sorry, was afk. lgtm :)
23:59:21  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)