00:00:00  <ryah>v0.6
00:00:00  <isaacs>ryah: yeah, i saw
00:00:06  <isaacs>tyanks
00:01:03  <isaacs>ryah: mraleph brought his a-game. best talk i've seen in a really long time.
00:01:16  <isaacs>ryah: very much like you described.
00:02:38  <ryah>he's very enjoyable to watch :)
00:04:48  * travis-cijoined
00:04:48  <travis-ci>[travis-ci] joyent/node#687 (master - 30994aa : Ryan Dahl): The build is still failing.
00:04:48  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/92c0c69...30994aa
00:04:48  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/1003761
00:04:48  * travis-cipart
00:05:30  * brsonquit (Quit: leaving)
00:17:01  <piscisaureus_>c1xx : fatal error C1083: Cannot open source file: 'D:\node4\Release\\obj\globa
00:17:01  <piscisaureus_>l_intermediate\debug-support.cc': No such file or directory [D:\node4\deps\v8\t
00:17:01  <piscisaureus_>ools\gyp\v8_base.vcxproj]
00:17:02  <piscisaureus_>hmm
00:17:13  <piscisaureus_>isaacs: did v8 recently get upgraded?
00:17:32  <isaacs>piscisaureus_: yeah, it was updated for 0.7.7
00:17:40  <isaacs>piscisaureus_: to 3.9.24.something i think
00:17:49  <piscisaureus_>hmm you built that for windows right?
00:18:19  <isaacs>piscisaureus_: yeah
00:18:24  <piscisaureus_>weird
00:18:29  <piscisaureus_>I get an error when building master
00:18:33  <piscisaureus_>some v8 file seems missing
00:18:34  <isaacs>piscisaureus_: hm. odd.
00:18:43  <isaacs>piscisaureus_: maybe distclean and then re-try?
00:18:44  <isaacs>dunno
00:18:48  <piscisaureus_>yeah
00:19:07  <piscisaureus_>I'll do that
00:19:15  <piscisaureus_>it sucks, takes so long :-(
00:20:11  <piscisaureus_>I don't want this stupid default wix license dialog
00:20:19  <piscisaureus_>where you have to click "I agree"
00:20:23  <piscisaureus_>it should read "Who cares"
00:20:26  <piscisaureus_>and no checkbox
00:21:38  <isaacs>haha
00:22:25  <piscisaureus_>unfortunately I know WiX as well as ryah knows the windows kernel
00:23:05  <piscisaureus_>(in correct English, should that have been "as good as" ?)
00:23:32  <isaacs>piscisaureus_: in modern english, "well" and "good" are nearly interchangable.
00:23:38  <isaacs>unless you're an asshole.
00:23:45  <isaacs>then it's Very Important to use them well.
00:23:52  <piscisaureus_>so what would the asshole answer be?
00:24:03  <isaacs>piscisaureus_: well, that depends.
00:24:26  <isaacs>are you talking about the effectiveness of your knowing, or the moral character of the knowledge?
00:24:43  <isaacs>probably you meant "well"
00:24:44  <piscisaureus_>isaacs: heh, the effectiveness
00:24:49  <isaacs>yeah, then it's "well"
00:24:59  <isaacs>but seriously. this is like a who/whom thing.
00:25:09  <piscisaureus_>I likes that "google really advanced search" had an option for search for "who for whom"
00:25:12  <isaacs>no one outside the royal family and a few lonely high school teachers actually cares.
00:25:14  <piscisaureus_>*liked
00:25:45  <isaacs>i likes me some grammar, too.
00:26:05  <isaacs>whomever enjoys most well the grammar, knows who is good.
00:26:28  <piscisaureus_>you should tell me when I make mistakes in English grammar.
00:27:01  <isaacs>piscisaureus_: really?
00:27:06  <piscisaureus_>yeah
00:27:12  <isaacs>piscisaureus_: ok. noted. will do.
00:27:30  <piscisaureus_>I remember I kept saying allright until someone pointed it out.
00:27:38  <piscisaureus_>I might even have been ryah.
00:27:49  <igorzi>piscisaureus_ isaacs: what do you need Wix to do? just display license? and not to ask to "agree"?
00:27:49  <piscisaureus_>*it
00:28:04  <piscisaureus_>igorzi: yeah. And I want to learn how WiX works
00:28:10  <isaacs>piscisaureus_: see, i wasn't going to correct you there. i thought maybe you were just discussing an identity crisis.
00:28:14  <piscisaureus_>igorzi: it would also be nice if it would ask for the install location.
00:28:41  <isaacs>igorzi: can it display the license, and just have an "ok" and "cancel" buttons?
00:28:55  <igorzi>piscisaureus_: if we make install location customizeable - we should also write it to the registry somewhere (i think there was a patch for that)
00:29:03  <igorzi>piscisaureus_: i think it should be possible
00:29:21  <piscisaureus_>isaacs: in that case "allright" would still be wrong for unjust concatenation of words, right?
00:29:32  <isaacs>piscisaureus_: yeah, "allright" is not justifiable.
00:29:36  <isaacs>piscisaureus_: that's just wrong.
00:29:41  <isaacs>"all right" is fine.
00:29:43  <isaacs>or "alright"
00:30:29  <piscisaureus_>c1xx : fatal error C1083: Cannot open source file: 'D:\node4\Release\\obj\global_intermediate\debug-support.cc': No such file or directory [D:\node4\deps\v8\tools\gyp\v8_base.vcxproj]
00:30:46  <piscisaureus_>^-- "git clean -fdx" to no avail
00:31:56  <piscisaureus_>I think it could be ustack helper patch
00:32:12  * isaacsquit (Remote host closed the connection)
00:36:07  * orlandovftwquit (Ping timeout: 246 seconds)
00:40:55  <piscisaureus_>dap: here?
00:42:53  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/libuv/commit/cd401f5 <- yes?
00:43:21  <piscisaureus_>bnoordhuis: ok, but, why?
00:43:34  <bnoordhuis>for the reason stated in the commit log
00:43:38  <piscisaureus_>bnoordhuis: also, can you find debug-support.cc anywhere in your node source tree.
00:43:55  <piscisaureus_>bnoordhuis: yeah-ok
00:44:15  <bnoordhuis>no, no debug-support.cc in my tree
00:44:44  <dap>piscisaureus_: yeah, that's a result of the ustack helper commit
00:44:47  <piscisaureus_>bnoordhuis: I like to keep common code devoid of #ifdefs but I can see the poinmt
00:44:55  <dap>debug-support.cc is generated as part of the V8 build process
00:45:11  <bnoordhuis>piscisaureus_: good
00:45:12  <dap>I didn't realize it was busted on windows. let me point you to the specific bit
00:45:28  <piscisaureus_>dap: I think it's the v8_postmortem_support bit, right?
00:45:34  <dap>yep, that's exactly it.
00:45:41  <piscisaureus_>dap: can we move it to the [conditions] field?
00:45:42  <dap>it sounds like we shouldn't set that to true on windows.
00:46:07  <dap>yeah, as long as it's there for smartos. right now, it's only used by the smartos debugger AFAIK, though I think mraleph was planning to use it for some other V8 tools
00:46:11  <dap>I don't know if they support windows or what.
00:46:23  <CIA-99>libuv: Ben Noordhuis master * r42095c8 / (3 files in 2 dirs):
00:46:23  <CIA-99>libuv: Remove UV_ARES_TASK_PRIVATE_FIELDS.
00:46:23  <CIA-99>libuv: It's only used internally, it doesn't have to be part of a public header file. - http://git.io/W2oc1g
00:46:27  <dap>I have to leave shortly, though :-/ sorry for the timing
00:48:20  * travis-cijoined
00:48:20  <travis-ci>[travis-ci] joyent/libuv#165 (master - 42095c8 : Ben Noordhuis): The build is still failing.
00:48:20  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/396d138...42095c8
00:48:20  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1004044
00:48:20  * travis-cipart
00:52:41  * dapquit (Quit: Leaving.)
01:01:51  * AvianFlujoined
01:08:50  <CIA-99>node: Bert Belder revieme * r930fabe / common.gypi :
01:08:50  <CIA-99>node: Disable V8 postmortem debugging on Windows
01:08:50  <CIA-99>node: It is not supported by V8. - http://git.io/tL4SlQ
01:09:00  <piscisaureus_>^-- dap / bnoordhuis: lgty?
01:11:10  <bnoordhuis>piscisaureus_: yes
01:11:25  <bnoordhuis>if it works, that is
01:12:14  <bnoordhuis>which it seems to does
01:12:17  <bnoordhuis>*do
01:13:11  <CIA-99>node: Bert Belder master * r930fabe / common.gypi :
01:13:11  <CIA-99>node: Disable V8 postmortem debugging on Windows
01:13:11  <CIA-99>node: It is not supported by V8. - http://git.io/tL4SlQ
01:14:05  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/libuv/commit/1d5f34c <- also yes?
01:14:34  <piscisaureus_>bnoordhuis: is ev_timer the same size as uv_timer?"
01:14:42  <bnoordhuis>no
01:14:43  <piscisaureus_>otherwise you would be spilling space
01:14:47  <bnoordhuis>also, part of my commit is missing
01:15:28  <bnoordhuis>i want to remove ev_* things from non-essential places
01:15:45  <bnoordhuis>that should make it easier to write a custom backend later on
01:16:11  <piscisaureus_>yeah, agreed
01:16:24  <piscisaureus_>bnoordhuis: there won't be much ares handles so I don't care about the size
01:16:34  <piscisaureus_>bnoordhuis: it would not be so nice to embed in in uv_tcp_t though
01:16:47  <bnoordhuis>fortunately we don't use timers there :)
01:17:00  <piscisaureus_>well, we (windows) do in uv_pipe_t
01:17:05  <piscisaureus_>which sucks
01:17:17  <piscisaureus_>bnoordhuis: ok so here is my "kill me" idea
01:17:30  <piscisaureus_>bnoordhuis: we have a capability bitmask of some sorts
01:17:53  <piscisaureus_>bnoordhuis: the user should be able to ask libuv whether a stream supports two-phase graceful close.
01:18:20  <bnoordhuis>piscisaureus_: uhm. why?
01:18:21  <piscisaureus_>because we're now doing this crazy hack that does nothing good but it makes a node test pass
01:18:34  <piscisaureus_>bnoordhuis: local pipes dont support shutdown on windows
01:18:43  <piscisaureus_>shutdown mean just hard close here
01:18:52  <bnoordhuis>is that bad?
01:19:03  <piscisaureus_>bnoordhuis: well that depends :-)
01:19:06  * isaacsjoined
01:19:21  <piscisaureus_>bnoordhuis: it means that if you do shutdown your connection will just die
01:19:36  <piscisaureus_>bnoordhuis: that should not happen under water
01:20:36  <bnoordhuis>piscisaureus_: okay. i suppose that makes sense
01:20:45  * pieternquit (Quit: pietern)
01:21:06  <bnoordhuis>kind of a shame that a windows-ism leaks into the api though :/
01:21:33  * isaacsquit (Remote host closed the connection)
01:22:21  * orlandovftwjoined
01:23:31  <piscisaureus_>yeah, I hate it
01:23:38  <piscisaureus_>it sucks monkey balls
01:23:46  * travis-cijoined
01:23:46  <travis-ci>[travis-ci] joyent/node#688 (revieme - 930fabe : Bert Belder): The build failed.
01:23:46  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/commit/930fabe
01:23:46  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/1004141
01:23:46  * travis-cipart
01:26:59  <CIA-99>libuv: Ben Noordhuis master * r8895c9e / (include/uv-private/uv-unix.h src/unix/cares.c): unix: use uv_timer_t for c-ares' timeout timer - http://git.io/JssEbQ
01:27:04  * abraxasjoined
01:28:28  * travis-cijoined
01:28:28  <travis-ci>[travis-ci] joyent/node#689 (master - 930fabe : Bert Belder): The build is still failing.
01:28:28  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/30994aa...930fabe
01:28:28  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/1004172
01:28:28  * travis-cipart
01:28:58  * travis-cijoined
01:28:59  <travis-ci>[travis-ci] joyent/libuv#166 (master - 8895c9e : Ben Noordhuis): The build is still failing.
01:28:59  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/42095c8...8895c9e
01:28:59  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1004243
01:28:59  * travis-cipart
01:44:18  * igorziquit (Ping timeout: 245 seconds)
01:50:28  <piscisaureus_>ryah: in the mac installer, is te license displayed exactly as it appears in text mode?
01:50:40  <piscisaureus_>ryah: when I load in into the msi it looks funny :-/
01:58:33  <ryah>piscisaureus_: yes - why?
01:58:41  <ryah>piscisaureus_: i think msi might require rtf
01:58:46  <piscisaureus_>ryah: yeah
01:58:54  <piscisaureus_>ryah: it causes me grief and anger
01:59:26  * dylukesquit (Quit: Computer has gone to sleep.)
01:59:36  <piscisaureus_>ryah: but still, if I convert it to rtf it looks weird :-(
02:00:59  <ryah>define weird?
02:01:47  <piscisaureus_>ryah: http://screencast.com/t/NsnStFwS
02:02:27  <ryah>seems to be wrapped somehow
02:02:30  <piscisaureus_>yeah
02:02:44  <piscisaureus_>I think I'll write text2rtf.js to unwrap it
02:03:22  * dylukesjoined
02:04:28  * orlandovftwquit (Ping timeout: 252 seconds)
02:15:14  * dylukesquit (Quit: Pipes are broken. Sending packets via Fedex.)
02:16:13  * eli-awayquit (Remote host closed the connection)
02:18:27  * eli-awayjoined
02:21:39  * avalanche123quit (Ping timeout: 264 seconds)
02:24:18  * avalanche123joined
02:57:31  * avalanche123quit (Ping timeout: 244 seconds)
02:58:59  * avalanche123joined
03:06:35  * ryahquit (Quit: leaving)
03:06:46  * ryahjoined
03:20:47  * philipsquit (Excess Flood)
03:20:52  * philipsjoined
03:27:01  <bnoordhuis>libev--
03:27:16  <bnoordhuis>found a bug where if the stars are right the ev_io watcher links back to itself
03:27:31  <bnoordhuis>iow, it hangs in an infinite loop
03:32:34  * coderaritychanged nick to coderarity_sleep
03:40:41  <txdv>what stars?
03:40:58  <piscisaureus_>bnoordhuis: time to pull a lehman again?
03:49:44  <bnoordhuis>over the counter maybe
03:56:01  <bnoordhuis>i think it boils down to this: libev doesn't dig it if you stop and start th ev_io watcher from inside your callback
04:21:11  <mmalecki>oh well
04:21:27  <mmalecki>so, we actually got too drunk and got late to the plane.
04:23:40  <piscisaureus_>mmalecki: dude!
04:24:08  <mmalecki>piscisaureus_: yes.
04:25:06  <bnoordhuis>mmalecki: where was that plane headed for?
04:25:27  <mmalecki>bnoordhuis: Montpellier
04:26:38  <bnoordhuis>mmalecki: was that that one conference you were going to speak at?
04:27:00  <mmalecki>bnoordhuis: yeah, web-5
04:27:04  <bnoordhuis>right
04:27:09  <bnoordhuis>so now what?
04:27:15  <bnoordhuis>skype? :)
04:27:19  <mmalecki>lol
04:27:26  <mmalecki>we're rerouting through another flight
04:27:34  <mmalecki>that's the plan, at least
04:29:32  <bnoordhuis>bleh, libev
04:29:36  <bnoordhuis>i'm out for breakfast
04:29:45  <bnoordhuis>it's corrupting its internal linked list btw
04:30:01  <bnoordhuis>libev, that is, not my breakfast
04:34:38  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
04:55:55  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
05:03:52  <mmalecki>rerouting through Barcelona
05:03:54  * bulatshakirzyanojoined
05:15:40  * orlandovftwjoined
05:32:27  * TooTallNatejoined
05:32:49  * TooTallNatequit (Client Quit)
05:33:04  * benviequit (Read error: Connection reset by peer)
05:33:50  * benviejoined
05:33:54  * abraxasquit
05:51:10  <bulatshakirzyano>can anyone help me with this https://gist.github.com/56af0497b248446b2cf5
05:51:23  <bulatshakirzyano>when compiled it exists with abort trap: 6
05:51:27  <bulatshakirzyano>no idea why
05:51:43  <bulatshakirzyano>but when I use uv_timer_stop instead of uv_close, it exists cleanly
05:51:54  * bulatshakirzyanochanged nick to avalanche|h
05:51:58  * avalanche|hchanged nick to avalanche123|h
06:02:18  <avalanche123|h>bnoordhuis ping
06:11:20  * rphillips_changed nick to rphillips
06:38:20  * paddybyersjoined
06:56:13  * benviequit
07:10:40  * rendarjoined
07:19:40  * toothrquit (Ping timeout: 240 seconds)
07:43:17  * toothrjoined
07:47:40  * toothrquit (Ping timeout: 240 seconds)
07:57:47  * toothrjoined
08:23:55  <mmalecki>our flight to Barcelona got delayed
08:24:16  <mmalecki>air control strikes. so fun.
08:29:10  * avalanche123|hquit (Ping timeout: 240 seconds)
08:31:53  * avalanche123|hjoined
08:42:14  * isaacsjoined
09:04:49  * AndreasMadsenjoined
09:07:11  * avalanche123|hquit (Ping timeout: 260 seconds)
09:07:22  * isaacsquit (Remote host closed the connection)
09:09:54  * avalanche123|hjoined
09:20:10  <saghul>avalanche123 both cases crash here, I think you should not unref the loop, because it will be automatically unref'd when the timer is stopped. uv_close just calls uv_timer_stop and then the close callback in the next loop iteration, but if you unref the loop the refcount will fall below zero and libev has an abort() there
09:22:05  <saghul>avalanche123|h ^^
09:41:15  * orlandovftwquit (Ping timeout: 246 seconds)
09:58:35  * AndreasMadsenquit (Remote host closed the connection)
10:03:11  * paddybyersquit (Quit: paddybyers)
10:19:42  * benviejoined
11:21:44  * travis-cijoined
11:21:44  <travis-ci>[travis-ci] joyent/libuv#167 (master - 396d138 : Ben Noordhuis): The build is still failing.
11:21:44  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/9d3c000...396d138
11:21:44  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1007618
11:21:44  * travis-cipart
11:29:39  * coderarity_sleepchanged nick to coderarity
11:34:48  * travis-cijoined
11:34:48  <travis-ci>[travis-ci] joyent/node#690 (master - 01d46f3 : isaacs): The build is still failing.
11:34:48  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/cc15299...01d46f3
11:34:48  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/1007732
11:34:48  * travis-cipart
12:28:14  * AndreasMadsenjoined
12:51:28  <bnoordhuis>avalanche123: pong
13:40:33  * paddybyersjoined
13:57:45  * k-s[AWAY]changed nick to k-s
14:02:39  * piscisaureus_joined
14:14:12  <bnoordhuis>piscisaureus_: ping
14:14:19  <piscisaureus_>yo
14:14:25  <bnoordhuis>sup homie?
14:14:29  <bnoordhuis>what would you do?
14:14:37  <piscisaureus_>give up
14:14:40  <piscisaureus_>turn yourself in man
14:14:47  <bnoordhuis>i'm past that stage now
14:15:00  <bnoordhuis>besides, i'm too pretty for prison
14:15:14  <bnoordhuis>so i'm doing some preliminary work on the linux backend
14:15:21  <piscisaureus_>aha
14:15:22  <piscisaureus_>cool
14:15:25  <piscisaureus_>bnoordhuis++
14:15:36  <bnoordhuis>it would be nice to reuse most of the code in src/unix
14:15:44  <bnoordhuis>but of course it uses libev all over the place
14:15:55  <bnoordhuis>mostly ev_io
14:16:11  <piscisaureus_>hm yeah
14:16:14  <bnoordhuis>so i was thinking i can either shim ev_io on linux
14:16:24  <piscisaureus_>but ev_io is exactly the thing you want to replace :-)
14:16:35  <bnoordhuis>or the other way around, create a uv_io_t type that mostly follows ev_io semantics
14:16:46  <bnoordhuis>and replace all ev_io instances with that
14:16:49  <piscisaureus_>bnoordhuis: well I am working on that for windows as well
14:17:01  <piscisaureus_>the only thing is that is is likely to be bigger than the original ev_io
14:17:06  <bnoordhuis>yes
14:17:15  <bnoordhuis>and it adds an extra callback
14:17:27  <bnoordhuis>i.e. ev_io_cb -> uv_io_cb -> user cb
14:17:32  <piscisaureus_>yeah
14:17:36  <piscisaureus_>not very nice eh
14:17:39  <bnoordhuis>no
14:17:47  <bnoordhuis>though i'm not really worried about the performance overhead
14:17:48  <piscisaureus_>can't you do with some macro magic?
14:17:53  <bnoordhuis>yeah
14:18:12  <bnoordhuis>i guess you still need extra memory for the cb pointer
14:18:19  <bnoordhuis>or maybe...
14:18:22  <piscisaureus_>just a sec, talking to rik
14:18:27  <bnoordhuis>sai hi from me
14:18:35  <bnoordhuis>*say
14:18:47  <rendar>well, an extra callback is not so much overhead, right?
14:19:04  <bnoordhuis>rendar: it's not. but momma raised me to waste not, want not
14:19:23  <rendar>lol
14:19:24  <rendar>:)
14:20:57  <piscisaureus_>bnoordhuis: ok - nvm
14:21:10  <piscisaureus_>bnoordhuis: so did we land the detached process patch in 0.7?
14:21:16  <bnoordhuis>yes and no
14:21:17  <piscisaureus_>(sorry for the distraction)
14:21:28  <bnoordhuis>i reverted it because it didn't work right
14:21:30  <piscisaureus_>bnoordhuis: nyo?
14:21:32  <bnoordhuis>and np :)
14:21:33  <piscisaureus_>ah
14:21:42  <piscisaureus_>bnoordhuis: ok so it seems that c9 now also needs it
14:21:51  <piscisaureus_>bnoordhuis: what was the issue with it?
14:21:57  <bnoordhuis>i heard c9 has a couple of c programmers on the payroll, maybe they can work on it
14:22:09  <piscisaureus_>yeah, I guess
14:22:09  <bnoordhuis>ehm... /me digs in his memory
14:22:26  <bnoordhuis>git log to the rescue
14:22:41  <bnoordhuis>Detaching doesn't work yet, the setsid() call fails and leaves the child process attached to the parent's session.
14:23:07  <bnoordhuis>commit ec0eff9
14:24:30  <piscisaureus_>bnoordhuis: so why does setsid fail?
14:25:06  <piscisaureus_>bnoordhuis: btw, I also very much dislike the detach callback
14:25:10  <piscisaureus_>that should just be "exit"
14:25:14  <bnoordhuis>piscisaureus_: i'm not sure. it was AvianFlu who reported the issue
14:25:38  <bnoordhuis>who coincidentally is also the author of that patch
14:25:52  <bnoordhuis>he submitted a new PR
14:26:00  <bnoordhuis>admittedly, i haven't reviewed it yet
14:26:10  <piscisaureus_>ah, right
14:26:15  <piscisaureus_>maybe we should land that :-)
14:26:32  <piscisaureus_>bnoordhuis: so it's weird because according to man 2 setsid there is one possible failure
14:26:39  <bnoordhuis>yes, EPERM
14:26:49  <bnoordhuis>which only happens if you're already the session leader
14:26:51  <piscisaureus_>which happens when the process is already a session leader
14:26:55  <bnoordhuis>yes
14:26:57  <piscisaureus_>so a failure should not matter
14:27:09  <bnoordhuis>agreed
14:27:23  <bnoordhuis>but apparently it wasn't actually detaching
14:27:27  <bnoordhuis>which is kind of the point
14:28:39  <piscisaureus_>bnoordhuis: btw, is it necessary for a a detached child to have no stdio open with the parent?
14:28:49  <bnoordhuis>preferably yes
14:28:58  <piscisaureus_>bnoordhuis: should we not make that optional?
14:29:08  <bnoordhuis>hmm. maybe
14:29:12  <bnoordhuis>no strong opinion
14:29:29  <piscisaureus_>bnoordhuis: also there is this mmapping going on
14:29:35  <piscisaureus_>we could just use that comm pipe right?
14:30:36  <bnoordhuis>well
14:30:44  <bnoordhuis>mmalecki: you there?
14:30:57  <bnoordhuis>i think it's to avoid having to make syscalls
14:31:11  <bnoordhuis>i discussed it with mmalecki back then
14:31:40  <piscisaureus_>I think mmalecki is not here
14:31:51  <bnoordhuis>no. probably sobering up at some airport
14:32:19  <piscisaureus_>bnoordhuis: so one thing I do not like about it that now there is no way *at all* to detect a failure to spawn a child process.
14:32:29  <piscisaureus_>not even a message on stderr because it is not working
14:32:51  <bnoordhuis>because of the double fork thing?
14:32:55  <piscisaureus_>yeah
14:33:02  <piscisaureus_>well mostly for not having stderr :-)
14:34:01  <bnoordhuis>actually, i think the double fork shouldn't be necessary
14:34:14  <bnoordhuis>what does c9 need the detached process thing for?
14:34:45  <tjfontaine>I think the doublefork was there because of setsid not working the way they thought, if I remember the history right
14:34:46  <piscisaureus_>bnoordhuis: basically the replacement for forever
14:34:55  <bnoordhuis>ah right
14:35:03  <piscisaureus_>namely runjs
14:35:15  * pieternjoined
14:35:16  <bnoordhuis>tjfontaine: yeah, i think you're right. still doesn't mean it should be necessary :)
14:35:36  <tjfontaine>agreed
14:36:04  <tjfontaine>just pointing to the fact that you reverted because of setsid, and double-fork was also to fix setsid, which it didn't :)
14:36:04  <bnoordhuis>piscisaureus_: i can look at the patch later this week if you want
14:36:18  <bnoordhuis>or write something of my own as that's the open source way (right fellas?)
14:36:23  <piscisaureus_>bnoordhuis: ok, I'll tell rik
14:36:37  <bnoordhuis>tjfontaine: right :)
14:36:58  <piscisaureus_>bnoordhuis: also, think about whether you want to always disable stdio completely
14:37:16  <piscisaureus_>bnoordhuis: so re linux backend
14:37:26  <bnoordhuis>piscisaureus_: i would turn that around. when would you *want* to enable stdio?
14:37:46  <bnoordhuis>where stdio == reading from / writing to a tty
14:37:55  <piscisaureus_>bnoordhuis: No I don't care about stdio
14:38:13  <piscisaureus_>bnoordhuis: I'm more in for allowing people to have a pipe between the parent and the detached child
14:38:31  <piscisaureus_>bnoordhuis: with the caveat that the pipe will be broken when the parent exits
14:38:46  <bnoordhuis>piscisaureus_: right. that is (and should be) possible
14:38:52  <piscisaureus_>bnoordhuis: it is not
14:38:59  <piscisaureus_>bnoordhuis: not with avianflu's patch at least
14:39:00  <bnoordhuis>should be
14:39:09  <bnoordhuis>err, 'should be' as in 'do want'
14:39:45  <piscisaureus_>AvianFlu: ^^
14:39:55  <piscisaureus_>I'll put in a comment
14:40:50  <piscisaureus_>bnoordhuis: I also don't agree with detached_cb. It should just be exit_cb.
14:40:58  <bnoordhuis>i like how when i look at my github timeline, i see people starting to follow projects of mine i didn't even know i had
14:41:07  <bnoordhuis>piscisaureus_: sure
14:41:20  <bnoordhuis>once again, i have no strong opinion
14:41:30  <bnoordhuis>i could be a d66 voter
14:41:36  <piscisaureus_>(actually on windows there is need to inhibit normal exit behaviour - you can just get notified when any process exits, even if you don't own it)
14:42:09  <piscisaureus_>but we will honor the broken-ness of unix once more.
14:42:12  <piscisaureus_>:-p
14:42:25  <bnoordhuis>hah
14:42:35  <bnoordhuis>need i remind you of file offsets
14:43:47  <bnoordhuis>piscisaureus_: okay, so re linux: questions?
14:43:48  <piscisaureus_>bnoordhuis: btw - you seen this? http://nodetime.com/
14:44:11  <bnoordhuis>no. how does it work?
14:44:30  <piscisaureus_>bnoordhuis: I think it just wraps node's internals with timers
14:45:31  <bnoordhuis>okay. duly noted
14:45:42  <piscisaureus_>bnoordhuis: ok so re linux:
14:45:42  <piscisaureus_>I think I would go for the uv_io_t for the time being. Maybe not to land it. But you probably want to explore whether the performance improvement makes it worthwile.
14:46:03  <bnoordhuis>yes. it's all in a branch
14:46:31  <piscisaureus_>(bnoordhuis: re profiler ok so the answer was no. People here asked if I knew it and if it was good, so I though, that maybe you'd know).
14:47:06  <piscisaureus_>bnoordhuis: so I can tell you from first hand experience that writing an event loop is not hard but the solution space is little overwhelming when you start from scratch
14:47:27  <piscisaureus_>bnoordhuis: I think I would actually start implementing a dispatch queue and tcp sockets.
14:48:16  <piscisaureus_>bnoordhuis: that is - if you think you actually need a dispatch queue (you might be able to do without - but a queue makes your life much easier I can tell you)
14:49:19  <bnoordhuis>piscisaureus_: dispatch queue?
14:49:41  <bnoordhuis>i'm not quite sure what you mean by that
14:50:04  <piscisaureus_>bnoordhuis: yeah so basically like the process.nextTick queue
14:50:11  <bnoordhuis>oh, right
14:50:14  <piscisaureus_>bnoordhuis: libuv-win has a queue for "requests" and "handles"
14:50:25  <piscisaureus_>I think libev has a queue for callbacks or fds or something
14:50:31  <bnoordhuis>fds yes
14:50:39  <bnoordhuis>or watchers, really
14:50:43  <bnoordhuis>but i understand what you mean
14:50:46  <piscisaureus_>yeah, exactly
14:51:01  <piscisaureus_>You don't necessarily need one
14:51:19  <piscisaureus_>because epoll is basically only a queue
14:51:22  <piscisaureus_>*also
14:51:34  <bnoordhuis>yes. but it's stil convenient
14:51:55  <piscisaureus_>but it gets hairy if you want to do something like (considering epoll)
14:51:55  <piscisaureus_>void process_fd(int fd) {
14:52:35  <bnoordhuis>i can allay your fears, a dispatch queue is already part of the design
14:53:11  <piscisaureus_>ok
14:53:12  <piscisaureus_>well
14:53:17  <piscisaureus_>I don't care
14:53:34  <piscisaureus_>I am just telling you about the war so to speak :-)
14:53:56  <bnoordhuis>appreciated :)
14:53:59  <bnoordhuis>anything else?
14:54:34  <piscisaureus_>yes
14:54:44  <piscisaureus_>always be careful with callbacks
14:55:03  <piscisaureus_>people might start/stop reading from a callback
14:55:13  <bnoordhuis>close the handle, etc.
14:55:13  <piscisaureus_>and they could even stop/start/stop/start from the same callback
14:55:16  <bnoordhuis>i know, bertje
14:55:20  <piscisaureus_>also close the handle indeed
15:01:04  <piscisaureus_>oh wow nodetime is actually really cool
15:01:43  <piscisaureus_>bnoordhuis: https://nodetime.com/acc49b9af8
15:02:47  <rendar>nodetime rocks
15:02:48  <rendar>:)
15:02:52  <piscisaureus_>unfortunately os.loadavg is not implemented on windows
15:03:40  <piscisaureus_>who wrote that?
15:06:21  * k-schanged nick to k-s[AWAY]
15:08:24  <bnoordhuis>piscisaureus_: that's pretty neat
15:09:09  <bnoordhuis>i'm impressed
15:12:53  * TooTallNatejoined
15:13:22  <rendar>can i ask you guys if there is a particular reason of choosing C for libuv instead of C++? performance? but isn't easier to connect C++ with google v8?
15:13:54  <bnoordhuis>rendar: c is the common denominator
15:14:10  <bnoordhuis>iow, it's easy to integrate a c lib with e.g. python, php, you name it
15:14:28  <rendar>yes, thats sure thing
15:15:09  <bnoordhuis>c is also easier to read and maintain but third-party integration was the main reason
15:16:09  <rendar>yes for third party integration is absolutely true
15:43:02  <CIA-99>libuv: Ben Noordhuis master * reffa3b6 / include/uv-private/tree.h :
15:43:03  <CIA-99>libuv: Rename __unused to UV__UNUSED.
15:43:03  <CIA-99>libuv: __unused is - contrary to its name - used in glibc.
15:43:03  <CIA-99>libuv: The ANSI/ISO standards reserve all identifiers starting with two underscores so
15:43:03  <CIA-99>libuv: it's generally a good idea not to use those. - http://git.io/9Umrxw
15:48:42  * theColejoined
16:01:03  * stephankjoined
16:02:00  * travis-cijoined
16:02:01  <travis-ci>[travis-ci] joyent/libuv#168 (master - effa3b6 : Ben Noordhuis): The build is still failing.
16:02:01  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/8895c9e...effa3b6
16:02:01  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1009918
16:02:01  * travis-cipart
16:04:34  * theColequit (Quit: theCole)
16:06:06  * k-s[AWAY]changed nick to k-s
16:08:03  * brsonjoined
16:17:59  <avalanche123|h>saghul gotcha, I'll try that
16:18:37  <avalanche123|h>saghul worked, thanks!
16:18:53  * isaacsjoined
16:21:38  * philipsquit (Excess Flood)
16:24:23  * philipsjoined
16:28:39  * orlandovftwjoined
16:29:13  * AvianFluquit (Quit: Leaving)
16:31:47  * avalanche123|hquit (Quit: Leaving...)
16:33:38  * isaacs_joined
16:34:58  * isaacs_quit (Remote host closed the connection)
16:36:10  * isaacsquit (Ping timeout: 240 seconds)
16:52:40  <bnoordhuis>piscisaureus_: random food for thought
16:52:56  <bnoordhuis>what if we drop the loop member from uv_handle_t
16:53:08  <piscisaureus_>and then?
16:53:20  <bnoordhuis>and let callers specify it when calling one of the uv_*_(start|stop) functions
16:53:33  <bnoordhuis>saves storing a pointer in each uv_handle_t struct
16:53:42  <piscisaureus_>bnoordhuis: also for uv_write then?
16:53:43  <bnoordhuis>and makes it possible to migrate handles from one loop to another
16:53:50  <bnoordhuis>yes, i suppose so
16:53:54  <piscisaureus_>bnoordhuis: well heh not on windows at least
16:54:04  <bnoordhuis>okay, maybe not that
16:54:14  <bnoordhuis>but saving 8 bytes per handle seems worthwhile
16:54:21  <piscisaureus_>let me think about it
16:54:24  <bnoordhuis>sure
16:54:37  <piscisaureus_>bnoordhuis: I know easier ways to save 8 bytes
16:54:49  <piscisaureus_>like, reuse libev's the data member :-)
16:56:28  <bnoordhuis>which data member? loop or watcher?
16:56:39  <piscisaureus_>the private data member
16:56:48  <piscisaureus_>like ev_io_t.data
16:57:25  <bnoordhuis>yes
16:57:31  <bnoordhuis>that's on my todo list actually
16:57:42  <bnoordhuis>replace all uses of .data with a container_of lookup
16:57:52  <piscisaureus_>bnoordhuis: yeah that would be nice
16:58:26  <piscisaureus_>it's easier for the compiler and also for the pipeline
16:59:04  <piscisaureus_>Actually it is kind of inconvenient that we renamed "exit" to "end"
16:59:16  <piscisaureus_>if (/^0\.\(2|4|6)\./.test(process.versions.node)) {
16:59:16  <piscisaureus_> cp.on('exit', onEnd);
16:59:16  <piscisaureus_> } else {
16:59:16  <piscisaureus_> cp.on('end', onEnd);
16:59:16  <piscisaureus_> }
16:59:40  <piscisaureus_>(with bug in the regexp)
17:00:15  <bnoordhuis>we do that?
17:00:38  <piscisaureus_>no, but that's if you want to write code that works on .6 and .8
17:00:53  <bnoordhuis>ah right
17:01:04  <bnoordhuis>i didn't know that event was renamed actually :)
17:01:20  <piscisaureus_>bnoordhuis: 'exit' now fires immediately after the child exits
17:01:29  <piscisaureus_>bnoordhuis: doesn't wait for stdio pipes to close no more.
17:02:05  <piscisaureus_>bnoordhuis: do you think this approach would work? -> https://gist.github.com/2293665
17:03:25  <bnoordhuis>piscisaureus_: what in particular should i look at?
17:04:03  <bnoordhuis>btw, can't you just listen for both 'end' and 'exit'?
17:04:36  <piscisaureus_>bnoordhuis: no because in particular I was interested in the event that happens when all the stdio pipes are also closed.
17:04:52  <piscisaureus_>bnoordhuis: also, in 0.8 the exit event is still there, so you'd get the callback twice
17:05:22  <bnoordhuis>what was the rationale for renaming that?
17:05:37  <piscisaureus_>bnoordhuis: spawning
17:05:37  <piscisaureus_>sh -c setsid && node /foo/bar.js </dev/null >/dev/null 2>&1
17:05:37  <piscisaureus_>^-- does that work ?
17:05:43  <piscisaureus_>to detacht a process?
17:06:07  <bnoordhuis>no
17:06:07  <piscisaureus_>bnoordhuis: the rationale was that we needed an event to signify that the child process exited.
17:06:27  <bnoordhuis>`setsid node app.js` does however
17:06:29  <piscisaureus_>bnoordhuis: but 'exit' was already taken so we renamed it
17:06:44  <bnoordhuis>ah, that sounds... disputable
17:07:12  <piscisaureus_>I think this is the cleanest solution
17:07:19  <piscisaureus_>but it'll cause a lot of headaches
17:08:04  <bnoordhuis>for whom? maintainers or users?
17:08:08  <piscisaureus_>bnoordhuis: does setsid redirect stdio to /dev/null all by itself
17:08:12  <bnoordhuis>piscisaureus_: no
17:10:25  <avalanche123>bnoordhuis thanks, saghul already explained the aborts I was seeing
17:10:33  <bnoordhuis>http://news.ycombinator.com/item?id=3790378 <- what would you do if your employer asked for your facebook / twitter / what-have-you credentials?
17:10:59  <bnoordhuis>it seems to rile up los americans a great deal
17:11:12  <bnoordhuis>but i can't imagine an employer asking that here
17:11:37  <bnoordhuis>avalanche123: yes, i didn't notice that until later :)
17:12:39  * bnoordhuisis off to dinner
17:12:42  <TooTallNate>bnoordhuis: piscisaureus_: did that detached child process stuff ever get in?
17:12:49  <bnoordhuis>TooTallNate: no
17:12:59  <bnoordhuis>or rather: yes at first, then no
17:13:06  <bnoordhuis>never in node though
17:13:13  <TooTallNate>no?
17:13:25  <bnoordhuis>it got reverted in libuv
17:13:30  <TooTallNate>what are the daemonozing guys supposed to do?
17:13:38  <bnoordhuis>scroll up, piscisaureus_ and i discussed it earlier today
17:13:53  <bnoordhuis>as to the daemon guys, they need to exhibit patience
17:14:14  * bnoordhuisis now really off to dinner
17:14:44  <TooTallNate>piscisaureus_: you mean this setsid stuff? what about windows?
17:15:10  <TooTallNate>piscisaureus_: or are you guys saying that this is the current state of affairs, and that the detached stuff is still on the table?
17:18:23  <piscisaureus_>TooTallNate: it is still on the table, but there was a problem with it.
17:18:32  <piscisaureus_>TooTallNate: we also found some stuff we don't like
17:18:50  <piscisaureus_>TooTallNate: so AvianFlu sent a new pull request that didn't land yet
17:19:00  <piscisaureus_>when our comments are addressed we will land it again.
17:19:15  <TooTallNate>piscisaureus_: ok, ben just made it sound like it was off the table at first
17:19:20  <TooTallNate>"never in node though"
17:19:24  <TooTallNate>but i get what he meant now
17:19:44  <piscisaureus_>TooTallNate: it is not off the table
17:19:54  <TooTallNate>piscisaureus_: cool
17:27:06  * orlandovftwquit (Ping timeout: 265 seconds)
17:30:13  * isaacsjoined
17:43:08  <tjfontaine>TooTallNate: "never in node" should be expanded to "never made it to node"
17:43:41  <TooTallNate>tjfontaine: indeed, i got that now, thanks :p
17:44:00  <TooTallNate>i'll be patient, not in a big hurry for daemon
17:44:22  <tjfontaine>http://lwn.net/Articles/490413 man this would have been a great april fools joke
17:53:00  * brsonquit (Ping timeout: 246 seconds)
17:54:54  * brson_joined
17:57:10  * isaacsquit (Remote host closed the connection)
17:57:54  * brsonjoined
17:58:13  <brson>qi
17:58:29  * brson_quit (Remote host closed the connection)
17:58:29  * brsonquit (Remote host closed the connection)
17:58:41  * brsonjoined
18:08:43  * eli-awayquit (Remote host closed the connection)
18:12:05  * eli-awayjoined
18:14:36  <avalanche123>I'm working on Ruby bindings for libuv using ffi, I'm having to duplicate all the structure definitions in ruby to be able to allocate correct memory size for handle initialization functions (uv_*_init())
18:15:05  <avalanche123>is there I way I could just look up handle sizes from libuv to avoid structure duplication?
18:15:27  <tjfontaine>avalanche123: you could use something like libclang to automatically generate definitions
18:15:45  <pfox___>avalanche123: if you want to alloc things of arbitrary size as opaque structs.. you could just write a c func to return sizeofs .. ?
18:16:03  <tjfontaine>avalanche123: I did something similar with https://github.com/tjfontaine/node-libclang
18:16:22  <pfox___>i long for the day that rust pulls libclang into the main repo. hopefully in the next few months.
18:16:26  <pfox___>will enable all kinds of magic
18:16:32  <tjfontaine>indeed
18:16:54  <avalanche123>wow, fucking a guys, I'm gonna explore libclang
18:17:29  <tjfontaine>avalanche123: first google result taking into account your query https://github.com/jarib/ffi-clang
18:17:43  <avalanche123>yup, reading http://llvm.org/devmtg/2010-11/Gregor-libclang.pdf :)
18:18:03  <benvie>I made this using clang https://gist.github.com/1973743
18:18:24  <benvie>it is awesome
18:18:33  <benvie>node-clang tooo
18:18:51  <avalanche123>this is awesome, thanks a lot guys
18:21:24  * orlandovftwjoined
18:21:33  * orlandovftwquit (Client Quit)
18:21:48  * orlandovftwjoined
18:31:32  * brsonquit (Ping timeout: 252 seconds)
18:32:42  * igorzijoined
18:42:59  * brsonjoined
18:46:07  * isaacs_mobilejoined
18:56:25  * brsonquit (Ping timeout: 252 seconds)
18:57:33  * isaacs_mobilequit (Remote host closed the connection)
19:20:22  * k-schanged nick to k-s[AWAY]
19:21:27  * k-s[AWAY]changed nick to k-s
19:23:51  * pieternquit (Ping timeout: 276 seconds)
19:26:44  * pieternjoined
19:32:25  * pieternquit (Quit: pietern)
19:43:09  <tjfontaine>TooTallNate: I haven't really been able to get chjj to give constructive feedback, I'm interested to see if your work with him will loosen him up slightly
19:44:23  * mjr_joined
19:44:57  <TooTallNate>tjfontaine: :p *shrug*
19:45:08  <TooTallNate>he's probably confused why we didn't start with his fork though
19:52:47  * mjr_quit (Quit: mjr_)
20:03:21  * brsonjoined
20:19:59  * AndreasMadsenquit (Remote host closed the connection)
20:32:55  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
20:33:45  * AvianFlujoined
20:37:17  * perezdjoined
20:38:23  * philipsquit (Excess Flood)
20:39:05  * AvianFluquit (Ping timeout: 250 seconds)
20:40:54  * philipsjoined
20:56:08  * k-schanged nick to k-s[AWAY]
21:00:50  * pieternjoined
21:04:04  * txdv_joined
21:05:05  * txdvquit (Ping timeout: 265 seconds)
21:05:19  * AvianFlujoined
21:17:40  * AvianFluquit (Ping timeout: 240 seconds)
21:20:30  * AvianFlujoined
21:27:56  * AvianFlu_joined
21:30:25  * AvianFluquit (Ping timeout: 244 seconds)
21:32:29  * AvianFlu_quit (Ping timeout: 244 seconds)
21:33:55  * AvianFlujoined
21:40:18  * piscisaureus_joined
21:41:23  * rendarquit
21:44:09  * demarchiquit (Ping timeout: 252 seconds)
21:44:09  * k-s[AWAY]quit (Ping timeout: 252 seconds)
21:49:00  <benvie>TooTallNate: how does this communicate the lines/cols back to the server?
21:49:10  * AvianFluquit (Ping timeout: 240 seconds)
21:49:20  <benvie>TooTallNate: I see it in the options and then that matches on the server but don't see where it actually communicates that
21:59:06  <avalanche123>bnoordhuis ping
22:01:10  * k-s[AWAY]joined
22:01:10  * demarchijoined
22:02:12  <avalanche123>do you think adding something like https://gist.github.com/cf226e89038edc688112 to libuv makes sense? to assist it making ff bindings without having to copy all struct definitions?
22:02:20  <avalanche123>tjfontaine pfox___ ^^
22:03:39  * AvianFlujoined
22:05:13  * k-s[AWAY]changed nick to k-s
22:17:44  <txdv_>avalanche123: yes it does
22:18:05  <avalanche123>txdv_ sweet, glad you think so
22:18:16  <txdv_>i've got some C# bindings and i'm doing exactly the same
22:18:42  <avalanche123>txdv_ maybe you could back this up then - https://github.com/joyent/libuv/pull/370
22:18:53  <txdv_>https://github.com/txdv/libuv/commit/ecea9882713d56b3cbfe19c489b2c3ef526115e3
22:19:35  <avalanche123>ooh, I like yours better
22:19:39  <avalanche123>was there a pull request?
22:20:00  <txdv_>no
22:20:15  <avalanche123>heh, let's see what feedback we get from the core
22:20:31  <avalanche123>thanks for responding
22:20:57  <piscisaureus_>avalanche123: so if you cannot do sizeof(uv_tcp_t), how do you know all the values of handle type enum?
22:20:59  * dylukesjoined
22:21:18  <piscisaureus_>avalanche123: basically that means that every time we update libuv you need to update the bindings right?
22:21:35  <avalanche123>for that one enum, correct
22:22:56  <avalanche123>not ideal, so maybe we could do something about that too, but I don't mind updating one enum
22:23:10  <piscisaureus_>avalanche123: so for your bindings project you write absolutely nothing in c?
22:23:17  <avalanche123>piscisaureus_ correct
22:23:24  <txdv_>mine too piscisaureus_
22:23:45  <txdv_>https://github.com/txdv/Libuvsharp
22:23:59  <piscisaureus_>let me see
22:24:30  <piscisaureus_>hmm
22:24:47  <piscisaureus_>This ffi stuff is a whole new can of works
22:24:49  <piscisaureus_>*worms
22:25:04  <avalanche123>heh, this is a gist of what I have - https://gist.github.com/4e86a9efed4f886aa1a6
22:25:06  <piscisaureus_>that basically means that we have to freeze struct layouts, etc
22:25:17  <pfox___>not until 1.0!
22:25:24  <piscisaureus_>indeed
22:25:31  <piscisaureus_>well we are not going there anytime soon
22:25:35  <pfox___>heh, ive been dealing with the same drama in rust.
22:25:39  <txdv_>piscisaureus_: you don't have to freeze the private layout
22:25:42  <avalanche123>that's fair
22:25:45  <pfox___>of course, i have c++ glue
22:25:51  <txdv_>only the "public" struct elements
22:26:04  <pfox___>txdv_: doesn't matter.. the private layout influences sizeof return value
22:26:05  <piscisaureus_>pfox___: so for the rust bindings you could just use sizeof right?
22:26:12  <pfox___>if you want to allocate a struct on your runtime's stack
22:26:17  <pfox___>you need to know the "real" size
22:26:18  <piscisaureus_>ah
22:26:24  <txdv_>pfox___: SO?
22:26:43  <pfox___>well, there're several ways to split this hair
22:26:44  <txdv_>sizeof of 0.1 returns 200 and sizeof of 0.2 returns 300, ON runtime
22:26:45  <piscisaureus_>I remember brson asking for the same actually so it could be valid
22:26:53  <pfox___>1) use libclang to parse uv.a and get the size
22:26:56  <pfox___>so: codegen
22:27:13  <piscisaureus_>so
22:27:31  <pfox___>2) have tests to compare sizeof results between your platform stuff and whats in the native struct representations
22:27:31  <avalanche123>pfox___ yeah, that's my option #2 I suppose, yet seems more fragile than getting size at runtime
22:27:34  <pfox___>this is what i have to do
22:27:34  <piscisaureus_>what we want to do at some point is merge the stream times
22:27:56  <pfox___>i have "padded" rust records that are just filled with void pointers
22:28:01  <pfox___>until i get the size/alignment to match up
22:28:11  <piscisaureus_>so uv_tcp_t, pipe, tty would all be just uv_stream_t (and maybe udp too)
22:28:30  <pfox___>i really want 3) link-time support (leveraging #1) to build me opaque types of size-n at build/link time)
22:28:47  <pfox___>hopefully, if we pull libclang into rust, ill get a crack at something like that. it'd be swell.
22:29:03  <pfox___>avalanche123: well if you can do it at runtime, good for you! do it!
22:29:12  <pfox___>way more flexible. im working w/ a static language.
22:29:34  <piscisaureus_>pfox___: so the ruby ffi bindings ... are they actually fast enough to be meaningful?
22:29:39  <pfox___>alternative 3b) strong build-time macro support to do the sizeof at build-time and code-gen the padded, opaque struct and put it in the AST
22:29:48  <pfox___>pfox___: im not a filthy ruby developer
22:29:52  <piscisaureus_>pfox___: I mean ffu is usually, um, slow
22:29:53  <pfox___>piscisaureus_: , even
22:30:02  <piscisaureus_>*ffi
22:30:20  <avalanche123>benchmarks are yet to be made
22:30:28  <piscisaureus_>ah, wait, sorry, I meant avalanche123
22:30:36  <avalanche123>:)
22:33:04  <txdv_>how are theseC++ bindings for libuv called
22:33:06  <txdv_>libuv.native?
22:33:18  <txdv_>node.native
22:33:19  <txdv_>i forgot
22:38:24  <avalanche123>so where do we stand on this?
22:38:47  <avalanche123>useful/not useful
22:39:21  <piscisaureus_>I think, useful
22:39:25  <piscisaureus_>not for us though
22:39:36  <piscisaureus_>but it's not invasive so I wouldn't mind
22:39:42  <piscisaureus_>but I'll have to discuss with bnoordhuis
22:39:52  <piscisaureus_>I like second opinions
22:40:00  <avalanche123>piscisaureus_ thanks, I appreciate it
22:40:01  <piscisaureus_>or maybe igorzi
22:43:23  * AvianFluquit (Ping timeout: 244 seconds)
22:50:08  * AvianFlujoined
22:50:08  * AvianFluquit (Remote host closed the connection)
23:00:37  * dylukesquit (Quit: Computer has gone to sleep.)
23:13:24  * perezdquit (Quit: perezd)
23:20:54  * dylukesjoined
23:24:56  <mmalecki>bnoordhuis: sup?
23:27:25  <piscisaureus_>bnoordhuis: coming tomorrow?
23:29:47  <mmalecki>oh hey, piscisaureus_ , bnoordhuis
23:30:02  <mmalecki>going to be in Amsterdam on April 13/14/15, I think
23:30:25  <mmalecki>like, the weekend.
23:30:29  <mmalecki>any chance for beers?
23:32:25  * indexzerojoined
23:32:35  <piscisaureus_>mmalecki: I prefer having beers during week days (the weekend are the only days I get to see my girlfriend)
23:32:50  <piscisaureus_>but since you are only here in the weekend I may be able to work something out
23:39:14  * k-schanged nick to k-s[AWAY]
23:44:18  * pfox___quit (Ping timeout: 252 seconds)
23:47:46  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)