00:00:08  * EhevuTov_changed nick to EhevuTov
00:03:56  * AndreasMadsenquit (Remote host closed the connection)
00:07:18  * perezdjoined
00:13:45  * EhevuTovquit (Quit: This computer has gone to sleep)
00:15:00  * yunongquit (Ping timeout: 252 seconds)
00:16:12  * bnoordhuisjoined
00:21:42  * Rivoiajoined
00:21:46  <Rivoia>hey guys
00:21:48  <bnoordhuis>TooTallNate: seen this before? Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
00:21:50  <Rivoia>i have a question
00:21:50  <isaacs>it
00:21:51  <bnoordhuis>C:\Users\Corey\Documents\workspace\NGN\node_modules\node-iconv\build\iconv.vcxproj(18,3): error MSB4019: The imported p
00:21:55  <bnoordhuis>roject "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, an
00:21:58  <isaacs>it's really annoying how net.Socket objects can be reused.
00:22:02  <Rivoia>i am building a test app using libuv
00:22:05  <Rivoia>voice chat
00:22:21  <TooTallNate>bnoordhuis: i have not
00:22:29  <bnoordhuis>TooTallNate: https://github.com/bnoordhuis/node-iconv/issues/46
00:22:47  <bnoordhuis>node-iconv or node-gyp issue? looks like the latter to me but...
00:22:50  <bnoordhuis>Rivoia: go on :)
00:22:51  <Rivoia>how does libuv's mutexes work?
00:23:02  <bnoordhuis>Rivoia: are you familiar with pthread mutexes?
00:23:06  <Rivoia>the libuv book is a little light on that
00:23:44  <Rivoia>nope
00:23:55  * stagasquit (Quit: ChatZilla 0.9.89-rdmsoft [XULRunner 1.9.0.17/2009122204])
00:24:00  <bnoordhuis>Rivoia: well, study those because that's how libuv mutexes work :)
00:24:49  <bnoordhuis>Rivoia: libuv supports regular mutexes, rwlocks, condition variables and semaphores
00:26:11  <Rivoia>i will read into it
00:26:15  <Rivoia>also on an unrelated note
00:26:34  <Rivoia>my code sends 2 packets then exits. any idea why. let me gist it
00:27:01  <TooTallNate>bnoordhuis: well the first part seems like a warning to me, but the rest of it is an error
00:27:10  <TooTallNate>i'm guessing he doesn't have stuff installed :\
00:27:55  <bnoordhuis>TooTallNate: i'll ask him to double-check his VS install
00:28:08  <TooTallNate>i just did
00:28:14  <bnoordhuis>ah, so you did
00:32:04  <Rivoia>is uv_rwlock blocking?
00:32:51  <bnoordhuis>Rivoia: there are blocking and non-blocking versions
00:33:16  <Rivoia>what are the blocking versions?
00:33:29  <bnoordhuis>Rivoia: the ones that don't have trylock anywhere in the function name
00:33:41  <Rivoia>also is semaphore the only tested mutexes? i am looking at the test files and can't find the rwmutex tests
00:34:11  <bnoordhuis>Rivoia: there's tests for them. at what version of libuv are you looking?
00:34:18  <Rivoia>;atest
00:34:21  <Rivoia>latest*
00:34:34  <bnoordhuis>Rivoia: look at test/test-mutexes.c
00:34:46  <Rivoia>:P
00:36:12  * perezdquit (Quit: perezd)
00:37:16  * perezdjoined
00:38:53  <MI6>joyent/libuv: Charlie McConnell master * 1d85815 : unix: do not set environ unless one is provided Currently, `uv_spawn` wi - http://git.io/XxEzSA
00:40:38  * travis-cijoined
00:40:38  <travis-ci>[travis-ci] joyent/libuv#841 (master - 1d85815 : Charlie McConnell): The build passed.
00:40:38  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/dcce1eab3b02...1d858156b431
00:40:38  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3041378
00:40:38  * travis-cipart
00:42:34  <MI6>joyent/libuv: Charlie McConnell v0.8 * fb64948 : unix: do not set environ unless one is provided Currently, `uv_spawn` wi - http://git.io/_wml3w
00:43:54  <bnoordhuis>hm, it's both a bug fix and a change in behavior
00:44:18  * travis-cijoined
00:44:18  <travis-ci>[travis-ci] joyent/libuv#842 (v0.8 - fb64948 : Charlie McConnell): The build is still failing.
00:44:18  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/f43ad85eddf7...fb649487465d
00:44:18  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3041410
00:44:18  * travis-cipart
00:50:09  <Rivoia>weird
00:50:14  <Rivoia>not it only sends 1 buffer
00:50:19  <Rivoia>now*
00:54:15  <Rivoia>for the uv_udp_read_start
00:54:32  <Rivoia>when the on_read cb is called, do i need to call uv_udp_read_start again
00:54:40  <Rivoia>or is it called everytime a packet is received?
00:55:40  * Rivoiaquit (Quit: Page closed)
00:56:06  <bnoordhuis>Rivoia: libuv keeps calling your recv cb until you call uv_udp_recv_stop
00:56:20  <bnoordhuis>or until you close the handle, that being equivalent
01:03:20  * bnoordhu1sjoined
01:07:27  <MI6>joyent/libuv: Ben Noordhuis master * 914185d : unix: make some internal methods static - http://git.io/AIvtvA
01:09:19  * travis-cijoined
01:09:19  <travis-ci>[travis-ci] joyent/libuv#843 (master - 914185d : Ben Noordhuis): The build was broken.
01:09:19  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/1d858156b431...914185d6fc2f
01:09:19  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3041571
01:09:19  * travis-cipart
01:11:21  * lohkeypart
01:19:30  <piscisaureus_>ouch
01:19:39  <piscisaureus_>that v8 performance issue is a real v8 bug
01:23:36  * perezdquit (Quit: perezd)
01:24:06  * ArmyOfBrucequit (Excess Flood)
01:24:36  * ArmyOfBrucejoined
01:27:59  * piscisaureus_quit (Read error: No route to host)
01:28:13  * piscisaureus_joined
01:28:41  * loladiroquit (Quit: loladiro)
01:56:29  * TooTallNatequit (Quit: Computer has gone to sleep.)
01:57:53  * joshthecoderjoined
02:04:34  * brsonquit (Ping timeout: 240 seconds)
02:13:00  * hzquit
02:14:21  * Yorhelquit (Ping timeout: 244 seconds)
02:20:58  * Yorheljoined
02:25:36  * bnoordhu1squit (Ping timeout: 240 seconds)
02:49:28  * hzjoined
02:49:38  * hzquit (Client Quit)
02:51:33  * bnoordhuisquit (Ping timeout: 244 seconds)
02:57:19  * TooTallNatejoined
03:08:40  * piscisaureus_quit (Ping timeout: 268 seconds)
03:10:07  * TheJHquit (Ping timeout: 260 seconds)
03:14:22  * loladirojoined
03:23:41  * bulatshakirzyanojoined
03:28:19  * bulatshakirzyanoquit (Ping timeout: 260 seconds)
03:28:57  * bulatshakirzyanojoined
03:32:05  * bnoordhuisjoined
03:35:23  * c4milojoined
03:36:40  * bnoordhuisquit (Ping timeout: 244 seconds)
03:38:53  * bulatshakirzyanoquit (Ping timeout: 268 seconds)
03:42:59  * mikealjoined
03:58:09  * mikealquit (Quit: Leaving.)
04:12:14  * avalanche123joined
04:12:51  * brsonjoined
04:15:37  * mikealjoined
04:16:31  * avalanche123quit (Ping timeout: 252 seconds)
04:19:13  * avalanche123joined
04:27:10  * mikealquit (Quit: Leaving.)
04:28:02  * EhevuTovjoined
04:46:26  * yunongjoined
04:57:20  * mikealjoined
05:05:16  * EhevuTovquit (Quit: This computer has gone to sleep)
05:07:32  * mikealquit (Ping timeout: 248 seconds)
05:16:15  * TooTallNatequit (Quit: Computer has gone to sleep.)
05:33:35  * mikealjoined
05:36:16  * avalanche123quit (Ping timeout: 245 seconds)
05:43:07  * mikealquit (Ping timeout: 256 seconds)
05:44:21  * c4miloquit (Remote host closed the connection)
05:48:32  <txdv>does the slab allocator and buffers in nodejs have something in common?
05:49:33  * mikealjoined
06:13:20  * mikealquit (Quit: Leaving.)
06:29:53  * mikealjoined
07:05:32  * joshthecoderquit (Quit: Leaving...)
07:18:40  * rendarjoined
07:19:03  * loladiroquit (Quit: loladiro)
07:37:14  * brsonquit (Read error: Connection reset by peer)
08:01:17  * mitsuhikoquit (Quit: ZNC - http://znc.sourceforge.net)
08:04:00  * TooTallNatejoined
08:04:05  * TooTallNatequit (Client Quit)
08:17:01  <hij1nx_>isaacs: ping
08:31:16  * loladirojoined
08:31:17  * loladiroquit (Client Quit)
09:01:35  <indutny>hey everyone!
09:17:13  * mmalecki[out]changed nick to mmalecki
09:21:57  * mjr_quit (Quit: mjr_)
09:37:56  * yunongquit (Quit: Leaving.)
09:57:58  * stagasjoined
10:00:10  <indutny>creationix: heya, yt?
10:31:46  * mitsuhikojoined
10:33:30  * mitsuhikoquit (Excess Flood)
10:33:46  * mitsuhikojoined
10:52:08  * mralephjoined
11:19:30  * hzjoined
11:26:16  * ArmyOfBrucequit (Excess Flood)
11:26:44  * ArmyOfBrucejoined
11:43:47  * hzquit (Excess Flood)
11:43:59  * hzjoined
12:05:13  * mitsuhikoquit (Quit: ZNC - http://znc.sourceforge.net)
13:04:05  * TheJHjoined
13:05:11  * stagasquit (Ping timeout: 255 seconds)
13:11:11  * TheJHquit (Ping timeout: 260 seconds)
13:27:29  * janjongboomquit (Quit: janjongboom)
13:28:32  * TheJHjoined
13:34:27  * c4milojoined
13:50:35  * AvianFlujoined
14:16:49  * c4miloquit (Remote host closed the connection)
14:19:19  * c4milojoined
14:35:37  * c4miloquit (Remote host closed the connection)
15:18:11  * hij1nx_quit (Quit: Lost terminal)
15:18:51  * hij1nxjoined
15:26:49  * bradleymeckjoined
15:55:37  * ArmyOfBrucequit (Excess Flood)
15:56:09  * ArmyOfBrucejoined
16:03:22  * hzquit
16:27:20  * stagasjoined
16:56:05  * mikealquit (Quit: Leaving.)
17:23:04  * c4milojoined
17:26:30  * piscisaureus_joined
17:32:03  * bradleymeckquit (Quit: bradleymeck)
17:34:57  <piscisaureus_>mraleph: which phi should set the kDeoptimizeOnUndefined flag you thing?
17:35:44  <piscisaureus_>mraleph: it seems that IsNilAndBranch should force the representation to change to tagged, but this isn't happening
17:37:26  <mraleph>piscisaureus_: exactly, the phi for i
17:38:23  <piscisaureus_>mraleph: I though that kDeoptimizeOnUndefined was sort of a hack to avoid needless representation changes
17:38:49  <indutny>:)
17:39:02  <mraleph>piscisaureus_: its a correctness thingy.
17:39:06  <piscisaureus_>because CompareAndBranch can work on untagged doubles in many cases
17:39:09  <piscisaureus_>hmm
17:39:12  <indutny>I'm just going to implement representation in candor
17:39:23  <indutny>i.e. add types to hir instruction's results
17:39:33  <piscisaureus_>brace yourself :-p
17:39:50  <indutny>:)
17:40:21  <piscisaureus_>indutny: this thing makes my skin creep
17:40:27  <indutny>why?
17:40:31  <piscisaureus_>and then I didn't even have to write it, I just look at the code
17:40:34  <indutny>it's simplier than linear scan allocator
17:40:44  <indutny>well
17:40:47  <indutny>it's bigger
17:40:50  <indutny>but simplier :)
17:42:05  * jmar777joined
17:42:40  <indutny>piscisaureus_: but this first http://dl.acm.org/citation.cfm?id=207154
17:42:57  <piscisaureus_>haha
17:46:52  * mikealjoined
17:49:28  <indutny>piscisaureus_: do you have a minute?
17:49:32  <indutny>for a C wierdness
17:49:47  <piscisaureus_>indutny: ok
17:49:58  <indutny>piscisaureus_: suppose I've parent class
17:50:04  * yunongjoined
17:50:07  <indutny>and some child class
17:50:11  <piscisaureus_>indutny: a class, in c ?
17:50:14  <indutny>(it's actually C++ wierdness)
17:50:16  <indutny>C++
17:50:16  <kohai>C has 25 beers
17:50:18  <piscisaureus_>aha
17:50:21  <indutny>yeah
17:50:26  <indutny>so
17:50:38  <indutny>I need some sort of interior pointer for that class
17:50:41  <indutny>to indentify it
17:50:53  <indutny>class P {}; class A : P {}; class B : P {};
17:50:58  <indutny>ah
17:50:59  <indutny>nvm
17:51:07  <indutny>I'll use magic words
17:52:40  <indutny>oh shit
17:52:42  <indutny>it won't work
17:52:43  <piscisaureus_>in:
17:52:44  <indutny>ah
17:52:45  <piscisaureus_>indutny:
17:52:46  <indutny>no it will
17:52:47  <piscisaureus_>class Test {
17:52:47  <piscisaureus_> static const int a = 1;
17:52:47  <piscisaureus_> void* ident;
17:52:47  <piscisaureus_> Test(): ident((void*) &a) {
17:52:47  <piscisaureus_> }
17:52:47  <piscisaureus_>}
17:52:47  <piscisaureus_>?
17:52:50  <indutny>yeah
17:52:52  <indutny>that's what I want
17:53:00  <indutny>and I'm doing it
17:53:32  * AvianFluquit (Remote host closed the connection)
17:53:40  <indutny>will it generate symbol for `int a` twice if I'll include header in multiple places?
17:53:48  <indutny>piscisaureus_: ^
17:53:56  <piscisaureus_>i dont think so
17:54:08  <indutny>oh
17:54:09  <indutny>nice
17:54:18  <piscisaureus_>good question actually :-)
17:55:03  <indutny>yeah, that's a problem
17:55:10  <piscisaureus_>indutny well, you could use a function
17:55:15  <indutny>that's it
17:55:22  <indutny>but
17:55:24  <indutny>I've another idea
17:55:27  <indutny>I could use vtable
17:56:26  <piscisaureus_>class Test {
17:56:26  <piscisaureus_> static const int a;
17:56:26  <piscisaureus_> void* ident;
17:56:26  <piscisaureus_> Test(): ident((void*) GetIdent()) {
17:56:26  <piscisaureus_> }
17:56:26  <piscisaureus_> private:
17:56:26  <piscisaureus_> static void* GetIdent();
17:56:27  <piscisaureus_>};
17:56:27  <piscisaureus_>static int a = 1;
17:56:28  <piscisaureus_>void* Test::GetIdent() {
17:56:28  <piscisaureus_> return (void*) a;
17:56:29  <piscisaureus_>}
17:56:32  <indutny>ah
17:56:37  <indutny>yes
17:56:51  <indutny>well
17:56:55  <indutny>it's almost the same :)
17:57:02  <piscisaureus_>or even with a virtual function
17:57:06  <indutny>indeed
17:57:13  <indutny>virtual functions are interesting...
17:57:19  <rendar>class Test { static int a; } //header int Test::a; //cpp
17:57:39  <piscisaureus_>hmm that doesn't lool like it'd work
17:57:40  <indutny>but I suppose I can't get child's functions address
17:57:49  <indutny>from parent
17:57:56  <piscisaureus_>hmm, why not?
17:57:56  <rendar>every static instance must have its counterpart in the TU (the .cpp)
17:58:05  <indutny>piscisaureus_: I can?
17:58:13  <indutny>piscisaureus_: how?
17:58:18  <indutny>mraleph: probably you can help here too?
17:58:21  <piscisaureus_>(void*) this->func ?
17:58:23  <piscisaureus_>:-p
17:58:54  <indutny>huh?
17:58:59  <indutny>and it'll use function's address from parent?
17:59:00  <indutny>ah
17:59:05  <indutny>I can always do virtual fn() = 0;
17:59:08  <piscisaureus_>indutny: but you'd have to implement the func method every time
17:59:15  <indutny>well, that's better :)
17:59:24  <piscisaureus_>indutny: yeah, that doesn't work, because (void*) this->func would be 0 :-)
17:59:25  <rendar>why you want that? can i ask you what design are you trying to implement? :)
17:59:29  <piscisaureus_>indutny: why not
17:59:37  <indutny>rendar: I've CWrapper class in candor
17:59:43  <rendar>hmm
17:59:53  <indutny>and people may want to implement various wrappers
17:59:57  <indutny>like FSHandle, Buffer
17:59:59  <indutny>and everything
18:00:01  <piscisaureus_>indutny: virtual void* GetIdent() { return some_magic_value }
18:00:10  <indutny>magic value is not good
18:00:14  <indutny>value clash
18:00:18  * davisp-joined
18:00:22  <indutny>interior pointers cannot clash
18:00:45  <piscisaureus_>indutny: virtual void* GetIdent() { return &some_static_var }
18:00:55  <indutny>em
18:01:00  <indutny>why virtual then?
18:01:01  <indutny>:)
18:01:07  <rendar>indutny: i didn't know candor, i'm reading the github page, its great idea!
18:01:08  <piscisaureus_>indutny: because then you can do this
18:01:27  <piscisaureus_>Specialization instance;
18:01:35  <piscisaureus_>Base* instance_ = &instance;
18:01:39  <txdv>rendar: why is it a great idea
18:01:50  <rendar>txdv: i like it
18:01:50  <piscisaureus_>assert(instance_->Ident() ==instance.Ident())
18:01:55  <piscisaureus_>^-- indutny
18:02:55  <rendar>you can also do assert( dynamic_cast< Base * >(instance) );
18:03:11  <indutny>huh?
18:03:16  <piscisaureus_>only if you use RTTI
18:03:20  <piscisaureus_>I would not recommend it
18:03:23  <indutny>hm....
18:03:26  <indutny>yeah
18:03:30  <indutny>it's a little bit fucked AFAIK
18:03:37  <rendar>piscisaureus_: yeah, but with assert that will be stripped out, rtti is ok :)
18:03:38  <indutny>and grows binary much
18:03:47  <indutny>it should not be stripped
18:03:54  <rendar>i see
18:03:57  <indutny>you know node's method
18:04:00  <indutny>Buffer::HasInstance()
18:04:05  <indutny>that's what I do need in candor
18:04:10  * AndreasMadsenjoined
18:04:16  <rendar>hmm
18:04:27  <indutny>ok
18:04:29  <indutny>magic interior pointer!
18:04:30  <indutny>:)
18:04:36  <indutny>static int magic;
18:04:37  <indutny>&magic
18:04:58  <rendar>indutny: btw the method piscisaureus_ suggested of having a magic number is not so bad, i know there is number clashing etc, but its still often used
18:05:13  <indutny>I don't want to keep list of magic ids
18:05:20  <indutny>and also
18:05:23  <indutny>addons will sucl
18:05:24  <indutny>suck
18:05:25  <rendar>yeah, thats annoying indeed
18:05:26  <piscisaureus_>you can always make numbers unique by returning a pointer to a class static
18:05:37  <indutny>indeed
18:05:41  <indutny>that's what I'm doing
18:05:49  <piscisaureus_>the only problem is that you need to add some boilerplace to every child class
18:05:51  <indutny>I just thought that it might be simplier for developers
18:05:54  <indutny>piscisaureus_: yes
18:05:55  <indutny>that's it
18:06:03  <piscisaureus_>indutny: maybe just add a macro for it
18:06:14  <piscisaureus_>DEFINE_GETIDENT_FUNCTION()
18:06:18  * davispquit (*.net *.split)
18:06:18  * davisp-changed nick to davisp
18:06:19  * davispquit (Changing host)
18:06:19  * davispjoined
18:06:44  <indutny>oh noes
18:06:46  <indutny>not a macro
18:06:50  <indutny>it's not C
18:06:51  <indutny>:)
18:06:55  <indutny>no macros in API
18:07:01  <piscisaureus_>would a templace make you happy then :-p
18:07:16  <indutny>nonono
18:07:22  <indutny>this means I need to put code in my header file
18:07:33  <indutny>piscisaureus_: https://github.com/indutny/candor/commit/80752220e7e91ae145dbedf1c9185d31ddbf0df7
18:08:54  <piscisaureus_>what works for you man :-)
18:09:58  <txdv>is candor a subset of js?
18:10:23  <piscisaureus_>It's a superset of brainfuck
18:10:46  <txdv>it obviously is not
18:11:02  <indutny>it is
18:11:06  <indutny>:)
18:11:07  <indutny>hahaha
18:11:14  <txdv>what you say got no brain
18:11:29  <indutny>no brain was harmed while developing this language
18:11:45  <indutny>piscisaureus_: btw, I'm going to create candor.io from scratch on this weekend
18:11:52  <indutny>piscisaureus_: I've some fs functions working
18:11:54  <indutny>piscisaureus_: open/close
18:11:55  <indutny>:)
18:12:24  <indutny>and it works!
18:12:24  <indutny>:)
18:12:28  <piscisaureus_>nice
18:12:34  <piscisaureus_>why are you starting all over?
18:12:45  <piscisaureus_>Did creationix not do a good job?
18:13:41  <txdv>what is candor.io
18:13:50  <txdv>libuv bindings?
18:14:54  <txdv>i mean, a libuv binding/
18:15:21  <indutny>piscisaureus_: not really, and we've agreed with tim that'll start it all over again
18:15:33  <indutny>piscisaureus_: also, it seems that candor's API wasn't really comfortable to work with
18:15:39  <indutny>piscisaureus_: since I haven't used them anywhere
18:15:43  <indutny>txdv: yes
18:15:52  <piscisaureus_>ahya
18:15:53  <piscisaureus_>ok
18:16:04  <indutny>so now I'm fixing them
18:16:16  <indutny>and also testing new allocator in "production"
18:18:46  * mikealquit (Quit: Leaving.)
18:19:03  <txdv>did you see the horrible chrome socket api
18:21:30  <indutny>nope
18:29:16  * TooTallNatejoined
18:33:47  * loladirojoined
18:34:03  <indutny>yay
18:34:32  <indutny>oh
18:34:36  <indutny>I just realized
18:34:40  <indutny>I don't need buffers here
18:34:49  <indutny>since strings are just binary blob with length
18:36:31  <rendar>indutny: but candor language will be translated into js and then runned by v8 as usual, or will be runned directly from a node runtime?
18:36:37  <indutny>nope
18:36:42  <indutny>and it's not related to node at all
18:36:48  <rendar>hmm
18:36:54  <indutny>it's a separate VM
18:36:58  <indutny>with JIT and blackjack
18:36:58  <rendar>i see
18:37:18  <rendar>indutny: so you have to write again JIT stuff that are presents in v8?
18:37:24  <rendar>present*
18:37:26  <indutny>indeed
18:37:29  <indutny>I already wrote it
18:37:33  <indutny>not as good
18:37:34  <rendar>oh cool
18:37:38  <indutny>but it works
18:39:03  <rendar>indutny: is that a lot of code? how much time it took to you?
18:39:13  <indutny>rendar: without thinking?
18:39:18  <indutny>rendar: 3-4 weeks
18:39:22  <indutny>rendar: with thinking 6 months
18:39:24  <indutny>almost
18:39:27  <rendar>indutny: lol, eheh
18:39:37  <indutny>I had to make a big pause
18:39:41  <indutny>for almost 4 months
18:39:53  <rendar>i see
18:39:54  <indutny>to realize how things should work
18:40:09  <rendar>indutny: wouldn't it be cool to have a general purpose JIT library that can be used by every scripting language?
18:40:16  <indutny>nanojit?
18:40:18  <piscisaureus_>llvm you mean, rendar?
18:40:23  <indutny>https://developer.mozilla.org/en-US/docs/Nanojit
18:40:25  <indutny>or llvm
18:40:32  <rendar>oh, great
18:40:35  * AndreasMadsenquit (Remote host closed the connection)
18:40:44  <rendar>llvm does also JIT? at runtime?
18:41:09  <rendar>i thought llvm generated code only at compile time
18:41:24  <piscisaureus_>rendar: no you can also use it to build a jit
18:41:28  <piscisaureus_>rendar: google is your friend :-)
18:41:54  <piscisaureus_>rendar: it's how julia works I think
18:42:55  <rendar>wow nanojit is great
18:43:14  <rendar>piscisaureus_: yeah, i just looked it up :)
18:43:15  <indutny>heh
18:43:23  <indutny>rendar: limits, limits everywhere
18:43:33  * stagas_joined
18:43:35  <indutny>and this means that you're skipping a lot
18:43:39  <rendar>indutny: oh really?
18:43:44  <indutny>which is no good for understanding of things
18:43:48  <rendar>indutny: this is because you don't use nanojit for candor?
18:44:01  <indutny>what "this"?
18:44:27  <rendar>indutny: these "limits", you refer to nanojit limits?
18:44:33  <indutny>well, yeah
18:44:36  * stagasquit (Ping timeout: 245 seconds)
18:44:41  <indutny>it's quite extensible
18:44:42  * stagas_changed nick to stagas
18:44:45  <indutny>but still limits your knowledge
18:44:46  <indutny>ok, brb
18:44:50  <rendar>so for these limits you didn't use that for candor, but wrote your own, i suppose
18:45:37  <indutny>yeah
18:45:38  <indutny>it's just fun
18:47:26  <rendar>well, a friend of mine told me that luaJIT is the best JIT ever written, but i don't know, i have still to test it
18:49:01  * mikealjoined
19:00:20  * perezdjoined
19:01:14  * jmar777quit (Remote host closed the connection)
19:01:48  * jmar777joined
19:02:40  * c4miloquit (Read error: Connection reset by peer)
19:03:49  * mikealquit (Ping timeout: 256 seconds)
19:04:36  <indutny>rendar: how would you know? :)
19:04:41  <indutny>I think it's really good
19:04:47  <indutny>but it's a little bit overpomoted
19:06:09  * jmar777quit (Ping timeout: 244 seconds)
19:13:03  * jmar777joined
19:15:14  * bradleymeckjoined
19:28:51  * hzjoined
19:38:14  * c4milojoined
19:46:39  * bradleymeckquit (Quit: bradleymeck)
19:52:15  * AndreasMadsenjoined
19:59:39  * mikealjoined
20:04:18  * mikealquit (Ping timeout: 264 seconds)
20:05:18  * joshthecoderjoined
20:17:48  * Styledjoined
20:18:20  <Styled>hey guys
20:18:28  <Styled>i'm having a bit of a problem with udp_send
20:18:35  <Styled>it only works once then, my program exits
20:18:43  <Styled>https://gist.github.com/4008581
20:19:02  <Styled>line 89
20:19:25  <Styled>could it be that the buf is being gced after the function exits but before udp_send uses it?
20:26:46  * hzquit
20:37:02  * jmar777quit (Remote host closed the connection)
20:37:35  * jmar777joined
20:37:54  * Styledquit (Quit: Page closed)
20:41:44  * jmar777quit (Ping timeout: 244 seconds)
20:43:48  * mraleph1joined
20:44:31  * mralephquit (Read error: Connection reset by peer)
20:45:16  * brsonjoined
20:53:07  * loladiroquit (Quit: loladiro)
20:54:24  * loladirojoined
20:57:57  * yunongquit (Quit: Leaving.)
21:00:02  * mikealjoined
21:04:37  * mikealquit (Ping timeout: 255 seconds)
21:06:30  * loladiroquit (Quit: loladiro)
21:09:34  <indutny>piscisaureus_: yay
21:09:37  <indutny>reading from file works :)
21:12:39  <piscisaureus_>indutny: :-)
21:12:48  <indutny>it's so interesting to use libuv's APIs
21:12:50  <indutny>really fascinating
21:13:00  <indutny>especially when you're doing it from scratch
21:13:14  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
21:20:25  <isaacs>hij1nx: pong
21:22:33  <isaacs>So, i'm thinking of making it so that socket.connect() will throw if the socket has already been used and destroyed
21:22:48  <isaacs>as it is, it's only saving us a JS object, and it's a pita to have to deal with resetting all the state properly.
21:23:01  <isaacs>(ie, socket.connect() creates a new _handle anyway)
21:23:17  * loladirojoined
21:27:53  * c4miloquit (Remote host closed the connection)
21:33:39  * c4milojoined
21:43:27  * AndreasMadsenquit (Remote host closed the connection)
21:44:45  <piscisaureus_>isaacs: I think that will be an actual api change - but yeah
21:44:51  <piscisaureus_>isaacs: I don't think anyone will care
21:48:02  * joshthecoderquit (Quit: Leaving...)
21:50:06  <indutny>yay
21:50:13  <indutny>fs.readFileSync() works in candor.io :)
21:51:35  <indutny>now I can implement basic module system!
21:56:43  <isaacs>indutny: ++
21:56:43  <kohai>indutny has 34 beers
21:56:49  <isaacs>kohai: beers
21:56:50  <kohai>I am Kohai, semi-useful communications-facilitating pseudointelligence!
21:56:55  <isaacs>kohai: that's not very useful
21:56:55  <kohai>I am Kohai, semi-useful communications-facilitating pseudointelligence!
21:56:56  <indutny>isaacs: ++
21:56:56  <kohai>isaacs has 27 beers
21:57:02  <indutny>isaacs: --
21:57:02  <kohai>isaacs has 26 beers
21:57:03  <isaacs>kohai: ++
21:57:03  <kohai>I am Kohai, semi-useful communications-facilitating pseudointelligence!
21:57:03  <kohai>kohai has 16 beers
21:57:06  <isaacs>kohai: ++
21:57:06  <kohai>I am Kohai, semi-useful communications-facilitating pseudointelligence!
21:57:06  <kohai>kohai has 17 beers
21:57:06  <indutny>balance
21:57:59  <isaacs>kohai: balance
21:57:59  <kohai>I am Kohai, semi-useful communications-facilitating pseudointelligence!
21:58:03  <isaacs>isaacs++
21:58:04  <kohai>You can't give karma to yourself!
21:58:14  * isaacsdoesn't want to give karma, is trying to give beers
21:58:20  <isaacs>creationix ++
21:58:20  <kohai>creationix has 9 cherry juices
21:58:42  * mikealjoined
21:59:07  <indutny>fail
22:00:32  <isaacs>piscisaureus_: yeah, the api change of "don't emit data unless there's a listener" is going to mess some people up, i bet, too.
22:00:39  <isaacs>i mean, oh, well.
22:00:42  <isaacs>but still.
22:00:57  <isaacs>if you never add a data listener, the stream stays "paused" forever.
22:01:16  <piscisaureus_>hmm
22:01:22  <piscisaureus_>that sounds convenient :-0
22:01:26  <isaacs>yeah
22:01:29  <isaacs>actually, it's great, in real life
22:01:33  <isaacs>but it breaks a *lot* of our tests
22:01:43  <isaacs>since many of them are just adding listeners for what they care about.
22:01:45  <piscisaureus_>isaacs: but I thought that the stream1 emulation would also not read() until you add a data listener?
22:02:03  <isaacs>the stream1 emulation reads all bytes asap and emits 'data'
22:02:06  <piscisaureus_>isaacs: aaah, it's the other way around -
22:02:12  <isaacs>but you only switch into stream1 by adding a data listener
22:02:17  <isaacs>or calling .pause() or .resume()
22:02:28  <isaacs>so, if you really don't care, just call stream.resume() and it'll flow
22:02:39  <piscisaureus_>isaacs: I totally dig this
22:02:46  <piscisaureus_>isaacs: +many
22:02:48  <isaacs>:D
22:02:52  <indutny>https://github.com/indutny/candor.io
22:02:55  <indutny>so here it comes :)
22:03:00  <indutny>can someone please try building it?
22:03:06  <indutny>creationix: ^^
22:03:21  * mikealquit (Client Quit)
22:03:24  <indutny>piscisaureus_: ^
22:03:26  <indutny>or isaacs
22:03:33  <isaacs>it's nap time here, i think
22:03:36  <indutny>aah
22:03:47  * isaacsaway
22:04:09  <indutny>17-04 in SF?
22:04:14  <indutny>isaacs: ^
22:04:27  <isaacs>15:04
22:04:27  <piscisaureus_>indutny: why?
22:04:31  <indutny>oh
22:04:38  <isaacs>but it's sunny saturday afternoon
22:04:43  <indutny>ook :)
22:04:59  * AndreasMadsenjoined
22:05:54  <piscisaureus_>indutny: try to build on your AWS dev machine
22:05:59  <indutny>oh
22:06:02  <indutny>you're right!
22:06:23  <indutny>but that was a way to make someone else into process
22:06:26  <indutny>and to advertise things
22:06:30  <indutny>so you've just failed my attempt
22:06:31  <indutny>:)
22:09:17  * yunongjoined
22:14:02  <indutny>oh shit
22:14:05  <indutny>it doesn't build here
22:15:52  * AndreasMadsenquit (Remote host closed the connection)
22:17:18  * mikealjoined
22:23:25  * c4miloquit (Remote host closed the connection)
22:23:33  <indutny>piscisaureus_: how much are you familiar with gyp?
22:23:47  <piscisaureus_>indutny: 59.3
22:23:53  <indutny>kewl
22:23:59  <indutny>so
22:23:59  <indutny>https://github.com/indutny/candor.io/blob/master/common.gypi#L4
22:24:03  <indutny>I declare host_arch here
22:24:14  <indutny>and use it there https://github.com/indutny/candor.io/blob/master/common.gypi#L138
22:24:21  <indutny>but it isn't set...
22:24:53  <piscisaureus_>indutny: why do you have a variables block inside a variables block?
22:25:11  <indutny>em...
22:25:12  <indutny>idk
22:25:17  <indutny>I've copy pasted it from v8
22:25:20  <indutny>or somewhere else
22:25:38  <indutny>well
22:25:38  <indutny>anyway
22:25:47  <indutny>if I'll remove it from there everything will fail
22:25:49  <indutny>as it does now
22:25:49  <piscisaureus_>indutny: anyway, try to fix that fist :-0
22:25:52  <indutny>so it doesn't matter
22:26:29  <piscisaureus_>indutny: copy this instead https://github.com/joyent/node/blob/master/common.gypi#L1-11 :-)
22:26:35  <indutny>hahaha
22:26:39  <indutny>no
22:26:41  <indutny>ia32
22:26:48  <piscisaureus_>indutny: you get the idea
22:26:52  <indutny>well
22:26:57  <indutny>ok
22:27:07  <piscisaureus_>indutny: varables: { variables: { just defines a variable called "variables"
22:27:16  <piscisaureus_>IDK why v8 does that but it is not right
22:27:48  <indutny>ah I know what
22:28:00  <piscisaureus_>good
22:28:04  <indutny>piscisaureus_: conditions are evalutated first
22:28:09  <indutny>if there're no variables property
22:28:33  <piscisaureus_>well
22:28:38  <piscisaureus_>it's more complicated than that
22:28:44  <indutny>indeed
22:28:47  <piscisaureus_>there are multiple stages
22:28:59  <indutny>it seems that target_defaults are computed even before that
22:29:00  <piscisaureus_>and the stage is dependent on how the variable is inserted
22:30:51  <indutny>actually, I don't think I really need all this crap
22:30:58  * joshthecoderjoined
22:31:04  <piscisaureus_>e.g. <( comes before >(
22:33:34  <indutny>oh
22:33:39  <indutny>UINT32_MAX is not defined
22:38:47  <indutny>__STDC_LIMIT_MACROS
22:38:49  <indutny>nice
22:38:50  <indutny>I love C
22:44:14  <piscisaureus_>I'm gone, see you later folks
22:44:30  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
22:46:11  <indutny>see ya
22:46:18  * yunongquit (Quit: Leaving.)
22:54:10  * bnoordhuisjoined
22:58:31  * rendarquit
23:06:09  * brsonquit (Quit: leaving)
23:06:41  * joshthecoderquit (Quit: Leaving...)
23:24:09  <indutny>bnoordhuis: hoya
23:24:16  <bnoordhuis>indutny: hey
23:24:22  <indutny>bnoordhuis: probably you can help me
23:24:29  <indutny>bnoordhuis: I'm writing libuv bindings for candor
23:24:40  <indutny>bnoordhuis: and uv_fs_stat() returns odd data for file
23:24:50  <bnoordhuis>indutny: define odd?
23:24:51  <indutny>(it was doing it right way before...)
23:24:56  <indutny>size = 0
23:24:58  <indutny>ctime = 0
23:25:00  <indutny>mtime = 0
23:25:08  <indutny>I guess I've changed some compilation options
23:25:18  <bnoordhuis>also, are you compiling candor and libuv with the same _LARGEFILE_SOURCE and _FILE_OFFSET_BITS flags?
23:26:05  <indutny>hm...
23:26:15  <indutny>I'm compiling it without, I guess?
23:26:24  <indutny>well, I'm not setting those for libuv
23:26:28  <indutny>and for candor...
23:26:34  <indutny>is it set by default somewhere?
23:27:06  <bnoordhuis>indutny: do you compile with gyp?
23:27:56  <bnoordhuis>no, doesn't matter - libuv sets them in the makefile as well
23:28:10  <bnoordhuis>indutny: one sec, let me write a quick patch
23:30:24  <bnoordhuis>indutny: https://gist.github.com/d10c37cd9169231e689a
23:30:45  <bnoordhuis>apply and reconfigure/recompile your project
23:31:05  <indutny>oh right
23:31:06  <indutny>I see now
23:31:12  <indutny>structure size was incorrect, right?
23:31:17  <bnoordhuis>from the sound of it, yes
23:32:06  <indutny>definitely yes
23:32:11  <bnoordhuis>let me know if the patch works for you and i'll land it
23:32:15  <indutny>uv_fs_stat call was overwriting another on-stack pointer
23:32:28  <indutny>hm... doesn't seem to work
23:32:31  <indutny>let me check V=1 output
23:33:01  <indutny>it doesn't seem to be applying defines..
23:34:24  <indutny>oh
23:34:32  <indutny>I was adding it to wrong common.gypi
23:35:04  <bnoordhuis>common.gypi? i sense that you're not trying my patch?
23:35:06  <indutny>hm...
23:35:16  <indutny>aah
23:36:13  <indutny>nope
23:36:16  <indutny>still the same
23:36:46  <indutny>bnoordhuis: ^
23:37:10  <bnoordhuis>indutny: did you or did you not apply my patch? i'm a little unclear on that
23:37:18  <indutny>I've patched uv.gyp
23:37:20  <indutny>yes
23:37:35  <bnoordhuis>ran gyp again?
23:37:37  <indutny>bnoordhuis: you can try it yourself
23:37:39  <indutny>yes
23:37:41  <indutny>make clean
23:37:43  <indutny>make V=1
23:37:49  <indutny>bnoordhuis: https://github.com/indutny/candor.io
23:38:18  <indutny>bnoordhuis: insert `global.log(stat)` here: https://github.com/indutny/candor.io/blob/master/lib/fs.can#L56
23:38:33  <indutny>and after build run ./out/Debug/can.io some-existing-file
23:39:55  <indutny>bnoordhuis: I think you may need POSIX_C_SOURCE
23:41:23  <bnoordhuis>indutny: i just tried it with node and it seems to work, the flags come through, etc.
23:41:30  <indutny>hm...
23:41:34  <bnoordhuis>indutny: what platform are you testing it on? os x?
23:41:38  <indutny>yes
23:41:44  <bnoordhuis>ah, the unix that isn't
23:43:33  <bnoordhuis>indutny: still, i don't see why we'd need _POSIX_C_SOURCE
23:43:40  <indutny>idk
23:43:41  <indutny>__DARWIN_64_BIT_INO_T
23:43:45  <bnoordhuis>oh, that one
23:43:48  <indutny>seems to be responsible for 64bit offsets
23:43:56  <bnoordhuis>fscking os x, i forgot about that one
23:44:02  <bnoordhuis>one sec
23:44:20  <indutny>you think it's needed?
23:45:15  <indutny>yay
23:45:16  <indutny>it works
23:45:18  <indutny>with it
23:46:16  <bnoordhuis>yeah, but... we used to define that in node but i removed it later on
23:46:56  <bnoordhuis>hah, removed it almost a year ago in d5feb1c
23:47:18  <indutny>:)
23:47:24  <indutny>and how does it work without it?
23:47:48  <indutny>oh
23:47:51  <indutny>it's harmful
23:48:20  <bnoordhuis>i remember looking into that and discovering that -D__DARWIN_64_BIT_INO_T=1 doesn't actually do anything most of the time
23:48:30  <indutny>aha
23:48:34  <bnoordhuis>and at other times, it only patched up parts of struct stat
23:49:08  <indutny>bnoordhuis: so what should I do?
23:49:08  <bnoordhuis>(this was after people were complaining *again* about spurious crashes with some os x versions)
23:49:25  <bnoordhuis>well, _LARGEFILE_SOURCE and _FILE_OFFSET_BITS=64 should be enough
23:49:32  <bnoordhuis>it's what node+libuv uses and it works
23:49:34  <indutny>doesn't work
23:49:44  <indutny>and 64_BIT_INO_T works
23:49:46  <indutny>also
23:49:59  <bnoordhuis>i think...
23:50:02  <indutny>struct stat's fields doesn't seem to depend on LAREFILE_SORUCE or FILE_OFFSET_BITS
23:50:06  <bnoordhuis>let me double-check that just in case :)
23:50:32  <bnoordhuis>indutny: ah... _DARWIN_USE_64_BIT_INODE=1
23:50:33  <indutny>bnoordhuis: https://gist.github.com/ce2ea01571879f99fd75
23:50:38  <indutny>ah
23:50:44  <indutny>typo
23:51:03  <bnoordhuis>no, different define
23:51:10  <indutny>yay
23:51:13  <indutny>really?
23:51:19  <indutny>stupid darwin :D
23:51:29  <bnoordhuis>kind of worrisome that it works because libuv defines it but node does not
23:52:07  <indutny>:)
23:52:13  <indutny>I don't know what to say
23:52:19  <indutny>it was working for me
23:52:27  <indutny>when I've pulled either node's common.gypi
23:52:31  <indutny>or libuv's one
23:52:39  <indutny>but after I removed junk out of it in candor.io
23:52:42  <indutny>it stopped working
23:53:25  <bnoordhuis>indutny: can you try https://gist.github.com/d10c37cd9169231e689a
23:53:36  <indutny>bnoordhuis: this commit broke it https://github.com/indutny/candor.io/commit/694518e52efb2d958bf081a11322f1c4a3e4911d
23:54:25  <indutny>bnoordhuis: except typo - yes
23:54:29  <indutny>bnoordhuis: syntax error :)
23:54:57  <bnoordhuis>oh right, forgot the ]
23:55:18  <bnoordhuis>but apart from that, it compiles and uv_fs_stat gives the right data?
23:56:47  <indutny>yes
23:56:53  <indutny>btw, going to fix osx hack
23:59:35  <MI6>joyent/libuv: Ben Noordhuis master * b5fc944 : build: export _LARGEFILE_SOURCE, _FILE_OFFSET_BITS Export compile-time d - http://git.io/izALuQ
23:59:35  <bnoordhuis>okay, landed