--- Log opened Thu Jun 28 00:00:46 2012 00:36 < CIA-108> node: Shigeki Ohtsu master * r6d98524 / (41 files in 4 dirs): tools: update closure_linter to the latest(2.3.5) - http://git.io/GtHolg 00:36 < CIA-108> node: Shigeki Ohtsu master * r60ff789 / LICENSE : LICENSE: update Closure Linter to Apache 2.0 - http://git.io/VzQTwg 01:18 < CIA-108> node: Shigeki Ohtsu master * re7e34dd / test/simple/test-dgram-broadcast-multi-process.js : test: fix test-dgram-broadcast-multi-process - http://git.io/xbXaHw 01:38 <@bnoordhuis> piscisaureus_: https://github.com/bnoordhuis/node/commit/9d92232 <- review? 01:42 < isaacs> bnoordhuis: wait, but... aren't you looping thorugh the entire set of keys every time that way? 01:43 < isaacs> oic, the tohash happens once, but the hasOwnProp over and over again 01:45 < isaacs> bnoordhuis: +! 01:45 < isaacs> +1 01:46 <@TooTallNate> was util.format a bottleneck somewhere? 01:49 <@bnoordhuis> TooTallNate: yeah. try printing an array with 100k elements 01:50 <@bnoordhuis> TooTallNate: https://github.com/joyent/node/issues/3562 01:50 <@TooTallNate> +1 actually, NodObjC creates an object with 10k+ properties on it 01:51 <@TooTallNate> that i've seen crash the repl before when printing out 01:52 < mjr__> TooTallNate: I was playing around with network REPL today, and I noticed that the tab completion items don't show up properly. Have you seen this? 01:53 < CIA-108> node: Ben Noordhuis v0.8 * rbe3afd0 / doc/api/fs.markdown : doc: remove references to deprecated fs api - http://git.io/1n196w 01:53 < CIA-108> node: Ben Noordhuis v0.8 * r6531f18 / lib/util.js : util: speed up formatting of large arrays/objects - http://git.io/gjC2PQ 01:54 <@TooTallNate> mjr__: that's because of the windows size not being set 01:54 < mjr__> Oh? It seemed to make space for the items, just not display them. 01:55 <@TooTallNate> mjr__: ya I'm not sure what it's doing under the hood, but try setting "socket.columns = 80" 01:56 <@TooTallNate> mjr__: on the server-side 01:57 < mjr__> Oh, sure enough 01:57 < mjr__> You can even set that through the repl, which is kind of amusing. 01:57 <@TooTallNate> hahaha 01:57 <@TooTallNate> ya 01:57 <@TooTallNate> you can also set `process.stdin.columns` on the regular repl 01:58 <@TooTallNate> and weird stuff happens 01:59 < mjr__> woah 01:59 < mjr__> Yeah, hilarious. 01:59 < AlbireoX`Laptop> ? 02:00 < mjr__> TooTallNate: on Unix we could have the client parse the output of "stty size" as a super simple way to capture that. 02:00 < mjr__> Doesn't follow sigwinch though. 02:00 <@TooTallNate> mjr__: that's why a telnet(1) solution is best 02:01 <@TooTallNate> i have a node-telnet module, just needs some cleaning up 02:01 < mjr__> telnet doesn't know about unix domain sockets though. 02:01 <@TooTallNate> oh shoot, that might be a deal-breaker 02:01 <@TooTallNate> but something about this code really sits well with me: https://gist.github.com/a7017a1dddc543238012 02:02 < mjr__> Also, here is a hilarious thing, SmartOS doesn't come with telnet(1) 02:02 <@TooTallNate> well i'll be 02:02 <@TooTallNate> that's… odd actually 02:02 <@TooTallNate> even windows has telnet! 02:02 < mjr__> heh 02:03 < mjr__> I guess they use nc(1) for all of that, which doesn't support those fancy out of band messages like telnet. 02:03 < mjr__> I agree that the telnet way is very attractive. 02:04 < mjr__> Maybe our silly SmartOS usage will require a node-based telnet client implementation. 02:04 <@TooTallNate> mjr__: i mean you can alter the client-server to listen for JSON messages instead 02:04 <@TooTallNate> and then send "resize" messages and "data" messages 02:05 < mjr__> Yeah, I guess it can be any silly protocol you like. 02:05 <@TooTallNate> mjr__: your original idea is probably the easiest: reporting the initial size before setting up the repl 02:07 <@TooTallNate> ok, i'm out. later guys 02:16 < CIA-108> node: Ben Noordhuis master * r2d0011f / (42 files in 5 dirs): Revert "tools: update closure_linter to the latest(2.3.5)" - http://git.io/wafhbA 02:47 < CIA-108> libuv: Bert Belder reviewme * rd3230bc / (src/win/error.c src/win/fs.c): windows: don't inhibit reparse behavior when non-symlink is encountered - http://git.io/I0OIdA 02:47 <@piscisaureus_> ^-- bnoordhuis: wanna review? 02:49 < travis-ci> [travis-ci] joyent/libuv#466 (reviewme - d3230bc : Bert Belder): The build passed. 02:49 < travis-ci> [travis-ci] Change view : https://github.com/joyent/libuv/commit/d3230bce49c9 02:49 < travis-ci> [travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1725749 02:51 -!- mode/#libuv [+o piscisaureus__] by ChanServ 03:04 <@bnoordhuis> piscisaureus__: i'll look at it in a few hours :) 03:04 <@piscisaureus__> bnoordhuis: coming to 020? 03:04 <@piscisaureus__> that'd be fine 03:04 <@piscisaureus__> I wanne take a nap now too 03:04 <@bnoordhuis> yep 03:04 <@piscisaureus__> cool 03:04 <@piscisaureus__> ttyl then 03:05 <@bnoordhuis> sleep tight 03:05 <@piscisaureus__> bnoordhuis: get some mental preparations before looking at that stuff (be warned :-)) 03:08 < CIA-108> libuv: Bert Belder reviewme * r4a88b3b / (src/win/error.c src/win/fs.c): windows: don't inhibit reparse behavior when non-symlink is encountered - http://git.io/XJzkwQ 03:09 < travis-ci> [travis-ci] joyent/libuv#467 (reviewme - 4a88b3b : Bert Belder): The build passed. 03:09 < travis-ci> [travis-ci] Change view : https://github.com/joyent/libuv/compare/d3230bce49c9...4a88b3b4b72d 03:09 < travis-ci> [travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1725854 06:33 < CIA-108> node: isaacs v0.8 * r37bdd36 / tools/blog/generate.js : blog: Show 0.8.0 even after 0.8.1 ships - http://git.io/xk7hLQ 09:30 < felixge> isaacs: hi 09:30 < felixge> you still up? 11:35 -!- mode/#libuv [+o piscisaureus_] by ChanServ 12:52 -!- mode/#libuv [+o piscisaureus_] by ChanServ 13:00 -!- mode/#libuv [+o piscisaureus__] by ChanServ 13:10 -!- mode/#libuv [+o piscisaureus__] by ChanServ 13:17 -!- mode/#libuv [+o piscisaureus_] by ChanServ 13:20 -!- mode/#libuv [+o piscisaureus__] by ChanServ 13:28 -!- mode/#libuv [+o piscisaureus__] by ChanServ 13:29 -!- mode/#libuv [+o piscisaureus___] by ChanServ 13:30 -!- mode/#libuv [+o piscisaureus____] by ChanServ 13:31 -!- mode/#libuv [+o piscisaureus_] by ChanServ 14:15 < CIA-108> libuv: Bert Belder v0.8 * r4a88b3b / (src/win/error.c src/win/fs.c): windows: don't inhibit reparse behavior when non-symlink is encountered - http://git.io/XJzkwQ 14:18 < CIA-108> node: Bert Belder v0.8 * r3ea2a61 / (3 files in 2 dirs): uv: upgrade to 4a88b3b - http://git.io/naNkdg 14:34 < travis-ci> [travis-ci] joyent/libuv#468 (v0.8 - 4a88b3b : Bert Belder): The build passed. 14:34 < travis-ci> [travis-ci] Change view : https://github.com/joyent/libuv/compare/1b6843482a3c...4a88b3b4b72d 14:34 < travis-ci> [travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1729713 14:39 <@indutny> hoya 14:39 <@indutny> a call today? 14:48 <@piscisaureus_> sure, indutny 15:32 -!- mode/#libuv [+o piscisaureus____] by ChanServ 15:52 < isaacs> good morning 15:52 < isaacs> skype in 10 minutes or so? 15:53 <@piscisaureus____> isaacs: ben and me are slightly delayed 15:53 < isaacs> k 15:53 <@piscisaureus____> isaacs: but before 9:15 sure 15:53 < isaacs> piscisaureus____: would it be worthwhile to just move it back an hour or so? 15:54 <@piscisaureus____> isaacs: it's not my preference 15:54 < isaacs> k 15:55 < isaacs> felixge: hey 15:55 < isaacs> what's up? 15:55 < felixge> isaacs: hey 15:55 < felixge> <3 domains 15:55 < felixge> :) 15:55 < isaacs> oh, awesome! 15:55 < isaacs> you are 100% the target market. 15:55 < felixge> but IMO dispose() is broken unless it works implicitly 15:55 < felixge> the performance impact sucks, I agree 15:55 < isaacs> yeah, i'm kinda with you on that. it's lame how it is 15:56 < felixge> but not being able to clean up sucks even more 15:56 < isaacs> but we opted to go halfway rather than degrade perf 15:56 < isaacs> felixge: maybe a button somehwer eyou can push that'd attach them all? 15:56 < tjfontaine> big red buttons everywhere 15:56 < isaacs> or maybe domain.dispose() is just not the right abstraction... 15:57 < felixge> isaacs: I'd say it should be the other way around 15:57 < felixge> there could be a button to disable implicit tracking 15:57 < felixge> for people who want broken domains 15:57 < felixge> :) 15:57 < felixge> isaacs: dispose() seems fine 15:57 < felixge> maybe there is a way to do it faster 15:57 < isaacs> i mean, in my usage, when a domain hits an error, i restart the serer 15:58 < isaacs> i'm treating it like process.on('uncaughtException'), but with the ability to send a 500 15:58 < felixge> huh? 15:58 < felixge> IMO it should allow you to keep the server running 15:58 < isaacs> right, i mean, it's in a cluster worker 15:58 -!- mode/#libuv [+o TooTallNate] by ChanServ 15:58 < felixge> (assuming you don't share objects between requests) 15:58 < isaacs> but that cluster worker stops listening 15:58 < isaacs> and once all its jobs are done, it dies 15:58 < felixge> right 15:58 < isaacs> takes it out of rotation 15:58 < felixge> so you clean up by killing the process 15:59 < isaacs> when the disconnect happens, the master spins up a new worker, so i always have N workers running 15:59 < felixge> thing is, with file uploads we may still need to wait a *long* time before we're willing to kill the worker 15:59 < felixge> so we could end up with lots of workers 15:59 < isaacs> right 15:59 < isaacs> but you could still have it stop listening to new connections 16:00 < isaacs> or do other stuff to shut down the requests a bit more promptly 16:00 < felixge> hm 16:00 < isaacs> even like, set a global or something, so that other requests know that they ought to leave. 16:00 < felixge> sure, there is workarounds 16:00 < felixge> I just hoped that with domains I could do sane error handling in a single process scenario 16:00 < isaacs> but in general, yes... we cannot degrade performance by default. also, it sucks that dispose() doesn't dispose() all the way 16:01 < felixge> ok 16:01 < felixge> but what about: 16:01 < isaacs> we've got a few months before the next stable release. let's try out some stuff on 0.9 :) 16:01 < felixge> domains.create({implicitMembers: true}) 16:01 < felixge> or something? 16:01 < isaacs> sure 16:01 < felixge> I could also try to make it go faster 16:02 < isaacs> or maybe, we can flip the messaging... 16:02 < isaacs> like, the EE listens on the domain's 'dispose' event, rather than the domain looping through its EEs 16:04 < isaacs> and then if that EE object has a .dispose() method, it calls it 16:04 < isaacs> right now, domain.dispose() kind of plays whack-a-mole with the common "stop this thign" methods 16:04 -!- mode/#libuv [+o piscisaureus_] by ChanServ 16:04 < isaacs> .end(), .close().dstroy().pleaseGoAway() etc 16:04 < felixge> sure 16:04 < felixge> seems reasonable 16:04 < felixge> the way it's done 16:04 <@indutny> isaacs: call? 16:04 < isaacs> indutny: 5 minutes ish 16:05 <@indutny> ook 16:05 < isaacs> looking for my headphones, and felixge is distracting me with interesting api ideas :) 16:07 -!- mode/#libuv [+o piscisaureus__] by ChanServ 16:07 < felixge> isaacs: just re-read your idea 16:07 < felixge> that actually sounds good 16:07 < felixge> as it would also allow me to write non-EE objects that listen to domain disposal 16:32 -!- mode/#libuv [+o TooTallNate] by ChanServ 16:40 -!- mode/#libuv [+o TooTallNate] by ChanServ 16:50 <@TooTallNate> isaacs: how do you update npm on windows? 16:51 < isaacs> TooTallNate, piscisaureus__, everyone: How would you feel about just making sys work? this util thing is dumb. 16:51 < isaacs> process.binding('natives').sys = 'module.exports = require("util")' <-- totally works. 16:52 <@piscisaureus__> wut? 16:52 <@TooTallNate> isaacs: do people really still use sys? 16:52 < isaacs> TooTallNate: a lot of 0.6 users do, yes. 16:52 < isaacs> and now their programs are broken. 16:52 < isaacs> and like, why? seriously? 16:52 < isaacs> it's kinda silly. 16:53 <@piscisaureus__> would we still print deprecation warnings? 16:53 <@TooTallNate> well 2 identical modules is kinda confusing, no? 16:53 < isaacs> TooTallNate: anwyay... updating npm on windows: I usually just install node from the msi, and then install npm globally 16:53 < isaacs> TooTallNate: the nice thing there is that then you can do `npm rm npm -g` and you're back tothe "release" node 16:53 < isaacs> *release npm 16:53 < isaacs> TooTallNate: Sure, we can just not deprecate it. 16:53 < isaacs> TooTallNate: i mena, not document it 16:54 <@TooTallNate> true 16:54 < isaacs> we've put a couple of rounds in "sys". it'll probably die on its own. 16:54 < isaacs> this is like 80% of the complaints i'm hearing about 0.98 16:54 < isaacs> *about 0.8 16:54 <@TooTallNate> isaacs: but its too late for 0.8 right? 16:54 * isaacs sigh. 16:54 < isaacs> unless we call that throw a bug :) 16:55 < isaacs> it doesn't change ABI, and since "sys" is undocumented, it's an internal API. 16:55 * isaacs playing legal games with our policies 16:55 <@TooTallNate> ya i guess we could get away with it 16:55 < isaacs> no one's program will *break* by that. 16:57 <@TooTallNate> i guess i'm impartial, because I haven't seen "sys" in anyone's code for a while now 16:57 <@TooTallNate> but there's really no harm in it 16:57 < dap> TooTallNate: I can promise you we have a lot of code in production using "sys" :) 16:58 < dap> Even we don't see it a lot, because that code is mostly working :) 16:59 <@TooTallNate> dap: makes sense :) 17:14 < CIA-108> node: isaacs reviewme * rf2a9ed4 / lib/sys.js : Fix #3577 Un-break require('sys') - http://git.io/uoJprg 17:19 < mjr__> Backwards compatibility is such a mess. 17:21 < isaacs> mjr__: tell me about it. 17:21 < mjr__> We've completely reversed our position on this after several "must upgrade" events. 17:22 < isaacs> yep. 17:22 < mjr__> People don't want to upgrade, or even if they want to, they might not even know how, or have permission to, etc. 17:22 < mjr__> So now we are backward compatible with every version we've ever published, forever. 17:22 < isaacs> i'm moving to a very firm "zero api breakage" position. 17:22 < isaacs> yeah, it sucks. 17:23 < isaacs> and it's harmful to do too early 17:23 < isaacs> but at this point, node is kinda grown up 17:23 < isaacs> sometimes have to do sucky things 17:23 < mjr__> Yeah, that's what we found at Voxer as well. Makes moving forward much slower because you have to account for all of this legacy bullshit. 17:32 < mmalecki> mjr__: I completely agree. 17:32 < mmalecki> wait, what?! https://github.com/joyent/node/commit/f2a9ed487369ab7222522e1097708550adbe165c 17:32 < mmalecki> you can't be serious, isaacs. 17:33 < mmalecki> mjr__: actually, I disagree with "So now we are backward compatible with every version we've ever published, forever." 17:34 < mjr__> mmalecki: by "we" I meant my company, not node. 17:34 < mmalecki> mjr__: I know :) 17:35 < mjr__> Why do you disagree? 17:36 < mmalecki> mjr__: because people should finally learn to upgrade/write new code. proper versioning is the answer, not backwards compatibility. 17:37 < mmalecki> and, as you said, it slows you down 17:37 < isaacs> mmalecki: where changes are substantial, i agree. 17:37 < isaacs> but this is a bikeshed. seriously. 17:38 < isaacs> the price of these changes is very high at this point. 17:38 < mjr__> It is a bit different when running a service vs. shipping software intended for developers. In our case, we have a service, and as much as we'd like to, breaking the service for older clients is not something we can afford to do. 17:38 < isaacs> right 17:38 < isaacs> it comes down to price vs payoff 17:38 < isaacs> price = people don't upgrade, or it's harder for them to do so 17:38 < isaacs> or they just stop using your service, if your'e a voxer 17:38 < isaacs> payoff = cleaner apis, less maintenance, etc. 17:39 < isaacs> and, in some cases, there is just no way to make it work good without changing something (eg, child process exit/close change) 17:39 < mmalecki> mjr__: hm, can't you simply version your service? if it's http-based, /api/v0.1.2/...? 17:39 < mjr__> Of course, we do simply version it. 17:40 < mjr__> But maintaining all of that legacy functionality is often painful. It slows forward progress. 17:40 < mmalecki> it definitely is 17:41 < mjr__> In fact, it turns out that versioning helps almost none, at least for us. 17:42 < mmalecki> can't you introduce some period of time when customers can use older versions? 17:43 < mjr__> Oh sure. We did, but every time we forced people to upgrade, it basically caused a revolt, or vast swathes of people stopped using the service. 17:43 < mmalecki> ah, I see, that's just sad 17:47 < mjr__> Yeah, it's sad. But I do kind of feel more like a grownup now that I've accepted this reality. 18:32 -!- mode/#libuv [+o TooTallNate] by ChanServ 19:55 -!- mode/#libuv [+o TooTallNate] by ChanServ 21:41 <@piscisaureus_> fjakobs: hi 21:42 < fjakobs> hey 22:10 < isaacs> piscisaureus_: hey 22:11 < isaacs> https://github.com/joyent/node/issues/3577 22:11 < isaacs> feelings? 22:18 < isaacs> specifically: https://github.com/joyent/node/commit/f2a9ed487369ab7222522e1097708550adbe165c 22:19 * isaacs actually away for a little bit. 22:41 <@piscisaureus_> isaacs: I am totally fine with keeping sys for a long time, since it it so easy to maintain. But the question is really where we want to draw the line. Node also remove module.paths for the greater good and many people were extremely upset about that. We'll have to keep breaking stuff for a while or we might as well declare that 0.8 is the last node version ever, or only add new features from here (we should rename it to php / windows then) 22:43 <@piscisaureus_> isaacs: It's a thin line... I think a longer deprecation period is probably needed. 23:04 * isaacs back 23:04 < isaacs> piscisaureus_: sure. 23:04 < isaacs> i mean, really, the hazard is using sys's non-deprecation as an argument for not changing process._somePrivateThing or whatever. 23:07 <@piscisaureus_> isaacs: I kinda agree with bcantrill's sentiment that the challenge is to innovate without introducing too many unnecessary breakage 23:07 <@piscisaureus_> which would mean that we're at a pivot here - before this was much less of a problem 23:07 <@piscisaureus_> maybe we should put more emphasis on "stable" vs "experimental" for this stuff.. I mean, someone is also complaining about the fact that we removed the cluster "death" event and I am happy that it's gone :-) 23:07 <@piscisaureus_> but yeah, sys can come back as far as I concerned (but I think it should warn, and it should definitely not be documented) 23:07 <@piscisaureus_> *I am concerned 23:08 < isaacs> in this case, i fail to see the value in warning 23:09 < isaacs> put differently: someone users require("sys") in a program. so what? 23:09 < isaacs> why should they not do that? 23:09 <@piscisaureus_> if we're going to keep it around forever - then there's no need to warn. Are we? 23:09 < isaacs> let's say yes 23:10 < isaacs> i mean, if we shouldn't remove it now (and i'm not convinced it's worth removing now) then why would we remove it tomorrow? 23:12 <@piscisaureus_> isaacs: ok, fine 23:13 <@piscisaureus_> isaacs: continuing this barter, let's say "no documentation" then, and "sys == util" 23:13 < isaacs> yes. 23:14 < isaacs> i think from now on, if the presence of something doesn't cause harm, we should just remove it from the docs, call it unsupported, andmove on 23:14 < isaacs> but not actively break it 23:14 <@piscisaureus_> isaacs: I don't want to actually maintain it, but as long as it just sits there saying "I'm util" I'm fine :-) 23:14 < isaacs> yeah 23:14 < isaacs> like, literally require("sys") === require("util") 23:14 < isaacs> same object 23:14 <@piscisaureus_> ok 23:14 <@piscisaureus_> cool 23:17 < isaacs> i'm going to write a thing for the mailing list. 23:17 < isaacs> just a "This is what makes something be deprecated, this is what does not" 23:18 < isaacs> i think on the core dev team we all pretty much agree, but it's never been made clear to the community, really 23:25 < isaacs> haha 23:25 < isaacs> * 6ce007e Ryan Dahl Remove warning in 'sys' - too aggressive (1 year, 8 months ago) 23:41 <@piscisaureus_> isaacs: so you're sayin there was never a warning? 23:45 < CIA-108> node: isaacs v0.8 * rf2a9ed4 / lib/sys.js : Fix #3577 Un-break require('sys') - http://git.io/uoJprg 23:48 < isaacs> piscisaureus_: the warning showed up some time later. 23:48 < isaacs> interesting commit log 23:49 <@piscisaureus_> it has been deprecated for a loooooong time tho 23:49 <@piscisaureus_> I wonder why people are still using it 23:51 < bnoordhuis> is this about sys? 23:54 < isaacs> bnoordhuis: yeah 23:54 <@piscisaureus_> https://github.com/joyent/node/commit/e38eb0c5a4d4e8497f5815be81994ddb01fbceb7 23:55 <@piscisaureus_> I wonder why people kept using it all that time 23:55 < bnoordhuis> we used to warn about it 23:55 < bnoordhuis> but the warning was removed at some point 23:55 < bnoordhuis> because people kept complaining :/ 23:55 < isaacs> bcantrill put it well: deprecation gives us the right to remove it. 23:55 < isaacs> but there's no obligation to do so. 23:56 < bnoordhuis> yeah. i don't really care about the sys module, it's zero hassle to maintain 23:56 < isaacs> exactly 23:56 < isaacs> it's not in anyone's way any MORE if it throws than if it doesn't. 23:56 <@piscisaureus_> yeah, ok, this is settled 23:56 <@piscisaureus_> :-) 23:56 <@piscisaureus_> now some random rant 23:56 < isaacs> people only care about the principle of the thing 23:56 < isaacs> you got a new rant? 23:57 <@piscisaureus_> I am doing systems programming for this thing called windows 23:57 <@piscisaureus_> and it's a mess 23:57 < isaacs> k 23:57 <@piscisaureus_> because they never ever break stuff (atleast, they try very hard not to) 23:57 <@piscisaureus_> so that's why we have all this crap with lsps and oh my the tcp connection drops its sent data on the floor 23:57 <@piscisaureus_> it's all bugs 23:57 < isaacs> piscisaureus_: well... sure. 23:57 <@piscisaureus_> but they are to scared to fix it 23:57 < isaacs> but let's just not let node get that old. 23:58 <@piscisaureus_> because god knows some windows 3.11 enterprise crap might stop working 23:58 <@piscisaureus_> haha 23:58 < isaacs> no, i'm serious 23:58 < isaacs> like, in 10 years or whatever, we just rewrite it. 23:58 < isaacs> node's not THAT big. 23:58 < isaacs> like what python did, but change the name, like python should have done. 23:58 <@piscisaureus_> node nt 23:58 <@piscisaureus_> node X 23:59 <@piscisaureus_> I see 23:59 < isaacs> maybe by that time browsers run lua, and we we all switch over to luvig 23:59 < isaacs> *luvit 23:59 < isaacs> or dart-io 23:59 < isaacs> or whatever 23:59 <@piscisaureus_> yeah 23:59 <@piscisaureus_> browsers should run lua 23:59 <@piscisaureus_> +1 23:59 <@piscisaureus_> except for starting arrays with 1 ***aargh**** 23:59 < isaacs> the point is, int eh short term, we have to view deprecating things as a cost/benefit ratio --- Log closed Fri Jun 29 00:00:14 2012