00:06:46  * eyeshlootchanged nick to isaacs
00:30:51  * beachdogjoined
00:34:22  * brsonquit (Ping timeout: 248 seconds)
00:46:39  * mmaleckiquit (Ping timeout: 252 seconds)
00:55:54  * ArmyOfBrucequit (Excess Flood)
00:56:22  * ArmyOfBrucejoined
00:57:52  * ArmyOfBrucequit (Excess Flood)
00:58:25  * ArmyOfBrucejoined
01:00:15  * avalanche123quit (Quit: Computer has gone to sleep.)
01:02:35  * ArmyOfBrucequit (Excess Flood)
01:03:05  * ArmyOfBrucejoined
01:13:44  * beachdogquit (Remote host closed the connection)
01:15:27  * AutowiredConstruquit (Quit: staticif)
01:42:28  * ArmyOfBrucequit (Excess Flood)
01:42:57  * ArmyOfBrucejoined
01:46:29  * abraxasjoined
01:52:49  * mmaleckijoined
01:57:39  * mmaleckiquit (Ping timeout: 245 seconds)
02:04:29  * dshaw_joined
02:19:48  * beachdogjoined
02:20:20  * avalanche123joined
02:38:01  * dshaw_quit (Quit: Leaving.)
03:01:36  * beachdogquit (Remote host closed the connection)
03:07:16  * Benviequit
03:23:26  * bnoordhuisquit (Ping timeout: 248 seconds)
03:39:47  * dshaw_joined
04:15:55  * avalanche123quit (Quit: Computer has gone to sleep.)
04:54:13  * TheJHjoined
05:02:47  * TheJHquit (Ping timeout: 244 seconds)
05:22:13  * paddybyersjoined
05:54:12  * avalanche123joined
06:34:11  * avalanche123quit (Quit: Computer has gone to sleep.)
06:54:08  * rendarjoined
06:54:25  * FUUFREENODESTOPBjoined
06:54:33  * FUUFREENODESTOPBchanged nick to `3rdEden
07:16:56  * Benviejoined
07:45:52  * papertigersquit (Ping timeout: 246 seconds)
08:02:26  * mmaleckijoined
08:06:04  * dshaw_quit (Quit: Leaving.)
08:34:15  * ibobrikjoined
08:34:33  <ibobrik>isaacs: can you review this? https://github.com/joyent/node/pull/3972
08:51:57  <indutny>hoho
08:56:41  * hzjoined
09:15:49  * paddybyersquit (Quit: paddybyers)
09:19:31  * paddybyersjoined
10:35:45  * stagasjoined
10:56:25  * abraxasquit (Remote host closed the connection)
10:59:18  * hzquit (Ping timeout: 272 seconds)
11:08:46  * Benviequit
11:12:35  * papertigersjoined
11:15:38  * Benviejoined
11:37:48  * hzjoined
11:50:06  * bnoordhuisjoined
11:54:10  * beachdogjoined
12:02:44  * abraxasjoined
12:04:08  * beachdogquit (Remote host closed the connection)
12:05:22  * abraxasquit (Remote host closed the connection)
12:16:18  * beachdogjoined
12:20:46  <deoxxa>ibobrik: 7/10 would read again
13:07:13  <CIA-129>libuv: Ben Noordhuis v0.8 * r33bcb63 / gyp_uv : build: make gyp_uv understand '-f ninja' - http://git.io/OqSraQ
13:07:13  <CIA-129>libuv: Ben Noordhuis v0.8 * r12c25e1 / src/unix/stream.c : unix: fix EMFILE busy loop - http://git.io/8eQbJw
13:08:54  * travis-cijoined
13:08:54  <travis-ci>[travis-ci] joyent/libuv#663 (v0.8 - 12c25e1 : Ben Noordhuis): The build is still failing.
13:08:54  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/b101a53e6ef8...12c25e1027e2
13:08:54  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2395538
13:08:54  * travis-cipart
13:13:09  * mmaleckichanged nick to mmalecki[away]
13:16:03  <indutny>bnoordhuis: hey man
13:16:12  <indutny>bnoordhuis: do you like reviewing in mind?
13:16:16  <indutny>i.e. w/o testing?
13:16:17  * piscisaureusjoined
13:16:20  <piscisaureus>hey indutny
13:16:24  <indutny>piscisaureus: hey ya!
13:16:29  <piscisaureus>indutny: the fsevents patch works well for me
13:16:50  <piscisaureus>indutny: it passes all tests except proctitle (which is unrelatedO
13:17:03  <piscisaureus>indutny: I'm on mountain lion
13:17:06  <indutny>piscisaureus: yay!
13:17:15  <indutny>piscisaureus: can I ask you to print filename in fs_watch_dir test?
13:17:21  <indutny>piscisaureus: I wonder if it emits directory name or filename?
13:17:27  <piscisaureus>ok
13:18:40  <piscisaureus>stupid xcode wants to upgrade first
13:19:28  <indutny>haha
13:19:33  <indutny>they only want you to pay money
13:19:35  <indutny>nothing more
13:20:10  <indutny>I wonder if all scheduled CFRunLoop signals will be performed after calling CFRunLoopStop
13:20:13  <indutny>piscisaureus: what do you think?
13:20:17  <indutny>piscisaureus: this is not really documented
13:20:24  <piscisaureus>indutny: I have no idea
13:20:27  <indutny>if they're not - I need to free memory in loop_delete
13:20:37  <indutny>otherwise - not
13:20:46  <piscisaureus>you should try - I don't know
13:21:05  <indutny>it's hard to try
13:21:09  <indutny>things are racey there
13:21:34  <indutny>it's like you should schedule FSEventStream and kill loop immediately
13:21:40  <indutny>which can't happen normally
13:22:31  <indutny>looks like I need to release them
13:22:32  <indutny>oh crap
13:22:35  <piscisaureus>indutny: it prints 1 filename
13:22:39  <indutny>piscisaureus: great
13:22:46  <indutny>full path to file including it's filename?
13:22:47  <piscisaureus>er
13:23:03  <piscisaureus>indutny: it prints watch_dir
13:23:09  <indutny>oh
13:23:14  <indutny>that makes me sad
13:24:11  <indutny>piscisaureus: can you check one more thing please?
13:24:15  <piscisaureus>indutny: sure
13:24:26  <indutny>piscisaureus: is HAVE_FILE_FSEVENTS set for you/
13:24:36  <indutny>piscisaureus: it's declared in src/unix/internal.h
13:26:56  <piscisaureus>indutny: I don't think it is
13:27:02  <indutny>that's really odd!
13:27:14  <indutny>#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070
13:27:19  <indutny>this is a condition for it to be set
13:29:06  <piscisaureus>1080 it says for me
13:30:20  <piscisaureus>it gets to that point
13:30:26  <piscisaureus>maybe internal.h isn't included?
13:30:51  <piscisaureus>btw - we should attempt to generate binaries that are not version specific
13:30:54  <piscisaureus>indutny: ^
13:31:12  <piscisaureus>indutny: ah, I see.
13:31:17  <piscisaureus>indutny: yes it is set.
13:31:32  <piscisaureus>indutny: I was just checking in a file that didn't include internal.h
13:31:37  <indutny>aah
13:31:39  <indutny>piscisaureus: ok
13:31:43  <indutny>piscisaureus: about binary compatibility
13:31:54  <indutny>piscisaureus: it's just flags that are unsupported/not-used on 10.6.8 and older
13:31:59  <indutny>piscisaureus: OS will ignore them
13:32:01  <piscisaureus>indutny: but - is it possible to switch this feature at runtime
13:32:23  <indutny>piscisaureus: what are you proposing?
13:33:02  <indutny>piscisaureus: option?
13:33:25  <piscisaureus>indutny: so, are these flags really ignored by the os or do they make it fail?
13:33:28  <indutny>piscisaureus: having option means that we'll need to have polyfills for missing constants and enums
13:33:37  <indutny>piscisaureus: they *should* be ignored
13:33:37  <piscisaureus>indutny: yes
13:33:42  <indutny>piscisaureus: well, I tried it on 10.6.8
13:33:52  <indutny>was hoping to see some secret, not exposed yet APIs
13:33:55  <piscisaureus>indutny: linux has polyfills, windows has polyfills
13:34:54  <piscisaureus>indutny: anything else you need me to check?
13:35:01  <indutny>piscisaureus: nope
13:35:03  <indutny>piscisaureus: thanks
13:35:06  <piscisaureus>indutny: okk, cool
13:35:10  <indutny>piscisaureus: code review would be welcome too :)
13:35:19  <piscisaureus>indutny: will do
13:35:39  <indutny>piscisaureus: please pull from my branch before it
13:35:45  <indutny>piscisaureus: I've just force-pushed
13:35:49  <piscisaureus>indutny: pull, why?
13:35:51  <piscisaureus>ah
13:35:54  <indutny>piscisaureus: to free all remaining data
13:35:54  <piscisaureus>i will do it on gh
13:35:58  <indutny>piscisaureus: ok
13:36:01  <indutny>piscisaureus: refresh then :D
13:36:46  <piscisaureus>indutny: that was way too easy. I am going to look very carefully for race conditions in that logic :')
13:36:56  <indutny>piscisaureus: haha
13:37:02  <indutny>well, it wasn't
13:37:06  <indutny>but yeah, look carefully
13:37:11  * piscisaureus_joined
13:37:17  <indutny>I spent one day on it
13:37:17  <indutny>:D
13:38:07  <piscisaureus>indutny: so did you find a way to do it without a separate thread btw?
13:38:16  <indutny>piscisaureus: well, I'm still searching
13:38:33  <piscisaureus>indutny: I think we should land this after review btw
13:38:34  <indutny>piscisaureus: I found that cfrunloop is esentially a poller on mach port set
13:38:41  <piscisaureus>that makes sense
13:38:55  <piscisaureus>indutny: I wonder how fsevents are implemented in the kernel
13:38:59  <piscisaureus>indutny: or, in userspace
13:38:59  <indutny>piscisaureus: so, I need to figure out if it'll work after I'll poll on it with kevent
13:39:09  <indutny>piscisaureus: dunno
13:39:12  <indutny>piscisaureus: it's not a part of kernel
13:39:22  <indutny>piscisaureus: nor it's opensource
13:39:28  <piscisaureus>ah
13:39:43  <piscisaureus>indutny: well, it must be using some kernel services
13:39:49  <piscisaureus>I suppose we could access them directly
13:40:01  <indutny>piscisaureus: probably
13:40:12  <bnoordhuis>indutny: what do you see with truss / dtruss?
13:40:19  <indutny>I think it's part of vfs
13:40:27  <indutny>bnoordhuis: !
13:40:30  <indutny>thanks for reminding
13:40:55  <piscisaureus>indutny: it could be that writing to this .fseventsd file is implemented in the kernel
13:41:05  <piscisaureus>but that reading it is user mode
13:41:10  <piscisaureus>maybe it uses a simple kqueue fd watcher
13:41:27  <indutny>piscisaureus: probably
13:41:28  <indutny>piscisaureus: recursive
13:41:37  <piscisaureus>indutny: ?
13:42:30  <indutny>bnoordhuis: nothing interesting in dtruss
13:42:38  <indutny>bnoordhuis: looks like everything interesting is happening in kernel
13:42:50  <piscisaureus>indutny: what syscalls are you seeing?
13:43:09  <indutny>piscisaureus: https://gist.github.com/d5f65a70f1f8d324405b
13:43:18  <indutny>nothing
13:43:18  <indutny>really
13:43:59  <indutny>I think I've logged it wrong
13:44:10  <piscisaureus>do it again
13:44:20  <indutny>sudo dtruss ./out/Debug/run-tests fs_event_watch_dir fs_event_watch_dir
13:44:23  <piscisaureus>if there are *no* interesting syscalls then it must be happening in user mode
13:44:27  <indutny>I can't see unlinks and everything
13:44:58  <indutny>aaah
13:45:02  <indutny>running tests as root is not safe
13:45:04  <indutny>crap
13:45:05  <indutny>:D
13:46:34  <piscisaureus>yeah that's the most stupid warning
13:46:38  <piscisaureus>who put that here
13:46:44  <piscisaureus>let's fire the guy
13:47:32  <indutny>piscisaureus: updated gist
13:48:01  <indutny>brb
13:50:35  <indutny>back
13:53:39  * c4milojoined
13:54:17  <piscisaureus_>indutny: so I don't see it registering the watched folder
13:54:25  <indutny>piscisaureus_: yeah, me too
13:54:28  <piscisaureus_>except if ti would be the getattrlist syscall
13:56:56  * c4milo_joined
13:57:13  * c4miloquit (Read error: No route to host)
14:00:52  * beachdogquit (Remote host closed the connection)
14:01:27  * beachdogjoined
14:01:32  <piscisaureus>I wish dtrace would trace back symbolic names
14:01:34  <piscisaureus>this is shit
14:05:55  * abraxasjoined
14:07:09  * piscisaureus_quit (Read error: Connection reset by peer)
14:07:22  * piscisaureus_joined
14:09:24  <piscisaureus>githuuuubbbb
14:10:39  * abraxasquit (Ping timeout: 264 seconds)
14:13:19  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
14:18:03  <bnoordhuis>spartaaaaa!
14:19:40  <tjfontaine>yet another reason why git should be dht based, branches allow pushing based on gpg trust rings, and github should store issues in a branch
14:20:13  <piscisaureus>tjfontaine: I think bzr comes close to that
14:20:26  <piscisaureus>tjfontaine: I think it's overly complex
14:21:19  <tjfontaine>piscisaureus: heh, whoever said [d]vcs was simple :)
14:21:32  <piscisaureus>indutny: I get a very different trace
14:21:44  <indutny>hm...
14:21:46  <indutny>interesting
14:22:26  <indutny>piscisaureus: so, what do you see?
14:23:17  <piscisaureus>yeah I trying to gist it but gista broke somehow
14:23:57  <indutny>ah
14:24:13  <piscisaureus>oh wait
14:24:16  <piscisaureus>github is down
14:24:16  <piscisaureus>haha
14:25:17  <indutny>ahah
14:25:17  <bnoordhuis>no github and i'm out of beer
14:25:17  <piscisaureus>pastebin.com/FGGREBME
14:25:19  <bnoordhuis>i'm bored :(
14:25:31  <piscisaureus>bnoordhuis: why?
14:25:47  <bnoordhuis>github tells me what to do
14:25:54  <bnoordhuis>(well, the issue tracker)
14:26:15  <tjfontaine>there are scripts out there to backup issues :)
14:26:24  <indutny>piscisaureus: and?
14:28:29  <piscisaureus>dunno yet
14:28:50  <piscisaureus>indutny: I'm bored too because I can't look at yur PR conveniently
14:28:57  <piscisaureus>so now I am going to dig into this
14:29:13  <indutny>piscisaureus: I'm looking at it's disasm
14:29:15  <piscisaureus>bnoordhuis: make a makefile for the pl -> asm/s stuff
14:29:24  <bnoordhuis>piscisaureus: what's the magic word?
14:29:31  <tjfontaine>beer
14:29:44  <bnoordhuis>that's _a_ magic word, granted
14:29:58  <piscisaureus>:-)
14:30:00  <piscisaureus>bierrrr
14:31:46  <CIA-129>libuv: Ben Noordhuis emfile_trick * rfc0609d / src/unix/stream.c : Merge branch 'v0.8' - http://git.io/WWV_Bg
14:31:47  <CIA-129>libuv: Ben Noordhuis emfile_trick * rde8fc7b / (3 files in 2 dirs): unix: reimplement accept() EMFILE trick - http://git.io/FP9vXw
14:33:05  <bnoordhuis>piscisaureus: ^ want to review that?
14:33:09  <bnoordhuis>indutny: you too, if you want
14:33:19  <tjfontaine>when github comes back :)
14:33:24  <indutny>hahah
14:33:26  <indutny>yeah, sure
14:33:29  <indutny>bnoordhuis: can you send me patch?
14:33:32  <indutny>bnoordhuis: to my email
14:33:38  <bnoordhuis>yeah... github's still kind of flaky
14:33:40  <indutny>old-school process
14:33:44  <bnoordhuis>indutny: sure but there's no ursh
14:33:47  <bnoordhuis>rush
14:33:50  <indutny>ursh
14:33:52  <bnoordhuis>no ursh too though
14:33:55  <indutny>github feels urshy today
14:41:06  <piscisaureus>bnoordhuis: lgtm with this comment
14:41:21  <piscisaureus>bnoordhuis: if we can't avoid EMFILE we should report it to the accept cb somehow
14:41:39  <piscisaureus>and implicitly stop accepting (eg remove the listening socket from the poll set)
14:42:11  <bnoordhuis>the EMFILE gets reported when the accept trick fails
14:42:26  <bnoordhuis>maybe i should save errno just in case
14:42:38  <bnoordhuis>but why stop accepting?
14:42:46  <piscisaureus>bnoordhuis: otherwise the loop will spin
14:43:06  <piscisaureus>bnoordhuis: also, it meshes well with what ather watchers do
14:43:06  * beachdogquit (Ping timeout: 276 seconds)
14:43:27  <piscisaureus>bnoordhuis: I mean, reading is also implicitly stopped when an error happens
14:43:47  <piscisaureus>so does uv_poll
14:43:57  <piscisaureus>the fs poller might be the only exception so far
14:45:43  * beachdogjoined
14:46:32  * beachdogquit (Remote host closed the connection)
14:47:06  * beachdogjoined
14:47:37  <isaacs>i saw people tweeting about github being down and was very confused until i realized that they meant the website.
14:48:06  <isaacs>the git interface is working fine
14:55:49  * beachdog_joined
14:56:16  * ibobrikquit (Quit: ibobrik)
14:57:33  <stagas>isaacs: how can I see in npm which files will get bundled when I do publish
14:58:03  <isaacs>stagas: npm pack; tar ztv *.tgz; rm *.tgz
14:58:14  <isaacs>stagas: npm pack; tar ztvf *.tgz; rm *.tgz
14:58:17  <isaacs>need the f
14:58:33  <isaacs>you could probably write a program using fstream-npm that would do this, also
14:59:10  <isaacs>var P = require('fstream-npm');P({path: '.'}).on('child', function (c) { console.log(c.path) })
14:59:32  <piscisaureus>indutny: hey, I think fsevents uses kqueue under the hood
14:59:36  * beachdogquit (Ping timeout: 256 seconds)
14:59:56  <piscisaureus>indutny: I mean, if you look at the dtruss logs you'll see 2 kqueue() calls
15:00:31  <piscisaureus>indutny: also, right after unlinking you see a kevent return
15:01:02  <isaacs>stagas: https://gist.github.com/3691344
15:01:07  <stagas>isaacs: ok, is there a way to exclude an ignore or force a dir? in .gitignore you can do "file\n!not/that/file" and it cancels the ignore for that one
15:01:23  <isaacs>stagas: yep. same syntax in .npmignore
15:01:31  <indutny>piscisaureus: hm... :)
15:01:37  <stagas>isaacs: it doesn't pick it up from .gitignore
15:01:47  <isaacs>stagas: it picks up from .gitignore if there's no .npmignore in that folder
15:01:49  <indutny>piscisaureus: so, the question
15:01:58  <indutny>do we need it, or not then :D
15:03:07  <isaacs>stagas: https://gist.github.com/3691353
15:03:11  <stagas>isaacs: it doesn't, there's no .npmignore in the dir but in the tgz there is one
15:03:22  <indutny>piscisaureus: I think it's watching /dev/fseventsd
15:03:29  <isaacs>stagas: in creating the tgz, it renames .gitignroe to .npmignore if it used it
15:03:37  <isaacs>stagas: so that installed pacakges never contain a .gitignore
15:03:41  <isaacs>stagas: the better to bundle your deps
15:03:48  <isaacs>stagas: let's move this to #node.js
15:06:34  <indutny>piscisaureus: ok, it's a kernel thing
15:06:38  <indutny>piscisaureus: I've finally found it in xnu
15:06:43  <indutny> /dev/fsevents
15:06:57  <piscisaureus>indutny: I think it's open by default
15:07:02  <indutny>yeah
15:07:05  <indutny>by fseventsd
15:07:09  <piscisaureus>indutny: the fd: 0x7000000
15:07:10  <piscisaureus>:-)
15:07:13  <indutny>;)
15:07:38  <indutny>why?
15:07:39  * paddybyersquit (Read error: Connection reset by peer)
15:07:40  <indutny>where?
15:07:51  <piscisaureus>indutny: you can see it being mmap'ed in the dtrace log
15:07:54  <piscisaureus>*dtruss
15:08:19  * paddybyersjoined
15:09:18  <indutny>aaah
15:09:23  <indutny>I see now
15:09:31  <indutny>this is probably .fseventsd directory
15:09:43  <piscisaureus>well, probably not a directory :-)
15:09:47  <piscisaureus>indutny: since you can't mmap those
15:09:53  <piscisaureus>indutny: but take a look
15:09:53  <indutny>hm...
15:09:56  <indutny>interesting!
15:10:43  <indutny>piscisaureus: http://my.safaribooksonline.com/book/operating-systems-and-server-administration/mac-os-x/9780321706560/kqueue-and-fsevents/ch16#X2ludGVybmFsX0ZsYXNoUmVhZGVyP3htbGlkPTk3ODAzMjE3MDY1NjAvY2gxNmxldjFzZWM5
15:12:25  * travis-cijoined
15:12:25  <travis-ci>[travis-ci] joyent/libuv#665 (emfile_trick - de8fc7b : Ben Noordhuis): The build is pending.
15:12:25  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/fc0609d1b905^...de8fc7b8368e
15:12:25  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2396283
15:12:25  * travis-cipart
15:12:50  <indutny>piscisaureus: ok, so it's doing it's own hackery there
15:12:59  <indutny>piscisaureus: do you want to land my patch
15:13:04  <indutny>piscisaureus: or to continue hacking? ;)
15:13:43  <indutny>piscisaureus: actually, FSEventStream is a mach port
15:13:52  * travis-cijoined
15:13:53  <travis-ci>[travis-ci] joyent/libuv#665 (emfile_trick - de8fc7b : Ben Noordhuis): The build passed.
15:13:53  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/fc0609d1b905^...de8fc7b8368e
15:13:53  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2396283
15:13:53  * travis-cipart
15:13:58  <indutny>piscisaureus: so we can watch it using kqueue
15:14:08  <indutny>and do some hackery after
15:14:12  <indutny>going to move to another place
15:14:16  <indutny>ttyl
15:19:58  <piscisaureus>ttyl
15:29:04  * mmalecki[away]changed nick to mmalecki
15:42:22  <piscisaureus>indutny: so we could also just use /dev/fsevents directly?
15:43:16  * ibobrikjoined
15:44:12  <bnoordhuis>piscisaureus: otherwise the loop will spin <- the idea is that libuv closes pending connections to stop epoll_wait() / kevent() / etc. from waking up all the time
15:56:58  <piscisaureus>bnoordhuis: well, if the trick fails then it doesn't work
15:57:08  <piscisaureus>bnoordhuis: and then your emfile_fd is spilt
15:57:15  <bnoordhuis>piscisaureus: yes, but then the user gets a EMFILE error
15:57:18  <piscisaureus>so you'll have to stop accepting
15:57:20  <piscisaureus>ah, right
15:57:21  <piscisaureus>ok
15:57:28  <piscisaureus>if it works you're good
15:57:33  <bnoordhuis>i'm good
15:57:35  <piscisaureus>ship it then
15:57:40  <bnoordhuis>always ship trunk
15:57:54  <bnoordhuis>indutny: comments?
16:01:38  * piscisaureus1joined
16:01:40  * piscisaureus1changed nick to piscisaureus_
16:01:57  <piscisaureus_>indutny: http://osxbook.com/software/fslogger/download/fslogger.c
16:07:02  <piscisaureus>indutny: I can confirm that it works. unfortunately you need to be root to use it
16:07:13  <piscisaureus>indutny: but if you use it it *does* report full filenames
16:13:12  <CIA-129>node: isaacs v0.8 * r54a4c63 / (662 files in 117 dirs): npm: Upgrade to 1.1.61 - http://git.io/XNVapQ
16:30:48  * dapjoined
16:38:54  * ibobrikquit (Read error: Connection reset by peer)
16:44:52  * loladirojoined
16:45:23  <piscisaureus>man, mac os x is almost as opaque as windows
16:45:52  * TooTallNatejoined
16:51:34  * piscisaureus_quit (Quit: Leaving.)
16:54:13  * TheJHjoined
16:57:01  * `3rdEdenquit (Quit: Linkinus - http://linkinus.com)
16:57:54  * txdvjoined
16:57:58  * loladiroquit (Quit: loladiro)
17:02:56  * paddybyersquit (Quit: paddybyers)
17:08:24  * loladirojoined
17:20:41  * loladiroquit (Quit: loladiro)
17:21:21  * beachdog_quit (Read error: Connection reset by peer)
17:21:32  * beachdogjoined
17:21:57  * dshaw_joined
17:35:23  * beachdogquit (Read error: Connection reset by peer)
17:35:48  * beachdogjoined
17:37:04  * beachdogquit (Remote host closed the connection)
17:37:56  * joshthecoderjoined
17:39:09  * brsonjoined
17:47:10  * hzquit (Disconnected by services)
17:47:16  * hzjoined
17:53:56  <indutny>piscisaureus: haha
17:54:51  * brsonquit (Quit: leaving)
17:55:05  * brsonjoined
17:57:26  * beachdogjoined
17:59:21  <indutny>piscisaureus: we can use FSEventStream pointer
17:59:31  <indutny>piscisaureus: I'll experiment and tell you results
18:00:04  * AutowiredConstrujoined
18:03:13  * beachdogquit (Remote host closed the connection)
18:07:44  <piscisaureus>I wonder why stat("/AppleInternal") shows up in my dtruss output
18:07:58  <piscisaureus>if I create that file, will it show me the new iphone?
18:08:32  <tjfontaine>it will open a portal straight to 1 infinite loop
18:08:45  <tjfontaine>and the cryo chamber that holds steve
18:08:51  <piscisaureus>infinite loop, hmm
18:08:56  <piscisaureus>I though the refcount refactor fixed that
18:09:25  <TooTallNate>haha
18:14:25  <indutny>hehehe
18:14:28  <indutny>piscisaureus: how funny
18:15:07  <mmalecki>indutny: tonight I'll be floating your SSL patches
18:15:15  <indutny>mmalecki: in production?
18:15:44  <mmalecki>yup. I'll report back after setting up some analytics, but general benchmarks showed significant speed up.
18:15:50  <mmalecki>would be good to include them in v0.8
18:30:58  * paddybyersjoined
18:40:49  <piscisaureus>xcode y u no line numbers
18:40:53  * piscisaureuscries
18:45:41  * loladirojoined
18:46:21  * loladiroquit (Client Quit)
18:46:49  <indutny>piscisaureus: y u xcode?
18:49:25  <piscisaureus>because I can't do vi
18:51:43  <indutny>piscisaureus: why?
18:51:47  <indutny>piscisaureus: I can teach you
18:52:05  <indutny>or you can use some java junk ide :D
18:52:20  <piscisaureus>also I don't know how to open files on os x
18:52:29  <piscisaureus>I always use "open <filename>"
18:52:36  <mmalecki>piscisaureus: vim <filename>
18:52:42  <mmalecki>it's the only reasonable way
18:52:45  <piscisaureus>smartass
18:53:03  <mmalecki>kinda hard to look at images like that, but you have to get used to it
18:53:41  <piscisaureus>haha
18:53:42  <indutny>open works for me
18:53:49  <indutny>and yeah
18:53:51  <piscisaureus>open is like a dice
18:53:51  <indutny>I see redhead
18:54:09  <piscisaureus>it always opens another app you didn't knew you had installed
18:54:14  <indutny>hahaha
18:54:16  <indutny>very good
18:54:20  <indutny>very good, man
18:54:23  <piscisaureus>they should rename it to slotmachine
18:54:39  <indutny>hard to type
18:54:42  <indutny>otherwise they did
18:54:48  <piscisaureus>it opens the file 3 times
18:55:00  <piscisaureus>if you get 3 times the same editor you win the jackpot
18:57:43  <indutny>piscisaureus: I think we should be able to get port set out of cfrunloop's mode
18:58:00  <indutny>and actually it's very odd for me that it's waiting not on runloop's port, but on mode's port
19:00:25  <piscisaureus>I am under the impression that dtruss might not catch all syscalls
19:00:48  * V1joined
19:00:59  <indutny>piscisaureus: struct { } *A;
19:01:03  <indutny>piscisaureus: what does this mean?
19:01:14  <indutny>piscisaureus: A is a pointer to struct?
19:01:24  <indutny>or what?
19:01:58  <piscisaureus>indutny: it is a declaration for variable A
19:02:04  <indutny>oh shit
19:02:09  <piscisaureus>indutny: with type struct {...} *
19:02:11  <indutny>but there're typedef with the same name
19:02:24  <indutny>typedef mach_port_t __CFPortSet;
19:02:31  <indutny>ah
19:02:31  <indutny>wait
19:02:35  <indutny>it's even more interesting
19:02:37  <indutny>ok, I got it
19:03:21  * paddybyersquit (Quit: paddybyers)
19:04:43  <indutny>piscisaureus: interesting thing
19:04:50  <indutny>piscisaureus: runloopmode has _kq property
19:04:55  <indutny>which is not used anywhere
19:05:07  <indutny>piscisaureus: I think they're lying :D
19:05:10  <piscisaureus>indutny: I can see in the dtrace logs that the runloop uses a kqueue under the hood
19:05:19  <piscisaureus>indutny: it also adds and removes events
19:06:02  * V1changed nick to `3rdEden
19:06:03  <indutny>piscisaureus: aha!
19:06:10  <indutny>piscisaureus: well, that may happen in xnu
19:06:11  <indutny>not in CF
19:06:20  <piscisaureus>indutny: link?
19:07:15  * loladirojoined
19:07:18  * loladiroquit (Client Quit)
19:07:25  <indutny>to what?
19:07:30  <indutny>I can't find where it's happening
19:24:22  <piscisaureus>is brendan gregg around?
19:41:30  * paddybyersjoined
19:47:29  <piscisaureus>it's super annoying that dtruss reorders all syscalls
19:47:35  <piscisaureus>even within the same thread
19:47:36  <piscisaureus>:-(
19:47:45  * paddybyersquit (Quit: paddybyers)
19:52:19  <indutny>piscisaureus: yeah
19:52:23  <indutny>very annoying
19:52:36  <indutny>piscisaureus: trying to pull mach ports out of loop
19:52:41  <indutny>it's possible but really hard
19:53:20  <piscisaureus>indutny: btw - there are some races in your code
19:53:35  <indutny>piscisaureus: oh, really?
19:53:35  <piscisaureus>indutny: I added some sleep(1) calls to impose timing constraints
19:53:42  <indutny>piscisaureus: where?
19:53:43  <piscisaureus>indutny: now the tests no longer pass
19:53:47  <indutny>hahaha
19:54:04  <piscisaureus>indutny: I think adding a watch isn't done immediately
19:54:17  <indutny>piscisaureus: sure, it isn't
19:54:28  <indutny>it's happening in another thread
19:56:59  <piscisaureus>indutny: I don't see any mach ports being created btw - unless dtruss doesn't show it
19:59:37  <indutny>it may not show it
19:59:38  <indutny>idk
19:59:43  <indutny>but they're really used internalyl
19:59:45  <indutny>to wait
19:59:45  <piscisaureus>... which wouldn't surprise me, because sleep() also doesnt show up
19:59:51  * TooTallNatequit (Quit: Computer has gone to sleep.)
20:06:21  * piscisaureus1joined
20:06:33  <piscisaureus1>indutny: https://gist.github.com/3693484
20:06:51  <indutny>ahha
20:07:03  <indutny>well
20:07:12  <indutny>that's expected
20:07:22  <piscisaureus1>ok
20:07:53  <indutny>what's not expected
20:07:57  <indutny>why kevent() returns ENOENT
20:07:59  <indutny>bnoordhuis: ^
20:07:59  <piscisaureus1>so it's really a big mess with kqueue, mach ports, and gcd all over the place
20:08:20  <bnoordhuis>indutny: closed fd?
20:08:27  <indutny>ahh
20:08:29  <indutny>nevermind
20:08:32  <indutny>forgot to add flag
20:09:02  <indutny>EV_ADD
20:13:53  <CIA-129>libuv: Ben Noordhuis master * r86cb520 / src/unix/stream.c : unix: fix EMFILE busy loop - http://git.io/NztG7w
20:13:54  <CIA-129>libuv: Ben Noordhuis master * r4f5c8da / (3 files in 2 dirs): unix: reimplement accept() EMFILE trick - http://git.io/thMeQA
20:14:56  <piscisaureus1>indutny: the mach port used is defined here: http://opensource.apple.com/source/libdispatch/libdispatch-228.18/src/source.c
20:15:04  <piscisaureus1>indutny: unfortunately it's all static
20:15:11  <indutny>I know
20:15:19  <indutny>i'm looking at this now too
20:15:27  <indutny>almost got cfrunloop work with kqueue
20:15:34  * travis-cijoined
20:15:34  <travis-ci>[travis-ci] joyent/libuv#666 (master - 4f5c8da : Ben Noordhuis): The build passed.
20:15:34  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/27b11abcc066...4f5c8da191a2
20:15:34  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/2400431
20:15:34  * travis-cipart
20:18:35  <piscisaureus1>indutny: I think we're out of luck with this approach...
20:19:25  <indutny>piscisaureus1: can't say this about my approach
20:19:30  <indutny>though it's using a lot of BSD code
20:19:38  * TooTallNatejoined
20:19:40  <indutny>but I'm very close to getting it work
20:19:49  <piscisaureus>indutny: so how does it work?
20:19:51  <indutny>only can't listen on _wakeUpPort
20:19:59  <indutny>piscisaureus: I'm just touching RunLoop structure internals
20:20:05  <indutny>taking mach ports out of it
20:20:10  <indutny>and adding them to kqueue
20:20:15  <indutny>and then calling CFRunLoopInMode
20:20:20  <indutny>with small timeout
20:20:29  <piscisaureus>ah
20:20:50  <indutny>it should work :)
20:21:09  <indutny>but, kevent returns ENOTSUP for _wakeUpPort
20:21:16  <indutny>while it works fine on mode's port
20:25:28  <piscisaureus>indutny: is it actually a valid mach port?
20:25:58  <piscisaureus>indutny: also it has to be a port set. kqueue only supports port sets, not individual ports
20:26:15  <piscisaureus>(atleast on os x > 10.5)
20:26:15  <indutny>piscisaureus: dunno, how to check?
20:26:20  <indutny>oooh
20:26:24  <indutny>port set
20:26:31  <indutny>thanks man
20:27:10  <indutny>and how to create one? :)
20:27:30  <piscisaureus>indutny: special flag to mach_port_create (or what's the thing called again)
20:27:39  <indutny>piscisaureus: ok, let me try
20:27:51  <piscisaureus>mach_port_allocate
20:30:31  <indutny>ok
20:32:09  <indutny>VFILT_MACHPORT Takes the name of a mach port, or port set, in ident and waits until a message is received on the port or port set. When a message is recieved, the size of the
20:32:09  <indutny> message is returned in data and if fflags is set to MACH_RCV_MSG, a pointer to the message is returned in ext[0].
20:32:16  <indutny>why does man states that it support mach port
20:32:26  <indutny>piscisaureus: ^
20:32:43  <piscisaureus>indutny: I don't know, just ran into a comment in the source code that says it doesn't work
20:32:49  <piscisaureus>indutny: same for EVFILT_CHILD btw
20:32:54  <piscisaureus>so much for kqueue being awesome...
20:33:15  <indutny>haha
20:38:29  * `3rdEdenquit (Remote host closed the connection)
20:38:33  <indutny>piscisaureus: so how to create this f*cking port set?
20:39:16  <indutny>nvm
20:39:17  <indutny>found example
20:39:50  * paddybyersjoined
20:40:06  <AutowiredConstru>�p�
20:44:20  <indutny>piscisaureus: nope, still doesn't work
20:44:31  <indutny>ah
20:44:32  * mralephjoined
20:44:34  <indutny>I hadn't created port
20:45:18  <indutny>I mean port set
20:45:25  * loladirojoined
20:45:43  <piscisaureus>boo
20:47:23  <indutny>piscisaureus: how to do it?!
20:47:29  <piscisaureus>indutny: do what?
20:49:23  <indutny>ok
20:49:34  <indutny>lets skip wait port for now
20:53:24  <mitsuhiko>why was ares removed?
20:53:39  * dshaw_quit (Quit: Leaving.)
20:54:49  <piscisaureus>mitsuhiko: because it's a separate library and it made up half of libuv's source code
20:54:53  <indutny>piscisaureus: it works!
20:55:05  <indutny>hahaha
20:55:17  <mitsuhiko>piscisaureus1: fair enough. but didn't getaddrinfo use ares before?
20:55:29  <piscisaureus>mitsuhiko: no, it always used a thread pool
20:55:34  * `3rdEdenjoined
20:55:34  <mitsuhiko>ah
20:55:52  <mitsuhiko>still unfortunate :(
20:55:56  <piscisaureus>mitsuhiko: we added c-ares because we had no way to integrate it with libuv
20:55:59  * dshaw_joined
20:56:04  <indutny>piscisaureus: yayayaya
20:56:15  <piscisaureus>mitsuhiko: but now that there's uv_poll you can just do that in 200 loc
20:56:33  <mitsuhiko>fair enough. i was assuming name lookups went through c-ares before
20:56:43  <piscisaureus>indutny: so does the mach port set work? or do you just busyloop?
20:56:55  <indutny>piscisaureus: I'll post a gist for you
20:57:09  <piscisaureus>mitsuhiko: no, it didn't. That would be great, but unfortunately c-ares has a fair share of issues
20:57:13  <indutny>piscisaureus: https://gist.github.com/fe2f89cf477671135a76
20:57:17  <piscisaureus>so we could never fully rely on it
20:57:20  <indutny>piscisaureus: CFRunLoopWakeUp won't work
20:57:32  <indutny>piscisaureus: because I wasn't able to add _waitPort to kqueue
20:59:25  <indutny>piscisaureus: can you build it?
20:59:54  <mitsuhiko>piscisaureus1: fair enough. i did not even realize it spawned a thread :)
21:00:09  <mitsuhiko>the presence of the header made me assume it was resolving dns itself
21:00:29  <piscisaureus>mitsuhiko: well, if you dont notice it there's no problem right :-)
21:00:50  <piscisaureus>mitsuhiko: you are still free to use c-ares if you want to
21:01:18  <piscisaureus>indutny: so explain to me how this works
21:01:23  <indutny>piscisaureus: does it works?
21:01:50  <indutny>if it does - then I'm a cool person
21:01:58  <indutny>can you live with that? :D
21:02:02  <indutny>hahaha
21:02:12  <indutny>sorry, I just hadn't slept for too long
21:02:20  <indutny>throwing bad jokes and everything
21:02:32  <piscisaureus>indutny: no it doesn't :-p
21:02:35  <piscisaureus>indutny: what link flags?
21:02:49  <indutny>g++ -O0 -g -framework CoreFoundation -framework CoreServices cf.c -o cf && ./cf
21:02:59  <indutny>piscisaureus: and then create directory '1' in /tmp
21:03:04  <indutny>piscisaureus: or touch files in it
21:03:08  <indutny>if it already exists
21:03:46  <piscisaureus>it just says wait ...
21:03:57  <indutny>piscisaureus: even after mkdir?
21:04:05  <piscisaureus>ya
21:04:06  <indutny>piscisaureus: ls -la /tmp
21:04:15  <indutny>piscisaureus: does your /tmp symlinked to /private/tmp ?
21:04:17  <indutny>s/does/is
21:04:20  <piscisaureus>yes
21:04:24  <indutny>odd
21:04:30  <indutny>it works fine for me
21:05:01  <indutny>very odd
21:05:10  <indutny>piscisaureus: can you add some logging before EV_SET
21:05:28  <indutny>piscisaureus: I suppose structures signatures may changed in 10.8
21:06:05  <piscisaureus>so how is logging going to help there? :-)
21:06:41  <indutny>piscisaureus: well, I just want to know if it's adding anything to kqueue
21:07:15  <piscisaureus>doesnt look like it
21:07:44  <indutny>oh
21:07:48  <indutny>signature changed
21:07:53  <indutny>http://www.opensource.apple.com/source/CF/CF-635/CFRunLoop.c
21:07:59  <indutny>are you on 10.7?
21:08:00  <indutny>or 10.8?
21:08:09  <piscisaureus>mountain
21:08:28  <indutny>ok
21:08:46  <indutny>piscisaureus: would it be hard for you to pull struct __CFRunLoopMode out of fresh CF?
21:08:54  <indutny>piscisaureus: (link that I just sent)
21:09:22  <piscisaureus>ya
21:10:06  <piscisaureus>umm
21:10:17  <piscisaureus>the signature in the link is the same
21:10:22  <piscisaureus>as your code
21:11:17  <piscisaureus1>indutny: http://opensource.apple.com/source/CF/CF-635.21/CFRunLoop.c
21:12:40  * stagas_joined
21:13:07  * TheJHquit (Ping timeout: 244 seconds)
21:13:11  <indutny>nope, it isn't
21:13:38  <indutny>piscisaureus1: there're sources0 and sources1
21:13:39  <indutny>and others
21:13:52  <indutny>I don't care about anything after port
21:14:00  <indutny>but we need to get a correct offset to this port
21:14:14  <indutny>and __CFRunLoop has also been changed
21:14:20  <piscisaureus>indutny: well you do care about it's size
21:14:28  <piscisaureus>indutny: otherwise you will alloc not enough memory
21:14:31  <piscisaureus>and get EFAULT
21:14:32  <indutny>piscisaureus: ah yes
21:14:34  <indutny>I forgot about it
21:14:38  <indutny>EFAULT?
21:14:40  <indutny>from where?
21:16:53  <piscisaureus>it doesn't happen
21:17:08  <indutny>oh
21:17:10  <indutny>sorry, misread you
21:20:48  <piscisaureus>indutny: anyway, mode_cnt is 0
21:20:53  <indutny>hm...
21:20:55  <indutny>odd
21:24:49  <CIA-129>node: Ben Noordhuis openssl-asm * rc34087d / (deps/openssl/asm/Makefile deps/openssl/asm-gen.sh): openssl: regenerate asm code with a Makefile - http://git.io/NWd4FQ
21:24:50  <CIA-129>node: Ben Noordhuis openssl-asm * r9aff820 / (50 files in 42 dirs): openssl: regenerate asm code - http://git.io/ltFgrg
21:24:50  <piscisaureus>yay
21:25:09  <piscisaureus>indutny: both structs changed
21:25:14  <indutny>yeah
21:25:27  <piscisaureus>indutny: I patched them and it works
21:25:34  <piscisaureus>indutny: not a very solid stragey tho :-)
21:25:34  <indutny>piscisaureus: yay
21:25:38  <indutny>piscisaureus: haha
21:25:47  <indutny>yes, relying on non-fixed APIs
21:26:10  <indutny>piscisaureus: so, I've found a way to embed CFRunLoop in libuv's event loop
21:26:20  <indutny>hope everyone are happy now
21:26:28  <indutny>:D
21:27:44  <piscisaureus>maybe we can download all the versions of cfrunloop.c
21:27:48  <piscisaureus>and see how often this bitch changes
21:31:43  <piscisaureus>indutny: btw - why don't you use CFRunLoopCopyAllModes?
21:32:53  <indutny>dunno
21:32:57  <indutny>what is it doing
21:33:13  <piscisaureus>I suppose it copies _modes :-)
21:33:28  <indutny>piscisaureus: I suppose it's returning CFStringRefs
21:33:30  <indutny>:)
21:33:36  <indutny>piscisaureus: that's what user knows about modes
21:33:58  <indutny> CFSetApplyFunction(rl->_modes, (__CFRunLoopGetModeName), array);
21:33:59  <indutny>yeah
21:34:00  <indutny>indeed
21:34:10  <indutny>it returns mode names
21:35:09  <indutny>piscisaureus: do you want to pull this shit into libuv?
21:35:49  <piscisaureus>indutny: let's sleep on it, and pull the fsevents stuff that you already have
21:35:56  <piscisaureus>although - I found a race condition :-)
21:35:57  <indutny>ok
21:36:11  <indutny>piscisaureus: well, I can wait on semaphore after it
21:36:25  <indutny>but it will block
21:36:35  <indutny>and it'll be racey anyway
21:36:40  <indutny>piscisaureus: does it crash?
21:36:42  <piscisaureus>no
21:36:44  <piscisaureus>it hanfs
21:36:47  <piscisaureus>*hangs
21:36:48  <indutny>or just isn't catching changes
21:36:59  <indutny>piscisaureus: so it's waiting for changes, right?
21:37:03  <indutny>not literally hang
21:37:06  <piscisaureus>indutny: yes
21:37:13  <indutny>well, that's just how it works
21:37:21  <piscisaureus>bnoordhuis: did you review the fsevents patch?
21:37:30  <bnoordhuis>piscisaureus: i looked at it
21:37:30  <piscisaureus>indutny: oh - well, nvm
21:37:45  * mikealjoined
21:37:47  <piscisaureus>indutny: so to continue with my endless complaints
21:37:52  <indutny>:)
21:38:08  <piscisaureus>indutny: now the binary that you get depends on the os x version that you compile with
21:38:16  <piscisaureus>indutny: that's not so nice since we distribute binaries
21:38:17  <indutny>piscisaureus: yes
21:38:26  <indutny>piscisaureus: we can compile it for later versions
21:38:31  <indutny>and use safely on older versions
21:38:37  <piscisaureus>indutny: yeah, that would be nice
21:39:05  <piscisaureus>indutny: I think you meant "compile *on* later versions" :_)
21:39:21  <piscisaureus>indutny: I think I prefer to just add these two #defines to libuv's source code
21:39:31  <piscisaureus>or whatever they are - enums
21:39:37  <indutny>piscisaureus: lets do it
21:39:41  <indutny>piscisaureus: can you give me the values?
21:39:59  <piscisaureus>indutny: which ones exactly? Do you need me to gist a particular header file?
21:40:05  <indutny>kFSEventStreamEventFlagItemRenamed
21:40:12  <indutny>kFSEventStreamCreateFlagFileEvents
21:40:21  <indutny>and other EventFlags
21:40:41  <piscisaureus>god, those names
21:40:51  <indutny>well
21:40:56  * stagas_quit (Ping timeout: 252 seconds)
21:41:00  <indutny>yeah
21:41:10  <indutny>I think we do not really need EventFlagItemRenamed
21:41:41  <piscisaureus>hmm, they're not in /usr/include ...
21:42:00  <indutny>yes
21:42:07  <indutny>you should search them in xcode's folder
21:44:14  <piscisaureus1>in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/FSEvents.h
21:44:16  <piscisaureus1>...
21:45:01  * stagas_joined
21:45:23  <piscisaureus1>indutny: https://gist.github.com/100e072f83c64543f1cd
21:45:41  <indutny>piscisaureus1: thanks
21:50:48  <indutny>piscisaureus1: bnoordhuis: running tests
21:52:09  <indutny>piscisaureus1: force pushed https://github.com/joyent/libuv/pull/525
21:54:13  <indutny>piscisaureus1: also, I'll be very glad if you'll find a way to watch _waitPort with kevent()
21:54:19  <indutny>I hadn't got any luck on this field
21:54:22  * dshaw_quit (Quit: Leaving.)
21:56:08  * AutowiredConstruquit (Quit: staticif)
21:58:08  * stagas_quit (Ping timeout: 248 seconds)
21:58:09  * dshaw_joined
21:58:17  <piscisaureus1>bnoordhuis: so about the emfile trick
21:58:24  <piscisaureus1>bnoordhuis: i just really reviewed it
21:58:29  <piscisaureus1>bnoordhuis: so, ...
21:58:32  <piscisaureus1>bnoordhuis: lgtm
21:58:39  <bnoordhuis>well... good :)
21:58:56  <piscisaureus1>bnoordhuis: btw, your glasses are still here
21:59:02  <bnoordhuis>as is my laptop
21:59:06  * stagas_joined
21:59:13  <piscisaureus1>bnoordhuis: eh?
21:59:17  <piscisaureus1>bnoordhuis: no, just your glasses
21:59:58  <piscisaureus1>bnoordhuis: there were some government officials here today, they took out half the inventory, so that could be it
22:00:05  <bnoordhuis>har har
22:04:05  <bnoordhuis>piscisaureus1: btw, i'll probably be in the office tomorrow
22:04:13  <piscisaureus>oh no
22:04:42  <piscisaureus>bnoordhuis: but it's no-ben tuesday tomorrow...
22:06:08  * stagas_quit (Ping timeout: 240 seconds)
22:08:08  * `3rdEdenquit (Remote host closed the connection)
22:09:50  * rendarquit
22:11:48  <bnoordhuis>piscisaureus: you'll be happy to know it's no-ben thursday this week
22:12:10  <piscisaureus>yup
22:12:25  <piscisaureus>just like last week, the week before and the week before tat
22:12:26  <piscisaureus>*that
22:13:23  <piscisaureus>you don't notice how valuable something is it until it is taken away
22:16:02  * c4milo_quit (Remote host closed the connection)
22:16:28  * c4milojoined
22:18:54  * hzquit (Ping timeout: 272 seconds)
22:19:31  * loladiroquit (Quit: loladiro)
22:21:29  * c4miloquit (Ping timeout: 264 seconds)
22:46:13  <piscisaureus1>indutny: ya, I have no luck with _wakeupPort either
22:46:30  <piscisaureus1>indutny: no errors but the loop just doesn't wake up
22:47:43  <piscisaureus1>bnoordhuis: does your makefile cd to the source dir before running perl?
22:48:05  <piscisaureus1>bnoordhuis: I had to do that because otherwise some .pl scripts fail to find perlasm
22:48:58  <indutny>piscisaureus1: odd
22:49:10  <indutny>piscisaureus1: lets look at it tomorrow
22:49:12  <indutny>going to sleep now
22:49:13  <indutny>ttyl
22:50:11  <piscisaureus>indutny: sleep well, ttyl
22:59:49  <CIA-129>node: isaacs no-unwanted-destruction * r231a712 / lib/stream.js : stream.pipe: Don't call destroy() unless it's a function - http://git.io/TnV2iA
22:59:58  <isaacs>bnoordhuis, piscisaureus: thoughts on that ^?
23:00:10  <isaacs>it's kind of a wart that i'd actually thougth we already fixed.
23:00:22  <isaacs>but every writable stream nowadays must implement destroy() even if it does nothing
23:00:53  <piscisaureus>okay
23:01:02  <piscisaureus>isaacs: ^
23:01:11  <isaacs>landing on 0.8
23:01:13  <isaacs>it's a bug, imo
23:01:29  <piscisaureus>isaacs: what's the bargain?
23:01:38  <piscisaureus>isaacs: what can I land on 0.8 in return?
23:02:18  <isaacs>piscisaureus: if you're going to remove some undocumented "blow up in your face if you don't do some stupid dance" behavior, then yes, that can go in a stable release.
23:02:37  <piscisaureus>isaacs: you'd be surprised
23:02:47  <isaacs>i dont' think anyone's *depending* on throwing from calling a non-function here.
23:02:55  <piscisaureus>nopr
23:03:16  <piscisaureus>isaacs: it might be something where "set %HOME%=%USERPROFILE%" is the stupid dance
23:03:17  <isaacs>and the existing "call destroy() on close" semantics don't change.
23:03:31  <piscisaureus>er, "set HOME=%USERPROFILE%" is the stupid dance
23:03:37  <isaacs>sure.
23:03:43  <piscisaureus>haha
23:03:48  <piscisaureus>I was half kidding
23:03:50  <isaacs>that's a little less stupid of a dance.
23:03:54  <isaacs>we can do it in master.
23:04:12  <isaacs>or we can just do like npm, and set HOME ourselves intelligently on windows
23:04:25  <isaacs>or you can use the osenv module
23:04:53  <piscisaureus>or implement uv_user_info()
23:04:54  <CIA-129>node: isaacs v0.8 * r41e1b17 / lib/stream.js : stream.pipe: Don't call destroy() unless it's a function - http://git.io/UyKVGA
23:05:05  <isaacs>Raynos: ^
23:05:22  <Raynos>isaacs: o/
23:06:14  <piscisaureus>the fact that fsevents is only for corefoundation users pisses me off bigtime
23:06:30  <piscisaureus>like, what windows felt like before I got over that
23:10:06  * loladirojoined
23:40:45  * piscisaureus1quit (Quit: Leaving.)
23:46:21  * c4milojoined
23:47:35  * piscisaureus_joined
23:47:45  <mitsuhiko>if the timer is initialized with 0 and 1000 does it mean the timer fires instantly and then every second?
23:47:51  * loladiroquit (Quit: loladiro)
23:48:51  <piscisaureus_>yep
23:48:59  <piscisaureus_>mitsuhiko: ^
23:49:00  <mitsuhiko>oh, there is a comment now
23:49:07  <mitsuhiko>should migrate to latest uv i guess
23:49:29  <mitsuhiko>speaks volumes for libuv that i did not encounter a single bug that was not my fault in a months time :)
23:50:34  <piscisaureus_>haha
23:50:40  <piscisaureus_>well we fixed many actually :-)
23:50:54  <piscisaureus_>mitsuhiko: but thanks, I'll take that as a compliment
23:51:10  <mitsuhiko>you should. i have a blast with libuv :)
23:51:20  <piscisaureus_>cool
23:51:26  <piscisaureus_>mitsuhiko: what are you doing with it?
23:51:40  <mitsuhiko>a sort of pubsub server
23:51:49  <mitsuhiko>it handles persistent messaging connections for computer games
23:52:09  <piscisaureus_>mitsuhiko: your job? or just a hobby project
23:52:13  <piscisaureus_>this sounds like a job
23:52:22  <mitsuhiko>yeah, job :)
23:52:43  <mitsuhiko>but oh well, i'm hacking on this in the middle of the night so pretty much also hobby :)
23:52:49  <piscisaureus_>haha
23:54:35  * paddybyersquit (Quit: paddybyers)
23:55:09  <mitsuhiko>it's a shame that you can't get async vsync. would love to play around with libuv as a mainloop for a proper game
23:55:52  * mralephquit (Quit: Leaving.)
23:56:35  <piscisaureus_>I suppose vsync is pretty timing sensitive
23:56:41  <piscisaureus_>so that's a bit of a problem indeed
23:56:56  <piscisaureus_>I think joining with other event loops is also (still) not very easy
23:57:17  <mitsuhiko>i saw uv_run2 a few days ago so that might get me some way
23:57:25  <mitsuhiko>not sure how that does with the timings though
23:57:40  <piscisaureus_>oh, the timers will still run I'm sure
23:57:42  <piscisaureus_>it's more like
23:58:22  <piscisaureus_>you want the event loop to wake up on either io *or* user input
23:58:24  <mitsuhiko>it's just that i definitely enjoyed the server side more than integrating that with unreal
23:58:33  <mitsuhiko>they have a rather … interesting network stack
23:58:48  <piscisaureus_>and handling user input is not really possible
23:58:56  <piscisaureus_>mitsuhiko: so you're writing an unreal server?
23:59:09  <mitsuhiko>nope, it runs alongside of a traditional gameserver
23:59:20  <mitsuhiko>we're moving as much stuff as possible outside of what unreal is doing
23:59:32  <mitsuhiko>and result is that you can do things outside of the game with the game
23:59:40  <piscisaureus_>ah, right