00:10:18  * dan336joined
00:29:22  * DarkGodquit (Ping timeout: 255 seconds)
00:31:51  * dan336quit (Quit: Leaving.)
00:37:43  * DarkGodjoined
00:52:02  * DarkGodquit (Ping timeout: 272 seconds)
00:57:14  * DarkGodjoined
01:26:20  * a_lejoined
01:48:01  * DarkGodquit (Ping timeout: 260 seconds)
02:19:06  * not^vjoined
03:08:46  * SouL_joined
03:09:08  * SouLquit (Read error: Connection reset by peer)
03:22:52  * dan336joined
03:36:34  * a_lequit (Remote host closed the connection)
03:37:05  * SouL_quit (Ping timeout: 264 seconds)
03:59:16  * a___quit (Remote host closed the connection)
04:00:12  * a__joined
05:18:16  * dan336quit (Quit: Leaving.)
06:10:15  * SouLjoined
06:26:29  * SouLquit (Ping timeout: 245 seconds)
07:04:46  * Assassinjoined
07:05:16  * Assassinquit (Remote host closed the connection)
07:15:30  * SouLjoined
07:55:14  * not^vquit (Read error: Connection reset by peer)
08:51:48  * a_lejoined
09:36:25  * a_lequit (Remote host closed the connection)
11:46:41  * kazuponjoined
11:53:50  * kazuponquit
11:56:59  * kazuponjoined
12:17:10  * kazuponquit (Remote host closed the connection)
12:18:51  * kazuponjoined
12:32:25  * kazuponquit (Remote host closed the connection)
12:32:31  * SouLquit (Ping timeout: 255 seconds)
12:35:58  * UniOnjoined
12:43:52  * kazuponjoined
13:35:33  * kazuponquit (Remote host closed the connection)
13:41:21  * kazuponjoined
15:05:01  * srenatusjoined
15:27:22  * kazuponquit (Remote host closed the connection)
15:28:48  * kazuponjoined
15:55:44  * kazuponquit (Remote host closed the connection)
15:59:39  * a_lejoined
16:56:28  * kazuponjoined
17:01:16  * kazuponquit (Ping timeout: 256 seconds)
17:39:21  * a_lequit (Remote host closed the connection)
17:57:27  * kazuponjoined
18:02:27  * kazuponquit (Ping timeout: 255 seconds)
18:23:29  * a_lejoined
18:27:38  * a_lequit (Remote host closed the connection)
18:28:16  * a_lejoined
18:33:08  * srenatusquit (Quit: Connection closed for inactivity)
19:02:56  * DarkGodjoined
19:25:39  * a_lequit (Remote host closed the connection)
19:26:16  * a_lejoined
19:28:24  <creationix>rphillips: ok, so I know understand exactly how setImediate works in node
19:28:38  * a_lequit (Remote host closed the connection)
19:28:43  <creationix>nextTick, however has nothing to do with libuv or the event loop. It’s a hook around all event sources
19:29:14  <creationix>https://github.com/joyent/node/blob/v0.10/src/node.cc#L2226-L2245
19:29:16  <rphillips>hmm
19:29:40  <creationix>if any uv_idle handles are live, the event loop busy-loops and never blocks on I/O
19:30:04  <creationix>so setImmediate will consume one generation of callbacks every idle and check cycle and then turn off the idle checker once the queue is empty
19:30:40  * travis-cijoined
19:30:40  <travis-ci>luvit/luvit#981 (fixes/add_hooks - 004591f : Ryan Phillips): The build passed.
19:30:40  <travis-ci>Change view : https://github.com/luvit/luvit/commit/004591fb9b49
19:30:40  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/39868958
19:30:40  * travis-cipart
19:30:59  <creationix>nextTick will consume all callbacks in a queue at the end of every callback. If more nextTicks are registered it will consume them too and the real event won’t end and return to the loop till there are none left
19:30:59  <rphillips>https://github.com/luvit/luvit/pull/516
19:31:21  <rphillips>adds a 'hooks' concept, so we can require('hooks'):emit('process.exit')
19:33:10  <creationix>I see. A generic global emitter
19:33:37  <creationix>+1
19:35:54  <creationix>if you can think of better names for setImmediate and nextTick let me know
19:36:21  <creationix>nextTick is more of run-this-later-but-before-returning-to-the-event-loop
19:37:13  <creationix>setImmediate is run-this-soon-but-after-this-event
19:46:29  * kazuponjoined
19:51:21  * kazuponquit (Ping timeout: 255 seconds)
20:00:16  * travis-cijoined
20:00:16  <travis-ci>luvit/luvit#983 (fixes/add_hooks - 786c7f0 : Ryan Phillips): The build passed.
20:00:16  <travis-ci>Change view : https://github.com/luvit/luvit/compare/004591fb9b49...786c7f090ebd
20:00:16  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/39872058
20:00:16  * travis-cipart
20:02:14  * travis-cijoined
20:02:14  <travis-ci>luvit/luvit#985 (luvi-up - 77d69c6 : Ryan Phillips): The build passed.
20:02:14  <travis-ci>Change view : https://github.com/luvit/luvit/compare/193b17698d31...77d69c6dc512
20:02:14  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/39872120
20:02:14  * travis-cipart
20:04:00  <creationix>rphillips: how did you make a pr against a feature branch?
20:04:01  * a_lejoined
20:04:25  <rphillips>git checkout -b [name] on the feature branch
20:04:40  <rphillips>the pressed the 'edit' button on the PR creation screen on github
20:04:53  <rphillips>you can select the destination branch to be luvi-up
20:10:50  <creationix>rphillips: https://github.com/luvit/luvit/pull/517
20:11:13  <creationix>ahh, it failed to merge because I need to rebase on master
20:11:31  <rphillips>rebase to the luvi-up branch right?
20:11:38  <creationix>right
20:12:09  <creationix>I had tried master and had not-a-few merge conflicts
20:12:46  * travis-cijoined
20:12:47  <travis-ci>luvit/luvit#986 (timers - 93b5032 : Tim Caswell): The build has errored.
20:12:47  <travis-ci>Change view : https://github.com/luvit/luvit/commit/93b5032732ac
20:12:47  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/39873330
20:12:47  * travis-cipart
20:12:54  <creationix>so this PR adds timer.setTimeout, .clearTimeout, .setInterval, .clearInterval, and .setImmediate
20:13:05  <creationix>nextTick-like semantics first depend on a global event source hook
20:13:13  <creationix>and has nothing to do with libuv
20:13:20  * a_lequit (Remote host closed the connection)
20:13:40  <rphillips>k
20:14:27  <rphillips>nice
20:14:29  <rphillips>+1
20:15:43  * travis-cijoined
20:15:43  <travis-ci>luvit/luvit#987 (timers - 9795f79 : Tim Caswell): The build failed.
20:15:43  <travis-ci>Change view : https://github.com/luvit/luvit/compare/93b5032732ac...9795f79eb912
20:15:43  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/39873681
20:15:43  * travis-cipart
20:17:33  <rphillips>segfault, hmm
20:18:26  <creationix>yep, debugging it
20:18:37  <creationix>luv_check_start()
20:21:11  <creationix>I wonder if check_start can’t be used before the first call to uv_run?
20:21:31  <creationix>it works fine in luv’s unit tests
20:21:56  <creationix>https://github.com/luvit/luv/blob/master/tests/test-prepare-check-idle-async.lua#L17-L23
20:22:43  <rphillips>luv/libuv/test/test-idle.c has it executed before uv_run
20:23:09  <rphillips>Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000008
20:23:27  <creationix>I’m still rebuilding with debug symbols, which pointer is null?
20:23:27  <rphillips>so close to a null pointer
20:23:32  <rphillips>maybe data
20:27:37  <creationix>yep, data is null, I wonder why
20:28:22  <creationix>because I set it up on line 32 just like every other uv type
20:28:51  <rphillips>looking
20:30:40  <creationix>oh, I know why
20:31:03  <creationix>the test framework is closing the handle. I guess my fix there got lost between branches
20:31:35  <rphillips>ah cool
20:34:15  <creationix>I should probably put a check in luv to not accept already-closed handles
20:36:21  <rphillips>+1
20:49:46  <creationix>here’s an embarrasing one https://github.com/luvit/luv/pull/83
20:50:30  <creationix>so now if the API is used wrong, you should get a lua error, not a segfault :)
20:51:33  <creationix>it gave it away when my timer had ->type == UV_ASYNC
20:55:47  * travis-cijoined
20:55:47  <travis-ci>luvit/luv#134 (master - 9d5fbb3 : Tim Caswell): The build passed.
20:55:47  <travis-ci>Change view : https://github.com/luvit/luv/compare/f19c3d9469d9...9d5fbb35fe0c
20:55:47  <travis-ci>Build details : http://travis-ci.org/luvit/luv/builds/39877770
20:55:47  * travis-cipart
20:57:34  * travis-cijoined
20:57:35  <travis-ci>luvit/luv#135 (fix-type-checker - e02ef82 : Tim Caswell): The build passed.
20:57:35  <travis-ci>Change view : https://github.com/luvit/luv/commit/e02ef828f9a4
20:57:35  <travis-ci>Build details : http://travis-ci.org/luvit/luv/builds/39877888
20:57:35  * travis-cipart
21:04:06  * travis-cijoined
21:04:06  <travis-ci>luvit/luvi#78 (master - fafd124 : Tim Caswell): The build has errored.
21:04:06  <travis-ci>Change view : https://github.com/luvit/luvi/compare/5812d9297f49...fafd12467688
21:04:06  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/39878798
21:04:06  * travis-cipart
21:05:00  * travis-cijoined
21:05:00  <travis-ci>luvit/luvit#989 (timers - e6774d8 : Tim Caswell): The build has errored.
21:05:00  <travis-ci>Change view : https://github.com/luvit/luvit/compare/9795f79eb912...e6774d8de091
21:05:00  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/39878884
21:05:00  * travis-cipart
21:08:38  * travis-cijoined
21:08:38  <travis-ci>luvit/luv#137 (master - a1f3aa3 : Tim Caswell): The build passed.
21:08:38  <travis-ci>Change view : https://github.com/luvit/luv/compare/9d5fbb35fe0c...a1f3aa3f4f54
21:08:38  <travis-ci>Build details : http://travis-ci.org/luvit/luv/builds/39878616
21:08:38  * travis-cipart
21:09:06  * travis-cijoined
21:09:06  <travis-ci>luvit/luvit#991 (luvi-up - 868f4fd : Tim Caswell): The build passed.
21:09:06  <travis-ci>Change view : https://github.com/luvit/luvit/compare/77d69c6dc512...868f4fd64db2
21:09:06  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/39878906
21:09:06  * travis-cipart
21:18:24  <rphillips>ah hah. nice
21:18:38  * travis-cijoined
21:18:38  <travis-ci>luvit/luvi#78 (master - fafd124 : Tim Caswell): The build passed.
21:18:38  <travis-ci>Change view : https://github.com/luvit/luvi/compare/5812d9297f49...fafd12467688
21:18:38  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/39878798
21:18:38  * travis-cipart
21:19:31  <creationix>travis is having issues or something
21:21:08  <rphillips>? looks like it passed
21:25:06  * travis-cijoined
21:25:06  <travis-ci>luvit/luvit#989 (timers - e6774d8 : Tim Caswell): The build has errored.
21:25:06  <travis-ci>Change view : https://github.com/luvit/luvit/compare/9795f79eb912...e6774d8de091
21:25:06  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/39878884
21:25:06  * travis-cipart
21:32:07  * a_lejoined
21:35:29  * kazuponjoined
21:41:42  * kazuponquit (Ping timeout: 250 seconds)
21:42:20  * travis-cijoined
21:42:20  <travis-ci>luvit/luvi#79 (master - 217f693 : Tim Caswell): The build passed.
21:42:20  <travis-ci>Change view : https://github.com/luvit/luvi/compare/fafd12467688...217f6936843a
21:42:20  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/39883320
21:42:20  * travis-cipart
21:46:42  <creationix>rphillips: ok, I fixed the issues in luv and pushed fresh binaries for all platforms in luvi-binaries
21:46:47  <creationix>back to working on luvit
21:46:51  <rphillips>nice
21:47:09  <creationix>so the timer PR is ready
21:47:48  <creationix>I see you already +1ed it and the test pass, so I guess we’re good
21:48:23  <creationix>rphillips: what should I work on next for luvit? Maybe the wrappings for the uv stuff?
21:48:55  * travis-cijoined
21:48:55  <travis-ci>luvit/luvit#994 (timers - 7caf15b : Tim Caswell): The build passed.
21:48:55  <travis-ci>Change view : https://github.com/luvit/luvit/compare/9a816359206b...7caf15b8fc60
21:48:55  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/39884040
21:48:55  * travis-cipart
21:49:25  <rphillips>creationix: yeah, that sounds great
21:51:24  * a_lequit (Read error: Connection reset by peer)
21:51:59  * a_lejoined
21:52:11  * travis-cijoined
21:52:11  <travis-ci>luvit/luvi#81 (master - efe72db : Tim Caswell): The build has errored.
21:52:11  <travis-ci>Change view : https://github.com/luvit/luvi/compare/3535254551c1...efe72db2ae8e
21:52:11  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/39884143
21:52:11  * travis-cipart
21:53:20  * travis-cijoined
21:53:21  <travis-ci>luvit/luvit#996 (luvi-up - 0c6450b : Tim Caswell): The build passed.
21:53:21  <travis-ci>Change view : https://github.com/luvit/luvit/compare/868f4fd64db2...0c6450be094a
21:53:21  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/39884718
21:53:21  * travis-cipart
21:55:30  * a_lequit (Remote host closed the connection)
21:56:33  * a_lejoined
22:00:23  * travis-cijoined
22:00:23  <travis-ci>luvit/luvi#81 (master - efe72db : Tim Caswell): The build passed.
22:00:23  <travis-ci>Change view : https://github.com/luvit/luvi/compare/3535254551c1...efe72db2ae8e
22:00:23  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/39884143
22:00:23  * travis-cipart
22:11:46  * a_le_joined
22:11:59  * a_lequit (Read error: Connection reset by peer)
22:21:03  <rphillips>i think we need to add __dirname for some of these tests
22:32:44  <creationix>it’s in module.dir
22:33:01  <rphillips>cool. thanks
22:33:21  <creationix>how much sugar do we want in the fs wrapper
22:33:44  <creationix>for example, fs.open(path, flags, mode, callback), normally flags is “r” and mode is tonumber(“644”, 8)
22:33:52  <creationix>so ideally they would be optional with default values
22:34:14  <creationix>and mode should tonumber(mode, 8) string args
22:34:15  <rphillips>yeah, defaulting makes sense
22:34:39  <creationix>but then I have 12 different type signatures to support in this function after calculating all the permutations
22:35:18  <creationix>callback can always be nil, function or thread
22:35:48  <creationix>we could simplify it a bit by making the positions fixed and the user needing nil for default values
22:35:55  <creationix>fs.open(path, nil, nil, callback)
22:35:58  <creationix>but that’s ugly
22:36:35  <rphillips>or we could required all parameters
22:36:39  <rphillips>and not default anything...
22:36:44  <rphillips>makes it explicity
22:36:46  <rphillips>explicit*
22:37:07  <rphillips>simplifies the code
22:37:24  <creationix>I’ll think a little more about an elegant way to handle the 12 different type permutations
22:37:43  <creationix>if you want simple, just use uv directly, it’s not hard
22:37:54  <creationix>I think fs should give some sugar
22:38:00  * kazuponjoined
22:38:34  <rphillips>definitely
22:40:21  <creationix>another idea is to use the moonslice style
22:40:38  <creationix>fs.open(path, other, args)(callback)
22:41:22  <creationix>and then for blocking style, you only need to wait(fs.open(path, other, args))
22:41:41  <creationix>but it does create a lot of closures
22:41:55  <creationix>and just calling once doesn’t actually perform the action
22:42:42  * kazupon_joined
22:43:14  * kazuponquit (Ping timeout: 255 seconds)
22:44:34  <creationix>looks like we tried to make mode optional before https://github.com/luvit/luvit/blob/master/lib/luvit/fs.lua#L113-L120
22:44:39  <creationix>but that has some bugs
22:45:06  <creationix>fs.open(path, “r”, tonumber(“644”, 8) will try to call the number as the callback
22:47:34  * kazupon_quit (Ping timeout: 265 seconds)
23:02:11  <rphillips>dinner, bbiab
23:07:16  * a_le_quit (Read error: Connection reset by peer)
23:08:34  * a_lejoined
23:20:32  <creationix>alright, heading to dinner myself. We have company over. I might not be back tonight.
23:20:58  <creationix>https://github.com/luvit/luvit/compare/fs-sugar
23:21:33  * travis-cijoined
23:21:34  <travis-ci>luvit/luvit#997 (fs-sugar - b171f3f : Tim Caswell): The build passed.
23:21:34  <travis-ci>Change view : https://github.com/luvit/luvit/commit/b171f3f358df
23:21:34  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/39893953
23:21:34  * travis-cipart
23:40:37  * a_lequit
23:42:15  * a_lejoined