00:03:08  * piscisaureus__quit (Read error: Connection reset by peer)
00:03:29  <bnoordhuis>ryah: linux, but only newer kernels
00:03:53  <bnoordhuis>it was added in one of the 3.0 rc's (i think)
00:04:59  <pquerna>sendfile file to file?
00:05:15  <pquerna>or do you just mean pipes and the like
00:05:31  <bnoordhuis>arbitrary fd to arbitrary fd
00:05:33  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
00:05:47  <bnoordhuis>the infrastructure was already in place, it's all splice() under the hood
00:06:03  <pquerna>ah, neat
00:06:20  <pquerna>if its non-blocking socket to non-blociing socket though, does it work?
00:06:36  <pquerna>or is the source still caught up in all the blocking-ish issues it can have
00:07:05  <bnoordhuis>socket to socket should Just Work(TM)
00:07:24  <bnoordhuis>there are probably some troublesome edge cases
00:07:38  <bnoordhuis>files in /proc weren't splice-able for a long time, for example
00:07:58  <pquerna>SPLICE_F_NONBLOCK, most of the time.
00:08:15  <pquerna>... but splice() may nevertheless block because
00:08:20  <pquerna>la la la :)
00:08:59  <DrPizza>ryah: is there a transcript?
00:09:16  * perezdjoined
00:09:21  <perezd>paddybyers: hey there
00:09:35  <paddybyers>perezd: hi
00:09:51  <perezd>I was talking with some people in #node.js about node on android and they said you'd be the person to talk to
00:10:09  <perezd>you're work looks awesome, I'm just trying to understand the landscape
00:10:10  * bnoordhuiswas some people
00:10:35  <perezd>should I be using anode? or the fork of node you made proper
00:10:52  <paddybyers>perezd: it depends what you want to do
00:11:12  <perezd>basically, my intention was to vendor in a precompiled nodejs binary into my app
00:11:18  <paddybyers>if you're running in an environment where you can just install and run the regular node executable, then the node port will do that
00:11:22  <perezd>and then execute it and talk to it on a TCP port, from the "ui process"
00:11:30  <perezd>we don't have root access
00:11:36  <perezd>this is ideally an app in the marketplace
00:11:38  <perezd>you download
00:11:48  <perezd>that uses nodejs as a backend technology, to power a native android UI
00:12:16  <paddybyers>then you need to deploy your app as an app, which means loading node as a shared library and running it that way; that's what the anode stuff does
00:12:31  <perezd>okay, so thats the project I should be working with
00:12:35  <paddybyers>you also get the ability to write addons in java
00:12:54  <bnoordhuis>you say that as if it's a good thing
00:13:04  <paddybyers>bnoordhuis: :)
00:13:24  <paddybyers>the problem is you've got no choice if you want to do something interesting on the platform
00:13:35  <perezd>such as?
00:14:02  <paddybyers>use messaging, contacts, geolocation .. any of the platform APIs beyond just file access and networking
00:14:43  <perezd>ah, but one could write java integration for that?
00:14:46  <perezd>perhaps?
00:15:20  <paddybyers>yes; there's a way to write modules in java, and then script them from JS
00:15:31  <perezd>so, one could expose that stuff if they felt so inclined
00:15:48  <perezd>paddybyers: is the wiki accurate about platform-9 ?
00:16:37  <paddybyers>in what respect? There are one or two native dependencies that node has that are only supported in recent android releases
00:16:53  <perezd>https://github.com/paddybyers/anode/wiki/Build
00:16:58  <perezd>reading this
00:17:13  <perezd>I have API level 7 and 15
00:17:16  <perezd>is 15 okay?
00:17:26  <paddybyers>the project I'm working on has decided we don't need to support anything earlier than 2.3, so that's our baseline
00:17:42  <perezd>okay, so 4.0 is fine then basically?
00:17:48  <paddybyers>level 7 = eclair? not sure about that
00:17:59  <perezd>level 15 is the latest
00:18:00  <paddybyers>14 == 4.0 == no problem
00:18:00  <perezd>thats okay?
00:18:03  <perezd>cool
00:18:29  <perezd>updated the wiki to reflect that :)
00:18:35  <paddybyers>some pthread_rwxxx functions, from memory, aren't on Eclair or earlier
00:19:22  <perezd>this is rad
00:19:24  <perezd>thanks for this work
00:19:27  <perezd>its great!
00:19:52  <bnoordhuis>paddybyers: if that's about libuv, you can fake pthread_rwlock_* with their pthread_mutex_* counterparts
00:20:05  <bnoordhuis>not performant but workable
00:21:00  <paddybyers>bnoordhuis: good to know - but as I said, it wasn't an issue at the time because we knew we would have 2.3 at least
00:21:52  <paddybyers>there's quite a few functions on earlier releases that are present in the headers, but the implementations are empty :(
00:22:26  <paddybyers>perezd: so have a look, I'll be online if you've got any questions.
00:22:48  <perezd>thanks!
00:22:56  <perezd>we're doing a hack fest at my company tomorrow
00:23:04  <perezd>we're trying to build a "native" android app powered by JS
00:23:13  <paddybyers>you can write your own app and include the libnode project, or include the app project, which gives a generic nodes service you can invoke by intent
00:23:28  <perezd>I sort of want something that stays open
00:23:31  <perezd>and listens to a socket
00:23:36  <perezd>ideally
00:25:11  <paddybyers>that should be no problem; of course on a mobile network you're not guaranteed to have a routable address
00:26:04  * mikealjoined
00:27:19  <perezd>thats totally fine
00:27:29  * mikealquit (Client Quit)
00:27:44  <paddybyers>so you're hacking tomorrow - in which TZ?
00:27:54  <perezd>PST
00:28:07  <perezd>all day/night
00:28:10  <perezd>marathon
00:28:54  <paddybyers>have fun:)
00:29:02  <perezd>yeah!
00:29:12  <perezd>you're project is going to make it a lot easier
00:34:45  <paddybyers>perezd: I'm in UK so I'll be online in the morning and then from about midnight :)
00:43:52  <perezd>cool!
00:46:08  * paddybyersquit (Quit: paddybyers)
01:13:50  * bradleymeckjoined
01:52:24  * indexzerojoined
02:04:23  <perezd>anyone familiar with compiling anode ?
02:15:01  <ryah>DrPizza: transcript?
02:15:13  <DrPizza>for the interview you retweeted
02:15:39  <ryah>oh - no i doubt it
02:23:22  <bnoordhuis>#0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:169
02:23:22  <bnoordhuis>#1 0x000000000043b04f in etp_proc (thr_arg=0x6bfa80) at ../src/unix/eio/eio.c:2066
02:23:22  <bnoordhuis>#2 0x00007ffff72109ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
02:23:22  <bnoordhuis>#3 0x00007ffff6f6d70d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
02:23:29  <bnoordhuis>^ *snif*
02:24:53  * pieternquit (Quit: pietern)
02:28:27  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
02:43:45  <bnoordhuis>ryah: https://github.com/bnoordhuis/libuv/commits
02:55:23  * bnoordhuisquit (Ping timeout: 248 seconds)
04:51:59  * isaacsquit (Quit: isaacs)
05:01:33  * bradleymeckquit (Remote host closed the connection)
05:52:25  * isaacsjoined
06:08:19  <isaacs>ryah: hey, you around?
06:08:29  <isaacs>i fixed that busted view: http://registry.npmjs.org/-/scripts?scripts=install,preinstall,postinstall
06:37:55  * rmustaccpart
07:08:33  <ryah>isaacs: now i am
07:08:35  * kuebkjoined
07:08:49  <isaacs>so, yeah, overwhelming majority of install scripts are for compilation.
07:09:01  <isaacs>a few things fetch some resource from somewhere else. maybe we can just provide them another way to do that.
07:09:14  <isaacs>since windows won't have curl.
07:09:26  <ryah>or just tell them to go fuck themselves :)
07:09:48  <isaacs>nah, i don't want someone putting a big old jar file in the npm repo if it's already somewhere else.
07:10:10  <isaacs>or substack's `isaacs` package that is a markov generator based on the chat logs that he filters for my nick.
07:10:15  <isaacs>on install, it downloads the corpus
07:10:17  <ryah>*shrug*
07:10:26  <isaacs>so, there are two that i'd like to gfy, though.
07:10:29  * kuebkpart
07:10:34  <isaacs>they do sudo gem install <blah> on installation.
07:10:36  <ryah>gfy?
07:10:42  <isaacs>go fuck yourself
07:10:52  <ryah>oh - yeah.
07:11:02  <isaacs>not you personally, that's just what gfy means :)
07:11:04  <ryah>thanks for fixing the install view :)
07:11:10  <isaacs>np
07:11:17  <ryah>you should be on vacation :)
07:11:25  <isaacs>design.io actually npm installs some stuff on installation, which is beyond crazy.
07:11:32  <isaacs>that's exactly what "dependencies" is for.
07:11:35  <isaacs>i don't even get it.
07:12:12  <isaacs>oh, i think it's probably some kind of peer-deps thing.
07:12:52  <isaacs>but yeah, you should not be doing a gem install inside of an npm install.
07:20:36  * isaacsquit (Quit: isaacs)
08:01:04  * arlolrajoined
08:42:33  <CIA-111>node: Shannen v0.6 * ref65919 / (4 files in 3 dirs):
08:42:33  <CIA-111>node: docs: use "Level 1" HTML5 features
08:42:33  <CIA-111>node: Since we're using an HTML doctype we might as well use "Level 1" HTML5 features.
08:42:33  <CIA-111>node: See more: http://mathiasbynens.be/notes/html5-levels#level-1
08:42:33  <CIA-111>node: Fixes #2386. - http://git.io/dZ89-g
08:42:34  <CIA-111>node: Seong-Rak Choi v0.6 * r892ba87 / doc/template.html :
08:42:34  <CIA-111>node: docs: fix javascript error on document page
08:42:35  <CIA-111>node: `highlight()` is called twice. It causes following javascript error.
08:42:35  <CIA-111>node: > Uncaught Found <pre> element with class="sh_sourcecode",
08:42:36  <CIA-111>node: > but no such language exists
08:42:36  <CIA-111>node: Fixes #2393. - http://git.io/i-qgbA
08:45:24  * paddybyersjoined
08:50:07  * travis-cijoined
08:50:08  <travis-ci>[travis-ci] joyent/node#130 (v0.6 - 892ba87 : Seong-Rak Choi): The build was broken.
08:50:08  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/6029127...892ba87
08:50:08  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/436299
08:50:08  * travis-cipart
09:36:50  * AndreasMadsenjoined
09:42:44  * ericktquit (Quit: erickt)
09:46:02  * mmaleckijoined
10:00:44  <indutny>ryah: yt?
10:19:44  * paddybyersquit (Quit: paddybyers)
10:31:12  * piscisaureus_joined
10:36:57  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
10:40:40  * piscisaureus_joined
10:45:25  * paddybyersjoined
11:26:00  * felixgejoined
12:04:50  * einaros-joined
12:15:50  * bnoordhuisjoined
12:20:17  * AndreasMadsenquit (Remote host closed the connection)
12:25:04  * einarosquit (Quit: Lost terminal)
12:46:35  * mmaleckiquit (Ping timeout: 244 seconds)
12:47:41  * mmaleckijoined
13:01:24  <CIA-111>node: Ben Noordhuis v0.6 * r4b39a07 / (4 files in 2 dirs):
13:01:24  <CIA-111>node: timers: revert 098fef6, f2f3028 and 348d8cd
13:01:24  <CIA-111>node: Revert the following commits:
13:01:24  <CIA-111>node: 348d8cd timers: remove _idleTimeout from item in .unenroll()
13:01:24  <CIA-111>node: f2f3028 timers: fix memory leak in setTimeout
13:01:24  <CIA-111>node: 098fef6 timers: remember extra setTimeout() arguments when timeout==0
13:01:25  <CIA-111>node: Fixes a 5-7% performance regression in the http_simple benchmark. - http://git.io/Tubv5A
13:09:26  * travis-cijoined
13:09:27  <travis-ci>[travis-ci] joyent/node#131 (v0.6 - 4b39a07 : Ben Noordhuis): The build was fixed.
13:09:27  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/892ba87...4b39a07
13:09:27  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/436963
13:09:27  * travis-cipart
13:20:52  <piscisaureus_>bnoordhuis, arlolra: is it possible to run a perf test without committing anything to master?
13:21:23  <piscisaureus_>I have some ideas that might fix the performance regression without the reverts that ben just landed
13:21:55  * bnoordhuisdoesn't know
13:22:50  <piscisaureus_>bnoordhuis: I think we should try
13:22:57  <bnoordhuis>piscisaureus_: i'll try your suggestions
13:23:32  <piscisaureus_>timer._callback = callback;
13:23:33  <piscisaureus_>timer.onTimeout = function() {
13:23:33  <piscisaureus_> this._callback();
13:23:33  <piscisaureus_> this.close();
13:23:33  <piscisaureus_>}
13:34:23  <bnoordhuis>piscisaureus_: seems i'm back at the old performance levels so that's good
13:35:22  <piscisaureus_>bnoordhuis: how can you tell?
13:35:37  <bnoordhuis>by doing lots of ab benchmarks
13:36:05  <bnoordhuis>piscisaureus_: want to verify it? i can send you a patch
13:36:36  <piscisaureus_>bnoordhuis: do that - but I am busy with something
13:36:37  <piscisaureus_>else atm
13:36:55  <bnoordhuis>oh okay, i'll just force-push over the revert commit
13:37:02  <piscisaureus_>can do it later tho
13:37:10  <piscisaureus_>bnoordhuis: yeah do that and shhh
13:37:14  <bnoordhuis>:)
13:38:07  <piscisaureus_>bnoordhuis: I want proper attribution though
13:39:02  <bnoordhuis>piscisaureus_: sure, sure
13:39:22  <piscisaureus_>bnoordhuis: these fixes were invented by Bert Belder the great, who also invented the double meat burger and hit 13 under par and 5 hole-in-ones the first time he played golf.
13:43:51  <bnoordhuis>why does `make test` always want to rebuild v8?
13:48:02  <bnoordhuis>both libv8.a and libv8_g.a!
13:48:58  <bnoordhuis>it's the JOBS environment variable, if it's not identical to what was used with `make all`, it'll start recompiling...
13:49:03  <bnoordhuis>wtf waf?
13:50:21  <mmalecki>bnoordhuis: doesn't waf assume that each environment change can change way files are compiled?
13:50:33  <CIA-111>node: Ben Noordhuis v0.6 * rd8c178b / lib/timers.js : (log message trimmed)
13:50:33  <CIA-111>node: timers: fix performance regression
13:50:33  <CIA-111>node: Fix a 5-7% performance regression in the http_simple benchmark that was
13:50:33  <CIA-111>node: introduced by the following commits:
13:50:33  <CIA-111>node: 348d8cd timers: remove _idleTimeout from item in .unenroll()
13:50:33  <CIA-111>node: f2f3028 timers: fix memory leak in setTimeout
13:50:34  <CIA-111>node: 098fef6 timers: remember extra setTimeout() arguments when timeout==0
13:50:57  <bnoordhuis>mmalecki: apparently... but JOBS has a well-defined meaning
13:51:04  <piscisaureus_>^-- bnoordhuis where is my attribution?
13:51:14  <bnoordhuis>piscisaureus_: it got trimmed
13:51:16  <mmalecki>bnoordhuis: yes. so it's a waf bug
13:51:36  <mmalecki>bnoordhuis: hint: http://code.google.com/p/waf/issues/list
13:51:58  <bnoordhuis>mmalecki: waf is going away anyway so i'll just curse at it for now
13:52:16  <mmalecki>bnoordhuis: you're a bad human being.
13:52:40  <mmalecki>hah! maybe I can patch it myself! haven't done python for ages.
13:53:05  <mmalecki>(with ages === 4 months)
13:53:21  <bnoordhuis>that's a lot of time at your age
13:54:16  <mmalecki>bnoordhuis: 2% of my life
13:54:27  <mmalecki>wow, that's a lot.
13:55:22  <bnoordhuis>:)
13:58:24  * travis-cijoined
13:58:24  <travis-ci>[travis-ci] joyent/node#132 (v0.6 - d8c178b : Ben Noordhuis): The build passed.
13:58:24  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/4b39a07...d8c178b
13:58:24  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/437063
13:58:24  * travis-cipart
14:05:01  <mmalecki>"various unit tests, most are unused anymore" <- wtf waf
14:06:13  <mmalecki>bnoordhuis: the problem is in .lock-waf file, actually. cat it and you'll notice that it stores whole environment. I just have to blacklist some variables there.
14:28:19  <piscisaureus_>bnoordhuis: why do we alias timer._onTimeout to timer.ontimeout btw?
14:28:36  <bnoordhuis>piscisaureus_: i've no idea
14:28:46  <piscisaureus_>I tmakes no fucking sense to me
14:28:55  <bnoordhuis>some legacy thing?
14:29:07  <piscisaureus_>let's grep it
14:29:11  <piscisaureus_>and remove it in master
14:32:02  <bnoordhuis>piscisaureus_: you propose to drop the _onTimeout property?
14:33:18  <piscisaureus_>bnoordhuis: yeah
14:34:03  <bnoordhuis>piscisaureus_: sounds good, make it so
14:34:04  <piscisaureus_>bnoordhuis: I am only a bit concerned about https://github.com/joyent/node/blob/master/lib/net.js#L150
14:34:14  <piscisaureus_>are we adding a socket direectl
14:34:26  <piscisaureus_>*... directly to the timers list?
14:34:32  <piscisaureus_>or is that a dead function?
14:35:00  <bnoordhuis>oh, that's probably the legacy thing :)
14:35:29  <bnoordhuis>a socket is a timer, it's added straight to the list
14:35:33  <piscisaureus_>bnoordhuis: it seems a little dangerous to rename that to ontimeout
14:36:10  <piscisaureus_>bnoordhuis: but that explains the perf regression
14:36:35  <piscisaureus_>bnoordhuis: the delete statement destroys the hidden class of the Socket object which is likely to have a big impact
14:37:12  <bnoordhuis>piscisaureus_: sounds like it's best to add a net.Socket._timer property
14:37:33  <piscisaureus_>bnoordhuis: nah I am not sure
14:37:45  <piscisaureus_>bnoordhuis: I don't like how we are creating many fat objects
14:38:01  <piscisaureus_>bnoordhuis: I mean, it should also be doable to merge Socket with TCPWrap right?
14:39:18  <piscisaureus_>bnoordhuis: in grep, how do I match the equivalent of /\bfoobar\.h$/ ?
14:39:27  * piscisaureus_does not know how grep regexes work
14:41:31  <bnoordhuis>piscisaureus_: use egrep
14:41:43  * piscisaureus_does not have egrep
14:41:52  <bnoordhuis>eh.... grep -E
14:41:52  <piscisaureus_>I lost some files in git
14:42:01  <piscisaureus_>ah
14:42:03  <piscisaureus_>thnx
14:42:48  <piscisaureus_>I lost an important file in my git repo
14:43:05  <piscisaureus_>I did some git rev-list and ls-tree magic and now I got it back
14:43:23  <piscisaureus_>the blob hash
14:43:32  <piscisaureus_>now i need the commit hash that contains the blob :-/
14:52:18  <bnoordhuis>damn, there's a command for that but i don't remember its name
14:54:24  <mmalecki>git reflog, perchance?
14:55:54  <mmalecki>no, not this one :/
15:00:14  * felixgequit (Ping timeout: 240 seconds)
15:00:20  <indutny>hey
15:00:38  <indutny>do you have an experience
15:00:46  <indutny>of creating parsers with left recursion?
15:01:38  * mmaleckigoogles left recursion
15:02:30  <mmalecki>right. computer science stuff, not a thing for me
15:02:48  <indutny>haha :)
15:02:49  <indutny>thanks
15:03:51  * felixgejoined
15:09:23  * felixgequit (Quit: http://www.debuggable.com/)
15:15:56  * dshaw_joined
15:17:04  <indutny>ok, looks like I got how to do that
15:41:43  * mmaleckiquit (Ping timeout: 244 seconds)
15:50:45  <bnoordhuis>kids are great but you don't get nearly enough sleep - 2x4 hours since tuesday... :/
15:51:14  <bnoordhuis>indutny: what do you need a parser for?
15:51:52  * mmaleckijoined
15:58:04  <CIA-111>node: Dave Irvine v0.6 * r045bfe0 / doc/api/crypto.markdown : docs: document 'encoding' arg of hash.update() - http://git.io/VxtE6w
16:00:57  <txdv>bnoordhuis: do you have kids?
16:01:50  <perezd>paddybyers: hey
16:01:52  <bnoordhuis>txdv: yes, one
16:02:05  <paddybyers>perezd: hi
16:02:12  <perezd>we got it running!
16:02:17  <paddybyers>cool
16:02:21  <perezd>we're using bridge2 branch
16:02:25  <perezd>we want to use the bridge afterall
16:02:27  <paddybyers>ok
16:02:46  <perezd>was that smart to use that branch?
16:02:52  <perezd>bridge regular did not compile
16:02:56  <paddybyers>I've been pushing a few changes today so I hope I haven't broken it :)
16:03:03  <paddybyers>yes
16:03:05  <perezd>okay
16:03:10  <perezd>so I have 2 questions
16:03:17  <perezd>what does the stub generator do/how do we use it
16:03:30  <perezd>and 1 what does an example module written on Java look like?
16:03:38  <perezd>I see that you can require the bridge and load a class file
16:03:50  <perezd>but then I don't know what a simple passing of a data type would look like :/
16:04:15  <paddybyers>perezd: ok, I don't know if we want to do it on this channel or somewhere else
16:04:20  <perezd>lets PM
16:05:30  <txdv>what kind of bridge are you talking about
16:06:11  * travis-cijoined
16:06:12  <travis-ci>[travis-ci] joyent/node#133 (v0.6 - 045bfe0 : Dave Irvine): The build passed.
16:06:12  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/d8c178b...045bfe0
16:06:12  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/437462
16:06:12  * travis-cipart
16:06:49  <bnoordhuis>now gyp is not picking up changes either... build systems *sigh*
16:09:22  <CIA-111>libuv: Paddy Byers master * rabf9654 / (6 files in 4 dirs):
16:09:22  <CIA-111>libuv: unix: create separate eio result queue per loop
16:09:22  <CIA-111>libuv: Makes the eio "done" callback run in the thread that submitted it. Makes it safe
16:09:22  <CIA-111>libuv: to use libeio from multiple event loops. - http://git.io/2lKkMA
16:09:23  <CIA-111>libuv: Ben Noordhuis master * rec8c500 / AUTHORS : Update AUTHORS and .mailmap - http://git.io/-vjSCQ
16:09:23  <mmalecki>let's write one that doesn't suck/
16:09:24  <CIA-111>libuv: Ben Noordhuis master * r271aa18 / src/unix/uv-eio.c : unix: eio_init() is not thread-safe, run atomically - http://git.io/mkSXhA
16:09:27  <CIA-111>libuv: Ben Noordhuis master * rd6a06b8 / (test/test-list.h test/test-thread.c): test: eio callbacks should run in their owning threads - http://git.io/l7Do2w
16:09:40  <CIA-111>node: Ben Noordhuis isolates2 * re2c90af / (9 files in 6 dirs): uv: upgrade to d6a06b8 - http://git.io/2_8A0g
16:09:41  <mmalecki>is it even possible?
16:10:54  * travis-cijoined
16:10:54  <travis-ci>[travis-ci] joyent/libuv#14 (master - d6a06b8 : Ben Noordhuis): The build is still failing.
16:10:54  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/10de090...d6a06b8
16:10:54  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/437541
16:10:54  * travis-cipart
16:20:04  <CIA-111>libuv: Ben Noordhuis v0.6 * r39481b7 / LICENSE : docs: add c-ares license note - http://git.io/Fl6eqA
16:20:59  <piscisaureus_>bnoordhuis: what should we be using... #ifdef DEBUG or #ifndef NDEBUG?
16:21:15  <bnoordhuis>piscisaureus_: the latter
16:21:26  * travis-cijoined
16:21:27  <travis-ci>[travis-ci] joyent/libuv#15 (v0.6 - 39481b7 : Ben Noordhuis): The build is still failing.
16:21:27  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/feb267e...39481b7
16:21:27  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/437599
16:21:27  * travis-cipart
16:21:42  * travis-cijoined
16:21:42  <travis-ci>[travis-ci] joyent/node#134 (isolates2 - e2c90af : Ben Noordhuis): The build is still failing.
16:21:42  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/76f7a9d...e2c90af
16:21:42  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/437548
16:21:42  * travis-cipart
16:29:00  * mmaleckiquit (Quit: leaving)
16:29:27  * mmaleckijoined
16:34:54  * dshaw_quit (Ping timeout: 240 seconds)
16:37:03  <CIA-111>node: Ju-yeong Park v0.6 * r5976d58 / (lib/net.js test/simple/test-net-write-after-close.js): net: raise exception when the socket is closed - http://git.io/dM4kzQ
16:37:03  <CIA-111>node: Ben Noordhuis v0.6 * rb261e37 / test/simple/test-net-write-after-close.js : test: ensure callback is executed - http://git.io/eUq4iQ
16:37:13  * rmustaccjoined
16:45:20  * travis-cijoined
16:45:20  <travis-ci>[travis-ci] joyent/node#135 (v0.6 - b261e37 : Ben Noordhuis): The build passed.
16:45:20  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/045bfe0...b261e37
16:45:20  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/437721
16:45:20  * travis-cipart
16:53:44  * mmaleckiquit (Ping timeout: 240 seconds)
16:53:57  * mmaleckijoined
17:22:49  <indutny>bnoordhuis: sorry, just got back
17:22:58  <indutny>bnoordhuis: I'm writing ometajs compiler
17:23:09  <indutny>and ometajs is a parser language
18:00:34  * TooTallNatejoined
18:37:39  <piscisaureus_>11>src\node_file.cc(564): error C2039: 'IsUInt32' : is not a member of 'v8::Value'
18:37:44  <piscisaureus_>how come
18:40:38  * pieternjoined
18:51:03  <piscisaureus_>> process._dumpWraps();
18:51:03  <piscisaureus_>[ 'Unknown wrap',
18:51:03  <piscisaureus_> 'Unknown wrap',
18:51:03  <piscisaureus_> 'Unknown wrap',
18:51:03  <piscisaureus_> 'Unknown wrap' ]
18:51:14  <piscisaureus_>Now to implement a decent message for each wrap type
18:58:29  <bnoordhuis>call tonight?
18:58:39  <bnoordhuis>ryah, piscisaureus_ ^
18:59:14  <bnoordhuis>piscisaureus_: that's an old error message.... the function is called IsUint32() (lower case i)
18:59:32  <piscisaureus_>probably I am at an old point :-)
19:02:37  <bnoordhuis>piscisaureus_: want to do the call? i don't really have anything
19:02:46  <piscisaureus_>me neither
19:03:01  <piscisaureus_>I have process._dumpWraps() to work on
19:03:40  <bnoordhuis>let's skip it then
19:27:53  <piscisaureus_>D:\node3>Debug\node.exe
19:27:53  <piscisaureus_>> require('net').createServer().listen(1234);
19:27:53  <piscisaureus_>{ connections: 0,
19:27:53  <piscisaureus_> allowHalfOpen: false,
19:27:53  <piscisaureus_> _handle:
19:27:53  <piscisaureus_> { writeQueueSize: 0,
19:27:53  <piscisaureus_> onconnection: [Function: onconnection],
19:27:55  <piscisaureus_> socket: [Circular] } }
19:27:55  <piscisaureus_>> process._dumpWraps();
19:27:55  <piscisaureus_>[ 'TTYWrap',
19:27:55  <piscisaureus_> 'TTYWrap',
19:27:56  <piscisaureus_> 'TCPWrap',
19:28:31  <piscisaureus_>'Unknown wrap' ]
19:28:34  <piscisaureus_>>
19:42:44  <piscisaureus_>ryah: yt?
19:49:38  <ryah>yo
19:49:44  <ryah>sorry - i slept in
19:49:47  <piscisaureus_>ryah: about domains
19:50:02  <piscisaureus_>ryah: what if we could make the timer linked list a per-domain thing?
19:50:34  <ryah>piscisaureus_: that might work
19:50:34  <piscisaureus_>ryah: then every timer wrap would be associated to just one domain and we would not have to do all this black magic
19:50:44  <ryah>well
19:50:49  <ryah>hm
19:51:08  <ryah>it means if you have a server where you put each connection into a domain
19:51:30  <ryah>then you're going to be creating a uv_timer_t for each connection
19:51:30  <piscisaureus_>yeah I know
19:51:39  <ryah>which is going to be a lot more work than what we currently
19:51:40  <piscisaureus_>but could we not just move that logic into the binding layer
19:51:41  <ryah>do
19:52:18  <ryah>what do you mean?
19:56:20  <ryah>piscisaureus_: in any case we need to get a patch that we can compare perf to and land before the full domains patch
19:56:40  <ryah>can that not be done without modifying the timer stuff?
19:56:53  * AndreasMadsenjoined
19:57:00  <ryah>like if we just do a patch where handles are in a linked list
19:57:03  <ryah>but only one
20:03:58  * pieternquit (Quit: pietern)
20:07:52  <piscisaureus_>yeah we can do that
20:07:59  <piscisaureus_>but I don't fear the linked list much -
20:08:09  <piscisaureus_>i fear the js-c transitions
20:08:19  <piscisaureus_>which are not required for putting handles in a linked list
20:13:31  <indutny>when are you going to release 0.7.0 ?
20:14:27  <ryah>soon
20:14:45  <ryah>i want to wrap up process._newIsolate first
20:14:53  <indutny>ah, ok
20:15:05  <indutny>going to polish debugger a little
20:39:06  <mjr_>Surely the common case would be to put every connection into its own domain.
20:40:28  <rmustacc>mjr_: Yes, but you have to rework a lot of modules for that to work for the entire connections lifetime. For example, the way most folks write a db client is to multiplex everything across a single conn and fire callbacks when that's done.
20:41:45  <mjr_>yeah, it's different for db drivers, for sure.
20:42:45  <rmustacc>I just wonder on how the interactions work to clean up everything cleanly when for example you have state in those shared channels.
20:42:50  <mjr_>BTW, we just did over 600K simultaneous HTTPS connections.
20:43:15  <ryah>mjr_++
20:43:17  <rmustacc>Wow, awesome.
20:43:54  <ryah>mjr_: please tweet that!
20:43:56  <mjr_>Hey, do you guys know any TCP wizards? We have a really crazy situation right now, where I think we are blowing up the switching fabric at SoftLayer.
20:44:07  <mjr_>They claim "microburst"
20:44:37  <mjr_>We are doing like 60gbits/sec in aggregate across the cluster, so this problem is really hard to understand by mere mortals.
20:44:52  <ryah>60gbit O_O
20:44:58  <mjr_>yeah, hilarious
20:45:02  <rmustacc>Wow, you're probably saturating their backplanes.
20:45:50  <mjr_>That's peak. We still lose packets even at off peak, but they claim we are in a cyclical burst thing where the average is low, but TCP keeps exhausting the buffer space on the switch ports.
20:46:32  <rmustacc>So I think I kind of understand what they're saying.
20:47:36  <rmustacc>Though I don't really understand why that's a function of the switch.
20:47:47  <rmustacc>They're dropping packets, so you're doing retransimits, generating even more load.
20:48:16  <mjr_>So if we have 37 machines trying to send data into 1 machine, then the port's drop policy is triggering some kind of pathological TCP behavior.
20:48:20  <mjr_>That's the theory.
20:48:50  <rmustacc>Okay, that makes some sense. Really the problem there is that you've exceeded their switching capacity.
20:48:56  <mjr_>So we'll probably do that to your switches once we move this over. :)
20:49:12  <rmustacc>Sounds good to me. ;)
20:49:24  <mjr_>Heh. I think so, but we saw this last night when each machine was only doing 100mbits.
20:49:39  <rmustacc>In this case it really isn't tcp's faults, but the switches.
20:49:41  <mjr_>Oh, but I guess even 100 * 30 could exceed the line rate.
20:49:52  <rmustacc>Yeah
20:50:13  <mjr_>Sure, if the switches had larger buffers, then I think we'd be OK, if indeed this is what's really happening.
20:50:24  <rmustacc>It's either larger buffers or a faster backplane.
20:50:36  <rmustacc>I'm not sure buffers are really as important as the switching backplane.
20:50:50  <rmustacc>That's what makes the difference between the cheap switches and the not cheap ones.
20:51:26  <mjr_>Of course, since our machines are spread out across their datacenter, you know, with clouds, we traverse a great many network elements.
20:51:36  <rmustacc>Yeah
20:52:46  <mjr_>Anyway, tricky.
20:55:08  <ryah>60gbit over 30 machines?
20:55:19  <ryah>meaning 2g per machine at peak?
20:55:49  <mjr_>So it's more like 700mbit/machine, but it's 700 up and 700 down.
20:55:56  <mjr_>And it's 37 machines.
20:56:13  <mjr_>Maybe I did the rounding in a misleading direction
20:57:31  <mjr_>ryah: when we get to 1M HTTPS, I'll tweet that.
20:58:16  * pieternjoined
21:02:22  <ryah>mjr_: ok
21:29:04  * brsonjoined
21:30:19  * pieternquit (Quit: pietern)
21:37:11  * brsonquit (Quit: leaving)
21:43:08  * AndreasMadsenquit (Remote host closed the connection)
21:46:37  <CIA-111>node: Ryan Dahl isolates2 * r2ac02f4 / (15 files):
21:46:37  <CIA-111>node: Add node::Loop() and don't inc node_isolate.h in *.cc
21:46:37  <CIA-111>node: node::Loop() replaces the NODE_LOOP macro. This avoids hitting
21:46:37  <CIA-111>node: v8::Isolate::GetCurrent() for each loop lookup when HAVE_ISOLATE==0 - http://git.io/eXysSg
21:50:06  <bnoordhuis>ryah: you get the emailed CLAs right?
21:52:17  <bnoordhuis>oh, test-isolates.js passes now btw
21:58:21  * travis-cijoined
21:58:22  <travis-ci>[travis-ci] joyent/node#136 (isolates2 - 2ac02f4 : Ryan Dahl): The build is still failing.
21:58:22  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/e2c90af...2ac02f4
21:58:22  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/438705
21:58:22  * travis-cipart
22:05:44  <ryah>bnoordhuis: for who?
22:06:39  <bnoordhuis>ryah: "for me" if the question was about test-isolates, otherwise https://github.com/joyent/node/pull/2400#issuecomment-3254785
22:24:50  <bnoordhuis>ah, i see the CLA in the list now
22:26:03  * pieternjoined
22:28:05  <CIA-111>node: Phil Sung v0.6 * rcf2513e / lib/buffer.js : buffer: don't pollute global namespace in buffer.readInt* - http://git.io/O1kO4g
22:36:29  * travis-cijoined
22:36:29  <travis-ci>[travis-ci] joyent/node#137 (v0.6 - cf2513e : Phil Sung): The build passed.
22:36:29  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/b261e37...cf2513e
22:36:29  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/438815
22:36:29  * travis-cipart
22:44:50  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
22:49:24  * paddybyersquit (Quit: paddybyers)
23:11:23  <txdv>this channel warms my heart
23:19:41  * paddybyersjoined
23:26:04  <txdv>readdir has a flags field, what kind of flags can i provide there?
23:28:53  <bnoordhuis>txdv: just zero for now
23:34:16  * bnoordhuisquit (Ping timeout: 240 seconds)