00:01:25  * pieternquit (Quit: pietern)
00:02:14  * isaacs_joined
00:03:34  <ryah>a epoll library for solaris would be interesting
00:04:19  <rmustacc>You just want an epoll compatibility layer?
00:04:28  * isaacsquit (Ping timeout: 276 seconds)
00:04:29  * isaacs_changed nick to isaacs
00:05:40  <ryah>yeah
00:05:56  * indexzerojoined
00:06:30  <ryah>it would also be nice if i didn't need to -lsocket -lnsl on every program
00:07:07  <ryah>making a linux compatible userland api would be cool
00:07:25  <rmustacc>Uh, that was attempted and it was halted for good reasons.
00:07:34  <ryah>yeah?
00:07:55  <rmustacc>They basically did a zone that tried to mimic the linux syscall API.
00:08:06  <rmustacc>It just was too much of a pain.
00:08:07  <ryah>:D
00:08:18  <ryah>oh man - that sounds great though
00:08:46  <rmustacc>Well, it was hard to get it to work and emulate all the weird particularities.
00:09:10  <ryah>yeah, i bet
00:13:03  <piscisaureus_>sounds like cygwin to me :-)
00:14:52  <ryah>well... solaris is much closer to linux than windows
00:14:58  <ryah>so it could be fast
00:15:09  <ryah>should be much easier too
00:15:19  <ryah>but yes. cygwin for solaris
00:15:25  <ryah>people want that
00:15:33  <ryah>especially if it had dtrace :)
00:24:53  <rmustacc>I want Linux folks to have DTrace, but I have some other ideas for that.
00:30:35  * indexzeroquit (Quit: indexzero)
00:42:54  <bnoordhuis>rmustacc: do tell
00:43:46  * sh1mmerquit (Quit: sh1mmer)
00:45:07  <rmustacc>bnoordhuis: I have some crackpot crazy ideas about dtrace + Vms.
00:45:08  <rmustacc>*VMs
00:46:31  <bnoordhuis>go on
00:46:46  <rmustacc>I'll leave it at that for now. ;)
00:48:11  <ryah>i like the linux zone idea
00:48:48  <piscisaureus_>can't we just build dtrace into libuv?
00:49:13  <rmustacc>piscisaureus_: sure, but that doesn't let you DTrace windows or linux syscalls.
00:49:44  <piscisaureus_>For most purposes tracing calls like open(), write() etc should be fine right?
00:50:20  <piscisaureus_>Don't get me wrong - dtrace is super cool
00:50:26  <rmustacc>Oh, sure. I'm just talking about generic dtracing linux and windows guests, not libuv specific.
00:50:43  <rmustacc>Sure, for some set of cases that's all you need.
00:50:44  <piscisaureus_>but it seems that 99% of the people don't really need any kernel mode hackery
00:50:55  <ryah>dtrace proves for libuv should be done immediately
00:51:26  <rmustacc>psicisaureus_: Depends. It's rather useful I'd say, for just knowing who is to blame as to why your app is slow.
00:51:32  <ryah>that would be very helpful for debugging
00:51:54  <rmustacc>If I can produce a single graph for example that blames or rules out disks, that'd be useful
00:52:02  <rmustacc>ryah: where do you want them?
00:52:07  <rmustacc>I can help you add them.
00:52:26  <ryah>rmustacc: i want them for each handle creation /close
00:52:40  <ryah>also for timer firing
00:52:57  <ryah>also for send queue length (like we have in node)
00:52:58  <rmustacc>Do you know what data you want from the probes?
00:53:32  <ryah>handle creation /close - just the pointer to the handle
00:54:50  <ryah>timer - you'd want the pointer to the timer - also how long until its next timeout
00:55:02  <ryah>send queue length - handle pointer, and length
00:55:21  <bnoordhuis>recording the handle type would be great too
00:55:37  <ryah>cell phone -> ssh -> screen -> irssi = slow
00:56:54  <ryah>yeah
00:58:02  <rmustacc>Okay, do you want me to look at adding these?
00:59:26  <ryah>rmustacc: if you have time - it would be great
00:59:46  <rmustacc>ryah: Sure, I can take a look at it.
01:00:08  <rmustacc>Though I haven' looked at the libuv code in a while I confess.
01:00:33  <rmustacc>What are the different handle types, just tcp[46], udp[46]
01:00:34  <rmustacc>*?
01:00:59  <ryah>etc
01:01:05  <rmustacc>Gotcha.
01:01:09  <rmustacc>Okay, sounds good.
01:01:11  <piscisaureus_>ryah: https://github.com/joyent/node/pull/1917
01:01:20  <piscisaureus_>It seems that the issue is still there
01:01:23  <rmustacc>I got a few other small things on my plate, but that's good plane fodder.
01:01:38  <rmustacc>Oh, and I guess I'll have to deal with gyp, but w.e.
01:01:50  <ryah>yeah
01:01:53  <ryah>:D
01:02:16  <ryah>brb going to cafe for better internet
01:03:51  * brsonquit (Quit: leaving)
01:07:52  * piscisaureus_quit (Read error: Connection reset by peer)
01:08:13  * piscisaureus_joined
01:40:04  * isaacsquit (Quit: isaacs)
02:01:48  <piscisaureus_>tijd om te gaan. later.
02:14:20  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
02:19:49  <ryah>i dont like our method of determining the init symbol for addons
02:21:26  <rmustacc>ryah: What is your current method?
02:21:34  <rmustacc>I've been starting recently at how mdb does that.
02:22:48  <ryah>if the addon file is called '/usr/lib/node/something.node' then it looks for the symbol something_init
02:23:08  <ryah>the last part of the path - strip off the extension - add _init
02:23:15  <ryah>(or something to that effect)
02:23:46  * ryahis trying to add some addon building tests to the node tree
02:23:59  <TooTallNate>ryah++
02:24:27  <ryah>dyld: lazy symbol binding failed: Symbol not found: __ZN2v816FunctionTemplate3NewEPFNS_6HandleINS_5ValueEEERKNS_9ArgumentsEES3_NS1_INS_9SignatureEEE Referenced from: /Users/ryan/projects/node/test/addons/hello-world/out/Default/binding.node Expected in: flat namespace
02:24:30  <indutny>ryah: can't we just lookup symbol table to find method with _init suffix?
02:24:31  <ryah>dyld: Symbol not found: __ZN2v816FunctionTemplate3NewEPFNS_6HandleINS_5ValueEEERKNS_9ArgumentsEES3_NS1_INS_9SignatureEEE Referenced from: /Users/ryan/projects/node/test/addons/hello-world/out/Default/binding.node Expected in: flat namespace
02:24:36  <ryah>yey
02:24:47  <TooTallNate>ryah: i was running into the same thing earlier today
02:24:52  <TooTallNate>didn't find the solution :(
02:25:30  <rmustacc>ryah: so the way we do it in mdb is just to try and always have the same sybmol name.
02:25:36  <rmustacc>We look for _mdb_init.
02:25:56  <rmustacc>Which is a static object that has the signature of an int declaring the version virst.
02:26:06  <rmustacc>Followed by some pointers to strucs.
02:26:07  <rmustacc>*structs
02:26:12  <ryah>rmustacc: that's what we did before - but pquerna was worried about conflicting init entry points
02:26:21  <rmustacc>Oh, actually looks like a function name, my mistake.
02:26:23  <rmustacc>We do this:
02:26:29  <rmustacc>420 const mdb_modinfo_t *
02:26:30  <rmustacc>421 _mdb_init(void)
02:26:30  <rmustacc>422 {
02:26:30  <rmustacc>423 return (&modinfo);
02:26:30  <rmustacc>424 }
02:26:37  <TooTallNate>ryah: the fact that the addon requires a specific filename is weak
02:26:44  <ryah>TooTallNate: agreed
02:26:54  <rmustacc>We also appear to use dlmopen.
02:27:00  <rmustacc>There's no name requirements here in the mdb case.
02:28:18  <rmustacc>What exactly was the init entry point concern?
02:28:22  <rmustacc>If you called it _init?
02:28:38  <rmustacc>What if you called it _node_init?
02:28:47  <ryah>rmustacc: actually i can't remember
02:29:06  <indutny>I think pquerna was worried about naming conflicts between different modules
02:29:15  <indutny>not sure how that may happen
02:29:37  <indutny>but that's definitely not a case, when using only one native module
02:29:44  <ryah>https://github.com/joyent/node/blob/aac717da8d93e35fc3f8d92c789f8494387ed8a7/src/node.cc#L1613-1709
02:30:01  <ryah>oh right - we wanted to eventually allow people to drop addons into the node tree
02:30:05  <ryah>and have them compiled in
02:30:09  <rmustacc>All I know is it's not a problem for mdb, but it is using dlmopen.
02:30:14  <rmustacc>ryah: mdb has that as well.
02:30:15  <ryah>so that external and internal modules had the same structure
02:30:31  <indutny>oh
02:30:34  <rmustacc>Let me find a source pointer so I can show you where we're doing it.
02:31:24  <rmustacc>ryah: http://src.illumos.org/source/xref/illumos-gate/usr/src/cmd/mdb/common/mdb/mdb_module.c#83
02:32:56  * sh1mmerjoined
02:33:43  <rmustacc>Given that mdb manages to do it, it should be possible for node.
02:34:18  <rmustacc>Though that could be in part due to the dlmopen() call.
02:35:51  <ryah>i see - this is the map thing you were talking about today
02:37:00  <rmustacc>I think it's actually a bit different.
02:37:15  <rmustacc>Our linker is pretty snazy.
02:37:27  * sh1mmerquit (Read error: Connection reset by peer)
02:37:40  <rmustacc>Though nothing like these auto-growing stack shenanigans of gold.
02:37:53  * sh1mmerjoined
02:41:20  <bnoordhuis>ryah: you probably need to compile with `-flat_namespace -undefined suppress -shared`
02:41:35  <bnoordhuis>had that problem too a while ago (unrelated to node though)
02:42:38  <bnoordhuis>rmustacc: you mean split stacks?
02:43:01  <rmustacc>Yeah
02:43:13  <bnoordhuis>the mind boggles, how can that even work?
02:43:22  <bnoordhuis>(of course i read the proposal but still)
02:43:23  <rmustacc>It makes application performance even more arbitrary than it already is.
02:43:32  * benviequit
02:43:37  <rmustacc>Now you never know when putting something on the stack is going to cause you to page fault in the middle of something.
02:44:14  <bnoordhuis>well, that's no different from how it is now
02:45:08  <rmustacc>Assuming your stack is faulted in, it's a big difference.
02:45:43  <rmustacc>It also is already mapped, so you're not turning it into a malloc() call.
02:45:48  <rmustacc>Or mmap() call.
02:45:57  <rmustacc>At least, if I understand correctly.
02:46:57  <bnoordhuis>i don't think the actual paging in / paging out semantics change
02:47:17  <bnoordhuis>it's mostly about keeping address space manageable
02:47:37  <rmustacc>Huh, I was under the impression it was so you could have a stack that grows larger than the default.
02:47:48  <rmustacc>i.e. traditionally you map four pages for the stack let's say.
02:47:58  <bnoordhuis>well, i think that's the reason - you can't start 500K threads on a 32 bits system now because you'll run out of address space
02:48:07  <rmustacc>Here, when you would grow beyond the fourth page, they go and find another page.
02:48:27  <rmustacc>The act of finding that page means you have to do a new mmap/malloc/whatever call.
02:48:42  <rmustacc>Oh, I understand the rationale behind why they want something like that.
02:49:18  <rmustacc>But now you're going to have to play stack chasing games across your address space, or unmap and remap somewhere else, etc.
02:49:34  <rmustacc>In the old world, you could fault in a new page. In this world, you could have to mmap a new page.
02:50:00  <rmustacc>But I haven't read the proposal in a while, so it could be more reasonable than I'm remembering.
02:50:14  <ryah>bnoordhuis: hm - somehow we got away with this on osx before without having the flat_namespace
02:50:23  <ryah>at least i thought we did
02:51:42  <ryah>oh - i think im missing -bundle
02:51:58  <bnoordhuis>rmustacc: i think you're right about having to malloc / mmap memory
02:52:30  <bnoordhuis>or at least having to do some processing inside the process
02:52:49  <bnoordhuis>dangerously close to black magic, split stacks are
02:52:54  <rmustacc>Yeah
02:53:05  <rmustacc>Now, do any distros actually ship gold?
02:53:08  <rmustacc>By default?
02:53:18  <bnoordhuis>ubuntu 11.04 does, i think
02:57:38  * bnoordhuisis off to bed
02:59:12  <ryah>sigh.
02:59:21  <ryah>apparently gyp doesn't want me to ahve -bundle
02:59:40  <ryah>which would be fine - because i dont know what that is
02:59:49  <ryah>but it would be nice if it worked..
03:02:02  * bnoordhuisquit (Ping timeout: 240 seconds)
03:16:04  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
03:41:29  * mikealjoined
03:45:08  * indexzerojoined
03:49:28  * isaacsjoined
04:13:04  * isaacsquit (Quit: isaacs)
04:23:57  * isaacsjoined
04:30:42  * benviejoined
04:33:25  <CIA-111>node: Ryan Dahl master * r6c5f1f5 / node.gyp : Remove unnecessary stuff from node.gyp - http://git.io/HZkCeA
04:44:59  * travis-cijoined
04:44:59  <travis-ci>[travis-ci] joyent/node#117 (master - 6c5f1f5 : Ryan Dahl): The build is still failing.
04:44:59  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/b603578...6c5f1f5
04:44:59  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/430300
04:44:59  * travis-cipart
04:48:29  * indexzeroquit (Quit: indexzero)
05:22:41  * mikealquit (Quit: Leaving.)
05:51:21  <ryah>mjr_: how's that patch looking?
05:51:29  <mjr_>let me check
05:51:57  <mjr_>no cores
05:52:01  <mjr_>Seems like a win
05:53:23  <ryah>oh good. is there a way to check if that node is higher on cpu?
05:53:59  <mjr_>hmm, kind of hard at the moment.
05:54:04  <mjr_>Seems fine though
05:54:13  <ryah>ok
05:54:26  <mjr_>A 3% increase would be nearly impossible to detect right now.
05:54:39  <mjr_>Because the load fluctuates based on how people are using it.
05:54:42  <mjr_>Who is using it, etc.
05:55:38  <ryah>should we wait until morning to see if there were anymore problems?
05:55:53  <ryah>how often was it core dumping before?
06:01:56  * ericktquit (Quit: erickt)
06:02:48  <mjr_>Let's see, it made about 30 cores in 24 hours.
06:03:51  <mjr_>We applied the patch to 8 out of 336 processes.
06:04:04  <mjr_>So we are probably good, but we might as well wait until the morning just to be sure.
06:04:51  <ryah>cool
06:05:04  <CIA-111>node: Ryan Dahl master * r7edfb02 / common.gypi :
06:05:04  <CIA-111>node: Remove visibility=hidden options from common.gypi
06:05:04  <CIA-111>node: Not necessary and preventing addon loading. - http://git.io/Qyi7Sg
06:05:04  <CIA-111>node: Ryan Dahl master * r18b9220 / (5 files in 2 dirs):
06:05:04  <CIA-111>node: Support addons with gyp
06:05:04  <CIA-111>node: Initial pass. - http://git.io/GfFkMw
07:27:49  * isaacsquit (Quit: isaacs)
07:29:29  * isaacsjoined
07:58:23  * paddybyersjoined
08:30:51  * paddybyersquit (Ping timeout: 248 seconds)
09:18:16  * paddybyersjoined
09:35:08  * isaacsquit (Quit: isaacs)
10:09:31  <indutny>what is a due for 0.7.x ?
10:09:53  <indutny>I mean due date, of course
11:17:10  * travis-cijoined
11:17:10  <travis-ci>[travis-ci] joyent/node#118 (master - 18b9220 : Ryan Dahl): The build is still failing.
11:17:10  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/6c5f1f5...18b9220
11:17:10  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/431160
11:17:10  * travis-cipart
12:27:06  * mjr_quit (Quit: mjr_)
13:21:43  * dshaw_joined
13:29:03  * bnoordhuisjoined
13:50:20  * dshaw_quit (Ping timeout: 248 seconds)
14:10:31  <CIA-111>node: Ben Noordhuis v0.6 * r7a7f106 / lib/tls.js : tls: remove duplicate assignment - http://git.io/bctKdQ
14:14:35  <txdv>Hey ladies
14:15:17  <txdv>does uv_fs_fstat write the info about a file into the uv_fs_t.data field?
14:15:58  <bnoordhuis>txdv: no
14:18:26  * travis-cijoined
14:18:27  <travis-ci>[travis-ci] joyent/node#119 (v0.6 - 7a7f106 : Ben Noordhuis): The build passed.
14:18:27  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/f4e34f1...7a7f106
14:18:27  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/432157
14:18:27  * travis-cipart
14:21:19  <bnoordhuis>txdv: is your follow-up question "so where does it store the result?"
14:23:15  <txdv>:D
14:23:22  <txdv>bnoordhuis: you can read my mind!
14:24:07  <txdv>i can look up the source of node, but if someone has the answer already stored in his brain memory, sharing would be much faster
14:24:20  <bnoordhuis>i can and those are not proper thoughts about your sister
14:24:31  <bnoordhuis>also, the result is stored in req->statbuf
14:27:27  <txdv>y sister? nevermind. thanks
14:29:28  <txdv>uv_fs_t has no statbuf struct Oo
14:30:12  <txdv>wait
14:31:09  <txdv>it has, but it is a "private field"?
14:31:23  <txdv>i dont think i am supposed to access private fields
14:33:03  <bnoordhuis>it's private-ish
14:33:12  <bnoordhuis>it's called stat on windows btw
14:33:58  <bnoordhuis>not sure why we did it like that
14:34:18  <txdv>doesn't matter
14:34:41  <txdv>since uv_buf_t differs in size on win32/64 and lin32/64, all the ABI definitions are fucked up anyway
14:35:26  <txdv>not fucked up, but they are different
14:35:49  <bnoordhuis>i blame pointers
14:36:03  <txdv>no not that
14:36:08  <txdv>that is not a problem
14:36:31  <txdv>the problem is that uv_buf_t is ulong pointer on win and pointer pointer on lin
14:37:04  <bnoordhuis>oh, like that
14:37:13  <bnoordhuis>well, i still blame pointers, i don't have to be rational about it
14:37:20  <txdv>:D
14:38:07  <txdv>i still can't find out where node takes the result
14:38:54  <bnoordhuis>txdv: node_file.cc, search for NODE_STAT_STRUCT and BuildStatsObject()
14:39:17  <bnoordhuis>NODE_STAT_STRUCT is probably defined in node.h
14:39:40  <txdv>does the win stat and lin statbuf differ?
14:39:51  <bnoordhuis>yes
14:41:35  <txdv>nice, thanks, now I know what to look for
14:42:13  <txdv>in a perfect world the ABI wouldn't be different ... but then again in a perfect world windows wouldn't exist
14:43:54  * logicalparadoxjoined
14:47:32  * logicalp_joined
14:47:48  * logicalp_quit (Client Quit)
15:01:16  * benviequit
15:42:17  * ericktjoined
15:43:17  <txdv>sizeof(struct stat) according to man = 60, when I in C and do a sizeof = 88
15:43:22  <txdv>what kind of sorcery is this
15:44:51  <bnoordhuis>txdv: _FILE_OFFSET_BITS=64 and _LARGEFILE_SOURCE
15:45:06  <bnoordhuis>on a side note, the guy who thought that up should be discreetly taken outside
15:45:10  <bnoordhuis>and shot >:(
15:45:44  <mmalecki>he should commit a suicide by a triple shot in the back of his head.
15:46:34  <mmalecki>(morning everybody!)
15:48:02  <txdv>how am I supposed to get the definition of that one
15:49:13  <txdv>my wrapper is written in pure C#
15:50:21  <mmalecki>bnoordhuis: hey, to keep you updated. web-5 will soon close it's speakers list. we'll see if there's a spot for you. also, tickets will be out soon, you should totally buy one.
15:53:32  <txdv>i have an idea
15:53:46  <bnoordhuis>mmalecki: i probably won't go unless invited, it's pretty far from home for me
15:54:06  <bnoordhuis>also, morning? what TZ are you in?
15:54:35  <txdv>since "struct stat" is somewhat private, why don't we introduce a function which will fill up a stat struct, which as definitiv size
15:56:42  <mmalecki>bnoordhuis: Poland, but I barely woke up. GMT+1 or so.
15:57:14  <mmalecki>bnoordhuis: hm, ok. it'd be great to see you there.
15:57:25  <mmalecki>I'll see what I can do.
15:57:46  <mmalecki>I think that Charlie Robbins is going to speak there, btw
16:00:10  <txdv>its 5 oclock in poland
16:03:19  <mmalecki>yes
16:03:33  * bnoordhuisgoes back to tracking down heap corruption in openssl
16:03:36  <bnoordhuis>^ fun++
16:03:47  <mmalecki>my life is boring.
16:04:20  * indutnyquit (Quit: leaving)
16:04:35  <bnoordhuis>mmalecki: how so? you get paid to hang out with awesome people on irc, right?
16:05:22  <mmalecki>bnoordhuis: I get paid to code *and* to hang out with awesome people
16:05:47  <mmalecki>but tracking a heap corruption sounds way more awesome XD
16:06:15  <bnoordhuis>oh, i see writing code as filler for the times when the channel is quiet
16:06:21  <mmalecki>bnoordhuis: btw, we have some crazy IRC parties there, you should come and hang out with us
16:06:30  <mmalecki>lol
16:07:25  * indutnyjoined
16:07:34  <indutny>heya
16:07:39  <indutny>good morning
16:07:50  <mmalecki>hey :)
16:08:00  <bnoordhuis>what is it with you eastern europeans?
16:08:20  <mmalecki>bnoordhuis: we like sleeping. long.
16:08:31  <bnoordhuis>okay, i can understand that
16:10:34  <mmalecki>bnoordhuis: getting up at 8 AM is sooooo boring
16:10:55  <bnoordhuis>hah, i can't remember the last time i did that
16:11:09  <bnoordhuis>though i am sometimes *awake* at 8 AM
16:11:35  <mmalecki>I often wake up really early to just fall asleep again, it's fun
16:14:27  <mmalecki>bnoordhuis: btw, I activated your nodejitsu account some time ago, did you have a chance to use it?
16:15:02  <bnoordhuis>mmalecki: sorry, no
16:15:46  <mmalecki>bnoordhuis: np :). drop by #nodejitsu when you have some time, we'll give you a quick intro
16:16:49  <bnoordhuis>mmalecki: i don't think i'll ever have the time - i don't even really use my no.de account, only to test if node compiles
16:17:43  <mmalecki>bnoordhuis: fair enough :)
16:20:38  <txdv>ISO C90 does not support ‘long long’, i need a type which is 8byte long, any ideas?
16:23:48  * piscisaureus_joined
16:33:31  <txdv>so ridicolous
16:33:43  <txdv>this stat function makes me want to cry
16:37:55  * isaacsjoined
16:42:36  <indutny>tmux is so cool
16:47:59  * pieternjoined
16:50:00  <bnoordhuis>txdv: double
16:58:16  <rmustacc>txdv: Are you including stdint.h?
16:58:59  <rmustacc>You can still grab a uint64_t out of that, iirc.
16:59:28  <bnoordhuis>(i was teasing him)
17:00:08  <bnoordhuis>txdv: if you're compiling on a 64 bits system, there's a fair chance that sizeof(long) = 8
17:01:37  <rmustacc>Almost all 64-bit systems use an LP64 ABI.
17:02:03  <rmustacc>At least, all the ones you're probably using. Maybe if you sneak some VMX or IRIX or something else you'll find an LLP64.
17:03:55  <DrPizza>except the most widely-used 64-bit operating system there is, of course
17:03:56  <DrPizza>:)
17:04:21  <rmustacc>Really?
17:04:35  <rmustacc>But no one rights their apps in 64-bit mode over there anyways.
17:04:40  <rmustacc>*writes
17:04:40  <DrPizza>Win64 is LLP64.
17:04:51  <DrPizza>Because (ugh) "backwards compatibility"
17:05:05  <rmustacc>Look at v8, they don't have a 64-bit version for Windows, iirc.
17:05:21  <DrPizza>That seems a bit odd
17:05:35  <DrPizza>IE10 will have a proper 64-bit version (IE9's Chakra is 32-bit only)
17:05:56  <DrPizza>And I believe Firefox has a viable 64-bit version (not 100% sure if all the Monkeys are 64-bit)
17:07:01  <bnoordhuis>https://gist.github.com/1506791 <- in case you want to know if sizeof(long) is 4 or 8
17:08:00  <bnoordhuis>heh, didn't know windows is LLP64
17:25:56  <piscisaureus_>v8 has 64 bit for windows
17:26:03  <piscisaureus_>just not supported by the gyp build
17:26:09  <piscisaureus_>but you can build it with scons
17:33:07  * piscisaureus__joined
17:36:44  <CIA-111>node: Ben Noordhuis master * rb24c515 / (11 files in 6 dirs): uv: upgrade to 10de090 - http://git.io/QrObtw
17:36:44  <CIA-111>node: Ben Noordhuis master * ra82f538 / deps/openssl/config/piii/openssl/opensslconf-posix.h : deps: fix openssl build on x86_64 - http://git.io/xMt52A
17:38:09  <bnoordhuis>mmalecki: ^ that's how glamorous my life is, tweaking config files
17:38:27  <mmalecki>bnoordhuis: lol
17:38:40  <mmalecki>bnoordhuis: that's really badass
17:38:52  * piscisaureus__quit (Ping timeout: 255 seconds)
17:38:55  <sh1mmer>chicks love config files
17:39:29  <bnoordhuis>the bigger your config file, the better
17:40:47  <ryah>bnoordhuis: sounds like mjr's issue was the handlescope
17:41:05  <ryah>waiting for a final report this morning
17:42:15  <mmalecki>bnoordhuis: https://github.com/joyent/node/commit/a82f5389d9673a48ab0facd6e77b2244dfe084c6#L0R194 <- is it a challange?
17:42:35  <bnoordhuis>mmalecki: no, a prayer
17:43:13  * mmaleckigoes to make one
17:43:17  <rmustacc>bnoordhuis: I don't want to be that guy, but you're fucked already.
17:43:45  <rmustacc>They announced the 64-bit ISA.
17:44:18  <bnoordhuis>damn you, arm
17:44:22  <rmustacc>Now maybe an act of some benevolent deity will cause all the foundries to fail...
17:44:38  <bnoordhuis>too bad i'm an atheist :/
17:45:12  <bnoordhuis>but hey, the LORD helps them who help themselves, right?
17:45:21  * bnoordhuisis off to sabotage a certain production line
17:45:38  * sh1mmerquit (Quit: sh1mmer)
17:46:35  * benviejoined
17:47:16  <bnoordhuis>piscisaureus_: interested in a solaris + fortran to linux + c++ gig?
17:48:15  * travis-cijoined
17:48:15  <travis-ci>[travis-ci] joyent/node#120 (master - a82f538 : Ben Noordhuis): The build is still failing.
17:48:15  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/18b9220...a82f538
17:48:15  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/433796
17:48:15  * travis-cipart
17:51:01  <piscisaureus_>bnoordhuis: yeah send me the paperwork
17:51:23  <piscisaureus_>:-p
17:51:39  <bnoordhuis>piscisaureus_: je weet dat ik het doe
17:52:05  <bnoordhuis>piscisaureus_: it's in delft if it's the company i think it is
17:52:28  <piscisaureus_>bnoordhuis: which?
17:53:05  <piscisaureus_>exact?
17:53:13  <piscisaureus_>delft instruments?
17:53:23  <bnoordhuis>oh wait, maybe it's in rotterdam
17:56:03  <bnoordhuis>yeah, i thought it was exact but it's probably not
17:59:43  * piscisaureus__joined
18:02:36  * piscisaureus___joined
18:04:58  * piscisaureus__quit (Ping timeout: 255 seconds)
18:09:40  * piscisaureus_quit (Read error: Connection reset by peer)
18:10:11  * piscisaureus_joined
18:10:40  <bnoordhuis>ryah, piscisaureus_: i probably won't be able to make the call tonight, i'm babysitting - status update: did nothing special
18:14:14  * piscisaureus_quit (Ping timeout: 240 seconds)
18:20:20  <ryah>bnoordhuis: okay - i can't make the call either
18:20:46  <ryah>bnoordhuis: i'm still working on addon stuff - finally got it to work on GYP/mac last night - now trying to load from multiple isolates
18:20:57  <ryah>bnoordhuis: land paddybyers's patch for eio?
18:21:34  <ryah>oh right - you were going to write a test for that
18:21:35  * piscisaureus___quit (Read error: Connection reset by peer)
18:47:04  * TooTallNatejoined
18:52:04  <ryah>binary modules, people
18:52:28  <ryah>no building upon installing
18:53:06  <ryah>this is obviously the best future - and we're going to work towards it
18:54:11  <mmalecki>ryah: just please don't enforce it.
18:55:00  <ryah>yes, im going to enforce it
18:55:13  <ryah>by removing the build tools distributed with node
18:55:45  <ryah>users should not be compiling shit
18:55:55  <mmalecki>ryah: uhm... so how are you going to make it work on windows, linux and mac?
18:55:58  <ryah>it opens the door to limitless pain
18:56:03  <mmalecki>different formats, right?
18:56:16  <ryah>npm is going to support uploading differnt builds
18:56:52  <ryah>and users who don't like that can go be advanced users and download the node tree
18:56:53  <mmalecki>so what if maintainer doesn't upload Linux build?
18:57:00  <ryah>then linux isn't supported
18:57:47  <ryah>we can probably devise a scheme where others can upload builds for certain packages
18:58:00  <ryah>even if they don't own them
18:58:32  <ryah>we must do what is best for the users
18:58:39  <mmalecki>ryah: hm, I don't feel like it's a good idea
18:58:50  <ryah>windows people do not have build chains
18:58:57  <ryah>the will never be able to compile modules
18:59:15  <ryah>and unix people don't know what hte hell they're doing either
18:59:28  <ryah>it only works by accident
19:00:04  <mmalecki>ryah: right, poor windows users. I hope you're not going to stop people from distributing the C source.
19:00:25  * piscisaureus___joined
19:00:38  <ryah>of course not
19:00:50  * piscisaureus___changed nick to piscisaureus_
19:00:55  <ryah>if people want ot build the addon themselves they can
19:00:59  <ryah>but npm isn't going to do it
19:01:18  <ryah>or if it is, it's not going to be the default
19:01:20  <mmalecki>ryah: hm. no more scripts.preinstall?
19:01:26  <ryah>NO
19:01:44  <ryah>man just thinking about that makes me angry
19:02:04  <CIA-111>node: koichik v0.6 * r07c27e0 / (4 files in 3 dirs):
19:02:04  <CIA-111>node: tls: Fix node swallows openssl error on request
19:02:04  <CIA-111>node: Fixes #2308.
19:02:04  <CIA-111>node: Fixes #2246. - http://git.io/5J6iOA
19:02:18  <mmalecki>ryah: what's wrong with compilation? one has to compile node anyway
19:02:29  <ryah>because it's hard
19:02:43  <ryah>people have many different environments
19:03:08  <ryah>and users - who want to use it - don't give a shit
19:03:11  <ryah>they just want it to work
19:03:20  <ryah>build systems are *extremely* hard
19:03:34  <mmalecki>I never had a problem with addon compilation. but binary ones? that's a lot of moving parts
19:03:46  <ryah>besides - windows users don't have build chains
19:03:51  <ryah>so the discussion is mute
19:04:08  <mmalecki>ryah: just wondering about your reasoning
19:04:11  <ryah>that much fewer moving parts
19:04:16  <TooTallNate>i'm with mmalecki on this one
19:04:19  <TooTallNate>for the most part
19:04:19  <ryah>binary is just code
19:04:23  <ryah>people
19:04:41  <TooTallNate>i've already been experimenting with gyp, with node-weak https://github.com/TooTallNate/node-weak
19:04:50  <TooTallNate>and i'm including 1 binary for windows
19:04:55  <ryah>let's think about the moving parts involved with installing hiredis currently
19:05:02  <TooTallNate>i opted out of the current npm --bin-install feature
19:05:04  <ryah>people list them
19:05:13  <ryah>- node
19:05:15  <ryah>- gcc
19:05:17  <ryah>- waf
19:05:26  <ryah>- python (what version?)
19:05:39  <ryah>- bash ?
19:06:07  <mmalecki>- libc
19:06:19  <mmalecki>and few other things which come bundled with every sane OS
19:06:26  <piscisaureus_>I kind of like ary addons but
19:06:41  <piscisaureus_>is it possible to build something on one linux distro and then use it on another
19:06:43  <mmalecki>like, OS X and Linux have python and bash available ootb
19:06:46  <ryah>hiredis is quite simple by comparison
19:06:52  <ryah>what about the ones that depend on
19:06:53  <ryah>-scons
19:06:55  <mmalecki>piscisaureus_: it's hard
19:06:56  <ryah>- autoconf
19:07:02  <ryah>- pkg_config
19:07:12  <ryah>^-- FUCK ALL THIS SHIT
19:07:36  <mmalecki>piscisaureus_: different libraries, etc.
19:07:43  <ryah>i am not exposing my users to pkg-config
19:07:44  <piscisaureus_>different kernel version
19:07:52  <piscisaureus_>different libc versions
19:08:08  <ryah>piscisaureus_: sure
19:08:09  <piscisaureus_>that makes binaries painful for unices
19:08:14  <mmalecki>yes.
19:08:46  <ryah>piscisaureus_: binary interfaces of libc and linux are much more stable than all this other bullshit
19:08:51  <TooTallNate>ryah: i'm open to npm being the "blessed" binary repo, but theres some things about it that need to be fixed first
19:09:08  <ryah>TooTallNate: definitely
19:09:12  <TooTallNate>for instance:
19:09:13  <ryah>we're a long way from this
19:09:25  <ryah>but let's be clear that this is the only future
19:09:36  <TooTallNate>some of my bindings haven't changed in ages
19:09:52  <TooTallNate>therefore I shouldn't have to re-upload the binaries for each version of the module
19:10:07  <ryah>yep
19:10:14  <TooTallNate>a current workaround is to publish the "bindings" as a separate npm module, but thats meh
19:10:15  * travis-cijoined
19:10:16  <travis-ci>[travis-ci] joyent/node#121 (v0.6 - 07c27e0 : koichik): The build passed.
19:10:16  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/7a7f106...07c27e0
19:10:16  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/434107
19:10:16  * travis-cipart
19:10:36  <ryah>programmers need to do some work - yep
19:10:46  <ryah>things don't magically work everywhere
19:10:52  <ryah>but guess what, they never did
19:11:40  <ryah>we also might consider not allowing dynamic linking from addons
19:12:03  <TooTallNate>ryah: i think that might break node-ffi?
19:12:33  <ryah>addons need to bundle whatever they are binding to
19:12:51  <TooTallNate>oh ok, i was misinterpreting
19:13:04  <TooTallNate>that's probably wise too
19:13:25  <ryah>wht does a newbie do when he tries to install node-libxml2 and
19:13:33  <TooTallNate>i kinda figured out libmp3lame with gyp last night https://twitter.com/tootallnate/status/149560537712308224
19:13:50  <ryah>node runs python which runs waf which runs pkg-config - which can't find libxml2
19:13:57  <ryah>and they get an error
19:14:01  <ryah>the newbie gives up
19:14:12  <ryah>and somehow all you unix assholes find this okay
19:14:19  <TooTallNate>ryah: which actually reminds me, where autoconf previously gave a config.h file, whats the equivalent with gyp?
19:14:58  <mmalecki>ryah: programming is not easy. if newbie gives up after one error, he's probably an idiot.
19:14:59  <ryah>TooTallNate: it can make a config.h if you want
19:15:02  <TooTallNate>specifically, uint32_t is defined by the config.h, and i was wondering if gyp gave us something simifar
19:15:08  <ryah>mmalecki: node is for idiots though
19:15:10  <TooTallNate>oh really? cool
19:15:41  <ryah>i do not accept this "programming is not easy" - it is our explicit goal to make programming easy
19:16:01  <ryah>which INCLUDES fucking pkg-config errors
19:16:15  <ryah>because that's part of node if we call out to it
19:16:24  <ryah>that's part of the node experience
19:16:34  * AndreasMadsenjoined
19:16:56  <ryah>binary modules are the ONLY way we can hope to contain this nightmare
19:17:19  <ryah>that is until we can get rid of unix entirely
19:17:50  <mmalecki>ryah: what system would be perfect for you?
19:17:56  <mmalecki>if not unix, then what?
19:18:13  <ryah>i like the web browser's programming interface
19:18:19  <ryah>there's no pkg-config there
19:18:37  <ryah>there's no LD_LIBRARY_PATH
19:18:50  <ryah>(or do you mean DYLD_LIBRARY_PATH ?)
19:19:00  <ryah>no no no - this shit - is all fucked
19:19:15  <ryah>and we're not going participate in it
19:19:32  <ryah>we're going to do that by working towards having binary addons
19:19:38  <ryah>OR disabling addons entirely
19:20:14  <AndreasMadsen>I'm enjoyed by this conversation :)
19:20:16  <mmalecki>ryah meets unix: http://images.cheezburger.com/completestore/2011/9/28/dc5ccfaa-852a-4f50-bf64-c311d7ed3fd2.jpg ;)
19:20:25  <TooTallNate>ryah's in a bad mood or something :p
19:21:11  <ryah>i just don't understand how everyone can accept this bullshit of build chains, and configure script
19:21:15  <ryah>and want to expose users to it
19:21:22  <ryah>it's obviously horrible
19:21:34  <ryah>especially considering what it accomplishes
19:21:58  * dshaw_joined
19:22:46  <ryah>okay - so we're in agreement then
19:23:05  <ryah>we'll be phasing out node-waf over the next 6 months
19:23:13  <ryah>there will be no replacement
19:23:17  <TooTallNate>it's a good idea so long as the npm flaws get taken care of
19:23:23  <AndreasMadsen>ryah: normally there is only one person maintaing a configuration script on each project, however many contribute to the project in another way and do not really care about how make install works.
19:23:49  <mmalecki>ryah: and what if I want to build some module by myself?
19:24:21  <TooTallNate>mmalecki: the replacement will be "gyp_addon" in the node source, but not distibuted with installs
19:24:27  <ryah>mmalecki: then you are and advanced user - you download the node tree and run $NODE_ROOT/tools/gyp_addon -f make mybinding.gyp
19:25:06  <TooTallNate>ryah: it worked well for me when i tested it last night btw :)
19:25:07  <mmalecki>ryah: makes sense, thanks
19:25:11  <TooTallNate>on my mac obviously
19:25:20  <TooTallNate>but it would be nice to have the 64-bit thing fixed :)
19:25:26  <TooTallNate>will that require mods to gyp?
19:25:27  <ryah>yes, we need to fix npm
19:25:31  <ryah>that will take some time
19:25:36  <ryah>that's why we're giving it 6 months
19:25:53  <piscisaureus_>ryah: maybe we can just provide some sort of hello world addon and publish that on github
19:25:56  <piscisaureus_>that uses gyp etc
19:26:15  <TooTallNate>piscisaureus_: there's now an example in the repo
19:26:24  <TooTallNate>but that might not be visible enough i guess
19:26:28  <ryah>piscisaureus_: https://github.com/joyent/node/tree/master/test/addons
19:27:21  <piscisaureus_>ryah: that one is not good enough actually
19:27:23  <isaacs>ryah: just read the scrollback. this is a good rant.
19:27:25  <ryah>we're going to start building addons as part of the test suite
19:27:39  <TooTallNate>piscisaureus_: what else does it need?
19:27:40  <piscisaureus_>ryah: I want something that people can just copy out of the node tree
19:28:10  <piscisaureus_>and then it should - by default - be able to locate the node, v8, libuv headers
19:28:13  <isaacs>ryah: one gem that i see in your output here is that building and deploying a binary addon should be harder.
19:28:17  <isaacs>ryah: so that using them is easier
19:28:59  <TooTallNate>isaacs: my specific thing is that some of my bindings haven't changed in months, but the JS part of the module has
19:29:17  <TooTallNate>so i shouldn't have to re-upload the binary each time i publish a new version of the module
19:29:19  <isaacs>i'd be perfectly fine with saying that binary addons are not welcome, period.
19:29:27  <isaacs>if you want to use them, you have to compile them into the node binary
19:29:35  <isaacs>it's wildly painful to use.
19:29:41  <isaacs>we've tried multiple ways to make it easier.
19:29:42  <piscisaureus_>nah I am not fine with that
19:29:43  <isaacs>it's fucking terrible.
19:29:49  <piscisaureus_>binary addons should be discouraged
19:29:51  <piscisaureus_>sure
19:30:04  <piscisaureus_>but people need it to bootstrap their stuff
19:30:05  <isaacs>piscisaureus_: if we don't distribute the build toolchain wiht node, that's effectively saying that they're not welcome.
19:30:32  <isaacs>piscisaureus_: they can bootstrap it by dropping their shit into node's source tree under src/addons/ or something, and compiling it, and then handing the binary to their user.
19:30:43  <isaacs>and it's just already there as a native module.
19:31:18  <TooTallNate>isaacs: that means, from LB's point of view, that every time we change a native module that's in the package.json that we have to recompile node!
19:31:40  <isaacs>TooTallNate: simple: don't have binary addons in your package.json as deps.
19:31:52  <TooTallNate>that's a terrible solution
19:31:59  <isaacs>TooTallNate: just use node that already has them. sniff for them in require("natives") and abort if they're missing, with an error message.
19:32:04  <isaacs>TooTallNate: how often does libxml2 change?
19:32:07  <isaacs>eveR?
19:32:27  <TooTallNate>well
19:32:28  <TooTallNate>ya
19:32:34  <mmalecki>that's really a terrible solution.
19:32:38  <isaacs>here's the thing: the degree of hatred that anyone has towards binary node addons is directly proportional to the level of interaction that they've had with binary addons.
19:33:01  <isaacs>the only apologists are people who've spent very little time with htem, and are on a platform where it mostly works (again, usualluy by accident)
19:33:24  <isaacs>and it will never work on windows, or even reliably on unix.
19:33:31  <TooTallNate>well the solution ryah's been talking about works for me
19:33:41  <TooTallNate>and isn't so drastic as what you're suggesting isaacs
19:34:06  <TooTallNate>i'm fine with the build system being hidden from users
19:34:18  <isaacs>TooTallNate: he's talking about getting rid of scripts.preinstall
19:34:20  <TooTallNate>but don't make binary addons *that* inaccessible
19:34:25  <isaacs>TooTallNate: how is that less drastic?
19:34:26  <TooTallNate>isaacs: ya that's fine
19:34:34  <TooTallNate>cause I can include pre-compiled binaries
19:34:49  <isaacs>using a binary module will mean that you have to download the code, download node's source, and do a bunch of mumbo jumbo to it, for your target architecture.
19:35:06  <TooTallNate>not with a precompiled binary...
19:35:27  <TooTallNate>or are you talking about for the author?
19:35:29  <isaacs>./configure --with-addon=path/to/hiredis --with-addon=path/to/libxml2 ...
19:36:42  <TooTallNate>i'm lost
19:36:44  <ryah>isaacs: im not saying we shouldn't have addons
19:36:50  <isaacs>i know
19:36:52  <ryah>isaacs: im saying we shouldn't compile them on install
19:38:17  <isaacs>ryah: yeah, i know what you'er saying.
19:38:23  <piscisaureus_>there is only one thing I do not like
19:38:33  <isaacs>ryah: i'm saying, as drastic as your rant sounds, i doubt if it's drastic enough to solve the problem you'er ranting about.
19:38:38  <piscisaureus_>I don't really trust npm packages
19:38:44  <isaacs>bingo^
19:38:57  <isaacs>you think compilation is painful? try binary deployment.
19:39:02  * markcjoined
19:39:02  <ryah>why?
19:39:03  <piscisaureus_>but I completely distrust binary addons that are built by someone other than the package author
19:39:15  <ryah>why is binary deployment harder than compiling?
19:39:17  <TooTallNate>piscisaureus_: i guess commit them like node-weak: https://github.com/TooTallNate/node-weak/tree/master/compiled
19:39:18  <ryah>it certainly is not
19:39:22  <isaacs>deploying a node binary only works as well as it does because we limit it to only windows and macintosh.
19:39:28  <isaacs>we're not trying to deploy a node binary for every unix.
19:39:38  <piscisaureus_>TooTallNate: yeah sure but the thing is
19:39:48  <ryah>look there are three OSes in the world: windows, osx, and linux
19:39:53  <piscisaureus_>TooTallNate: you are not going to ship binaries for windows and dragonflybsd
19:39:58  <piscisaureus_>and RHEL
19:40:09  <TooTallNate>piscisaureus_: exactly, that's the problem
19:40:13  <piscisaureus_>and macos-x32
19:40:13  <isaacs>ryah: even just "linux" isn't specific enough a lot of the time, it turns out.
19:40:25  <TooTallNate>piscisaureus_: so i agree
19:40:29  <isaacs>ryah: also, we need to include illumos.
19:40:41  <ryah>isaacs: it's good enough for most cases
19:41:01  <isaacs>look, here's the thing: binary addons are already a tiny minority of packages on npm.
19:41:05  <isaacs>there are a handful of really useful ones, sure.
19:41:20  <ryah>seriously - depending on binary interfaces is MUCH simpler than dealing with all the myriad environements and tool chains
19:41:26  <isaacs>but nothing that couldn't be handled without an npm install that does compilation.
19:41:43  <ryah>no
19:41:46  <ryah>no compilation
19:42:00  <ryah>we are *not* exposing our users to this bullshit
19:42:14  <isaacs>that being said, getting rid of the install/preinstall script hook will have much worse problems than just removing compilation.
19:42:21  <isaacs>if you don't want people doing compilation, let's get rid of node-waf.
19:42:36  <ryah>install/preinstall are awful and should go immediately
19:42:42  <isaacs>i disagree.
19:42:48  <ryah>what do people use that for?
19:42:52  <ryah>why should they need that
19:43:00  <ryah>this is javascript
19:43:08  <isaacs>it's not alwasy for compilation.
19:43:14  <piscisaureus_>isaacs: btw why is http://registry.npmjs.org/-/needbuild broken?
19:43:29  <isaacs>piscisaureus_: probably becasue i moved stuff around and didn't test it.
19:43:44  <ryah>we're getting rid of node-waf
19:43:48  <isaacs>awesome.
19:43:56  <ryah>but i want to support addons
19:44:29  <isaacs>getting rid of the pre/post/install script hook would be annoying. the fact that it breaks many dozens of packages in very unique and annoying ways is why the --bin-publish flag is off by default.
19:44:53  <ryah>what do people use pre/post scripts for?
19:44:58  <ryah>running autoconf?
19:45:09  * mjr_joined
19:45:12  <isaacs>a person would publish some coffee-script thing, or something that has to know for some reason what folder it's in, and it'd lock the value into place and then not run on the target machine, and break unexpectedly.
19:45:12  * igorzijoined
19:45:36  <ryah>isaacs: ?
19:45:48  <isaacs>ryah: that's what happened when i had bin-publish enabled by default.
19:45:49  <ryah>isaacs: is there a good example that i can see?
19:45:55  <isaacs>ryah: not sure offhand.
19:46:07  <isaacs>since that view is borked, as piscisaureus_ mentioned :)
19:46:08  <ryah>so obviously installing a module should not be executing code
19:46:12  <ryah>i think we can all agree on that
19:46:16  <isaacs>ryah: no, we can't.
19:46:19  <ryah>it should just download some files
19:46:35  <ryah>why?
19:47:04  <isaacs>ryah: you are very opinionated about this. but your opinion is not unanimous.
19:47:18  <ryah>yeah, i like things to be nice
19:47:22  <ryah>everyone else likes things to be hard
19:47:26  <ryah>and shitty
19:47:43  <isaacs> getting rid of node-waf is a good first step.
19:47:57  <ryah>since we want to support addons
19:48:14  <ryah>we'll need to get the npm flows for uploading binary modules working before we remove node-waf
19:48:45  <isaacs>ryah: so: you still want to do `npm install libxmljs`, and have it fetch a libxmljs.node file for you.
19:48:50  <ryah>yes
19:49:08  <ryah>and libxmljs.node should not link to any other SOs
19:49:13  <isaacs>but it'll be the right one, for your operating system, architecture, node version, etc.
19:49:29  <ryah>yep
19:49:34  <igorzi>ryah piscisaureus_ isaacs: do people write node apps assuming that a connection to their http server actually corresponds to a browser connection?
19:49:34  <isaacs>the npm bits of this are fine, actually.
19:49:47  <TooTallNate>igorzi: i dont
19:49:47  <ryah>we can just make node 32bit for everyone
19:49:48  * pieternquit (Quit: pietern)
19:49:53  <isaacs>ryah: i mean, they have a few bugs here and there, i think, but the architecture doesn't need major changes.
19:50:08  <TooTallNate>isaacs: what about the thing i mentioned?
19:50:29  <ryah>igorzi: i dont think so
19:50:34  <piscisaureus_>well it should in fact fetch libxmljs.node-0.6.linux-2.0.31.gcc.x64.node :-/
19:50:52  <TooTallNate>piscisaureus_: but that wouldn't work since we rely on a specific filename :o
19:50:54  <TooTallNate>:p
19:51:00  <isaacs>TooTallNate: binary modules must be just a binary module.
19:51:10  <isaacs>TooTallNate: you're talking about having to republish if just the js changed?
19:51:14  <TooTallNate>yes
19:51:47  <ryah>let's just make node 32 bit
19:51:53  <piscisaureus_>meh
19:51:54  <piscisaureus_>-1
19:51:56  <ryah>that'll simplify things greatly
19:52:09  <TooTallNate>why greatly?
19:52:10  <ryah>why?
19:52:16  <piscisaureus_>yeah lets also drop support for all platforms except lion
19:52:21  <ryah>dont have to worry about compiling for differnt archs
19:52:37  <ryah>what's wrong with x86?
19:52:46  <ryah>chrome only ships 32bit
19:52:46  <mmalecki>it's old and it's going away.
19:52:51  <piscisaureus_>you're creating a painful transition path in the future
19:53:00  <piscisaureus_>when people want to move to x64
19:53:10  <ryah>it's not going away
19:53:14  <ryah>are you crazy?
19:53:54  <ryah>whatever - we can have people upload 64 or 32 bit - i dont care
19:53:58  <DrPizza>x64: more secure, more faster
19:54:05  <DrPizza>well
19:54:09  <TooTallNate>ryah: personally I'll upload both
19:54:09  <DrPizza>the first is mainly theoretical, unfortunately
19:54:12  <TooTallNate>I'm not lazy :)
19:54:12  <DrPizza>but the latter is real
19:54:22  <DrPizza>althogh it's application dependent
19:54:33  <piscisaureus_>we also need to keep arm support for node
19:54:43  <TooTallNate>piscisaureus_: yes definitely
19:54:47  <ryah>i dont want to have this discussion about archs - the discussion is about .node files
19:55:12  <ryah>it doesn't matter - we can force x86 or not
19:55:13  <DrPizza>it's too bad only apple has fat binaries
19:55:21  <DrPizza>solves problems quite neatly
19:55:22  <isaacs>any way that you can limit the build targets reduces a vector in the binary dists.
19:55:25  <isaacs>it's worth doing.
19:55:29  * sh1mmerjoined
19:56:20  * dshaw_quit (Ping timeout: 252 seconds)
19:56:24  * dshaw_1joined
19:56:37  <ryah>imagine being a newbie user
19:56:42  <ryah>imagine the best experience possible
19:56:45  <ryah>that is what we want
19:56:49  <AndreasMadsen>Who is do chrome-native-client compile across different platforms?
19:56:50  * igorziquit (Quit: Page closed)
19:57:00  <isaacs>ryah: by removing binary addons, we remove a lot of shit from that newbie's plate.
19:57:04  <isaacs>ryah: seriously.
19:57:26  <isaacs>you basically cannot cause a segfault from pure-js modules.
19:57:27  <ryah>isaacs: it's not an option
19:57:35  <isaacs>bugs are easily tracked down.
19:57:36  <ryah>to be honest
19:57:38  <isaacs>line numbers!
19:58:02  <isaacs>dude, i'm rewriting glob(3) and fnmatch(3) in js just because it's so fucking painful to deal with binary addons.
19:58:05  <ryah>we can't reduce functionality like that
19:58:19  <DrPizza>if you remove binary modules, you remove high performance compute-heavy programs, and you remove access to OS-specific functionality
19:58:22  <DrPizza>it doesn't seem at all viable.
19:58:24  <DrPizza>or desirable.
19:58:26  * dshaw_joined
19:58:26  <TooTallNate>isaacs: i'm never gonna rewrite the lame mp3 encoder ;)
19:58:46  <isaacs>DrPizza, TooTallNate: Sure, but how many programs need that? those users can go a different path.
19:58:53  <isaacs>you dont' need to install binary modules with npm.
19:59:05  <piscisaureus_>The best noob experience is this:
19:59:16  <TooTallNate>what path?
19:59:20  <TooTallNate>not using node?
19:59:24  <mjr_>Good News Everyone, the http parser fix has run for a day and not generated any cores.
19:59:31  <piscisaureus_>> npm install libxml
19:59:40  <ryah>yey
19:59:42  <ryah>im landing it
19:59:49  <isaacs>TooTallNate: no, they can run some other command that does some stuff to bundle libxml as a native module in their node binary.
19:59:54  <isaacs>and then have it everywhere.
19:59:58  <piscisaureus_>Warning: this is a binary addon - don't use it. Use sax instead.
20:00:25  <isaacs>piscisaureus_: i'd probably do that if sax wasn't 10-1000 times slower than expat and libxml.
20:00:27  <piscisaureus_>use `npm install --force --really` to install it anyway
20:00:33  <CIA-111>node: Ryan Dahl master * r4eaf4ce / (26 files in 11 dirs): Upgrade V8 to 3.8.2 - http://git.io/lpxQqQ
20:00:50  <isaacs>piscisaureus_: using it in most cases involves a lot of to-stringing
20:01:01  <piscisaureus_>yeah well
20:01:07  * dshaw_1quit (Ping timeout: 276 seconds)
20:01:09  <piscisaureus_>I wasn't suggesting you should use sax instead of libxml
20:01:16  <DrPizza>"spawn some external command" is a totally shit user experience
20:01:18  <piscisaureus_>just for the sake of the example
20:02:17  <piscisaureus_>There's probably 20 or so binary addons that really matter
20:02:19  <DrPizza>I don't really understand why shipping a bunch of different .dll and .so files is a problem
20:02:25  <piscisaureus_>the rest is just stuff that people did in their back yard
20:02:31  <piscisaureus_>and accidentally uploaded
20:02:31  <DrPizza>worst case, have a kind of "strip" command like Apple does
20:02:36  <DrPizza>it's not strip, that's for debug info
20:02:43  <DrPizza>but Apple has something for stripping unwanted arches out of fat binaries
20:02:56  <DrPizza>so if people are offended by having binaries they can''t or won't use
20:03:51  <isaacs>it'd be great if someone put together a system where you could select a handful of binary addons, and then download a node build with those already built in.
20:04:40  <piscisaureus_>isaacs: if that could be done, then the same system could just produce the .node files :-)
20:05:06  <piscisaureus_>isaacs: the problem is of course that this process creates a binary that may or may not work on your platform :-)
20:05:17  <isaacs>piscisaureus_: sure.
20:05:24  <isaacs>piscisaureus_: so you also tell it what kind of system you have.
20:05:38  <ryah>i'd be happy to have a system that simply downloaded the .node files
20:05:54  <isaacs>piscisaureus_: most of the problems that npm is designed to solve are not real problems when you'er talking in the context of binary addons, and the solutions make assumptions that are not valid in teh case of binary addons.
20:05:59  <piscisaureus_>yeah and it should also select the right one
20:06:15  <isaacs>you definitely never ever want more than one copy of libxmljs.node running in a node program. it's a beast.
20:06:47  <ryah>nor is it possible - likely
20:07:01  <piscisaureus_>well it is possible
20:07:37  <isaacs>ryah: sure it is. jsut have to have multiple dependencies that each depend on libxmljs
20:07:53  <ryah>so, we're all agreed
20:08:13  <piscisaureus_>isaacs: yes so stop doing this sort of kung fu
20:08:15  <ryah>1) npm will support building and uploading .node files for each arch, os, node major version
20:08:19  <isaacs>piscisaureus_: ha
20:08:21  <ryah>2) we will remove node-waf
20:08:27  <ryah>3) users will be happy
20:08:37  <isaacs>ryah: i'm not agreed on #1
20:08:44  <ryah>why
20:08:50  <isaacs>ryah: i think we should have some other tool for handling .node files.
20:08:51  <isaacs>not npm.
20:09:10  <piscisaureus_>nbm :-)
20:09:13  <ryah>"node install" ?
20:09:19  <isaacs>ryah: sure.
20:09:31  <ryah>im okay with that
20:09:35  <isaacs>ryah: it downloads the .node, puts it in some special location, and it's a built-in module available at startup.
20:09:41  <isaacs>like every other platform that has binary addons.
20:09:46  <piscisaureus_>yeah
20:10:05  <piscisaureus_>binary addons should not live in the source tree
20:10:16  <piscisaureus_>because there's different versions of them
20:10:36  <isaacs>we can talk about ways to say that a npm package depends on a binary addon or something, so that you can `npm install blah` and npm can be smart enough to know that it'll need the libxmljs.node addon to run properly.
20:10:39  <isaacs>or something
20:10:40  <piscisaureus_>people will develop on mac, deploy to linux
20:10:59  <ryah>so -
20:11:00  <piscisaureus_>yeah npm should just say "hey your node doesn't have this addon"
20:11:05  <ryah>1) replace npm with 'node install'
20:11:06  <piscisaureus_>you should go get it
20:11:09  <ryah>2) remove waf
20:11:13  <ryah>3) users are happy
20:11:15  <isaacs>ryah: replace npm with node install?
20:11:15  <isaacs>hah
20:11:29  <isaacs>i don't think that's a good solution, either. jsut for binary moduels.
20:11:29  <ryah>i wont support colors
20:12:04  <ryah>users want to download modules with one command
20:12:04  <piscisaureus_>we put a binary addons cap in place
20:12:06  <isaacs>ryah: you know, this is how easy_install got started, right?
20:12:24  <ryah>isaacs: what do you mean?
20:12:30  * travis-cijoined
20:12:30  <travis-ci>[travis-ci] joyent/node#122 (master - 4eaf4ce : Ryan Dahl): The build is still failing.
20:12:30  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/a82f538...4eaf4ce
20:12:30  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/434343
20:12:30  * travis-cipart
20:13:20  <isaacs>ryah: as i've heard the story told (i'm not a python guy, and wasn't there at the time), pip was deemed too big for something that's mostly just used to install stuff, which should be a trivial operation. so, folks started using this "easy_install" thing, which just does installation, and nothign else.
20:13:26  <CIA-111>node: Ryan Dahl v0.6 * r73cf8e8 / src/node_http_parser.cc :
20:13:26  <CIA-111>node: Add HandleScope to http-parser binding
20:13:26  <CIA-111>node: Fixes production crashes. We were not able to reproduce in the test suite. - http://git.io/OJjw7w
20:13:36  <isaacs>in short order, easy_install became a joke, because it almost never installs anything easily.
20:13:40  <isaacs>turns out, that's the hard part of the problem.
20:14:17  <ryah>python isn't node
20:14:33  <isaacs>true
20:14:34  <isaacs>it's not.
20:14:35  <ryah>our module system is much simpler
20:16:24  <isaacs>ryah: so, spend a weekend hacking up an installer thing. i will bet you lunch that by monday, you've decided it should not be in node-core.
20:18:46  <ryah>what i really want is it to be nice for users
20:18:53  <isaacs>all of us do.
20:19:02  <isaacs>ryah: no one *wants* the shitshow that is binary modules today.
20:19:21  <ryah>and?
20:19:34  <isaacs>and? it's kind of tricky.
20:19:37  <ryah>so let's fix it
20:19:50  <ryah>we're changing build systems now - it's a good time
20:19:56  <isaacs>agreed.
20:20:15  <isaacs>i don't think that we're going to end up with a good fix by saying that the problem is easy. if the problem was easy, we would already have a solution.
20:20:32  <ryah>fixing it means understanding the problem and not just giving people more hooks for running scripts during install
20:20:37  <isaacs>even if you assume that you have some service with every binary module already packaged up, you have to solve the problem of how things get in there, etc.
20:20:43  <isaacs>right.
20:21:05  <isaacs>any solution has to be *no shittier than* the current "compile on installation" approach.
20:21:12  <ryah>so - we define way to build addons - this is basically done
20:21:16  <isaacs>it has to be no harder for devs, no harder for users.
20:21:17  * travis-cijoined
20:21:17  <travis-ci>[travis-ci] joyent/node#123 (v0.6 - 73cf8e8 : Ryan Dahl): The build passed.
20:21:17  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/07c27e0...73cf8e8
20:21:17  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/434377
20:21:17  * travis-cipart
20:21:25  <ryah>the npm publish command needs to run that
20:21:36  <isaacs>ryah: ok, so, we put --bin-publish back in.
20:21:56  <ryah>and it needs to mark the uploaded file with the correct os, arch, build chain, etc
20:22:03  <isaacs>ryah: i think there is a good argumetn to take a look at how install scripts get run. removing the functionality entirely is not sustainable.
20:22:11  <isaacs>also, we need a way to detect whether or not the thing has a binary component.
20:22:16  <isaacs>ryah: the marking and uploading already works.
20:22:18  <ryah>why is it not sustainable?
20:22:45  <ryah>i dont understand what the problem is with these install scripts
20:22:47  * bradleymeckjoined
20:22:52  <isaacs>ryah: because there are programs using it for other things besides compilation.
20:23:01  <ryah>like what? why?
20:23:06  <isaacs>if we decide to remove it, then we'll have to provide some other way for them to solve whatever problems they encounter.
20:23:09  <isaacs>ryah: i don't remember.
20:23:17  <ryah>:/
20:23:26  <isaacs>ryah: and i'm on vacation, so i'm happy to argue on the internet with people, but debugging a couchapp is work ;)
20:23:31  <ryah>well it's a hole that leaks massive complexity
20:23:38  <ryah>so i would like to plug it if possible
20:23:38  <bradleymeck>are we talking about waf...?
20:23:38  <isaacs>yes
20:24:01  <isaacs>ryah: if npm could reliably detect whether or not a module has a binary component, then --bin-publish could be more smart.
20:24:48  <ryah>if it has a .gyp file it's binary :)
20:25:21  <isaacs>k
20:26:12  <CIA-111>node: Ryan Dahl master * r73cf8e8 / src/node_http_parser.cc :
20:26:12  <CIA-111>node: Add HandleScope to http-parser binding
20:26:12  <CIA-111>node: Fixes production crashes. We were not able to reproduce in the test suite. - http://git.io/OJjw7w
20:26:12  <CIA-111>node: Ryan Dahl master * rf7f8af8 / (128 files in 22 dirs):
20:26:12  <CIA-111>node: Merge remote branch 'origin/v0.6'
20:26:12  <CIA-111>node: Conflicts:
20:26:13  <CIA-111>node: Makefile
20:26:13  <CIA-111>node: lib/_debugger.js - http://git.io/E097OA
20:26:43  <isaacs>the other part of the problem, if we're going to remove the shitshow entirely: i'm on a linux machine, don't have a mac, or a windows box. i want to publish a binary moduel.
20:26:47  <isaacs>how do we address that?
20:27:08  <ryah>complain to the author
20:27:25  <ryah>this is not our problem
20:27:41  <ryah>if people dont' want to distribute windows binaries then people wont use that module
20:27:44  <isaacs>nono, i AM the author
20:27:51  <einaros>there will be a market for an on-demand cross-compile service
20:27:51  <isaacs>ok
20:27:54  <ryah>then no one is going to use your shit
20:28:17  <ryah>this problem will solve itself
20:28:19  <isaacs>so, we could say, if there's a bindist field, and not for your arch, then you're sol, unsupported.
20:28:22  <ryah>it out of our scope
20:28:29  <ryah>*it is
20:28:39  <isaacs>that's a fair answer to start with.
20:28:49  <ryah>bindist ?
20:29:03  <ryah>oh - bin-dist
20:29:14  <ryah>yes - SOL
20:29:26  <isaacs>$ npm config get bindist
20:29:26  <isaacs>0.6-ares1.7.5-DEV-evundefined-openssl0.9.8r-v83.6.6.14-darwin-x64-11.2.0
20:29:41  <ryah>ares ?
20:29:44  <isaacs>heh, it's trying to get the libev version.
20:30:06  <ryah>v0.6-darwin-x64
20:30:12  <ryah>let's start with that and see what problems we hit
20:30:52  <isaacs>what about publishing from unstable versions of node, where the v8 version isn't fixed?
20:31:24  <ryah>just do v0.5 and we can start getting aquanted with ABI problems
20:31:32  <isaacs>v0.5?
20:31:39  <ryah>or whatever v0.7
20:31:57  <isaacs>oh, actually, it won't change *within* a version of node, ever, right?
20:32:05  <isaacs>we always compile node against the bundled versions of everything?
20:32:06  <ryah>*shrug*
20:32:18  <ryah>we should just wrap the V8 API anyway and force it to never change
20:32:23  <isaacs>+1
20:32:24  <isaacs>\
20:32:26  <ryah>but let's wait until we hit that problem
20:32:58  <isaacs>i need someone to build a nicer npm website.
20:32:59  * piscisaureus__joined
20:33:01  <isaacs>like, as a product.
20:33:09  <isaacs>not just a one-off batch of html
20:33:15  <ryah>yeah
20:33:16  <isaacs>but like, iterate on it, own it.
20:33:44  <isaacs>i'd love to solve this bin dist problem, and i'ts closer to my most recent focus, but the npm website is actually a worse problem for newbies.
20:34:02  * sh1mmerquit (Quit: sh1mmer)
20:35:54  <ryah>agreed
20:36:42  * pieternjoined
20:38:00  * travis-cijoined
20:38:00  <travis-ci>[travis-ci] joyent/node#124 (master - f7f8af8 : Ryan Dahl): The build is still failing.
20:38:00  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/4eaf4ce...f7f8af8
20:38:00  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/434462
20:38:00  * travis-cipart
20:38:36  <CIA-111>node: Ryan Dahl v0.6 * r6029127 / (deps/v8/src/objects.h deps/v8/src/version.cc): Upgrade V8 to - http://git.io/ttT13g
20:40:20  <isaacs>ryah: ok, i'm going to capture this in an npm issue to work on in whatever futuristic world aways me in 2012
20:40:40  <ryah>isaacs: ok
20:40:47  <ryah>isaacs: or jut ignore until 2012
20:41:00  <isaacs>yeah, chances are if i don't write it up, i'll ignore it a lot longer than that ;)
20:41:01  <ryah>this just popped up because of the work on tools/gyp_addon
20:41:26  <isaacs>there ARE some very specific changes to be made to npm's bindist stuff that will be a significant improvement.
20:42:24  <CIA-111>node: Ryan Dahl master * r60a9e1e / (15 files in 7 dirs): Upgrade GYP to r1115 - http://git.io/oPlEzw
20:43:35  <ryah>gyp build looking very good
20:46:47  * travis-cijoined
20:46:47  <travis-ci>[travis-ci] joyent/node#125 (v0.6 - 6029127 : Ryan Dahl): The build passed.
20:46:47  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/73cf8e8...6029127
20:46:47  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/434508
20:46:47  * travis-cipart
20:53:53  * travis-cijoined
20:53:53  <travis-ci>[travis-ci] joyent/node#126 (master - 60a9e1e : Ryan Dahl): The build is still failing.
20:53:53  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/f7f8af8...60a9e1e
20:53:53  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/434527
20:53:53  * travis-cipart
20:59:46  * dshaw_quit (Quit: Leaving.)
21:04:35  * mmaleckiquit (Ping timeout: 268 seconds)
21:07:38  * indexzerojoined
21:12:05  * indexzeroquit (Client Quit)
21:18:07  <TooTallNate>ryah: so do you know where there's some docs on how to make gyp produce a config.h?
21:22:55  <CIA-111>node: Ryan Dahl isolates2 * r46582ad / test/simple/test-isolates.js : Change isolate test to demo EIO bug (+19 more commits...) - http://git.io/aBy4gg
21:23:34  * piscisaureus__quit (Ping timeout: 240 seconds)
21:24:04  * piscisaureus__joined
21:26:25  * logicalparadoxquit (Quit: Peace, I'm out.)
21:34:30  * travis-cijoined
21:34:31  <travis-ci>[travis-ci] joyent/node#127 (isolates2 - 46582ad : Ryan Dahl): The build is still failing.
21:34:31  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/7a4dd50...46582ad
21:34:31  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/434734
21:34:31  * travis-cipart
21:38:59  * sh1mmerjoined
21:40:09  * mjr_quit (Quit: mjr_)
21:40:23  * mjr_joined
21:45:11  * ljacksonquit (Read error: Operation timed out)
21:56:41  * isaacsquit (Quit: isaacs)
22:02:14  * ljacksonjoined
22:02:57  * isaacsjoined
22:05:59  <piscisaureus__>somehow I seem to be disconnected from parts of the world
22:06:19  <CIA-111>node: Ryan Dahl isolates2 * r65c9ecb / (15 files): Remove node_isolate.h from node.h - http://git.io/KWOAxg
22:06:19  <CIA-111>node: Ryan Dahl isolates2 * r76f7a9d / (3 files): Add shared-buffer isolate addon test - http://git.io/g9mzpA
22:06:24  <piscisaureus__>for example piscisaureus.no.de is ubearably slow
22:06:37  <piscisaureus__>and some random other sites
22:06:42  <piscisaureus__>how could that happen?
22:07:21  <ryah>TooTallNate: what are you trying to do?
22:07:37  <ryah>TooTallNate: you might just want to put your defines in the gyp file
22:07:51  <ryah>TooTallNate: to avoid excessive ifdefs
22:08:03  <TooTallNate>ok probably do-able. i just wasn't sure of the portability of that
22:08:15  <TooTallNate>autoconf's config.h defines some nice typedefs
22:08:55  <TooTallNate>so i was just wondering if gyp had an equivalent. from the mailing list, it looks like they just include pre-generated config.h files
22:09:28  <ryah>TooTallNate: yes, they try to avoid config steps
22:09:36  <ryah>since there are really not so many computers
22:09:45  <ryah>types of computers
22:09:51  <TooTallNate>ok good point
22:10:22  <TooTallNate>bnoordhuis: random question: what was that sizeof.c you gisted for?
22:14:04  <ryah>bnoordhuis: the shared addon is working amazingly
22:18:14  <bnoordhuis>TooTallNate: to find out what the sizes of various types are on your platform
22:18:23  * travis-cijoined
22:18:23  <travis-ci>[travis-ci] joyent/node#128 (isolates2 - 76f7a9d : Ryan Dahl): The build is still failing.
22:18:23  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/46582ad...76f7a9d
22:18:23  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/434921
22:18:23  * travis-cipart
22:18:34  <TooTallNate>:)
22:18:53  <bnoordhuis>ryah: yeah? it's doing what it should do and it doesn't crash?
22:19:22  <ryah>bnoordhuis: not much - http://git.io/g9mzpA
22:19:43  <ryah>but loads the dll on both threads
22:20:06  <CIA-111>node: Ryan Dahl master * r6ac22bf / test/addons/.gitignore : Add gitignore file for addon tests - http://git.io/RyUAsw
22:22:27  <ryah>im going to automate test/addons testing
22:22:36  <ryah>so it runs with "make test"
22:23:20  <bnoordhuis>sounds good
22:31:41  <isaacs>ryah: we need a way to give node a startup hook or somethingn.
22:31:46  <isaacs>ryah: for coverage utils.
22:31:49  * travis-cijoined
22:31:49  <travis-ci>[travis-ci] joyent/node#129 (master - 6ac22bf : Ryan Dahl): The build is still failing.
22:31:49  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/60a9e1e...6ac22bf
22:31:49  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/434944
22:31:49  * travis-cipart
22:33:12  * AndreasMadsenquit (Remote host closed the connection)
22:42:52  * bradleymeckquit (Ping timeout: 252 seconds)
23:03:36  * mikealjoined
23:05:26  * markcpart
23:09:15  <bnoordhuis>piscisaureus_: what have you been up to today?
23:49:04  <txdv>does uv_fs_sendfile work like sendfile - does the out fd have to be a socket?
23:51:19  <bnoordhuis>txdv: the answer is "it depends"
23:51:30  <bnoordhuis>but for portability reasons assume it's "yes"
23:52:57  * mikealquit (Quit: Leaving.)
23:57:24  <ryah>is there any os where it can be a non-socket?
23:57:28  <ryah>not linux, certainly