00:00:11  <bnoordhuis>the only problem i see with this proposal
00:00:24  <bnoordhuis>is that he who suggests it, is likely the one having to implement it...
00:00:24  <isaacs>bnoordhuis: oh, would that also help us get around the symbol pollution where multiple versions of openssl break the universe?
00:00:37  <bnoordhuis>isaacs: no, there's no solving that
00:00:55  <bnoordhuis>well... maybe
00:01:08  <indutny>we can namespace openssl in node :D
00:01:12  <indutny>hahahaha
00:02:16  <bnoordhuis>i guess if we hid node's openssl symbols
00:02:25  <bnoordhuis>and hacked uv_dlopen()
00:02:29  <bnoordhuis>then it could work
00:03:00  <isaacs>ok, things seem ok with this. same breakages as on 0.6.19
00:03:05  <isaacs>i'm publishing it
00:03:50  <bnoordhuis>still running tests: [02:03|% 92|+ 356|- 1]
00:03:52  <indutny>so, about async session storage
00:04:00  <indutny>has anyone reviewed code/tried runningi it?
00:04:20  <bnoordhuis>indutny: no and no
00:04:21  <indutny>redis on windows is hard, so I created an only-node version of example https://gist.github.com/3082799
00:04:22  <isaacs>indutny: haven't gotten to it yet, i'm sorry.
00:04:30  <indutny>np
00:04:32  <indutny>just saying
00:04:37  <isaacs>indutny: i DID get as far as redis working on windows, though :)
00:04:42  <indutny>hahaha
00:04:44  <isaacs>but a pure-node example is good
00:04:45  <indutny>really nice
00:05:06  * pieternjoined
00:08:14  <isaacs>bnoordhuis: tests done yet?
00:08:19  <isaacs>bnoordhuis: how many zombies you get?
00:08:33  <bnoordhuis>isaacs: zero!
00:08:37  <isaacs>whoa!!!
00:08:41  <bnoordhuis>and only two tests failed
00:08:43  <isaacs>kewl.
00:08:46  <isaacs>best 0.6 ever!
00:08:50  <bnoordhuis>:)
00:08:50  <isaacs>publishing
00:09:12  <CIA-108>node: isaacs v0.8 * rbf561c5 / doc/blog/release/v0.6.20.md : Blog post for v0.6.20 - http://git.io/BRu2Iw
00:09:35  <mmalecki>bradleymeck: oh, hey, you appear to be the only sober devops, mind deploying it when you find some time?
00:09:59  <bradleymeck>mmalecki: deploying which what?
00:10:05  <mmalecki>bradleymeck: 0.6.20
00:10:30  <mmalecki>bradleymeck: ^^^
00:10:48  <bradleymeck>i can in a bit
00:10:58  <mmalecki>cool
00:11:00  <bradleymeck>but move this to our devops channel
00:13:18  <AvianFlu>mmalecki, you insult my tolerance for liquor
00:13:20  <TooTallNate>damn, that's what i get for not paying attention
00:13:25  <TooTallNate>isaacs: you forgot to update node-gyp :p
00:13:49  <mmalecki>AvianFlu: I won't let you to deploy if you had any liquor, lol
00:13:59  <isaacs>TooTallNate: whoops.
00:14:00  <mmalecki>only I can do that.
00:14:01  <isaacs>that was kind of the point.
00:14:03  <isaacs>oh well :)
00:14:09  <isaacs>new one tomorrow!
00:14:14  <isaacs>release every day!
00:14:18  * mmaleckiis MR HOTFIX
00:14:27  <TooTallNate>they're just numbers afterall :p
00:15:06  <isaacs>TooTallNate: whatever. yet ANOTEHR reason to update to 0.8
00:15:41  <TooTallNate>plus if anyone really needs it, they can $ npm explore -g npm "npm install node-gyp"
00:16:56  <isaacs>TooTallNate: whatever. yet ANOTEHR reason to update to 0.8
00:16:59  <isaacs>~,
00:17:07  <isaacs>haha
00:17:17  <isaacs>that was me disconnecting. i can never remember if it's ~. or ~,
00:22:32  * xaqquit (Remote host closed the connection)
00:23:47  * EhevuTovjoined
00:28:19  * ericktquit (Quit: erickt)
00:30:07  * mmaleckiquit (Quit: Reconnecting)
00:30:24  * mmaleckijoined
00:32:00  * theColequit (Quit: theCole)
00:41:12  * chobi_echanged nick to chobi_e_
00:49:35  * EhevuTovquit (Quit: This computer has gone to sleep)
00:51:10  * dapquit (Quit: Leaving.)
00:53:22  * mmaleckiquit (Ping timeout: 252 seconds)
01:00:00  * mikealquit (Quit: Leaving.)
01:05:57  * toothrotquit (Ping timeout: 240 seconds)
01:14:26  <bnoordhuis>isaacs: apparently we need to sign the binary on mountain lion or you get very nasty 'not allowed to install' error messages now
01:15:11  <bnoordhuis>http://penr.ee/Hztf
01:17:15  <ryah>isaacs: you should try to get node on the app store
01:17:25  <ryah>i wonder what's involved with atht..
01:17:32  <ryah>oh, i have ops
01:17:36  <ryah>strange
01:17:49  <bnoordhuis>with great power, ryah...
01:18:02  <ryah>bnoordhuis: :)
01:18:42  <ryah>is #libuv registered with freenode now?
01:19:15  <bnoordhuis>yes
01:21:21  * bradleymeck_joined
01:23:28  * bradleymeckquit (Ping timeout: 245 seconds)
01:23:28  * bradleymeck_changed nick to bradleymeck
01:24:28  * toothrjoined
01:37:30  * nathansoboquit (Read error: Connection reset by peer)
01:37:51  * nathansobojoined
01:41:22  * pieternquit (Quit: pietern)
01:41:31  * isaacs_mobilejoined
01:43:23  * abraxasjoined
01:52:03  * isaacs_mobilequit (Remote host closed the connection)
01:54:04  <CIA-108>node: Ben Noordhuis v0.8 * rb40f813 / (common.gypi configure): build: fix spurious mksnapshot crashes for good - http://git.io/5GAg3Q
02:00:13  * mmaleckijoined
02:01:28  * ericktjoined
02:04:48  * mmaleckiquit (Ping timeout: 250 seconds)
02:05:48  * TooTallNatequit (Quit: Computer has gone to sleep.)
02:11:19  * c4milojoined
02:25:25  * EhevuTovjoined
02:26:05  * toothrquit (Changing host)
02:26:05  * toothrjoined
02:26:08  * toothrchanged nick to toothrot
02:33:02  * nathansoboquit (Quit: nathansobo)
02:47:41  * xaqjoined
02:53:16  * mjr_quit (Quit: mjr_)
02:59:43  * bnoordhuisquit (Ping timeout: 245 seconds)
02:59:58  * brsonquit (Quit: leaving)
03:06:33  * arlolrajoined
03:10:02  * mjr_joined
03:10:28  * mjr_quit (Client Quit)
03:10:44  * mjr_joined
03:11:33  <tjfontaine>hmm node in appstore, that'd be interesting, I wonder if node passes the sandbox requirements :)
03:13:43  <tjfontaine>and even if nodejs is signed I wonder about binary addons
03:15:50  <tjfontaine>don't take it for gospel, but I think if you sign nodejs and then I want to build my own binary addon then it won't load it because it's unsigned
03:25:45  <mjr_>That would only make sense
03:26:15  <mjr_>Seems like anybody that wants to work with node on OSX might need to build their own node. The awkward cost of progress.
03:28:37  * brsonjoined
03:28:49  <ik>who would put that in the app store
03:29:55  <mjr_>Some people do like to download binaries and not have Xcode installed.
03:30:06  <mjr_>Although honestly, those people can't install binary add ons anyway
03:30:22  <ik>still, app store?
03:30:38  <mjr_>I'll just engage myself in a stirring debate about the color of my own shed.
03:30:59  * arlolraquit (Quit: Linkinus - http://linkinus.com)
03:39:23  * indexzerojoined
03:42:19  * xaqquit (Remote host closed the connection)
03:47:34  * c4miloquit (Remote host closed the connection)
03:52:00  * EhevuTovquit (Quit: Leaving)
04:01:21  <ik>DAYCHANGE!
04:34:17  * nathansobojoined
04:38:47  * EhevuTovjoined
04:40:28  * philips_quit (Excess Flood)
04:42:57  * philips_joined
04:50:25  * ericktquit (Quit: erickt)
05:41:33  * nathansobo_joined
05:41:33  * nathansoboquit (Read error: Connection reset by peer)
05:41:33  * nathansobo_changed nick to nathansobo
05:45:11  * indexzeroquit (Quit: indexzero)
05:54:24  * paddybyersjoined
06:08:29  * beachdogquit (Remote host closed the connection)
07:06:35  * stephankquit (Quit: *Poof!*)
07:14:10  * mmaleckijoined
07:14:14  * mmaleckiquit (Client Quit)
07:28:19  * paddybyersquit (Quit: paddybyers)
07:38:37  * mikealjoined
07:47:33  * loladirojoined
07:51:22  * brsonquit (Ping timeout: 252 seconds)
07:53:20  * rendarjoined
08:07:08  * dshaw_quit (Quit: Leaving.)
08:23:19  * mikealquit (Quit: Leaving.)
08:27:34  * mikealjoined
08:38:02  * loladiroquit (Ping timeout: 265 seconds)
08:45:32  * abraxasquit (Read error: Connection reset by peer)
08:45:33  * abraxasjoined
08:45:33  * EhevuTovquit (Quit: Leaving)
08:47:56  * hzjoined
08:50:24  * paddybyersjoined
08:53:08  * hzquit (Disconnected by services)
08:53:11  * hzjoined
10:47:55  * abraxasquit (Remote host closed the connection)
11:25:50  * loladirojoined
11:29:15  * AndreasMadsenjoined
11:54:51  * loladiroquit (Quit: loladiro)
11:56:32  * paddybyersquit (Quit: paddybyers)
11:58:28  * bnoordhuisjoined
12:01:26  * hzquit (Read error: Connection reset by peer)
12:01:50  * hzjoined
12:05:10  * AndreasMadsenquit (Remote host closed the connection)
12:18:40  * c4milojoined
12:24:49  * wankdankerquit (Ping timeout: 260 seconds)
12:25:24  * bradleymeckquit (Quit: bradleymeck)
12:26:12  * hzquit (Read error: Connection reset by peer)
12:40:21  * chobi_e_changed nick to chobi_e
12:41:06  <indutny>bnoordhuis: hey man
12:41:13  <indutny>bnoordhuis: it show up in ps aux for me
12:41:37  <bnoordhuis>indutny: okay, then it's probably the process explorer that doesn't work
12:41:48  <CIA-108>node: Philipp Hagemeister v0.8 * r1d99441 / tools/doc/generate.js : tools: fix shebang in tools/doc/generate.js - http://git.io/2tahUA
12:41:49  <indutny>bnoordhuis: yes, process explorer isn't using it
12:42:00  <indutny>bnoordhuis: https://gist.github.com/5b969331e759f17841a4
12:42:06  <indutny>bnoordhuis: that's a comment from nginx's source
12:42:18  <indutny>apparently it even works on sunos
12:43:34  * paddybyersjoined
12:43:48  <indutny>bnoordhuis: btw, have you looked at their implementation for making it work in uv?
12:44:07  <indutny>bnoordhuis: because it's quite similar to nginx
12:44:35  <bnoordhuis>indutny: "their implementation" <- who is they?
12:44:41  <indutny>bnoordhuis: nginx
12:44:46  <indutny>bnoordhuis: Igor Sysoev, I suppose
12:45:11  <indutny>bnoordhuis: I mean implementation of setproctitle in uv is very similar to nginx's one
12:45:13  <bnoordhuis>indutny: ah, i guess you meant 'for making it work in nginx' then?
12:45:16  <indutny>sorry, engrish today
12:45:20  <bnoordhuis>hah
12:45:36  <bnoordhuis>well, if it works, i'm okay with it
12:46:17  <indutny>haha
12:46:19  <indutny>k
12:46:31  <indutny>I suppose we can even move this implementation to unix/core.c
12:46:42  <indutny>as it should work fine everywhere
12:46:46  <indutny>sort of hack, but works
12:50:40  <bnoordhuis>sounds good
12:51:25  * piscisaureus_joined
12:53:12  * AndreasMadsenjoined
13:01:11  * mmaleckijoined
13:18:52  * bradleymeckjoined
13:24:39  <bnoordhuis>bcantrill puts the smack down: http://news.ycombinator.com/item?id=4228077
13:24:53  <bnoordhuis>pretty much sums up my perception of alan kay
13:25:57  * mmaleckiquit (Ping timeout: 240 seconds)
13:29:58  * AndreasMadsenquit (Remote host closed the connection)
13:30:49  * piscisaureus_quit (Read error: Connection reset by peer)
13:31:25  * piscisaureus_joined
13:33:04  * piscisaureus_quit (Read error: No route to host)
13:33:10  * piscisaureus_joined
13:34:31  * piscisaureus_quit (Read error: Connection reset by peer)
13:35:02  * bradleymeckquit (Ping timeout: 250 seconds)
13:35:44  * AndreasMadsenjoined
13:38:18  * ericktjoined
14:04:58  * piscisaureus_joined
14:05:38  * ericktquit (Quit: erickt)
14:06:20  <piscisaureus_>bnoordhuis: http://en.wikipedia.org/wiki/Ian_Taylor_%28footballer%29 ?
14:06:24  <piscisaureus_>bnoordhuis: whi?
14:10:50  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
14:12:40  * piscisaureus_joined
14:13:09  <bnoordhuis>piscisaureus_: he decided he wanted a real career and became a programmer instead
14:13:29  <bnoordhuis>the chick appeal helped too, of course
14:20:27  * piscisaureus_quit (Ping timeout: 246 seconds)
14:21:40  * piscisaureus_joined
14:22:40  <piscisaureus_>bnoordhuis: ok, so who is it?
14:22:48  <piscisaureus_>bnoordhuis: And I don't care much about the day
14:22:53  <bnoordhuis>piscisaureus_: a guy that sometimes submits patches
14:23:11  <bnoordhuis>piscisaureus_: and he lives in 020 so i thought it'd be nice to invite him over
14:23:34  <piscisaureus_>ok, cool
14:23:46  <piscisaureus_>I am going to portland again next week
14:23:49  <piscisaureus_>for oscon
14:24:16  <bnoordhuis>looking forward to it?
14:24:19  <bnoordhuis>what is oscon about anyway?
14:24:34  <piscisaureus_>not really, but it was either you or me
14:24:41  <piscisaureus_>it's about open source they tell me
14:24:51  <piscisaureus_>but if you want to go, you're very welcome
14:24:53  <piscisaureus_>:-)
14:25:02  <piscisaureus_>I don't mind going but it's another flight
14:25:12  <tjfontaine>that's the oreilly one, it's kinda popular
14:25:38  <bnoordhuis>i think a friend of mine speaks there every year
14:25:43  <bnoordhuis>but he's a SaaS guy
14:26:17  <bnoordhuis>so i always assumed it's not directly relevant to my interests
14:26:53  <bnoordhuis>though the beer apparently flows in copious amounts
14:27:00  <piscisaureus_>I think I will take an erlang crash course and a go crash course
14:27:32  <piscisaureus_>ok, have to reboot again
14:27:48  * mmaleckijoined
14:27:52  <piscisaureus_>the f*ing mac refuses to hot plug my external hard drive
14:28:06  <bnoordhuis>It Just Works
14:28:07  <tjfontaine>esata?
14:28:07  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
14:28:28  <bnoordhuis>tjfontaine: if it's the hdd i think it is it's a simple usb 2.0 external hd
14:29:05  <tjfontaine>that's weird, I know esata and hotplug on osx is utter failure, I've never had a problem with firewire/usb though
14:29:23  * wankdankerjoined
14:29:53  <bnoordhuis>tjfontaine: there's a fair chance bert is running windows 7 on his macbook
14:30:39  <tjfontaine>bnoordhuis: right, so when he says mac he may actually mean the hardware and not the software? and ya those bootcamp drivers are notoriously cracked out
14:30:40  * piscisaureus_joined
14:31:24  <bnoordhuis>tjfontaine: quite likely
14:32:32  * piscisaureus_quit (Client Quit)
14:33:53  <mmalecki>well, this is what you get for running windows, I suppose
14:34:12  <bnoordhuis>not to mention the scorn
14:34:30  * piscisaureus_joined
14:34:56  <piscisaureus_>bnoordhuis: remember that tomorrow at 6 we have this node call so you might want to make the appointment at 7 or so
14:34:58  <mmalecki>bnoordhuis: oh, well, windows users get used to it
14:34:59  <bnoordhuis>bertje can handle it though, it's nothing compared to high school
14:35:13  <bnoordhuis>piscisaureus_: it's next week
14:35:20  <piscisaureus_>oh haha
14:35:24  <piscisaureus_>in that case I am not there
14:35:57  <piscisaureus_>that was ummmm, obvious #not
14:36:06  <bnoordhuis>piscisaureus_: maybe mail the guy and propose the week after that
14:36:39  <bnoordhuis>piscisaureus_: btw, it says so in the email :)
14:37:13  <piscisaureus_>bnoordhuis: not in the excerpt you sent me
14:37:13  <bnoordhuis>piscisaureus_: i'm not coming to 020 this week, the NS is doing maintenance on the railway track between 0182 and 020
14:37:37  <piscisaureus_>ah
14:37:39  <piscisaureus_>ok
14:37:53  <bnoordhuis>piscisaureus_: > I can do Monday, Thursday or Friday next week, whichever works best for you. :)
14:38:32  * piscisaureus_quit (Read error: Connection reset by peer)
14:39:03  <mmalecki>lol at calls
14:39:37  <mmalecki>can't you guys be like "hey, missing the call, I'll be drunk by then"?
14:40:07  <bnoordhuis>mmalecki: speaking for myself, that's more or less what happens every other call
14:40:10  <bnoordhuis>working on it though
14:40:23  <bnoordhuis>besides, it's only once a week
14:41:15  <mmalecki>bnoordhuis: but you are drunk every day of the week, no?
14:42:00  <mmalecki>DAMN WHY IS MY FREEZER SO SLOW
14:42:53  <bnoordhuis>mmalecki: no. i've build up tolerance
14:43:04  <bnoordhuis>took me the better part of a decade too
14:43:19  <mmalecki>lol
14:43:20  <tjfontaine>loudbot now with FOSS licenses
14:43:57  <bnoordhuis>*built, damnit
14:44:02  <mmalecki>today I became a proud owner of 5 bottles of vodka btw
14:44:16  <mmalecki>bnoordhuis: you should come here
14:44:24  <mmalecki>I'll teach you how to drink, my son.
14:44:27  <bnoordhuis>haha
14:44:32  <bnoordhuis>famous last words!
14:44:40  <mmalecki>lol
14:45:48  <bnoordhuis>mmalecki: you know i used to live in the czech republic, right? the beer capital of the world by a 100% lead on the #2?
14:46:07  <mmalecki>bnoordhuis: beer? meh
14:46:12  * piscisaureus_joined
14:46:23  <bnoordhuis>mmalecki: it'll have to beer - i'm not really into strong liquor
14:46:27  <bnoordhuis>*to be
14:46:27  <mmalecki>unless it's for breakfest
14:46:50  <piscisaureus_>tjfontaine: infact the problem was firewire. usb and esata always worked fine for me
14:47:06  <piscisaureus_>(although this moronic macbook has no esata)
14:50:36  <mmalecki>bnoordhuis: btw, did I show you how we prepare ice for drinks here?
14:50:56  <bnoordhuis>mmalecki: no, but i've a feeling you're going to
14:51:23  <mmalecki>bnoordhuis: https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash4/382447_105534479590768_1072672192_n.jpg
14:51:28  <bnoordhuis>btw, anyone has suggestions on a desktop pc that offers the most cpu cycles per dollar / euro?
14:51:43  <bnoordhuis>mmalecki: heh, very hardcore :)
14:52:17  <bnoordhuis>mmalecki: i suggest you use an icepick though, less chance of ricocheting
14:52:30  <mmalecki>bnoordhuis: that'd be boring
14:56:29  <bnoordhuis>mmalecki: the good thing about boring is that it lasts. that's important if you want to grow up to be 200
14:56:49  <mmalecki>bnoordhuis: of course I didn't use the gun, it'd be irresponsible.
14:57:03  <mmalecki>I'm a responsible adult.
14:57:26  <bnoordhuis>you're 21 already?
14:57:32  <bnoordhuis>where did the time go?
14:57:41  <mmalecki>adult === 18 in Poland :)
15:02:13  <tjfontaine>piscisaureus_: but your problem is on the windows side?
15:02:29  <piscisaureus_>yes
15:02:31  <mmalecki>oh man, I can't reiterate on how better my life got since I figured out that I can pay someone to do my laundry
15:02:32  <piscisaureus_>the driver is shitty
15:02:38  <tjfontaine>quite, indeed
15:02:40  <piscisaureus_>the apple supplied driver that is
15:02:47  <tjfontaine>right
15:03:05  <piscisaureus_>of course this problem is known
15:03:38  <piscisaureus_>I found hundreds of mentions of this problem on the web
15:03:51  <piscisaureus_>but as apple rolls, there will never be a fix or an update to bootcamp
15:04:12  <tjfontaine>quite honestly I was surprised bootcamp ever existed
15:04:20  <piscisaureus_>because they are too busy with emm, putting angry birds on os x mountain flee
15:04:30  <piscisaureus_>well, it doesn't do much
15:04:32  <piscisaureus_>it's just drivers
15:04:57  <tjfontaine>ya but, it's not like they're bending over backward to supply drivers for android or windows rt :P
15:04:59  <bnoordhuis>drivers are the hard part, anyone can write a scheduler
15:09:03  <mmalecki>bnoordhuis: well, everyone can write an OS
15:09:21  <mmalecki>which doesn't mean that everyone should, which Microsoft tends to forget about
15:10:56  <bnoordhuis>intel i7 3770 - 77 watt/hour :-/
15:11:06  <bnoordhuis>i remember when my entire desktop uses less than that
15:11:08  <bnoordhuis>*used
15:11:17  <mmalecki>bnoordhuis: I can give you my spec later
15:11:26  <mmalecki>it's really powerful and turned out to be really cheap
15:11:40  <bnoordhuis>mmalecki: what cpu do you have?
15:11:45  <mmalecki>and if you don't play any games, you can probably cut the cost down in a half :)
15:11:49  <mmalecki>some intel i7
15:11:53  <bnoordhuis>yeah, i don't care about games
15:12:07  <bnoordhuis>i just need something with lots of cores so i can run make -j 16 comfortably
15:12:17  <mmalecki>ok, no, mine has 8 threads only
15:12:42  <mmalecki>not sure if you can find anything with 16 cores in a reasonable price
15:12:44  <bnoordhuis>yeah, most consumer pcs i can find have the same - 4 cores, 8 threads
15:13:11  <mmalecki>you might need a server motherboard or something
15:13:19  <mmalecki>give it 2 CPUs
15:13:40  <bnoordhuis>and see my utility bill double or triple :)
15:13:44  <bnoordhuis>okay, i'm off to pick up my daughter, biab
15:14:52  * piscisaureus_quit (Read error: Connection reset by peer)
15:15:30  * piscisaureus_joined
15:21:30  * pieternjoined
15:47:27  * philips_quit (Excess Flood)
15:48:14  <indutny>bnoordhuis: does "environ" exists on all unixes?
15:48:51  * stephankjoined
15:49:33  * philips_joined
15:55:34  * ericktjoined
15:59:04  <indutny>bnoordhuis: anyway, https://github.com/joyent/libuv/pull/492
15:59:11  <indutny>isaacs: still I don't have access to libuv
15:59:12  <indutny>:(
16:01:31  * dapjoined
16:05:12  * xaqjoined
16:05:35  <isaacs>ryah: is it even allowed to have apps in teh app store that don't have UI in them?
16:05:43  <isaacs>indutny: piscisaureus_ is the king of that domain.
16:05:53  <indutny>piscisaureus_: really?
16:06:51  <isaacs>indutny: if he says "give so-and-so libuv commit rights" then that person gets them. i have push access only by virtue of being a joyent admin, but otherwise, i basically don't.
16:07:00  <indutny>aaah
16:07:07  <indutny>you mean this
16:07:07  <nathansobo>are you guys aware of this project? https://github.com/rogerwang/node-webkit
16:07:08  <indutny>ok
16:07:13  <indutny>btw, nice avatar on github ;)
16:07:39  <isaacs>indutny: thanks :)
16:08:47  <isaacs>nathansobo: that's rad
16:08:56  <nathansobo>yeah i talked to the guy last night
16:09:00  <nathansobo>trying to build it now
16:09:03  <nathansobo>it's a loooong download
16:09:32  <nathansobo>anyway they've made some small changes to libuv and node to support it… mainly related to getting it compiling inside the chromium build
16:10:33  <nathansobo>and they actually wrote a chromium event loop subclass based on libuv
16:10:47  <nathansobo>so that node can run in process without blocking the renderer
16:11:05  <isaacs>nice
16:11:40  <tjfontaine>isaacs: I'm not sure about any gui requirement, but I think the real gotcha is the fact that if you do sign the package that will probably negate people installing binary addon packages (unless they're also signed)
16:12:01  <isaacs>right
16:12:17  <isaacs>tjfontaine: well, binary addons will have to be compiled locally still
16:12:31  <isaacs>jeez, ther'es a lot of bureaucracy to get somethign into the app store
16:13:35  * ericktquit (Quit: erickt)
16:15:15  <isaacs>maybe i should just look into how to do signing manually for the build
16:15:41  <tjfontaine>isaacs: if you sign it, and someone builds a binary addon locally they won't be able to use it
16:15:56  <ik>link?
16:16:10  <tjfontaine>moment, lemme find the developer.apple.com page again
16:19:32  <tjfontaine>I believe this covers people who have selected the Mountain Lion option of "App Store and Identified Developers" -- "You may also want to sign your plug-ins and libraries. Although this is not currently required, it will be in the future, and there is no disadvantage to having signatures on these components."
16:19:38  <tjfontaine>source https://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html#//apple_ref/doc/uid/TP40005929-CH4-SW2
16:24:05  * nathansoboquit (Quit: nathansobo)
16:24:35  <indutny>oh my
16:24:48  <indutny>this means that we'll need to create our own app store
16:24:50  <indutny>haha
16:24:58  <indutny>well, actually just add reviewal process to npm
16:25:07  <indutny>which will kill every benefit of it
16:25:07  <tjfontaine>I am not saying that mountain lion will enforce this on loaded libraries, jsut that it's clearly the future
16:26:08  <isaacs>tjfontaine: it'll break even for binaries that you yourself build on your own machine?
16:26:20  <isaacs>tjfontaine: like, if someone ticks that box, downloads the node source code, then runs `make install`, it won't work?
16:26:24  <isaacs>that seems pretty stupid.
16:26:29  <isaacs>even for apple.
16:26:34  <tjfontaine>isaacs: no no, node full stack on your own is fine
16:26:35  <piscisaureus_>yeah
16:26:40  <piscisaureus_>they will never do that
16:26:42  <tjfontaine>isaacs: hybrid stack not ok
16:26:44  <indutny>piscisaureus_: ping pong
16:26:57  <isaacs>tjfontaine: so, if you install a signed node, then build the addon yourself, it'll break?
16:27:00  <indutny>piscisaureus_: sir, shall I get the rights to push to the libuv's court
16:27:00  <isaacs>that's equally retarded.
16:27:17  <indutny>isaacs: I wonder how will they check this
16:27:22  <tjfontaine>isaacs: in the future yes, that's what they're saying, I don't know if ML is that future, but more than likely in ML+1
16:28:03  * piscisaureus_quit (Read error: Connection reset by peer)
16:30:23  <isaacs>tjfontaine: i don't think that's what they're saying.
16:30:24  <isaacs>in fact:
16:30:25  <isaacs>To fully appreciate the uses of code signing, you should be aware of some things that signing cannot do:
16:30:28  <isaacs>It can’t guarantee that a piece of code is free of security vulnerabilities.
16:30:31  <isaacs>It can’t guarantee that an app will not load unsafe or altered code—such as untrusted plug-ins—during execution.
16:30:45  <isaacs>a signature on node doesn't guarantee that node can't load unsafe or altered code, or untrusted plugins
16:30:53  <isaacs>ie, an unsigned .node file should still be able to be loaded.
16:31:10  * piscisaureus_joined
16:31:18  <tjfontaine>that is how gatekeeper works right now, I do believe though they're planning on changing that
16:32:22  <isaacs>tjfontaine: if code you compile on your own machine is not considered safe to run, then apple will offend a lot of developers.
16:32:46  <isaacs>maybe that's the way they wanna go, i dunno. "Fuck open source, buy apps"
16:32:59  <isaacs>but if that's the case, then the answer will be for devs to turn off that option to use compiled addons
16:33:16  * nathansobojoined
16:33:31  <tjfontaine>yes, I expect that will be the solution as well, and I would anticipate that most devs would already have that option off
16:33:34  <isaacs>signing the node binaries seems like a good idea. and having it in the app store would be nice.
16:33:40  <tjfontaine>it was the first thing I did as well
16:33:56  <isaacs>i gotta suspect that there'll be some implicit trust for things that you compile yourself
16:34:39  <tjfontaine>because no one ever falls for the copy paste of `rm -rf /`
16:37:03  <isaacs>tjfontaine: well, like the site says, signing doesn't verify that a piece of code is secure or good.
16:37:09  <isaacs>just that it came from where you think it came from
16:37:18  <isaacs>if i compile it, i think it came from me, and it did
16:37:52  <isaacs>i mean, what if i wrote the addon myself, and THEN compiled it?
16:38:11  <isaacs>is Apple going to make me sign it, or pay $99/year for an account, just to program my own computer?
16:38:22  <isaacs>that will drive developers away in droves.
16:38:33  <isaacs>they're not that stupid.
16:40:27  * mmaleckiquit (Quit: leaving)
16:42:23  <indutny>good point
16:42:29  <indutny>but they may add a flag
16:42:43  <indutny>as you said
16:44:49  * dapquit (Quit: Leaving.)
16:45:33  * EhevuTovjoined
16:50:11  * ericktjoined
16:54:28  * saghulquit (Remote host closed the connection)
16:57:29  <piscisaureus_>who was doing the c# binding to libuv?
17:13:04  * paddybyersquit (Quit: paddybyers)
17:16:05  <CIA-108>node: isaacs v0.6 * r952e513 / (ChangeLog src/node_version.h): 2012.07.10 Version 0.6.20 (maintenance) - http://git.io/75L3Nw
17:16:06  <CIA-108>node: isaacs v0.6 * rb6e916d / src/node_version.h : Now working on 0.6.21 - http://git.io/AZSOnQ
17:20:57  * TooTallNatejoined
17:34:46  * nathansoboquit (Quit: nathansobo)
17:41:04  * nathansobojoined
17:47:54  * dapjoined
17:48:05  * russfrankjoined
17:48:49  <tjfontaine>isaacs: right, by all means sign away now it'll stop the immediate concern, but such policies aren't unheard of for apple, whether someone is a developer or not
18:05:36  * mikealquit (Quit: Leaving.)
18:05:55  * `3rdEdenjoined
18:07:40  * EhevuTovquit (Quit: Leaving)
18:07:54  * johnm1234joined
18:11:17  * arlolrajoined
18:11:20  * brsonjoined
18:22:37  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
18:24:46  * johnm1234quit (Quit: Leaving.)
18:28:46  * dshaw_joined
18:30:50  * EhevuTovjoined
18:34:58  * mikealjoined
18:37:35  * hzjoined
18:41:41  <indutny>oh, agent logic is really borked
18:47:16  * loladirojoined
18:51:53  <isaacs>indutny: tell me about it
18:53:08  <indutny>we're using options that was passed to http.request
18:53:24  <indutny>err
18:53:30  <indutny>correction
18:53:41  <indutny>we're trying to use options that was passed to http.request in tls.connect
18:53:45  <indutny>but it receives another options object
18:53:47  <indutny>:)
18:53:54  <indutny>which is agent's options
18:58:21  <indutny>isaacs: ^
19:07:56  * hzquit (Ping timeout: 272 seconds)
19:13:43  * dshaw_quit (Remote host closed the connection)
19:15:57  * paddybyersjoined
19:17:14  <isaacs>ok
19:21:34  * loladiroquit (Read error: Connection reset by peer)
19:21:47  * loladirojoined
19:30:35  * mmaleckijoined
19:31:53  * loladiroquit (Remote host closed the connection)
19:32:18  * loladirojoined
19:34:36  * mmaleckiquit (Client Quit)
19:36:34  * loladiroquit (Client Quit)
19:49:18  * loladirojoined
19:49:43  * loladiropart
19:51:24  <indutny>whoa, almost working
19:55:39  <indutny>isaacs: yt?
19:55:51  <isaacs>hi
19:56:14  <isaacs>indutny: about to do a call for JSConf Live
19:56:43  <indutny>oh
19:56:52  <indutny>not a best time for asking you to review code, right?
19:57:09  <indutny>especially in case if github is down
19:57:10  <indutny>:D
19:58:54  <indutny>isaacs: anywaym just in case https://github.com/joyent/node/pull/3689
19:58:59  <indutny>bnoordhuis: https://github.com/joyent/node/pull/3689
19:59:39  * loladirojoined
19:59:58  * loladiropart
20:01:26  <indutny>oh, there's a bug
20:01:41  <indutny>*.hostname.com => a.b.hostname.com will be accepted
20:01:42  <indutny>not good
20:05:20  <indutny>oh no
20:05:21  <indutny>it won't
20:05:27  <indutny>ok the patch seems to be good enough for me
20:05:44  * loladiro_joined
20:09:57  * loladiro_quit (Ping timeout: 240 seconds)
20:12:45  * loladirojoined
20:29:05  * paddybyersquit (Quit: paddybyers)
20:32:56  * mjr_quit (Quit: mjr_)
20:34:25  * piscisaureus_joined
20:37:49  * piscisaureus_quit (Read error: No route to host)
20:38:05  * piscisaureus_joined
20:41:36  * `3rdEdenquit (Quit: Linkinus - http://linkinus.com)
20:44:29  <indutny>piscisaureus_: hey man
20:44:42  <indutny>piscisaureus_: please take a look at this https://github.com/joyent/node/pull/3689
20:45:43  * nathansoboquit (Quit: nathansobo)
20:46:29  * paddybyersjoined
20:47:40  * arlolraquit (Quit: Linkinus - http://linkinus.com)
20:48:04  * AndreasMadsenquit (Remote host closed the connection)
20:52:39  * paddybyersquit (Read error: Connection reset by peer)
20:53:02  * paddybyersjoined
20:59:27  * c4miloquit (Remote host closed the connection)
21:02:37  * loladiro_joined
21:02:38  * loladiroquit (Ping timeout: 245 seconds)
21:02:38  * loladiro_changed nick to loladiro
21:11:53  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
21:14:49  * davisp-changed nick to davisp
21:14:49  * davispquit (Changing host)
21:14:49  * davispjoined
21:16:58  * dapquit (Quit: Leaving.)
21:17:41  * dapjoined
21:19:36  <indutny>bnoordhuis: hi
21:19:44  <indutny>so that stuff seems to be v8 bug
21:19:50  <indutny>but I'm still digging into
21:20:02  <bnoordhuis>indutny: what stuff?
21:20:08  * philips_quit (Excess Flood)
21:20:22  * loladiroquit (Read error: Connection reset by peer)
21:20:28  <indutny>bnoordhuis: statSync
21:20:42  <bnoordhuis>oh, that
21:20:55  <bnoordhuis>if you already know what it is, steal the issue from me
21:21:04  * philips_joined
21:21:07  <indutny>haha
21:21:10  <indutny>noway
21:21:16  <indutny>I'm still trying to figure out
21:21:23  <indutny>because stack trace seems to be corrupted a little
21:21:41  <indutny>anyway error comes from v8
21:21:45  <indutny>but may be we corrupted it stack
21:21:51  <indutny>so... I'm not sure
21:21:58  <bnoordhuis>it's probably a corrupted stack
21:22:06  <indutny>going to run it through valgrind
21:22:09  <bnoordhuis>at least, that's what some quick poking in gdb seemed to suggest
21:22:17  <indutny>well, yes
21:22:22  <indutny>but what's the reason of that
21:22:31  <bnoordhuis>cosmic rays
21:22:33  <bnoordhuis>maybe gremlins
21:22:38  <indutny>higgs boson
21:22:43  <indutny>definitely
21:22:56  <bnoordhuis>yeah, sneaky higgs boson
21:23:10  <bnoordhuis>only discovered in the last few days and already causing all kinds of mayhem
21:23:16  <indutny>indeed
21:23:34  <bnoordhuis>in all seriousness though, it wouldn't surprise me if it's a sizeof(struct stat) issue again
21:23:56  <indutny>uv stuff?
21:24:14  <bnoordhuis>well
21:24:28  <bnoordhuis>more like sizeof(struct stat) in node != sizeof(struct stat) in libuv
21:24:40  <indutny>oh gosh
21:25:21  <indutny>how is that possible?
21:25:36  <indutny>wierd compiler black magic?
21:25:48  <indutny>btw, valgrind is silent
21:27:13  <indutny>may be we're just hitting stack limit
21:27:13  * paddybyersquit (Quit: paddybyers)
21:28:27  <indutny>indeed we're
21:28:42  <TooTallNate>isaacs: does fs.symlink() require admin privileges on windows?
21:34:24  * einaros_joined
21:36:08  * einarosquit (Quit: leaving)
21:36:15  * einaros_changed nick to einaros
21:38:51  <indutny>bnoordhuis: ok, I figured out the problem
21:39:02  <bnoordhuis>indutny: and?
21:39:07  <indutny>we're just overflowing stack :D
21:39:15  <indutny>with fs_req_wrap req_wrap;
21:39:25  <indutny>if you'll do `new fs_req_wrap()` here - it'll work
21:39:48  <indutny>I wonder how could we check if there're no stack overflow in such places
21:39:58  <bnoordhuis>ah, so the ASSERT(location_ != NULL) that triggered is just a red herring?
21:40:22  <indutny>yes
21:40:31  <indutny>we just messed up with memory
21:40:35  <indutny>and v8 gone crazy
21:40:44  <bnoordhuis>okay, i guess there's no helping that
21:40:49  <indutny>there is
21:40:52  <indutny>we can limit stack
21:40:59  <indutny>by mmaping protected region
21:41:13  <bnoordhuis>you mean mprotect()ing it?
21:41:14  <indutny>and handling page access faults
21:41:19  * rendarquit
21:41:33  <indutny>well, we can just mmap region without READ and WRITE access
21:42:08  <indutny>and then we can catch SIGBUS and SIGSEGV
21:42:11  <indutny>and gently report problem
21:42:21  <bnoordhuis>yeah, i guess that's possible
21:42:28  <indutny>even more
21:42:31  <indutny>it's preferable
21:42:33  <bnoordhuis>i wrote some code for that earlier this week actually :)
21:42:37  <indutny>where?
21:42:50  <bnoordhuis>but that was mostly to get some useful crash dump info
21:42:57  <indutny>ah
21:43:00  <indutny>cool
21:43:06  <indutny>I wonder about one thing
21:43:13  <indutny>we should be somewhere at v8's stack
21:43:25  <indutny>and it has stack protection utilities
21:43:28  <indutny>can we reuse them?
21:43:40  <bnoordhuis>i don't know
21:43:56  <bnoordhuis>we can find out though
21:44:17  <indutny>yes, walking through it's code
21:44:50  * piscisaureus_joined
21:45:15  <piscisaureus_>indutny: bnoordhuis is already reviewing that server verification patch right?
21:45:26  <bnoordhuis>yes
21:45:29  <indutny>yes
21:46:03  * paddybyersjoined
21:46:08  <AvianFlu>has anyone ever seen process.cwd() EACCES before?
21:46:19  <piscisaureus_>TooTallNate: symlink requires admin except when you are creating junctions
21:46:41  <piscisaureus_>AvianFlu: well, I am sure I can trigger it :-)
21:47:27  <piscisaureus_>oh from cwd()
21:47:28  <piscisaureus_>hmm
21:47:49  <AvianFlu>I just saw it happen during an npm install on smartOS
21:47:54  <AvianFlu>and I'm confused now.
21:49:27  <AvianFlu>startup.resolveArgv0 threw it, actually
21:49:29  <AvianFlu>from inside node
21:50:21  <AvianFlu>(this is 0.6.19, for reference, but it's probably some weird local issue)
21:51:45  <bnoordhuis>AvianFlu: it probably means some part of the path isn't readable
21:51:59  <piscisaureus_>AvianFlu: yeah I can trigger it
21:52:01  <AvianFlu>yeah, that would make sense
21:52:15  <piscisaureus_>AvianFlu:
21:52:16  <piscisaureus_>mkdir /a/b
21:52:19  <piscisaureus_>cd /a/b
21:52:35  <piscisaureus_>sudo -u nobody node
21:52:50  <piscisaureus_>---- from another terminal
21:52:50  <piscisaureus_>rmdir /a/b
21:52:50  <piscisaureus_>--- in node:
21:52:50  <piscisaureus_>process.cwd()
21:52:57  <indutny>bnoordhuis: that stack overflow checks are really deep in v8
21:52:59  <indutny>unfortunatelly
21:53:06  <AvianFlu>yeah, that makes sense now
21:53:07  <indutny>and they're just using static pointer
21:53:17  <bnoordhuis>indutny: yeah, i've seen that code
21:53:19  <indutny>and checking if local variable's pointer is bigger or equal than this
21:53:51  <indutny>I wonder if we really want to deal with it :D
21:53:56  <indutny>but I suppose we should
21:54:15  <indutny>I'll stub out something today, or tomorrow
21:56:17  <TooTallNate>piscisaureus_: thanks, that was the hint I needed
21:58:01  <bnoordhuis>indutny: https://github.com/joyent/node/pull/3689 <- somehow the position of my comments is all messed up
21:58:09  <bnoordhuis>i.e. they're on the wrong lines
21:59:06  <bnoordhuis>ah, you force pushed and somehow github has moved over the comments to the new commit
21:59:23  * loladirojoined
21:59:43  <indutny>yes, I see
21:59:47  <indutny>hahaha
22:00:30  <bnoordhuis>i'll post them again
22:00:56  <indutny>cool, thank you
22:01:44  <bnoordhuis>indutny: done
22:01:51  <indutny>bnoordhuis: great
22:03:30  <piscisaureus_>isaacs: do you want these tagged releases for the 0.8 branch as well? Or just 0.9+ ?
22:03:35  <indutny>bnoordhuis: is there a way to get process' stack limit?
22:04:30  <bnoordhuis>indutny: not per process but per thread
22:05:48  <indutny>well, obviously
22:05:54  <indutny>sorry for wrong terminology :)
22:06:03  <indutny>oh, I've an idea
22:06:08  <indutny>but it's really overcomplicated
22:06:18  <indutny>we can mmap stack
22:06:23  <indutny>hahaha
22:06:42  <bnoordhuis>i guess for node you could just call getrlimit(RLIMIT_STACK) from the main thread
22:07:10  <bnoordhuis>i don't know how much faith you should put in that though
22:07:50  <indutny>indeed
22:10:48  <piscisaureus_>http://gcc.gnu.org/wiki/SplitStacks <-- interesting
22:13:02  <indutny>yes, I read that sometime before
22:13:08  <indutny>is that widely supported?
22:13:24  <piscisaureus_>I don't know
22:13:28  <piscisaureus_>I didn't even know about it :-)
22:13:53  <piscisaureus_>We should have that in v8
22:14:30  <indutny>well, it adds performance overhead AFAIK
22:14:32  <bnoordhuis>indutny: no, not yet
22:14:41  <bnoordhuis>i.e. not widely supported yet
22:14:44  <indutny>because it doesn't work?
22:14:46  <indutny>right :)
22:15:01  <bnoordhuis>i think it only works with binutils gold
22:16:09  <piscisaureus_>bnoordhuis: I was wondering, before linux supported real threads, they were done in user mode
22:16:14  <piscisaureus_>bnoordhuis: how does that work
22:16:23  <bnoordhuis>piscisaureus_: timers and signals
22:16:26  <indutny>odd, mprotect doesn't seem to be working
22:16:27  <indutny>hm...
22:16:35  <indutny>probably v8 moves us to it's stack
22:16:38  <piscisaureus_>bnoordhuis: if a process was blocked by a syscall, how would it switch to another thread?
22:16:43  <indutny>no, it's impossible
22:17:37  <bnoordhuis>piscisaureus_: i *think* it overloaded the syscall wrapper and handled EINTR
22:17:42  <bnoordhuis>piscisaureus_: but don't quote me on that
22:17:53  <bnoordhuis>i believe openbsd still has only user mode threads
22:18:01  <bnoordhuis>you could look at their implementation
22:18:13  <piscisaureus_>bnoordhuis: it seems really odd. If two threads would be making a syscall, then would it busyloop and switch between them continuously?
22:18:27  <piscisaureus_>or would it just wait for one syscall to return and then do the other
22:18:30  <piscisaureus_>either seems dumb
22:18:46  <bnoordhuis>piscisaureus_: probably. or maybe call sched_yield() a lot
22:21:42  <indutny>ok, I got it working
22:22:07  <indutny>time to write SIGBUS and SIGSEGV handlers
22:24:54  <piscisaureus_>bnoordhuis: on order to figure out, would I look in the linux source code or the glibc source code?
22:25:25  <bnoordhuis>indutny: don't waste too much time on it, i'm not sure if adding that kind of complexity is a good thing
22:25:39  <bnoordhuis>piscisaureus_: figure what out?
22:25:41  <indutny>bnoordhuis: I completely agree with you
22:25:47  <indutny>but what is an alternative?
22:26:01  <bnoordhuis>indutny: to just let it crash :)
22:26:07  <piscisaureus_>bnoordhuis: how userspace threading works
22:26:10  <indutny>hm... behaviour is not really defined
22:26:30  <bnoordhuis>piscisaureus_: you mean in openbsd?
22:26:37  <indutny>i.e. some code can be written to stack
22:26:46  <piscisaureus_>bnoordhuis: well, unix used to do it too right... user mode threads?
22:26:54  <piscisaureus_>er, linux
22:27:24  <piscisaureus_>before linuxthreads and ntpl or whatever it is called
22:27:33  <bnoordhuis>piscisaureus_: yes, but that was a really, really long time ago
22:28:13  <bnoordhuis>piscisaureus_: i mean, we're talking 1.0.x kernels here
22:30:30  <piscisaureus_>this is one of these occasions where a close relationship with bcantrill would come in handy
22:30:32  <piscisaureus_>:-p
22:30:37  <piscisaureus_>I am sure he would know
22:31:49  <isaacs>what is this?
22:32:08  * isaacstalks to bcantrill from time to time
22:32:20  <piscisaureus_>Oh, I am just making up for my lack of CS education
22:32:26  <isaacs>oh, ok
22:32:32  <isaacs>i'm no help t you there, i'm sure
22:32:36  <piscisaureus_>trying to figure out how unices do threading in user mode
22:32:38  <bnoordhuis>piscisaureus_: i believe solaris has always had 'real' threads
22:33:12  <bnoordhuis>piscisaureus_: but take a look at openbsd, iirc the stuff is in libc/libthr
22:33:27  <indutny>bnoordhuis: what if I'll propose a patch for v8 team to expose their stack overflow checks in API
22:33:33  <indutny>bnoordhuis: and we'll use it in node?
22:33:41  <indutny>consistentcy for all the things!
22:33:54  <bnoordhuis>indutny: i could live with that
22:34:09  <indutny>ok, that's better :)
22:34:32  <indutny>or we can have a floating patch
22:35:42  <bnoordhuis>meh, i don't want to carry too many patches
22:35:51  <bnoordhuis>besides, it's mostly a non-issue
22:37:12  <indutny>ok, f*ck it
22:37:23  <indutny>I'm totally bored out because of it
22:37:26  <indutny>going to sleep
22:37:32  <indutny>it's 2:36 am in Moscow no
22:37:33  <bnoordhuis>hah
22:37:36  <bnoordhuis>sleep tight, fedor
22:37:36  <indutny>s/no/now
22:37:40  <indutny>bnoordhuis: you too
22:37:43  <indutny>ttyl, everyone
22:39:34  * loladiroquit (Read error: Connection reset by peer)
22:39:46  * loladirojoined
22:40:12  * paddybyersquit (Quit: paddybyers)
22:43:51  <bnoordhuis>re split stacks: Gccgo supports splitting goroutine stacks as the gc compiler does, but currently only on x86 (32-bit or 64-bit) and only when using the gold linker
22:44:13  <bnoordhuis>which kind of makes sense because gccgo is written by the same guy that wrote binutils gold
22:44:50  <piscisaureus_>bnoordhuis: we are basically floating 0 patches atm
22:44:57  <piscisaureus_>bnoordhuis: we can haz 1 :-p
22:45:18  <bnoordhuis>piscisaureus_: yeah, but i only want to do that for really important issues
22:45:39  <bnoordhuis>piscisaureus_: a spurious segfault when someone overflows the stack due to an application bug...
22:45:41  <piscisaureus_>so what's the problem here actually? I wasn't paying attention...
22:45:46  <piscisaureus_>ah
22:45:46  <bnoordhuis>i rank it 2 on a scale from 1 to 5
22:46:03  <isaacs>piscisaureus_: ok,discussing stuff in #node.js is insanity.
22:46:06  <piscisaureus_>it's not good, v8 should probably blow up earlier
22:46:15  <piscisaureus_>isaacs: yeah
22:46:16  <isaacs>piscisaureus_: I'd much rather just have lchmod and lchown in libuv, rather than re-implement O_SYMLINK for windows.
22:46:27  <piscisaureus_>isaacs: that's fine with me
22:46:37  <piscisaureus_>lchown will be hard
22:46:47  <bnoordhuis>piscisaureus_: fedor reported that it's because we put a struct stat on the stack that pushes the stack over the limit
22:46:48  <piscisaureus_>because that function does, ehm, nothing :-p
22:46:51  <isaacs>well, chown doesn't exist for windows.
22:46:56  <isaacs>i mean, we don't support it anyway
22:47:03  <piscisaureus_>it's sorta lame
22:47:12  <piscisaureus_>maybe this function should throw
22:47:15  <isaacs>no
22:47:20  <isaacs>a no-op is better in this case.
22:47:32  <piscisaureus_>windows has the concept of "owners"
22:47:34  <isaacs>actually, lchmod should be a no-op for the Smart and Stupid os's
22:47:50  <piscisaureus_>but it's so vastly different from what unix does...
22:48:01  <bnoordhuis>isaacs: no, that seems like a bad idea
22:48:14  <piscisaureus_>why, bnoordhuis
22:48:18  <bnoordhuis>at least now you can add `if (fs.lchmod) fs.lchmod(...)` checks
22:48:32  <isaacs>bnoordhuis: right, but how is that different than a no-op?
22:48:36  <piscisaureus_>http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libpthread/uthread/
22:48:49  <bnoordhuis>isaacs: you force the user to think about it
22:48:51  <isaacs>it just encourages people to write programs that work on the fruitycat laptop, but not on the server
22:49:03  <isaacs>bnoordhuis: forcing people to think is not really a good idea.
22:49:19  <isaacs>bnoordhuis: if they want to check whether lchmod will do anything, they can look for O_SYMLINK
22:49:20  <piscisaureus_>I think I agree with isaacs on this one
22:49:29  <bnoordhuis>isaacs: okay, maybe not. :) silently ignoring their commands is worse though
22:49:34  <piscisaureus_>process.features.lchmod :-p
22:49:56  <bnoordhuis>what's the consensus of lchmod as a feature? good/bad/neutral?
22:50:06  <bnoordhuis>i forgot why it was added but i think it was a npm thing
22:50:12  <isaacs>bnoordhuis: we're not ignoring their commands silently. besides, i am one of probably 5 node users who use lch*, and i just no-op it when it's not there.
22:50:17  <isaacs>bnoordhuis: it's a tar thing
22:50:25  <isaacs>bnoordhuis: but yes, it is absolutely not optional.
22:50:57  <isaacs>it's a leak in our FS abstraction, owing to the fact that symbolic links are done wrong in every operating system.
22:50:58  <bnoordhuis>can't we simply split it off into a module and forget about the whole issue?
22:51:18  <bnoordhuis>or would that create a chicken/egg problem?
22:51:24  <isaacs>bnoordhuis: we should just patch up the hole in teh abstraction.
22:51:51  <isaacs>in every other case, we either throw ENOTSUP if it's a big deal, or silently ignore if it isn't.
22:51:57  * loladiroquit (Ping timeout: 248 seconds)
22:52:00  <isaacs>except in this case, where we make you do feature-detection
22:52:31  <isaacs>but like, we'll have a lot of very impossible-to-fix npm bugs if we remove that now.
22:52:39  <isaacs>and probably grunt and jitsu will have issues as well.
22:53:34  <isaacs>symlinks in other operating systems are effectively always the mode of their target, and calling `chmod 0755 some-symlink` is a no-op on the commadn line, right?
22:54:07  <bnoordhuis>you know, i've no strong opinion but i do somewhat agree with ryah that platform-specific functions are bad
22:54:22  <bnoordhuis>i'll just let the two of you battle it out :)
22:54:25  * bnoordhuissteps aside
22:55:00  <isaacs>bnoordhuis: yeah, i agree as well, which is why i think it should be a no-op on SmartOS and Linux
22:58:09  * xaqquit (Read error: Connection reset by peer)
22:59:23  * xaqjoined
23:01:37  <piscisaureus_>bnoordhuis: indutny: v8 allows you to set the stack limit
23:01:45  <piscisaureus_>look in v8.h :-)
23:01:56  <bnoordhuis>piscisaureus_: yes, but that's not the issue
23:03:08  <piscisaureus_>so what is?
23:03:26  <piscisaureus_>if the stack overflows in c land then the v8 stack limit should be lowered
23:03:36  <isaacs>piscisaureus_: so, how would i get at FILE_FLAG_OPEN_REPARSE_POINT anyway?
23:04:02  <piscisaureus_>isaacs: umm, I thought we decided to do lchmod and lchown in libuv?
23:04:23  <piscisaureus_>isaacs: what you need to do is #define O_SYMLINK 127 or something
23:04:26  <piscisaureus_>128
23:04:42  <piscisaureus_>and then translate the flag to FILE_FLAG_X in uv_fs_open
23:05:46  <isaacs>oh, i could just do it in node, i guess.
23:06:02  <isaacs>piscisaureus_: i think it's easier to just keep the same stuff in node's fs.js module.
23:06:09  <piscisaureus_>isaacs: no, that won't work
23:06:11  <isaacs>why not?
23:06:23  <piscisaureus_>isaacs: because it's not like this flag gets passed 1:1 to the syscall
23:07:12  <isaacs>oh, ok
23:07:26  <piscisaureus_>isaacs: https://github.com/joyent/libuv/blob/master/src/win/fs.c#L321-340
23:07:42  <isaacs>so even if we put O_SYMLINK into fs.open(), it's not going to end up opening the symlink?
23:10:41  <isaacs>just exposing the windows constant under the unix-equivalent name seems a bit more libuv-ish
23:11:29  <piscisaureus_>bnoordhuis: Erik corry says you can make gcc crashes go away with -fno-tree-vrp
23:12:29  <bnoordhuis>piscisaureus_: i tested that on one affected machine but that didn't make a difference
23:12:52  <bnoordhuis>piscisaureus_: i suspect we're actually looking at a couple of bugs that trigger the same behavior
23:13:02  * AlbireoXquit (Write error: Connection reset by peer)
23:13:28  * AlbireoXjoined
23:16:22  * c4milojoined
23:17:37  <piscisaureus_>isaacs: if you define O_SYMLINK first then, no, that won't help
23:18:29  <piscisaureus_>if you don't, node will crash :-)
23:21:22  <isaacs>piscisaureus_: ok, i see. yes, opening a file is complicated on winodws.
23:25:43  <piscisaureus_>isaacs: haha. yes. uv_lchown /uv_lchmod would be easier :-)
23:26:50  <isaacs>piscisaureus_: hm. ok. then i'll withdraw my feature request from github issues, and rephrase.
23:27:02  <isaacs>piscisaureus_: are you overly offended by moving fs.lchmod/lchown into libuv?
23:27:03  <piscisaureus_>isaacs: :-)
23:27:09  <piscisaureus_>no
23:27:11  <piscisaureus_>not at all
23:29:12  <isaacs>k
23:30:45  <piscisaureus_>time for some more ASM ing
23:33:12  <isaacs>piscisaureus_: https://github.com/joyent/libuv/issues/494
23:33:38  <piscisaureus_>isaacs: ok, cool
23:34:03  <piscisaureus_>isaacs: are you in a hurry btw? e.g. is this a blocker for you ?
23:34:03  <isaacs>piscisaureus_: also, as a bonus, this would remove another use of the "constants" module in node.
23:34:11  <piscisaureus_>yeah
23:34:12  <isaacs>piscisaureus_: no, more like just a nice to have.
23:34:18  <piscisaureus_>constants--
23:34:18  <kohai>constants has -1 beer
23:34:22  <isaacs>piscisaureus_: i'm already no-op'ing these functions when they're missing.
23:34:23  <piscisaureus_>we should get rid of it
23:34:29  <piscisaureus_>ok
23:34:35  <isaacs>piscisaureus_: nah, let's just rename it to "utils"
23:34:36  <piscisaureus_>isaacs: in that case I am going to finish my ssl stuff first
23:34:42  <piscisaureus_>ghe
23:34:42  <isaacs>;P
23:34:42  <piscisaureus_>haha
23:34:59  <piscisaureus_>isaacs: I don't like this situation where you have these platform dependant constants
23:35:08  <isaacs>piscisaureus_: yeah, me neither.
23:35:12  <piscisaureus_>just use symbolic names
23:35:15  <isaacs>platform-specific stuff shoudl live in libuv
23:35:28  <piscisaureus_>for backwards compat we could just set them to a fixed value
23:35:32  <isaacs>meh.
23:35:36  * EhevuTov_joined
23:35:52  <piscisaureus_>ok, that would probably hurt some binding writers
23:35:55  <isaacs>piscisaureus_: yes
23:36:12  <isaacs>there's no need for constants to be removed. we should just stop using it
23:36:20  <piscisaureus_>yeah
23:36:22  <piscisaureus_>+1
23:36:26  <isaacs>at least they're not all defined on process any more.
23:36:29  <isaacs>that was always a huge pita
23:36:45  <isaacs>type "process" in the repl and it'd print out half of unix
23:38:55  <bnoordhuis>okay, i'm making -O2 the default from now on
23:39:18  * EhevuTovquit (Ping timeout: 248 seconds)
23:49:58  * xaqquit (Remote host closed the connection)
23:57:41  * sh1mmerjoined
23:58:33  <sh1mmer>Does anyone have any thoughts on SilkJS?